308 Commits

Author SHA1 Message Date
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
Marvin Kaiser
34253a70ba Implement operator precedence with and without parenthesis 2020-02-03 16:35:29 +01:00
Marvin Kaiser
a2c9625691 Merge branch '1-grammatik-typinformationen-hinzufugen' into 'master'
Resolve "Grammatik: Typinformationen hinzufügen"

Closes #1

See merge request mkais001/klang!7
2020-01-27 17:05:26 +01:00
3fb30ebd7e print statement never has a type 2020-01-27 17:02:21 +01:00
fa8904e0f5 fix type annotation for comparison expressions 2020-01-27 16:57:09 +01:00
Marvin Kaiser
86468ea740 Fix correct type name access 2020-01-27 16:47:16 +01:00
Marvin Kaiser
b1be18f367 Fix function type addition for if statement 2020-01-27 16:47:00 +01:00
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
Dennis Kaiser
e940100ec1 Merge branch 'feature/add-bool-literal' into 'master'
Feature/add bool literal

See merge request mkais001/klang!6
2020-01-20 19:40:08 +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
1095d9dd83 Correct spelling errors in README.md 2020-01-20 12:39:56 +01:00
Marvin Kaiser
11c8759dfd Added project summary to readme 2020-01-14 19:15:58 +01:00
Marvin Kaiser
15128a8d75 updae makefile to use --no-main 2020-01-14 18:43:03 +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
5275b63940 added make target to only cleanup the tests. Can be used for quicker test development without having to recompile the klang compiler 2020-01-14 12:25:04 +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
1ceba78059 Updated cicd yaml to work with latest test suite 2020-01-14 11:50:56 +01:00