Commit Graph

73 Commits

Author SHA1 Message Date
7af815042b WIP: Add enum support 2023-03-15 15:56:42 +01:00
Marvin Kaiser
49b024b95f 32: Require data type for all asm functions 2020-03-17 16:02:03 +01:00
Marvin Kaiser
982fc6417d 32: Create Meta ASM Structure 2020-03-14 14:14:19 +01:00
221b928d0e push all args onto stack before moving them into the local var to ensure that the function parameters can be used in the tail recursive function call 2020-03-10 12:07:55 +01:00
704e6441ca move float result into rax before further processing 2020-03-09 16:09:15 +01:00
cb5ceafbbc implement tail recursion call optimization when generation function call 2020-03-09 15:58:15 +01:00
d96b083c41 add metadata to class fields during visit of function definition nodes 2020-03-09 15:57:37 +01:00
Dennis Kaiser
4f1d009626 Merge branch '24-structs' into 'master'
Resolve "Structs"

Closes #24

See merge request mkais001/klang!17
2020-03-09 14:43:17 +01:00
ac6cb22e45 delete print statement 2020-03-09 14:19:43 +01:00
fc16663dae make floats work in structs 2020-03-09 13:48:31 +01:00
1403e0a231 fix indices 2020-03-09 12:48:31 +01:00
02666a9459 implement visitors 2020-03-09 12:48:31 +01:00
86e77d1609 update the struct definition when following the path 2020-03-09 12:48:31 +01:00
eb75cc7838 implement GenASM for structs 2020-03-09 12:48:31 +01:00
3f18fa56c2 add struct definitions as a constructor parameter 2020-03-09 12:48:31 +01:00
a9ab8f08e6 implement structs 2020-03-09 12:47:44 +01:00
b9569c7df6 add missing semicolong since a destructor call is now a statement 2020-03-09 12:47:02 +01:00
9300e37fca implement node visitors for the destructor node 2020-03-09 12:47:02 +01:00
80deae6971 implement visitors for null atom 2020-03-09 12:47:02 +01:00
5c0459c5a2 implement constructor call, eval and genasm are still stubs 2020-03-09 12:45:16 +01:00
f0b6f052d6 implement pretty print for struct field access expression 2020-03-09 12:45:16 +01:00
fef397c60d implement empty visitors 2020-03-09 12:43:25 +01:00
33904a3c33 implement pretty print visitor 2020-03-09 12:41:52 +01:00
279ea28a29 add empty stubs for the visit method of the new nodes 2020-03-09 12:41:52 +01:00
15c55ed065 add the new nodes to the list of visitable nodes 2020-03-09 12:41:52 +01:00
309fe39c01 implement get vars visitor 2020-03-09 12:41:52 +01:00
1530dc6c55 sign extend rax into rbx before calling idiv, the replaces the rbx zeroing 2020-03-05 17:13:19 +01:00
150e18e05b inspec type of expression instead of the type of the assignment, since the assignment type is always null 2020-03-05 16:40:31 +01:00
Marvin Kaiser
bba950c851 25: Fix tests 2020-03-05 12:31:09 +01:00
Marvin Kaiser
cbc8020e81 25: Rewrite prepareRegisters, correct operator order for comparisons 2020-03-05 09:06:22 +01:00
Marvin Kaiser
6eb61f905f 25: Add logic for handling float in function calls 2020-03-04 19:29:24 +01:00
Marvin Kaiser
0316a7d4bf 25: Start adding Float Type 2020-03-03 20:45:55 +01:00
47390f6757 add missing type declarations to pretty print output 2020-02-04 00:16:14 +01:00
26b1406013 make boolean and comparison expression evaluate to bool, user asBoolean when expecting a boolean, re-welcome the conditions of loops everytime another step has to be evaluated 2020-02-04 00:07:22 +01:00
3a89ab2231 remove error handling, since these kinds of errors are caught by our context analysis 2020-02-03 22:24:27 +01:00
0aed4ee893 my initial short for typechecking, still very unifinished tho 2020-01-21 00:21:54 +01:00
295bcaec8a implement visitors for boolean expressions 2020-01-20 19:32:50 +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
be43cc9a77 implement for loops 2020-01-14 11:04:31 +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
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
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