Skip to main content
The j++ compiler can report errors while reading source files, tokenizing and parsing code, or building the structure graph.

Syntax errors

Syntax errors indicate that the input does not match the grammar expected by the lexer or parser. Use the position reported with the error to find the source location.
Check the first reported error before investigating later messages. A missing delimiter near the top of a file can cause several downstream parse errors.

Deprecated keywords

Some C11 keywords are rejected by the lexer. The repository documents restrict, _Bool, _Complex, and _Imaginary as deprecated or removed. Avoid these keywords in i++ source.

Scope errors

The structurer reports declaration conflicts in the same scope. For example, declaring a variable or function with an existing name in that scope can result in an error such as:
Rename one declaration or move it into a distinct scope.

Memory errors

The compiler supports manual allocation with allocate and free. autoremove and Robbery are not implemented, so manage allocated memory explicitly and do not rely on diagnostics or automatic cleanup for those features.

File errors

Debugging

Print the token stream or structure graph to inspect how the compiler interprets the source:
The current installed command is hypotenuse; the compiler name is changing to j++.