Commit Graph

86 Commits

Author SHA1 Message Date
Marvin Kaiser
db7331911a Added functionality to analyze AST for all defined functions 2020-01-27 16:04:38 +01:00
0aed4ee893 my initial short for typechecking, still very unifinished tho 2020-01-21 00:21:54 +01:00
e5baad62e6 implement tests 2020-01-20 19:33:07 +01:00
295bcaec8a implement visitors for boolean expressions 2020-01-20 19:32:50 +01:00
722a9babcb remove unused import 2020-01-20 19:32:16 +01:00
Marvin Kaiser
d27df13ec1 added boolean operators 2020-01-20 16:01:25 +01:00
1186bb4550 add bool literal 2020-01-20 15:26:55 +01:00
Marvin Kaiser
34d0e1bb0e Added cli argument to either generate main method or not 2020-01-14 18:37:34 +01:00
Marvin Kaiser
7af6565e07 Added more tests for while 2020-01-14 12:24:25 +01:00
Marvin Kaiser
3ca9fe4de1 Added automatic counting of successes/failures in tests 2020-01-14 12:15:20 +01:00
Marvin Kaiser
d2d50f6d4f cleaned up test suit 2020-01-14 11:47:04 +01:00
Marvin Kaiser
be43cc9a77 implement for loops 2020-01-14 11:04:31 +01:00
Marvin Kaiser
1980e1ba8c Move the SCOL for var_assigns and var_decl to the statement rule 2020-01-14 10:39:46 +01:00
Marvin Kaiser
f6818b6983 fix syntax issues 2020-01-14 10:23:12 +01:00
Marvin Kaiser
586c2bb5d9 renamed whileLoop to WhileLoop 2020-01-14 08:50:45 +01:00
Marvin Kaiser
5eb0679bf3 Renamed doWhileLoop to DoWhileLoop 2020-01-14 08:48:51 +01:00
Marvin Kaiser
e52ad061f9 Implemented do while loops 2020-01-13 16:43:38 +01:00
Marvin Kaiser
02e57b7db5 Added tests for self-altering expressions 2020-01-13 16:17:20 +01:00
Marvin Kaiser
bd4ae1d605 Added while loop 2020-01-13 16:08:44 +01:00
Marvin Kaiser
079cdf4969 Implemented != expression 2019-12-20 09:09:01 +01:00
Marvin Kaiser
a79b7c9362 Implemented boolean expressions 2019-12-20 09:01:03 +01:00
Marvin Kaiser
f341401ccc Implemented pretty printing and evaluating of boolean expressions 2019-12-20 08:42:20 +01:00
Marvin Kaiser
00145848da Added classes for boolean expressions 2019-12-20 08:41:05 +01:00
Marvin Kaiser
c5419b85c7 Extend grammar: added boolean expressions 2019-12-20 08:40:17 +01:00
d1f8a18bef add missing visit of lhs in a modulo expresion 2019-12-19 14:47:26 +01:00
Marvin Kaiser
3f2987074d Fix: Variable Declaration with initialization not correctly pretty printed 2019-12-18 10:37:05 +01:00
Marvin Kaiser
9f68e6b8d1 Added test for recursive calls 2019-12-17 19:09:09 +01:00
Marvin Kaiser
08f486203b Fix: Arguments that don't fit into registeres are passed in the incorrect order 2019-12-17 17:22:44 +01:00
Marvin Kaiser
5745062704 Fix: Subtraction tests not working. Was: incorrect order of expression evaluation 2019-12-17 16:53:20 +01:00
Marvin Kaiser
c8bca94ca8 Added tests that check that klang passes parameters to functions in the same way that gcc does it 2019-12-17 16:48:09 +01:00
Marvin Kaiser
d3847682d6 Fix: Offset calculation for stack parameters 2019-12-17 16:45:54 +01:00
Marvin Kaiser
e71ccf1cdc Fix: Additional parameters not pushed onto stack 2019-12-17 16:45:32 +01:00
Marvin Kaiser
d4dfe27bc0 Added error counting to tests. Tests return ERROR_FAILURE when not all test were successful 2019-12-17 16:13:04 +01:00
Marvin Kaiser
086e9dae76 Added possibility to select pretty printing / evaluating via argument 2019-12-17 15:52:06 +01:00
Marvin Kaiser
59664e73b0 Created testsuite and makefile to run testsuite 2019-12-17 15:13:31 +01:00
Marvin Kaiser
aaf1c3195d if statement asm generation now omits else labels if no else was defined 2019-12-17 15:12:36 +01:00
Marvin Kaiser
bf50587cdb Comment out syso's that print something that's not assembly code 2019-12-17 15:10:37 +01:00
1c686fb0ea Implement variable declaration 2019-12-16 22:41:58 +01:00
ee19cb9a00 create VariableDeclaration nodes and check if a variable is redeclared or undefined 2019-12-16 22:41:45 +01:00
b9b36f7ba1 Add new node for the variable declaration 2019-12-16 22:41:12 +01:00
dc7dce48d9 add variable deklaration 2019-12-16 22:40:33 +01:00
63c5f70358 add new node types to the visitors 2019-12-16 21:46:43 +01:00
e1eb64f576 use new node types, implement new visitors 2019-12-16 21:46:18 +01:00
9e5046a20a implement new node types according to the new grammar 2019-12-16 21:45:55 +01:00
629f67b39c make expressions nestable 2019-12-16 21:44:37 +01:00
de7625750e remove obsolete visitor 2019-12-16 21:44:01 +01:00
Marvin Kaiser
ecae26c8a7 Fix: offset calculation for function definitions
Fix: Jumps / Labels in if statement
2019-12-02 17:13:11 +01:00
Marvin Kaiser
b7e6567d69 Fixed main function asm code
Fixed: IntegerValues not passed via rax
Fixed: Some values passed via stack, not via rax
2019-11-26 09:14:44 +01:00
2c2696207f output the generated assembler code 2019-11-26 08:08:06 +01:00
7d17accad5 implement assembler code generation 2019-11-26 08:07:43 +01:00