Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Move the symbol table to its own file | Thomas Voss | 2024-06-23 | 4 | -49/+75 |
| | |||||
* | Switch from arena_t to arena_t * | Thomas Voss | 2024-06-23 | 1 | -3/+3 |
| | |||||
* | Rename symtab to symtab_t | Thomas Voss | 2024-06-23 | 2 | -5/+5 |
| | |||||
* | Make use of MPQCPY() and MPQ_IS_INIT() | Thomas Voss | 2024-06-23 | 1 | -18/+13 |
| | |||||
* | Formatting | Thomas Voss | 2024-06-23 | 2 | -3/+4 |
| | |||||
* | Implement a temporary allocator | Thomas Voss | 2024-06-23 | 3 | -11/+80 |
| | |||||
* | Various codegen work | Thomas Voss | 2024-06-22 | 4 | -67/+86 |
| | |||||
* | Set RHS to ‘i’ when a block is empty | Thomas Voss | 2024-06-22 | 1 | -1/+1 |
| | |||||
* | Include <stdio.h> when -DDEBUG is passed | Thomas Voss | 2024-06-22 | 1 | -0/+5 |
| | |||||
* | Sort issigned after isfloat | Thomas Voss | 2024-06-22 | 1 | -1/+1 |
| | |||||
* | Default untyped numeric constants to ints | Thomas Voss | 2024-06-22 | 1 | -2/+4 |
| | |||||
* | If a key is unset, default it to AST_EMPTY | Thomas Voss | 2024-06-22 | 1 | -2/+3 |
| | |||||
* | Don’t assume that uints are 64 bits | Thomas Voss | 2024-06-22 | 1 | -1/+2 |
| | |||||
* | Print result of strerror() | Thomas Voss | 2024-06-22 | 1 | -3/+3 |
| | |||||
* | More codegen work | Thomas Voss | 2024-06-22 | 3 | -63/+111 |
| | |||||
* | Rename lots of things to make my life easier | Thomas Voss | 2024-06-22 | 19 | -311/+332 |
| | |||||
* | Store decl info in auxilliary data | Thomas Voss | 2024-06-22 | 7 | -115/+163 |
| | |||||
* | Do some work on basic basic codegen | Thomas Voss | 2024-06-22 | 4 | -32/+109 |
| | |||||
* | Basic constant folding implementation | Thomas Voss | 2024-06-21 | 4 | -24/+223 |
| | |||||
* | Avoid memory leak | Thomas Voss | 2024-06-21 | 1 | -0/+1 |
| | |||||
* | Set target triple in LLVM | Thomas Voss | 2024-06-21 | 1 | -0/+5 |
| | |||||
* | Cleanup codegen.c | Thomas Voss | 2024-06-21 | 3 | -190/+23 |
| | |||||
* | Huge changes to static analysis | Thomas Voss | 2024-06-21 | 10 | -248/+451 |
| | |||||
* | Assert that functions actually return | Thomas Voss | 2024-06-19 | 4 | -38/+55 |
| | |||||
* | Add f32 and f64 as types | Thomas Voss | 2024-06-19 | 3 | -28/+20 |
| | |||||
* | Fix the way types are handled | Thomas Voss | 2024-06-19 | 2 | -17/+17 |
| | |||||
* | Add a comment | Thomas Voss | 2024-06-19 | 1 | -0/+5 |
| | |||||
* | Various parser fixes | Thomas Voss | 2024-06-19 | 5 | -96/+192 |
| | |||||
* | Remove <stdio.h> include | Thomas Voss | 2024-06-18 | 1 | -2/+0 |
| | |||||
* | More code to codegen | Thomas Voss | 2024-06-18 | 3 | -105/+52 |
| | |||||
* | Big moves | Thomas Voss | 2024-06-18 | 4 | -117/+146 |
| | |||||
* | Some more typechecking for functions | Thomas Voss | 2024-06-18 | 2 | -57/+77 |
| | |||||
* | Add 128-bit integers | Thomas Voss | 2024-06-18 | 2 | -15/+20 |
| | |||||
* | Add the nonnull attribute to codegenstmt() | Thomas Voss | 2024-06-18 | 1 | -1/+2 |
| | |||||
* | Do more work on the typechecker and compiler | Thomas Voss | 2024-06-18 | 6 | -105/+193 |
| | |||||
* | Codegen global variables | Thomas Voss | 2024-06-17 | 1 | -40/+57 |
| | |||||
* | Don’t create a new builder every iteration | Thomas Voss | 2024-06-17 | 1 | -3/+3 |
| | |||||
* | Implement super simple function type-checking | Thomas Voss | 2024-06-17 | 2 | -12/+52 |
| | |||||
* | Begin work on the static analyzer | Thomas Voss | 2024-06-17 | 9 | -4/+344 |
| | |||||
* | Prefer #error to static_assert() | Thomas Voss | 2024-06-14 | 1 | -2/+2 |
| | |||||
* | Add missing common.h includes and formatting fixes | Thomas Voss | 2024-06-14 | 6 | -8/+20 |
| | |||||
* | Minor efficiency improvement | Thomas Voss | 2024-06-14 | 1 | -2/+5 |
| | |||||
* | Don’t hardcode _AST_LAST_ENT | Thomas Voss | 2024-06-14 | 1 | -1/+1 |
| | |||||
* | Allow identifiers in expressions | Thomas Voss | 2024-06-14 | 2 | -0/+7 |
| | |||||
* | Add a basic arena allocator | Thomas Voss | 2024-06-14 | 2 | -1/+116 |
| | |||||
* | Fix alignof() usage and a very sneaky bug | Thomas Voss | 2024-06-12 | 2 | -26/+28 |
| | | | | | | | | | | | | | | | | | | 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 mode | Thomas Voss | 2024-06-12 | 2 | -13/+15 |
| | |||||
* | Strip U+0027 APOSTROPHE from integer literals | Thomas Voss | 2024-06-12 | 1 | -1/+11 |
| | |||||
* | Mark bufalloc with __attribute__((alloc_size)) | Thomas Voss | 2024-06-12 | 1 | -1/+1 |
| | |||||
* | Assert that we aren’t freeing anything | Thomas Voss | 2024-06-12 | 1 | -0/+2 |
| |