|
|
6fd3f5a2e6
|
Make it possible to use an enum in an expression (i.e. selecting one of the enum values: Foo.A)
|
2023-03-15 19:14:04 +01:00 |
|
|
|
3b928d621b
|
Refactor FunctionDefinition and Parameter context analysis and extend the type check to include enums.
|
2023-03-15 17:47:58 +01:00 |
|
|
|
9a58afb550
|
Implement StructField type checking in ContextAnalysis.
|
2023-03-15 17:21:35 +01:00 |
|
|
|
6e4431652c
|
Remove FunctionInformation and replace it with FunctionDefinition.
|
2023-03-15 16:19:42 +01:00 |
|
|
|
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 |
|
Marvin Kaiser
|
8dd0b6cffa
|
Fix pretty printing to file
|
2020-03-10 11:21:49 +01:00 |
|
|
|
5a5191612e
|
visit block first because the condition variable may be initialized inside the block
|
2020-03-09 23:04: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 |
|
|
|
acaa37b3b1
|
implement detection of tail calls
|
2020-03-09 15:55:23 +01:00 |
|
|
|
d1cf626934
|
add flag to indicate whether this is a tail call
|
2020-03-09 15:55:01 +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 |
|
|
|
31330db676
|
replace DOT with PERIOD
|
2020-03-09 12:53:26 +01:00 |
|
|
|
8bb912b377
|
implement isNumericType
|
2020-03-09 12:51:28 +01:00 |
|
|
|
1403e0a231
|
fix indices
|
2020-03-09 12:48:31 +01:00 |
|
|
|
02666a9459
|
implement visitors
|
2020-03-09 12:48:31 +01:00 |
|
|
|
32cb06cd51
|
implement method that returns the index of a field by name
|
2020-03-09 12:48:31 +01:00 |
|
|
|
e3d8f3cfa7
|
implement field access visitor
|
2020-03-09 12:48:31 +01:00 |
|
|
|
90ed033943
|
implement fielfd assignment node
|
2020-03-09 12:48:31 +01:00 |
|
|
|
ed4c901c6c
|
add field assignment to statements
|
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 |
|
|
|
e2986b3d65
|
add the struct name to the struct field access expression node
|
2020-03-09 12:48:31 +01:00 |
|
|
|
1693eb6426
|
implement helper functions to determine the struct size and field offsets
|
2020-03-09 12:48:31 +01:00 |
|
|
|
622be803cc
|
add structs to the constructor params of GenASM
|
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 |
|
|
|
bc5efde8c5
|
add the retrieved structs to the constructor call of the eval visitor
|
2020-03-09 12:47:44 +01:00 |
|
|
|
edaa686a2a
|
add method to get the value as a struct
|
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 |
|
|
|
86fe676492
|
rename method to match new grammar
|
2020-03-09 12:47:02 +01:00 |
|
|
|
64634a0d4d
|
move destructor call from expressions to statements
|
2020-03-09 12:47:02 +01:00 |
|
|
|
3fb350ad31
|
make destructor call inherit from statement
|
2020-03-09 12:47:02 +01:00 |
|
|
|
d89c085ecc
|
implement context analysis for destructor node
|
2020-03-09 12:47:02 +01:00 |
|
|
|
9300e37fca
|
implement node visitors for the destructor node
|
2020-03-09 12:47:02 +01:00 |
|
|
|
995fac20c5
|
create node that represents a destructor call
|
2020-03-09 12:47:02 +01:00 |
|
|
|
31460860d5
|
add a destructor call to the grammar
|
2020-03-09 12:47:02 +01:00 |
|
|
|
441466c83f
|
next time check before commiting everything...
|
2020-03-09 12:47:02 +01:00 |
|
|
|
80deae6971
|
implement visitors for null atom
|
2020-03-09 12:47:02 +01:00 |
|
|
|
2f425944e5
|
implement null node
|
2020-03-09 12:47:02 +01:00 |
|
|
|
8ebbd6ae54
|
implement null type
|
2020-03-09 12:47:02 +01:00 |
|
|
|
9d83e5425d
|
add a null literal
|
2020-03-09 12:46:13 +01:00 |
|
|
|
5c0459c5a2
|
implement constructor call, eval and genasm are still stubs
|
2020-03-09 12:45:16 +01:00 |
|
|
|
317c2c52ca
|
add constructor call expression to the grammar
|
2020-03-09 12:45:16 +01:00 |
|