Add initial typechecker for AST #2

Merged
mrab merged 121 commits from typedAST into master 2024-06-14 07:53:30 +00:00

121 Commits

Author SHA1 Message Date
f02226bca8 add missing typeCheckVariableDeclaration 2024-06-13 22:06:10 +02:00
7e13b3fac3 fix variable redefinition in scope not working 2024-06-13 20:35:00 +02:00
2139e7832c fix missing Typed Expression for local and field variable 2024-06-13 17:33:30 +02:00
baf9362634 make implicit this to explicit this for field variables 2024-06-13 15:49:59 +02:00
710ec43959 add using standard constructor for constructor call 2024-06-13 09:26:05 +02:00
b525d14192 add typechecking for returns, fix finding of constructors, fix if statement 2024-06-11 20:04:59 +02:00
a62fe50a0d Merge remote-tracking branch 'origin/create-parser' into typedAST 2024-06-11 18:50:39 +02:00
7c52084bbe fix test 2024-06-10 17:19:56 +02:00
fanoll
98b02446ba remove unused thisMeth type. Returns are combined and already checked against return Type 2024-06-10 12:53:59 +02:00
82b2b4a6e1 fix intliteral 0 2024-05-31 17:39:56 +02:00
3d351ee02b fix false error message 2024-05-31 17:11:46 +02:00
05b599b8ff fix if typecheck 2024-05-31 17:10:50 +02:00
060321f323 Merge remote-tracking branch 'origin/create-parser' into typedAST 2024-05-31 16:26:14 +02:00
fc96eba52e Merge remote-tracking branch 'origin/bytecode' into typedAST 2024-05-31 16:26:08 +02:00
af093fa3bb parser add increment statement 2024-05-31 12:10:00 +02:00
666856b33a parser add constructor call 2024-05-31 12:06:14 +02:00
30365d76bd Revert "parser add preincrement and decrement conversion"
This reverts commit 2acba0f283.
2024-05-31 11:44:10 +02:00
mrab
2b7d217e8a moved expression statement and expressionstatement 2024-05-31 11:24:11 +02:00
2acba0f283 parser add preincrement and decrement conversion 2024-05-31 11:23:25 +02:00
84613fabe0 parser add field subaccess 2024-05-31 11:07:19 +02:00
408111df51 parser implement field access 2024-05-31 11:04:23 +02:00
mrab
6abb9ae8ba Merge branch 'typedAST' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-31 10:37:07 +02:00
45114caffb Merge remote-tracking branch 'origin/create-parser' into typedAST 2024-05-31 10:36:18 +02:00
a62d4c35e1 Merge remote-tracking branch 'origin/create-parser' into typedAST 2024-05-31 10:35:28 +02:00
4c82f5bfdd Revert "make UnaryOperation a statementexpression"
This reverts commit 25c0c33109.
2024-05-31 10:34:52 +02:00
8cf022e6e0 Revert "remove expression from unary operators"
This reverts commit 56cc1a9374.
2024-05-31 10:34:48 +02:00
d4f474ba54 fix increment 2024-05-31 10:34:47 +02:00
761244df74 Revert "change back UnaryOperation and move it to StatementExpression"
This reverts commit c690b01396.
2024-05-31 10:34:42 +02:00
c690b01396 change back UnaryOperation and move it to StatementExpression 2024-05-31 10:07:01 +02:00
56cc1a9374 remove expression from unary operators 2024-05-31 10:02:53 +02:00
25c0c33109 make UnaryOperation a statementexpression 2024-05-31 10:00:12 +02:00
mrab
5aa193bc08 Merge branch 'bytecode' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-31 09:44:45 +02:00
mrab
2e7c28812b Merge branch 'create-parser' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-31 09:42:16 +02:00
mrab
2ac3b60e79 Merge branch 'typedAST' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-31 09:41:37 +02:00
1e59ba9e27 parser implement constructor with statements 2024-05-28 23:47:34 +02:00
f4d31a85cc parser add dot method call 2024-05-28 23:27:23 +02:00
0694dfb77d Merge branch 'typedAST' of https://gitea.hb.dhbw-stuttgart.de/MisterChaos69/MiniJavaCompiler into typedAST 2024-05-26 21:45:33 +02:00
6ab64371b5 feat: Add support for block statements in type checking 2024-05-26 21:45:11 +02:00
067bf8d796 refactor: move incremental types to statementsexpressions 2024-05-19 09:20:43 +02:00
24c2920c9c parser implement methodcall with params 2024-05-16 11:58:27 +02:00
3c70f9f1f6 parser add methodcall no params 2024-05-16 11:49:52 +02:00
mrab
6f4143a60a increment/decrement 2024-05-16 11:42:48 +02:00
c347e6c630 add test 2024-05-16 11:31:58 +02:00
mrab
fadbdf1035 Merge branch 'create-parser' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-16 11:19:46 +02:00
f81a812f59 parser add assigment statement 2024-05-16 11:15:41 +02:00
mrab
d0d2cbd081 restructured bytecode code 2024-05-16 10:39:27 +02:00
e95377ee72 Merge remote-tracking branch 'origin/create-parser' into typedAST 2024-05-16 10:09:26 +02:00
mrab
ddab04f063 Merge branch 'typedAST' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-16 09:55:03 +02:00
mrab
09f70ca789 While assembly 2024-05-16 09:53:36 +02:00
2a502a6c67 fix return null for object return type not possible 2024-05-16 09:36:35 +02:00
mrab
d13e24c216 Merge branch 'create-parser' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-16 09:33:16 +02:00
mrab
53e1afc9e4 Merge branch 'typedAST' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-16 09:28:18 +02:00
mrab
535a6891ad Local variable assignment 2024-05-16 09:28:00 +02:00
07837f7d5f null is now a valid declaration value for a object 2024-05-15 13:04:06 +02:00
a80dc1d34b null is now a valid declaration value for a object 2024-05-15 12:51:14 +02:00
e572975bda add: inject default constructor 2024-05-15 11:45:41 +02:00
mrab
207fb5c5f3 local variables working 2024-05-15 11:23:40 +02:00
b11adcf907 parser add this and braced expressions 2024-05-15 10:32:03 +02:00
b095678769 add: local variable assembler 2024-05-15 10:01:01 +02:00
a4d41b9ef7 parser add timesequal, divideequal, moduloequal, minusequal, andequal, xorequal, orequal 2024-05-14 23:35:56 +02:00
9f658397de parser implement assign 2024-05-14 23:14:43 +02:00
524c667c43 parser add while loop 2024-05-14 16:48:45 +02:00
mrab
a4fff37b07 Bugfix: else assembly 2024-05-14 14:09:24 +02:00
mrab
c02de8f9b2 Merge branch 'create-parser' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-14 13:57:25 +02:00
mrab
a179dec3ea else Assembly 2024-05-14 13:57:20 +02:00
5723f6c662 parser add ifthenelse 2024-05-14 13:57:01 +02:00
mrab
95178366a2 Merge branch 'create-parser' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-14 13:21:12 +02:00
fef619ac03 parser add if then 2024-05-14 13:20:46 +02:00
mrab
f9f984568f block and if assembly (no else) 2024-05-14 13:20:37 +02:00
a7b4c7e58e Merge remote-tracking branch 'origin/create-parser' into typedAST 2024-05-14 12:34:32 +02:00
mrab
5284d6ecba Merge branch 'create-parser' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-14 12:34:11 +02:00
aa3b196ab5 set constructor return type void 2024-05-14 12:33:42 +02:00
mrab
d1d9a5d6e1 constructor and method call using this 2024-05-14 12:29:55 +02:00
7ba9743b0a parser add increment decrement 2024-05-14 11:34:57 +02:00
83e6964d71 Merge remote-tracking branch 'origin/typedAST' into create-parser 2024-05-14 11:28:15 +02:00
f8b0b59c5d refactor unused function 2024-05-14 11:26:27 +02:00
fae3498bd9 Refactor BinaryOperations and add char operations 2024-05-14 11:21:06 +02:00
3fa9736172 add post and pre operations 2024-05-14 11:19:26 +02:00
mrab
86e15b5856 method assembly is actually used (yay) 2024-05-14 11:12:12 +02:00
mrab
393253c9bb Merge branch 'create-parser' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-14 10:29:27 +02:00
mrab
09469e0e45 added boolean expression assembly 2024-05-14 10:28:57 +02:00
64829c2086 replace parseBlock with parseStatement 2024-05-14 10:16:56 +02:00
666fb4ee1a Assignment now rakes expression instead of identifier 2024-05-14 10:04:00 +02:00
e350c23db1 fix spelling error 2024-05-14 09:36:18 +02:00
20184c5e26 add modulus to AST and Typecheck 2024-05-13 13:13:24 +02:00
c29aa13d69 parser add and, or, xor 2024-05-09 00:09:08 +02:00
de078639fc parser add multiplication, division, modulo, addition, subtraction 2024-05-08 23:37:18 +02:00
1d5463582f add differentiation between local and field variable 2024-05-08 17:39:43 +02:00
4f61431c79 parser add unary not, plus and minus 2024-05-08 16:59:10 +02:00
f82776e636 parser add return 2024-05-08 15:52:44 +02:00
8de0309107 Merge branch 'create-parser' of https://gitea.hb.dhbw-stuttgart.de/MisterChaos69/MiniJavaCompiler into create-parser 2024-05-08 15:51:40 +02:00
90fa658c8f parser implement varibale initialization 2024-05-08 15:36:05 +02:00
ebf54bf4cb parser implement int initializiation 2024-05-08 15:36:05 +02:00
b957f512ad parser add emptystatement 2024-05-08 15:36:05 +02:00
b82e205bcd parser implement nested blocks 2024-05-08 15:36:04 +02:00
98321fa162 parser implement multiple blockstatements 2024-05-08 15:36:04 +02:00
58367a95e6 parser implement localvardeclaration 2024-05-08 15:36:04 +02:00
ea18431b77 parser add constructor 2024-05-08 15:36:04 +02:00
9e6f31479f parser improve error messages 2024-05-08 15:36:04 +02:00
f183b8b183 parser implement methods with params 2024-05-08 15:36:04 +02:00
3130f7f7d4 add void methods 2024-05-08 15:36:04 +02:00
f57f360abf parser add empty methods 2024-05-08 15:36:04 +02:00
5e90f0d0ee parser add modifier 2024-05-08 15:36:04 +02:00
301b87c9ac parser implement multiple declarations 2024-05-08 15:36:04 +02:00
decc909c23 parser add custom type fields 2024-05-08 15:36:04 +02:00
mrab
d54c7cd7e6 Working pipeline for whole compiler 2024-05-08 15:23:18 +02:00
mrab
9d7af6effb Merge branch 'create-parser' of ssh://gitea.hb.dhbw-stuttgart.de:2222/MisterChaos69/MiniJavaCompiler into bytecode 2024-05-08 14:35:45 +02:00
c49b7f556c parser implement varibale initialization 2024-05-08 13:29:10 +02:00
c8ce7f4b43 parser implement int initializiation 2024-05-08 13:16:00 +02:00
ebfb912183 parser add emptystatement 2024-05-08 11:05:02 +02:00
e8151ad2f0 parser implement nested blocks 2024-05-08 10:37:40 +02:00
a4b933d659 parser implement multiple blockstatements 2024-05-08 10:30:50 +02:00
2f81f82661 parser implement localvardeclaration 2024-05-08 10:20:55 +02:00
fecc7eceaa parser add constructor 2024-05-08 00:02:38 +02:00
5e8a2a90ed parser improve error messages 2024-05-08 00:00:18 +02:00
158197b440 parser implement methods with params 2024-05-07 15:03:04 +02:00
e3fa3efd95 add void methods 2024-05-06 23:51:33 +02:00
d3ea0d6d7b parser add empty methods 2024-05-06 23:34:03 +02:00
bea9a039a8 parser add modifier 2024-05-06 11:03:26 +02:00
32cce1f137 parser implement multiple declarations 2024-05-06 10:59:41 +02:00
e04c475c55 parser add custom type fields 2024-05-06 10:56:56 +02:00