Commit Graph

170 Commits

Author SHA1 Message Date
2f425944e5 implement null node 2020-03-09 12:47:02 +01:00
8ebbd6ae54 implement null type 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
19daaa63af use GetStructNames instead of collecting the names in GetStructs 2020-03-09 12:45:16 +01:00
a79a2332a1 implement visitor to collect all struct names 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
1ca3f5ca8b implement context analysis for struct field access expressions 2020-03-09 12:45:16 +01:00
6a7eb8fde2 make GetStructs collect the complete struct definitions 2020-03-09 12:45:16 +01:00
a969aa895f make GetStructs collect the complete struct definitions 2020-03-09 12:45:16 +01:00
fef397c60d implement empty visitors 2020-03-09 12:43:25 +01:00
e873e211c9 implement node for struct field access expression 2020-03-09 12:43:25 +01:00
233894fbcf remove NYI errors, check if a struct is defined if the declared type is not primitive 2020-03-09 12:43:25 +01:00
6981c288e6 implement context analysis 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
fd7f7c39bb implement a visitor that collects the names of all structs that were defined 2020-03-09 12:41:52 +01:00
b5086b44f0 return a struct type if no primitive type with the given name was found 2020-03-09 12:41:52 +01:00
e971b8b91e create a new type class that represents the type of a struct 2020-03-09 12:40:59 +01:00
6f8c995f19 create DAST nodes for structDefinition and structField 2020-03-09 12:40:59 +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
229920946d 25- Strict check between function signature and function call 2020-03-04 20:53:50 +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
a9db8b3f9a set the initialited field of class VariableDeclaration, make sure a variable has been inizialized prior to its usage 2020-02-04 12:02:41 +01:00
1bb53a0bcf add field 'initialized' to class VariableDeclaration 2020-02-04 12:02:15 +01:00
1ae404b978 always add the declared type as the type of a variable declaration. do not use the combined type as the type of the variable that is declared 2020-02-04 11:21:48 +01:00
47390f6757 add missing type declarations to pretty print output 2020-02-04 00:16:14 +01:00
e978b4d52c remove unused import 2020-02-04 00:07:56 +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
56463c3e30 the the result of eval as an object and call toString\(\) on it 2020-02-03 23:53:25 +01:00
fc33ab6b12 add method to get the raw value representation 2020-02-03 23:52:21 +01:00
f3c5bac860 check whether the types of the operants of an equality expression can combine instead of enforcing them to both be integers 2020-02-03 23:45:52 +01:00
e8f80eb2f9 make file pretty 2020-02-03 22:59:17 +01:00
018ce8712a add error message prefix to type missmatch errors, staticly assign bool type to boolean expressions 2020-02-03 22:56:40 +01:00
6f0a3754bd check whether the body of a function guarantees a return value and throw an exception if not 2020-02-03 22:36:24 +01:00
7c56f401ac add error prefix to the runtime exception message 2020-02-03 22:28:37 +01:00
02fb7b7cc2 unify error message appearance 2020-02-03 22:28:21 +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
3e8a904cb8 catch error to abort further processing 2020-02-03 22:21:30 +01:00
cb0d63a71c save the line and column of the corresponding token, generate an error prefix for every thrown error 2020-02-03 22:20:59 +01:00
12c1f75602 add fields to save the line and column in which the token corresponding to the node was found 2020-02-03 22:20:25 +01:00
33cbae0eeb implement method to generate an error prefix that mentions the line and column the error occured in 2020-02-03 22:19:36 +01:00
Dennis Kaiser
5ed294965c Merge branch '22-operatorenprazedenz' into 'master'
Resolve "Operatorenpräzedenz"

Closes #22

See merge request mkais001/klang!8
2020-02-03 22:10:42 +01:00
Marvin Kaiser
69f44a2867 Added possibility to pass filenames for input / output 2020-02-03 17:16:27 +01:00
Marvin Kaiser
34253a70ba Implement operator precedence with and without parenthesis 2020-02-03 16:35:29 +01:00