C interpreter/compiler, not built yet, lexer and parser

c compiler interpreter transpiler
16 Open Issues Need Help Last updated: Sep 4, 2025

Open Issues Need Help

View All on GitHub

AI Summary: The compiler's lexer fails to correctly parse negative float literals that lack a leading zero (e.g., `-.3`), leading to incorrect tokenization, parser failures, or corrupted ASTs. The issue is traced to the negative number detection logic in `lexer.c`, which incorrectly splits such literals into separate tokens like `"-"` and `".3"`. The proposed solution involves updating the `splitter()` function to properly recognize and tokenize `-.X` patterns as a single float literal.

Complexity: 2/5
bug good first issue

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler
enhancement good first issue parser refactor

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

AI Summary: This issue aims to implement support for code blocks delimited by curly braces (`{}`). Key tasks include updating the parser, ensuring correct handling of variable scope for local variables within these blocks, supporting empty blocks, and integrating them with existing control flow statements like `if/else` and loops.

Complexity: 4/5
enhancement good first issue

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

AI Summary: This GitHub issue requests a significant expansion of the Unity test suite, which currently has 47 tests. The goal is to achieve comprehensive coverage for various edge cases, error conditions, and recently implemented features such as logical operators and comparisons, including complex precedence rules and diverse string handling scenarios.

Complexity: 3/5
enhancement help wanted good first issue testing

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

AI Summary: This issue proposes creating a dedicated Semantic Analyzer module to separate type checking and semantic validation from the parser. Currently, the parser mixes syntax and semantic responsibilities, leading to poor error recovery and an inflexible type system. The new module will run after AST generation, improving architecture, error reporting, and extensibility for future type system features.

Complexity: 4/5
enhancement help wanted major feature refactor

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler
enhancement good first issue parser lexer

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

AI Summary: The current expression parser uses separate functions for each precedence level, which is unscalable and creates maintenance overhead. The proposal is to refactor it to use a precedence climbing algorithm with a single `parseExpression()` function and an operator table, which will simplify adding new operators and consolidate parsing logic.

Complexity: 3/5
enhancement good first issue parser refactor

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

AI Summary: A string validation test for a missing closing quote at the end of a string literal incorrectly reports both the expected `ERROR_MISSING_QUOTE` and an additional "unknown error". The goal is to debug the `isStringLit()` function or related logic to ensure only the specific `ERROR_MISSING_QUOTE` is reported for this malformed input.

Complexity: 2/5
bug good first issue

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

AI Summary: This issue addresses the absence of a boolean data type, which currently prevents the use of logical expressions, comparison results, and boolean variables in control flow conditions. The implementation requires updates to the lexer for `bool`, `true`, `false` tokens, the parser for corresponding AST nodes, and comprehensive testing to ensure correct declaration, assignment, and type safety.

Complexity: 3/5
enhancement good first issue parser lexer

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

AI Summary: This issue proposes a refactoring of the AST node creation process to improve type safety and reduce repetitive code. It aims to introduce typed node constructors, implement validation for parent-child node type compatibility, and add helper functions for cleaner AST construction, potentially utilizing designated initializers.

Complexity: 3/5
enhancement help wanted parser

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

AI Summary: This issue addresses the current limitation where string literals cannot contain special characters or quotes due to a lack of escape character processing. The proposed solution is to modify the lexer to support common escape sequences like `"`, `\`, `\n`, and `\t`, enabling proper string construction and improving language expressiveness.

Complexity: 2/5
enhancement good first issue lexer

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

AI Summary: This issue proposes a significant overhaul of the current error reporting infrastructure, which is described as limited and basic. The enhancements include expanding error type definitions, implementing comprehensive validation rules, providing detailed error context (like line numbers and positions), and improving error categorization, severity levels, and user-facing messages.

Complexity: 4/5
enhancement help wanted infrastructure

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler
enhancement good first issue lexer

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler

AI Summary: The `splitter()` function has a memory leak because it allocates memory for `Input` structures and token strings without a corresponding cleanup mechanism, leading to memory accumulation in the main program flow. The proposed solution is to implement a `freeInput(Input input)` function to centralize memory deallocation and integrate it consistently across the codebase, particularly in `main.c`.

Complexity: 3/5
bug help wanted lexer

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler
bug help wanted good first issue parser

C interpreter/compiler, not built yet, lexer and parser

C
#c#compiler#interpreter#transpiler