Commit Graph
100 Commits
Author SHA1 Message Date
nitrix 15c55ed065 add the new nodes to the list of visitable nodes 2020-03-09 12:41:52 +01:00
nitrix 309fe39c01 implement get vars visitor 2020-03-09 12:41:52 +01:00
nitrix fd7f7c39bb implement a visitor that collects the names of all structs that were defined 2020-03-09 12:41:52 +01:00
nitrix b5086b44f0 return a struct type if no primitive type with the given name was found 2020-03-09 12:41:52 +01:00
nitrix e971b8b91e create a new type class that represents the type of a struct 2020-03-09 12:40:59 +01:00
nitrix 6f8c995f19 create DAST nodes for structDefinition and structField 2020-03-09 12:40:59 +01:00
nitrix 3e8e30e0da add struct definitions as a direct child of program 2020-03-09 12:40:59 +01:00
nitrix 333475f27b implement integer division tests 2020-03-05 17:21:08 +01:00
nitrix a8b093a005 reenable the mod test for -1, -1 2020-03-05 17:13:36 +01:00
nitrix 1530dc6c55 sign extend rax into rbx before calling idiv, the replaces the rbx zeroing 2020-03-05 17:13:19 +01:00
nitrix 09eec634b1 add new mixdiv test for -1, -1 2020-03-05 16:50:37 +01:00
nitrix 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
nitrix ebeabfe930 fix input values to match expected value 2020-03-05 16:39:47 +01:00
nitrix 18cfbdcbb5 implement function call tests for floats and floats mixed with integers 2020-03-04 20:46:49 +01:00
nitrix 384d98418d implement math tests for floats 2020-03-04 20:46:08 +01:00
nitrix 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
nitrix 1bb53a0bcf add field 'initialized' to class VariableDeclaration 2020-02-04 12:02:15 +01:00
nitrix 1e2dee3f1d add a section that showcases the static type system 2020-02-04 11:35:00 +01:00
nitrix 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
nitrix d3a4af0b8c add lexer rules for line and block comments 2020-02-04 11:02:34 +01:00
nitrix 47390f6757 add missing type declarations to pretty print output 2020-02-04 00:16:14 +01:00
nitrix e978b4d52c remove unused import 2020-02-04 00:07:56 +01:00
nitrix 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
nitrix 56463c3e30 the the result of eval as an object and call toString\(\) on it 2020-02-03 23:53:25 +01:00
nitrix fc33ab6b12 add method to get the raw value representation 2020-02-03 23:52:21 +01:00
nitrix 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
nitrix e8f80eb2f9 make file pretty 2020-02-03 22:59:17 +01:00
nitrix 018ce8712a add error message prefix to type missmatch errors, staticly assign bool type to boolean expressions 2020-02-03 22:56:40 +01:00
nitrix 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
nitrix 7c56f401ac add error prefix to the runtime exception message 2020-02-03 22:28:37 +01:00
nitrix 02fb7b7cc2 unify error message appearance 2020-02-03 22:28:21 +01:00
nitrix 3a89ab2231 remove error handling, since these kinds of errors are caught by our context analysis 2020-02-03 22:24:27 +01:00
nitrix 3e8a904cb8 catch error to abort further processing 2020-02-03 22:21:30 +01:00
nitrix 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
nitrix 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
nitrix 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
nitrix 3fb30ebd7e print statement never has a type 2020-01-27 17:02:21 +01:00
nitrix fa8904e0f5 fix type annotation for comparison expressions 2020-01-27 16:57:09 +01:00
nitrix 0aed4ee893 my initial short for typechecking, still very unifinished tho 2020-01-21 00:21:54 +01:00
nitrix e5baad62e6 implement tests 2020-01-20 19:33:07 +01:00
nitrix 295bcaec8a implement visitors for boolean expressions 2020-01-20 19:32:50 +01:00
nitrix 722a9babcb remove unused import 2020-01-20 19:32:16 +01:00
nitrix 1186bb4550 add bool literal 2020-01-20 15:26:55 +01:00
nitrix d1f8a18bef add missing visit of lhs in a modulo expresion 2019-12-19 14:47:26 +01:00
nitrix c3ad231650 ignore test binary 2019-12-19 14:46:53 +01:00
nitrix 2bc3b1898b remove openjdk-13-jdk-headless 2019-12-17 18:53:12 +01:00
nitrix 3a9e84aefe fix image name 2019-12-17 18:46:04 +01:00
nitrix 5ae34f6587 install openjdk and openjre before executing tests 2019-12-17 18:42:41 +01:00
nitrix 7d530263a4 add the target directory as an artifact 2019-12-17 18:34:28 +01:00
nitrix 514595baf6 execute apt update before installing build-essential 2019-12-17 18:19:00 +01:00
nitrix b8f1017192 use mvn package instead of clean install 2019-12-17 18:16:34 +01:00
nitrix e3bfbee80b install build-essentials before executing the tests 2019-12-17 18:12:05 +01:00
nitrix 1c686fb0ea Implement variable declaration 2019-12-16 22:41:58 +01:00
nitrix ee19cb9a00 create VariableDeclaration nodes and check if a variable is redeclared or undefined 2019-12-16 22:41:45 +01:00
nitrix b9b36f7ba1 Add new node for the variable declaration 2019-12-16 22:41:12 +01:00
nitrix dc7dce48d9 add variable deklaration 2019-12-16 22:40:33 +01:00
nitrix 63c5f70358 add new node types to the visitors 2019-12-16 21:46:43 +01:00
nitrix e1eb64f576 use new node types, implement new visitors 2019-12-16 21:46:18 +01:00
nitrix 9e5046a20a implement new node types according to the new grammar 2019-12-16 21:45:55 +01:00
nitrix 629f67b39c make expressions nestable 2019-12-16 21:44:37 +01:00
nitrix de7625750e remove obsolete visitor 2019-12-16 21:44:01 +01:00
nitrix 121d5c6fe7 ignore c and out files 2019-12-16 21:43:28 +01:00
nitrix fdab293ab4 Merge branch 'master' of gitlab.cs.hs-rm.de:mkais001/klang 2019-12-16 11:52:18 +01:00
nitrix 64b88c192c ignore klang sourcecode and assembly files 2019-12-16 11:52:05 +01:00
nitrix 2c2696207f output the generated assembler code 2019-11-26 08:08:06 +01:00
nitrix 7d17accad5 implement assembler code generation 2019-11-26 08:07:43 +01:00
nitrix 5d62ef1d30 start implement a asm code generator visitor 2019-11-25 14:45:52 +01:00
nitrix fda65c7d93 implement return statement 2019-11-25 14:45:35 +01:00
nitrix 07ff7b9f06 Implement return statement node 2019-11-25 14:44:41 +01:00
nitrix c5dc08c1e0 add return statement to the grammar 2019-11-25 14:44:14 +01:00
nitrix d8985bf070 print SCOL after the program's expression, remove whitespace before the OPAR of the funtion definition 2019-11-18 18:57:25 +01:00
nitrix 2af9f369cf implement variable assignment 2019-11-18 18:54:24 +01:00
nitrix b38369b7a5 implemented variables and function call evaluation 2019-11-18 18:02:10 +01:00
nitrix 9385618252 print and evaluate the source code 2019-11-12 12:03:59 +01:00
nitrix 38d34a7cbc implement else if nesting 2019-11-11 22:27:27 +01:00
nitrix ea6bde3305 enforce parantheses around the conditional expression of an if statement 2019-11-11 16:22:43 +01:00
nitrix 0021e4da60 shortened import statements 2019-11-11 16:20:08 +01:00
nitrix d97f84e95f use pretty print visitor 2019-11-11 15:50:37 +01:00
nitrix 9fa61ed1a4 implement pretty print visitor 2019-11-11 15:50:25 +01:00
nitrix af363c729f add method for visiting blocks 2019-11-11 15:50:08 +01:00
nitrix b473a627b0 add stub for visiting block statement 2019-11-11 15:49:46 +01:00
nitrix d5639db187 actually implement the visitor 2019-11-11 15:49:25 +01:00
nitrix 67670693e8 explicitly set the type of Blocks to null 2019-11-11 15:46:55 +01:00
nitrix 6dbc1fe4fb implement visitors for block and braced_block 2019-11-11 11:46:05 +01:00
nitrix 42ae4c88fb require at least one statement in block 2019-11-11 11:40:17 +01:00
nitrix 16b8efaa8b delete build artifacts 2019-11-11 11:37:58 +01:00
nitrix c26cb6ddf5 add context analysis and custom visitors 2019-11-04 17:35:15 +01:00
nitrix bef26434c6 add ignore for antlr generated files 2019-11-04 15:44:20 +01:00
nitrix ea248733d0 add launch config to immediately run the code 2019-10-28 22:11:39 +01:00
nitrix 4e15cdb49e use CharStream instead of ANTLRInputStream 2019-10-28 22:08:39 +01:00
nitrix ce39b5cc02 remove obsolete Value class since we currently only use plain-old Integers 2019-10-28 21:53:20 +01:00
nitrix 13d38a53aa implement new for simplified grammar 2019-10-28 21:52:32 +01:00
nitrix a6c732e99c update grammar definition to the example from the lecture 2019-10-28 21:51:50 +01:00
nitrix fb10c23c49 remove obsolete visitor implementation 2019-10-28 21:50:58 +01:00
nitrix ec89390e4a remove obsolete files 2019-10-28 21:50:27 +01:00
nitrix eb8a1d7a7c created initial readme 2019-10-28 16:20:04 +01:00
nitrix 36fb6cb9fa add utf setting for antrl directory 2019-10-28 16:18:12 +01:00
nitrix e64aead3c2 use default maven ignore 2019-10-28 16:17:51 +01:00
nitrix 78664cc874 remove target 2019-10-28 16:16:33 +01:00
nitrix f011985aa2 add gitignore 2019-10-28 16:14:45 +01:00