aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Implement statement parsingHEADmainHimbeer32 hours1-1/+289
|
* Fix constant parser not consuming an equals signHimbeer32 hours1-0/+4
|
* Implement type and expression parsingHimbeer32 hours1-0/+562
|
* Declare needed parsing function prototypesHimbeer32 hours1-0/+3
|
* Fix syntax of type.cHimbeer32 hours1-12/+12
|
* Add lexical token for character literalsHimbeer32 hours1-0/+15
|
* Move error function to util.cHimbeer32 hours3-30/+15
|
* Add tokens for op-assignments and in/decrementHimbeer33 hours1-8/+43
|
* Add missing 'as' and 'tagof' tokensHimbeer2 days1-0/+2
|
* Implement toplevel parsingHimbeer3 days1-23/+371
|
* Add align, enum and pub keywordsHimbeer3 days1-0/+3
|
* Stop supporting `-enclosed string literalsHimbeer3 days1-1/+0
|
* Simplify type system to primitives onlyHimbeer3 days1-50/+13
|
* Define overhauled AST data structuresHimbeer4 days1-1478/+1
|
* Remove mut, import, export, enumHimbeer7 days3-149/+3
|
* Check for import name collisionsHimbeer2024-10-081-1/+22
|
* Add a check stubHimbeer2024-10-082-0/+45
|
* Implement expression-based language redesignHimbeer2024-10-071-41/+53
| | | | | This is the implementation of commit ce68792c848caee2f184e7a6392d9f1e958da1a1.
* Implement optional break expressionsHimbeer2024-10-021-8/+15
|
* Implement optional return expressionsHimbeer2024-10-021-2/+4
| | | | | This is the implementation of commit 7c2cfd1657924a9d66757a627eef9caa117684a9.
* Fix expression matching success being invertedHimbeer2024-10-011-1/+1
|
* Fix invalid inner types not raising an errorHimbeer2024-10-011-3/+15
|
* Fix unary postfix expressions being expected in absence of operatorHimbeer2024-10-011-1/+6
| | | | | | This allows the expression parser to return false for non-expressions instead of terminating the entire parsing procedure with an error, fixing calls to functions with no parameters not being allowed.
* Implement statement parsingHimbeer2024-10-011-3/+303
|
* Fix literal parsing accepting any non-booleans as stringsHimbeer2024-09-261-1/+4
|
* Fix union tag types not being accepted by the parsing procedureHimbeer2024-09-261-1/+13
|
* Fix non-matching tokens not being ummatched in type/expression parsingHimbeer2024-09-261-0/+2
|
* Implement literal (expression) parsingHimbeer2024-09-261-5/+102
|
* Implement type parsingHimbeer2024-09-261-1/+604
|
* Implement expression parsingHimbeer2024-09-251-0/+504
|
* Implement expressionsHimbeer2024-09-231-9/+9
|
* Add builtin boolean typeHimbeer2024-09-211-0/+1
|
* 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/+7
| | | | | 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-193-7/+29
|
* Use must_malloc in lex_initHimbeer2024-09-191-5/+1
|
* Make 'Out of memory' capitalization consistent across source filesHimbeer2024-09-191-3/+3
|
* Make main parse the token stream into an ASTHimbeer2024-09-171-16/+3
|
* Implement parsing importsHimbeer2024-09-171-0/+96
|
* Return correct token kind from lexer or T_NONE for unexpected inputHimbeer2024-09-171-0/+4
|
* Add OOM-safe must_calloc and must_realloc helper functionsHimbeer2024-09-171-0/+22
|
* Add missing util.c includesHimbeer2024-09-171-0/+2
|
* Add token kind matching lexer functionHimbeer2024-09-171-0/+11
| | | | | | 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.
* Fix unlex function return type and name being on the same lineHimbeer2024-09-171-1/+2
|
* Add must_malloc helper functionHimbeer2024-09-171-0/+11
| | | | | | 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/+52
|
* Add AST data structures for (sub)units and top-level declarationsHimbeer2024-09-151-0/+1
|
* Include (single-line) comments in lexical analysisHimbeer2024-09-122-2/+27
|
* Make identifiers / paths sequences of names delimited by ::Himbeer2024-09-122-14/+5
| | | | This is much easier to lex than separate token kinds.
* Include strings in lexical analysisHimbeer2024-09-122-1/+20
|