aboutsummaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* Prefix bitwise assignment operations with BHimbeer33 hours1-3/+3
|
* Remove unnecessary *crement informationHimbeer33 hours1-6/+0
|
* Remove unnecessary cmp_e rhs indirectionHimbeer33 hours1-2/+1
| | | | The op member already tells us whether rhs holds a meaningful value.
* Separate grp_e and sub-accessesHimbeer33 hours1-2/+2
|
* Change character literal representation from int to uint32_tHimbeer33 hours1-1/+1
|
* Add lexical token for character literalsHimbeer33 hours1-0/+2
|
* Move error function to util.cHimbeer33 hours1-0/+2
|
* Add tokens for op-assignments and in/decrementHimbeer33 hours1-0/+10
|
* Add missing 'as' and 'tagof' tokensHimbeer2 days1-0/+2
|
* Implement toplevel parsingHimbeer3 days1-5/+0
|
* Add align, enum and pub keywordsHimbeer3 days1-0/+3
|
* Add missing visibility information to certain toplevelsHimbeer3 days1-0/+4
|
* Simplify type system to primitives onlyHimbeer3 days1-74/+21
|
* Add location fields to AST data structures that need itHimbeer4 days2-0/+72
|
* Define overhauled AST data structuresHimbeer4 days4-286/+259
|
* Remove mut, import, export, enumHimbeer7 days1-4/+2
|
* Add a check stubHimbeer2024-10-081-0/+7
|
* Implement expression-based language redesignHimbeer2024-10-073-114/+130
| | | | | This is the implementation of commit ce68792c848caee2f184e7a6392d9f1e958da1a1.
* Implement optional break expressionsHimbeer2024-10-021-1/+6
|
* Implement optional return expressionsHimbeer2024-10-021-1/+1
| | | | | This is the implementation of commit 7c2cfd1657924a9d66757a627eef9caa117684a9.
* Attach (optional) labels to blocks rather than loopsHimbeer2024-10-011-1/+1
| | | | | | This makes it possible to return values from any block by breaking out of it, enabling if statements to yield expressions when combined with commit ce68792c848caee2f184e7a6392d9f1e958da1a1.
* Fix for loop AST node referencing struct ast_assign under the wrong nameHimbeer2024-10-011-2/+1
|
* Add AST data structures for statementsHimbeer2024-10-011-2/+105
|
* Implement literal (expression) parsingHimbeer2024-09-261-4/+4
|
* Implement type parsingHimbeer2024-09-264-20/+31
|
* Implement expression parsingHimbeer2024-09-251-11/+9
|
* Implement expressionsHimbeer2024-09-232-8/+203
|
* Order type kinds alphabeticallyHimbeer2024-09-211-6/+6
|
* Add builtin boolean typeHimbeer2024-09-212-0/+2
|
* Remove unnecessary type struct pointer indirectionsHimbeer2024-09-211-8/+8
|
* Remove the 'pub' keywordHimbeer2024-09-211-1/+0
| | | | This significantly simplifies parsing. All constants will be public.
* Skip comments by default unless the parser requests them explicitlyHimbeer2024-09-201-0/+1
| | | | | Most comments aren't relevant to the parser. It is still possible to implement documentation comments for automated documentation generation.
* Store token locations and include them in parsing error messagesHimbeer2024-09-191-1/+10
|
* Implement parsing importsHimbeer2024-09-171-7/+5
|
* Add OOM-safe must_calloc and must_realloc helper functionsHimbeer2024-09-171-0/+2
|
* Define exit codes for lexing, parsing and checking stage errorsHimbeer2024-09-171-0/+3
|
* Add token kind matching lexer functionHimbeer2024-09-171-0/+1
| | | | | | This function reads the next token, compares its kind to a parameter and returns a boolean indicating whether it matched. If it did not match, the token is pushed back into the lexer for later reuse.
* Add must_malloc helper functionHimbeer2024-09-171-0/+2
| | | | | | malloc(3) can fail, most likely in out-of-memory situations. This helper terminates the program in such cases instead of permitting assignments of null pointers.
* Add definitions for builtin numeric typesHimbeer2024-09-151-0/+12
|
* Add AST data structures for (sub)units and top-level declarationsHimbeer2024-09-152-7/+95
|
* Add data structures for typesHimbeer2024-09-151-0/+75
|
* Include (single-line) comments in lexical analysisHimbeer2024-09-121-0/+1
|
* Make identifiers / paths sequences of names delimited by ::Himbeer2024-09-121-1/+0
| | | | This is much easier to lex than separate token kinds.
* Add boolean value keywordsHimbeer2024-09-121-0/+2
|
* Implement lexical analysis of number literalsHimbeer2024-09-121-0/+8
|
* Treat builtin types as keywords during lexical analysisHimbeer2024-09-121-12/+12
|
* Implement operator lexingHimbeer2024-09-121-0/+2
|
* Add lexer for names and identifiersHimbeer2024-09-113-0/+138