Commit Graph

52 Commits

Author SHA1 Message Date
9df075ca9d
Generate a bison parser 2024-07-07 18:50:15 +02:00
0dbbd3f403 Check assignment type 2024-07-07 18:41:54 +02:00
4dbc5aca0d
Type check if and while conditions 2024-06-05 19:53:04 +02:00
7845c700d8
Type check binary expressions 2024-05-28 23:39:04 +02:00
83c16e7ad9
Add missing virtual distructors 2024-05-27 22:58:54 +02:00
db0077e3a8
Add a tester script 2024-05-27 11:03:23 +02:00
8ea09ff3b4
Remove libc dependency for the generated code 2024-05-23 01:13:16 +02:00
189b2e6054
Determine the build target automatically 2024-05-20 01:42:56 +02:00
ebd68d7878
Introduce a procedure type 2024-05-19 00:43:59 +02:00
9f2c5ad9e3
Type check pointer dereferencing 2024-05-16 21:01:11 +02:00
68264016ce
Add scripts to build a toolchain for running VM tests 2024-05-14 22:09:05 +02:00
51fa3efc32
Run tests and check expectations in 2 loops 2024-05-05 01:52:08 +02:00
4d399e10db
Split result into symboltable and types 2024-05-01 10:39:18 +02:00
f48fae4878
Generate code for loops 2024-04-18 12:15:26 +02:00
9c7614dd25
Don't relax function calls 2024-04-12 00:07:46 +02:00
159a3a4f38
Parse reference and dereference operators 2024-04-10 22:43:12 +02:00
60acf3b9a3
Parse pointer types 2024-04-07 23:39:56 +02:00
aa3df7f4d3
Tokenize the input with flex 2024-04-06 16:10:07 +02:00
4251c361c7
Implement comparison operators 2024-04-02 09:07:26 +02:00
3c19bf1504
Include the filename in the error messages 2024-03-30 00:21:58 +01:00
e04a816024
Support multiple function arguments 2024-03-29 11:01:19 +01:00
07521f2b58
Parse parameter list 2024-03-28 00:55:13 +01:00
44e32760ca
Support procedure calls without arguments 2024-03-26 23:04:20 +01:00
f2a20c2825
Support failure tests 2024-03-23 14:53:26 +01:00
7e5f7f492d Implement first intrinsics for output 2024-03-20 17:56:38 +01:00
263b868a45
Replace ! with a function call writei 2024-03-19 09:35:50 +01:00
bfabdb1d08
Write parts of generated code directly to objects 2024-03-18 09:55:25 +01:00
17b0650f77
Implement simple if conditions 2024-03-17 01:00:44 +01:00
8240443cd1
Assign variables 2024-03-14 08:52:45 +01:00
42d2038c4d
Support compound statements 2024-03-11 10:43:26 +01:00
2d31c77c14
Support surrounding begin and end 2024-03-10 08:50:55 +01:00
1af995eafd
Implement division 2024-03-09 08:36:07 +01:00
4ac29669ad
Split code generation from the ui 2024-03-07 09:15:11 +01:00
f84fd91426
Get rid of the raw pointers in the parser 2024-03-06 07:51:56 +01:00
632dc53b53
Implement multiplication 2024-03-03 13:11:39 +01:00
223f54d38d
Remove the IR for know for simplicity 2024-03-01 10:13:55 +01:00
4d46fc6b4d
Print test summary 2024-02-28 16:18:39 +01:00
03a72fc583
Extend the tester to compile sources 2024-02-25 15:16:19 +01:00
ad29dbdc14
Create a minimal interactive shell 2024-02-22 21:29:25 +01:00
86d579e8d5
Grow stack automatically 2024-02-18 11:26:57 +01:00
df2494e145
Update the toolchain 2024-02-15 15:13:47 +01:00
0d3453e7a9
Generate IR in a visitor 2022-06-25 15:24:43 +02:00
b785147ded
Implement subtraction 2022-06-15 19:00:54 +02:00
799c3fd89c
Put + operator inbetween 2022-06-14 23:06:02 +02:00
fbbabe115f
Save ELF symbols in a hash table 2022-06-13 17:46:02 +02:00
72a60be386
Write an IR visitor 2022-06-12 23:48:50 +02:00
3f1492947c
Implement symbol table for functions 2022-06-11 22:52:13 +02:00
f5c4a27a6d
Implement a RISC-V backend 2022-06-11 00:38:03 +02:00
77857ad118
Add intermediate assembler representation 2022-06-08 08:34:44 +02:00
473cd4e498
Abstract the file reading 2022-06-06 22:56:28 +02:00