|
1ec3467830
|
Map local variables in IR to their original names
|
2024-11-14 19:55:30 +01:00 |
|
|
060496fc6e
|
Parse local variables
|
2024-11-06 22:23:49 +01:00 |
|
|
e2d4b76c0b
|
Check argument list length
|
2024-10-31 22:19:48 +01:00 |
|
|
43882a3a06
|
Generate a call to _divide_by_zero_error on RiscV
|
2024-10-30 14:12:51 +01:00 |
|
|
6b92e5059c
|
Encode labels as untyped local symbols in ELF
|
2024-10-27 20:43:56 +01:00 |
|
|
57436f664e
|
Abstract the string table into a newtype
|
2024-10-22 01:21:02 +02:00 |
|
|
bf5ec1f3e2
|
Parse type declarations
|
2024-10-17 00:37:42 +02:00 |
|
|
582040e5d3
|
Implement comparison operators
|
2024-10-13 12:59:47 +02:00 |
|
|
0850f0a8d6
|
Implement if statements with equality
|
2024-10-11 16:14:01 +02:00 |
|
|
87f183baad
|
Add branch relocation type
|
2024-10-09 23:37:58 +02:00 |
|
|
699cc8684b
|
Implement division
|
2024-10-06 18:09:08 +02:00 |
|
|
35742aa525
|
Add printc and exit builtin functions
|
2024-10-04 18:26:10 +02:00 |
|
|
fdf56ce9d0
|
Negate integral expressions
|
2024-10-02 22:56:15 +02:00 |
|
|
cafae5c830
|
Use one register less for addition and subtraction
|
2024-10-01 22:44:55 +02:00 |
|
|
bbb15a0218
|
Add allocator convertion functions
|
2024-10-01 00:02:19 +02:00 |
|
|
c2c923276f
|
Implement addition and subtraction
|
2024-09-29 19:50:55 +02:00 |
|
|
ed144309fa
|
Print numbers with multiple digits
|
2024-09-27 22:53:05 +02:00 |
|
|
8eaeb5afa3
|
Generate IR and target code
|
2024-09-25 23:06:02 +02:00 |
|
|
b30bbcab28
|
Parse call statements
|
2024-09-24 22:20:57 +02:00 |
|
|
e66ccf46f4
|
Take function name from the generated asm
|
2024-09-22 23:45:59 +02:00 |
|
|
daec506ed3
|
Put _start and main call into builtins
|
2024-09-21 23:35:32 +02:00 |
|
|
0a8d3fce2f
|
Collect function declaration symbols
|
2024-09-20 23:00:07 +02:00 |
|
|
c9ff4f0a2a
|
Add call pseudo instruction
|
2024-09-15 23:03:25 +02:00 |
|
|
d29012d30e
|
Pass relocation base table
|
2024-09-12 02:21:48 +02:00 |
|
|
8a0751dfb0
|
Add a state monad transformer to the Elf generator
|
2024-09-10 02:03:20 +02:00 |
|
|
bb33423c31
|
Create empty relocations section
|
2024-09-09 23:10:37 +02:00 |
|
|
1cbbef19af
|
Stub the implementation for all phases
|
2024-09-08 02:08:13 +02:00 |
|
|
042e4e8714
|
Add command line parser
|
2024-09-05 23:18:48 +02:00 |
|
|
be73032b93
|
Add rake task to build a cross toolchain
|
2024-09-04 22:05:55 +02:00 |
|
|
ad0bf43ba5
|
Create numerated temporary variables
|
2024-08-30 14:55:40 +02:00 |
|
|
0c45a9886a
|
Add Intermediate monad stack for the code generation
|
2024-08-27 14:21:50 +02:00 |
|
|
2bd965bd5c
|
Generate IR for while and calls
|
2024-08-18 20:13:59 +02:00 |
|
|
6a54b66421
|
Generate the code for IfStatement
|
2024-08-17 14:16:16 +02:00 |
|
|
d405072dbf
|
Access multidimensional arrays
|
2024-08-15 20:13:56 +02:00 |
|
|
f78592378a
|
Add IR quadruple definitions
|
2024-08-12 21:00:52 +02:00 |
|
|
38a8d6811c
|
Write parameter info into procedure info
|
2024-08-12 00:50:36 +02:00 |
|
|
5e7683af32
|
Check types
|
2024-08-09 20:16:41 +02:00 |
|
|
18a299098c
|
Typecheck statements
|
2024-08-08 19:11:24 +02:00 |
|
|
573990551c
|
Determine an expression type
|
2024-08-07 22:47:35 +02:00 |
|
|
385322235d
|
Look for undefined symbols
|
2024-08-06 17:02:18 +02:00 |
|
|
a1863147f8
|
Don't allow identifier duplicates
|
2024-08-05 22:56:35 +02:00 |
|
|
9cb9ab536f
|
Create procedure local symbol table
|
2024-08-04 12:23:19 +02:00 |
|
|
5f8d9abe76
|
Require trailing semicolon for type declarations
|
2024-08-02 00:09:57 +03:00 |
|
|
d4471ca2fa
|
Collect types into the global symbol table
|
2024-07-31 00:49:16 +03:00 |
|
|
92990e52f0
|
Add typeExpression to type converter
|
2024-07-29 08:26:47 +03:00 |
|
|
ce7652c618
|
Add types for name analysis
|
2024-07-26 12:22:07 +02:00 |
|
|
bf774475cc
|
Parse all statements
|
2024-07-25 01:39:53 +02:00 |
|
|
947c5aa7ef
|
Parse expressions
|
2024-07-24 01:22:20 +02:00 |
|
|
9d1f038594
|
Split in lib and tests
|
2024-07-23 22:44:42 +02:00 |
|