aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser.c
Commit message (Collapse)AuthorAgeFilesLines
* Move semantic analysis to separate fileBad Diode2022-04-181-521/+4
|
* Add a more rich symbol table value and typecheck funcall argsBad Diode2022-04-181-31/+96
|
* Refactor to remove redundant symbol_check functionBad Diode2022-04-181-212/+97
|
* Add funcall node type and fix type resolution bugsBad Diode2022-04-111-12/+80
|
* Add more type rules and numeric type coercionBad Diode2022-04-091-20/+163
|
* Add rudimentary type checkingBad Diode2022-04-081-46/+187
|
* Add initial implementation of AST vizualizationBad Diode2022-04-081-1/+1
|
* Add initial implementation of typeclass resolutionBad Diode2022-04-071-5/+84
|
* Add scope pointer to blocks and functionsBad Diode2022-04-061-7/+3
|
* Add hashing function for symbolsBad Diode2022-04-061-3/+5
|
* Add initial implementation of symbol checkingBad Diode2022-04-061-20/+203
|
* Prepare parse tree for returnBad Diode2022-04-061-6/+18
|
* Add TODO.md file to keep track of open tasksBad Diode2022-04-061-6/+3
|
* Add parsing of if statementsBad Diode2022-04-061-2/+49
|
* Add NODE_BLOCK for scoped expressionsBad Diode2022-04-061-17/+25
|
* Add parsing for function definitionsBad Diode2022-04-031-25/+126
| | | | | | | | | | | | This commits also changes the structure of some existing functions. Namely, parse_* functions other than parse_next check that the type of the token to parse is correct. This allow us to use them directly in the rest of the code to consume tokens and properly produce an error if the token type is not the expected one. In the same fashion, two new functions consume_lparen and consume_rparen are implemented. They only report true/false and report errors if something went wrong.
* Add parsing for (set ...) statementsBad Diode2022-04-031-0/+33
|
* Add type signature to def statementsBad Diode2022-03-311-62/+13
| | | | Currently mandatory, may be optional once we have type inference.
* Minor styling changesBad Diode2022-03-301-27/+10
|
* Add initial parsing of variable definitionsBad Diode2022-03-301-4/+61
|
* Add support for logic builtins and boolsBad Diode2022-03-301-1/+23
|
* Add parsing for builtin arithmetic opsBad Diode2022-03-301-3/+57
|
* Use Node refs as return arguments from parsingBad Diode2022-03-301-27/+47
|
* Make unknown printing explicitBad Diode2022-03-261-3/+1
|
* Add number parsingBad Diode2022-03-121-79/+89
|
* Add boilerplate for parserBad Diode2022-02-121-860/+108
|
* Add support for captured loads inside lambdasirBad Diode2022-01-091-1/+1
|
* Add some comments for laterBad Diode2022-01-031-1/+6
|
* Ensure new procedures are compiled only onceBad Diode2021-12-301-1/+38
|
* Add `not` and `and` builtins for ir compilationBad Diode2021-12-231-4/+11
|
* Fix typo in enum nameBad Diode2021-12-221-4/+4
|
* Integrate builtin text into objectsBad Diode2021-12-221-45/+34
|
* Add builtin object typeBad Diode2021-12-221-16/+46
|
* Add initial boilerplate for closure captureBad Diode2021-11-151-1/+31
|
* Fix stack on procedure call returnBad Diode2021-11-151-1/+3
|
* Fix bug on parameter detection for named functionsBad Diode2021-11-101-4/+8
|
* Add support for accessing procedure parametersBad Diode2021-11-101-5/+23
|
* Add initial local definition/accessBad Diode2021-11-101-2/+3
|
* Change Environment to store locals in arrayBad Diode2021-11-101-20/+31
| | | | This will help directly translate the locals to assembly.
* Add `cons`, `car` and `cdr` primitivesBad Diode2021-11-041-0/+1
|
* Add compilation of `display` primitiveBad Diode2021-11-021-0/+3
|
* Add type predicate primitive proceduresBad Diode2021-11-011-0/+1
| | | | Added: nil?, zero?, bool?, fixnum?
* Add protection for buffer overflow of tokensBad Diode2021-10-311-6/+6
|
* Add a couple of EOF checksBad Diode2021-10-311-0/+29
|
* Replace string/symbol text field with StringViewBad Diode2021-10-311-21/+7
| | | | | This will avoid unnecessary allocations, since we always keep the original text file open until the end of the processing.
* Unify semantic analysis actions under a single functionBad Diode2021-10-311-111/+49
|
* Add number of arguments check in function callsBad Diode2021-10-311-12/+71
|
* Ensure lambdas wrap their env tablesBad Diode2021-10-311-2/+4
|
* Add dead code elimination to AST treeBad Diode2021-10-301-3/+73
|
* Add symbol declaration error checkingBad Diode2021-10-301-6/+75
|