For a list of currently supported language features,
please see the commits below.
It relates to T509
[Compiler] Start
[Compiler] Add basic integration test for JS Generator
[Compiler] Make first integration test work
- assignments
- post-/predecrements
- post-/preincrements
[Compiler] Adopt integration name class to naming schema
[Compiler] Start work on functions
[Compiler] Refactor to use stack only
This allows for a more consequent concept.
- add handling of lists for SourceElements and StatementList needed to have same pass level of integration tests as before the refactoring
- change macros to reflect new concept
- introduces a new error type InternalError this error is created if the stack was not correctly reduced, which should not happen in practice
[Compiler] Finish work on functions
[Compiler] Better logic for nullptr members
- no more "" on stack
- more expressive logic
- generates code for var i correctly
[Compiler] Complete binary operations
[Compiler] Make function declarations more robust
- handle multiple parameters more correctly
- handle empty body correctly
- move integration test for EmptyStatement in its own file
[Compiler] Make functoin declaration lists work
[Compiler] Make return statements work
[Compiler] Implement branching
[Compiler] Make switch statement work
[Compiler] Make test better readable and maintainable