aboutsummaryrefslogtreecommitdiff
path: root/src/parser.c
Commit message (Collapse)AuthorAgeFilesLines
* Minor efficiency improvementThomas Voss 2024-06-141-2/+5
|
* Allow identifiers in expressionsThomas Voss 2024-06-141-0/+4
|
* Fix alignof() usage and a very sneaky bugThomas Voss 2024-06-121-25/+27
| | | | | | | | | | | | | | | | | | It might seem innocuous, but the following expression is actually quite prone to breakage: ast->kids[i].lhs = parseexpr(ast, toks); The reason is that parseexpr() and the other parsing functions return indicies into the AST, however in doing so they may find that the AST needs to grow and call astresz(). Should astresz() be called there is a chance that we will realloc() a new buffer somewhere else in memory, causing the left-hand side of the above expression to now be pointing to an invalid location in memory. To combat this we’re forced to break it up into two statements: idx_t_ lhs = parseexpr(ast, toks); ast->kids[i].lhs = lhs;
* Use smaller default capacities in debug modeThomas Voss 2024-06-121-11/+9
|
* Code reshufflingThomas Voss 2024-06-111-2/+3
|
* Remove ‘soa’ from lots of identifiersThomas Voss 2024-06-111-26/+26
|
* Switch size_t indicies to be idx_t_Thomas Voss 2024-06-111-31/+15
|
* Add basic LLVM codegenThomas Voss 2024-06-111-103/+140
|
* Parse very basic declarationsThomas Voss 2024-06-111-20/+148
|
* Begin work on a basic parserThomas Voss 2024-06-111-0/+112