aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Add initial implementation of typeclass resolutionBad Diode2022-04-073-5/+94
|
* Add scope pointer to blocks and functionsBad Diode2022-04-063-7/+5
|
* Add hashing function for symbolsBad Diode2022-04-061-3/+5
|
* Add initial implementation of symbol checkingBad Diode2022-04-066-21/+221
|
* Prepare parse tree for returnBad Diode2022-04-062-8/+25
|
* Add TODO.md file to keep track of open tasksBad Diode2022-04-062-25/+3
|
* Add parsing of if statementsBad Diode2022-04-065-2/+86
|
* Add NODE_BLOCK for scoped expressionsBad Diode2022-04-063-25/+43
|
* Add parsing for function definitionsBad Diode2022-04-035-27/+180
| | | | | | | | | | | | 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-034-1/+47
|
* Add type signature to def statementsBad Diode2022-03-315-103/+121
| | | | Currently mandatory, may be optional once we have type inference.
* Minor styling changesBad Diode2022-03-302-28/+11
|
* Add initial parsing of variable definitionsBad Diode2022-03-304-5/+72
|
* Add support for logic builtins and boolsBad Diode2022-03-304-1/+38
|
* Add parsing for builtin arithmetic opsBad Diode2022-03-306-15/+84
|
* Use Node refs as return arguments from parsingBad Diode2022-03-302-30/+49
|
* Make unknown printing explicitBad Diode2022-03-261-3/+1
|
* Add number parsingBad Diode2022-03-125-93/+101
|
* Add boilerplate for parserBad Diode2022-02-124-1075/+154
|
* Make keywords a static array for ease of lexBad Diode2022-02-122-29/+36
|
* Ensure EOF is handled properlyBad Diode2022-02-011-9/+4
|
* Add new syntax to lexer and prepare refactorBad Diode2022-02-0151-5804/+237
|
* Add support for captured loads inside lambdasirBad Diode2022-01-092-13/+13
|
* Add `compile_symbol` for irBad Diode2022-01-091-31/+82
|
* Add some comments for laterBad Diode2022-01-032-1/+16
|
* Ensure new procedures are compiled only onceBad Diode2021-12-302-2/+51
|
* Add WIP compilation of lambdasBad Diode2021-12-301-57/+116
|
* Add `def` builtin and local var load/store opsBad Diode2021-12-301-4/+40
|
* Fix warnings on macosBad Diode2021-12-231-18/+24
|
* Add `if` compilation for irBad Diode2021-12-231-4/+24
|
* Add compilation of numerical comparison ops for irBad Diode2021-12-231-0/+69
|
* Add compilation of `or` builtin for the irBad Diode2021-12-231-1/+15
|
* Add `not` and `and` builtins for ir compilationBad Diode2021-12-232-13/+89
|
* Add print to ir compilationBad Diode2021-12-221-0/+14
|
* Fix typo in enum nameBad Diode2021-12-222-8/+8
|
* Integrate builtin text into objectsBad Diode2021-12-222-45/+35
|
* Add builtin object typeBad Diode2021-12-223-38/+108
|
* Add IR generation for arithmetic opsBad Diode2021-12-221-2/+43
|
* Start refactoring of compiler to stack-irBad Diode2021-12-222-2/+159
|
* Fix local variables on recursive callsBad Diode2021-11-171-8/+26
|
* Add tail call optimization for function callsBad Diode2021-11-161-30/+52
|
* Move ret pointer before closed vars in proc callsBad Diode2021-11-161-6/+14
| | | | | | | | | | | | | | | The previous call convention we had the following before the function call: [ PROC_ADDR | CLOSED_VARS | ARGS | RP ] This was made to be compatible with the `call` instruction and the `cdecl` calling convention. This commit changes the structure to: [ RP | PROC_ADDR | CLOSED_VARS | ARGS ] With this convention, the stack frame can be discarded in its entirety if we have a tail optimized procedure.
* Replace `call` with `jmp` in preparation for TCOBad Diode2021-11-161-3/+8
|
* Add proper function calls with closed variablesBad Diode2021-11-161-12/+43
|
* Add workaround for `void` return in function callsBad Diode2021-11-151-3/+11
|
* Add initial boilerplate for closure captureBad Diode2021-11-153-5/+48
|
* Fix stack on procedure call returnBad Diode2021-11-152-23/+61
|
* Fix bug on parameter detection for named functionsBad Diode2021-11-102-4/+9
|
* Add support for accessing procedure parametersBad Diode2021-11-103-8/+38
|
* Add locals for lambda proceduresBad Diode2021-11-101-3/+9
|