40 Commits

Author SHA1 Message Date
b8387ec23c Type check if and while conditions 2024-12-20 15:49:33 +01:00
3a6de872e0 Type check binary expressions 2024-12-20 15:49:33 +01:00
71d675edde Add missing virtual distructors 2024-12-20 15:49:33 +01:00
107cc1043d Add a tester script 2024-12-20 15:49:33 +01:00
ec20492803 Remove libc dependency for the generated code 2024-12-20 15:49:33 +01:00
a614d96ac5 Determine the build target automatically 2024-12-20 15:49:33 +01:00
f675470fa9 Introduce a procedure type 2024-12-20 15:49:33 +01:00
652070d4ad Type check pointer dereferencing 2024-12-20 15:49:33 +01:00
ec4fcbddd1 Add scripts to build a toolchain for running VM tests 2024-12-20 15:49:33 +01:00
43d0a0d699 Run tests and check expectations in 2 loops 2024-12-20 15:49:33 +01:00
2eb409577d Split result into symboltable and types 2024-12-20 15:49:33 +01:00
bdcc95dd62 Generate code for loops 2024-12-20 15:49:33 +01:00
2767c5992b Don't relax function calls 2024-12-20 15:49:33 +01:00
1b9d57e613 Parse reference and dereference operators 2024-12-20 15:49:33 +01:00
3b086a0872 Parse pointer types 2024-12-20 15:49:33 +01:00
455b52a0b0 Tokenize the input with flex 2024-12-20 15:49:33 +01:00
a3cc21cc9e Implement comparison operators 2024-12-20 15:49:33 +01:00
e0eaef7454 Include the filename in the error messages 2024-12-20 15:49:33 +01:00
8b6ccbaa6d Support multiple function arguments 2024-12-20 15:49:33 +01:00
5dfa2b3d99 Parse parameter list 2024-12-20 15:49:33 +01:00
5caa08673e Support procedure calls without arguments 2024-12-20 15:49:33 +01:00
031f6724bd Support failure tests 2024-12-20 15:49:33 +01:00
ee65360f60 Implement first intrinsics for output 2024-12-20 15:49:33 +01:00
4af742ab02 Replace ! with a function call writei 2024-12-20 15:49:33 +01:00
688557b012 Write parts of generated code directly to objects 2024-12-20 15:49:33 +01:00
b44431f9cd Implement simple if conditions 2024-12-20 15:49:33 +01:00
546e0affb4 Assign variables 2024-12-20 15:49:33 +01:00
5e8cd73705 Support compound statements 2024-12-20 15:49:33 +01:00
87150fca0b Support surrounding begin and end 2024-12-20 15:49:33 +01:00
e3e9c76ead Implement division 2024-12-20 15:49:33 +01:00
219f08fe7c Split code generation from the ui 2024-12-20 15:49:33 +01:00
f5427424f2 Get rid of the raw pointers in the parser 2024-12-20 15:49:33 +01:00
b0f33da7af Implement multiplication 2024-12-20 15:49:33 +01:00
55f443ed40 Remove the IR for know for simplicity 2024-12-20 15:49:33 +01:00
31c178ad9c Print test summary 2024-12-20 15:49:33 +01:00
40f2c1eede Extend the tester to compile sources 2024-12-20 15:49:33 +01:00
160a97930e Create a minimal interactive shell 2024-12-20 15:49:33 +01:00
bfb15f2d4a Grow stack automatically 2024-12-20 15:49:33 +01:00
7b3dac3c3b Add an argument parser 2024-12-20 15:49:33 +01:00
5490f6ce1c
Initial commit 2022-06-05 15:16:04 +02:00