Commit Graph

280 Commits

Author SHA1 Message Date
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
3e8e30e0da add struct definitions as a direct child of program 2020-03-09 12:40:59 +01:00
Dennis Kaiser
e297a7d2e8 Merge branch '25-floats' into 'master'
Resolve "Floats"

Closes #25

See merge request mkais001/klang!15
2020-03-06 00:36:10 +01:00
333475f27b implement integer division tests 2020-03-05 17:21:08 +01:00
a8b093a005 reenable the mod test for -1, -1 2020-03-05 17:13:36 +01:00
1530dc6c55 sign extend rax into rbx before calling idiv, the replaces the rbx zeroing 2020-03-05 17:13:19 +01:00
09eec634b1 add new mixdiv test for -1, -1 2020-03-05 16:50:37 +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
ebeabfe930 fix input values to match expected value 2020-03-05 16:39:47 +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
58cdaf04dd 25-Add more tests for floats 2020-03-05 07:58:16 +01:00
Marvin Kaiser
229920946d 25- Strict check between function signature and function call 2020-03-04 20:53:50 +01:00
18cfbdcbb5 implement function call tests for floats and floats mixed with integers 2020-03-04 20:46:49 +01:00
384d98418d implement math tests for floats 2020-03-04 20:46:08 +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
Marvin Kaiser
db8146ed8a Merge branch '28-static-type-check-bug-with-if-clause-in-function' into 'master'
Resolve "Static type check bug with if clause in function"

Closes #28

See merge request mkais001/klang!14
2020-02-04 12:07:03 +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
Marvin Kaiser
e00b72a32d Merge branch '20-update-readme' into 'master'
Resolve "Update Readme"

Closes #20

See merge request mkais001/klang!13
2020-02-04 11:46:35 +01:00
1e2dee3f1d add a section that showcases the static type system 2020-02-04 11:35:00 +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
Marvin Kaiser
269cf302df Merge branch '17-line-and-block-comments' into 'master'
add lexer rules for line and block comments

Closes #17

See merge request mkais001/klang!12
2020-02-04 11:11:06 +01:00
d3a4af0b8c add lexer rules for line and block comments 2020-02-04 11:02:34 +01:00
47390f6757 add missing type declarations to pretty print output 2020-02-04 00:16:14 +01:00
Dennis Kaiser
974baebfe9 Merge branch '13-fix-eval-visitor' into 'master'
Resolve "Fix eval visitor"

Closes #13 and #27

See merge request mkais001/klang!11
2020-02-04 00:16:04 +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
Dennis Kaiser
d5610b0c3f Merge branch 'feature/better-errors' into 'master'
Feature/better errors

See merge request mkais001/klang!10
2020-02-03 23:50:49 +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
Dennis Kaiser
ea2115e4c3 Merge branch '18-add-possibility-to-pass-input-file-and-output-filename' into 'master'
Added possibility to pass filenames for input / output

Closes #18

See merge request mkais001/klang!9
2020-02-03 22:08:24 +01:00
Marvin Kaiser
69f44a2867 Added possibility to pass filenames for input / output 2020-02-03 17:16:27 +01:00