Nathan Braswell
|
d85f388792
|
Shorter AST names
|
2018-05-22 20:14:15 -04:00 |
|
Nathan Braswell
|
eefa752d55
|
shortening of str and vec
|
2018-05-22 19:43:54 -04:00 |
|
Nathan Braswell
|
804f98f9cf
|
Finish up c extern functions for bytecode
|
2018-03-26 01:25:15 -04:00 |
|
Nathan Braswell
|
1c94cd2f03
|
Small, but added system call to bytecode
|
2018-03-23 01:27:44 -04:00 |
|
Nathan Braswell
|
b8213dfc9f
|
Fix character value handling. String stuff appears to work correctly in bytecode now
|
2018-03-22 00:51:57 -04:00 |
|
Nathan Braswell
|
c056af6e56
|
accidentally broke subtraction
|
2018-03-21 01:50:24 -04:00 |
|
Nathan Braswell
|
f209fad91e
|
Can generate bytecode for files that use a decent bit of the standard library now. Need to finish implementing the external functions, and check to see why we can't print integers. I think it might be that character values aren't being generated correctly
|
2018-03-21 01:20:28 -04:00 |
|
Nathan Braswell
|
8edfd88c28
|
Fix this handling, other bytecode fixes
|
2018-03-21 00:00:06 -04:00 |
|
Nathan Braswell
|
91768a042e
|
Fix/refactor value handling: value strings are now parsed in ast_transformation and re-escaped in c_generator, and used raw in bytecode_generator
|
2018-03-19 21:03:06 -04:00 |
|
Nathan Braswell
|
8907e44cad
|
Added support in bytecode for ext var, some more ext functions, and emitting char* values. These have extra quotes right now, as the value carries around the quotes. Should change that in ast_transformation and c_generator
|
2018-03-19 00:57:33 -04:00 |
|
Nathan Braswell
|
d5fee839f7
|
Add in calling of external functions (malloc and free for now), move memory addresses to be real memeory addresses, add support for sizeof compiler intrinsic
|
2018-03-18 03:42:15 -04:00 |
|
Nathan Braswell
|
3f20646b16
|
Fixed pointer arithmatic
|
2018-03-17 12:47:01 -04:00 |
|
Nathan Braswell
|
5b9e9b61d1
|
It seems impossible, but I think I might have sucessfully implemented struct returning correctly, the first time, with no compile errors or runtime errors, after 45 minutes starting a little past 4am. Woo!
|
2018-03-17 04:47:24 -04:00 |
|
Nathan Braswell
|
10cad2ab74
|
Passing as param works too
|
2018-03-16 01:31:03 -04:00 |
|
Nathan Braswell
|
eaa22e1d11
|
Struct copying should work. Now it's just making them be parameters and return values
|
2018-03-16 01:20:44 -04:00 |
|
Nathan Braswell
|
5ebb6d5482
|
Start work on structs. Can declare structs and access members. Copying structs and passing them as parameters or returning them doesn't work yet
|
2018-03-15 00:29:21 -04:00 |
|
Nathan Braswell
|
8de92e1c3b
|
After reflecting on the difficulties of lowering the increment operators, decided just to implement them in bytecode
|
2018-03-14 23:43:52 -04:00 |
|
Nathan Braswell
|
c6a43728a5
|
Fix function calls by giving own reg for return and saving registers first. Use reset_reg more often to try to keep the number of registers that need to be saved down.
|
2018-03-14 01:16:00 -04:00 |
|
Nathan Braswell
|
364f4d8a3e
|
Sketch out places for struct involvement, write while and for loops
|
2018-03-13 00:39:16 -04:00 |
|
Nathan Braswell
|
fc6c87f56a
|
Finished the operators, besides struct access
|
2018-03-12 23:34:35 -04:00 |
|
Nathan Braswell
|
378a81602a
|
Add in signed and unsigned mul div, and add a mod
|
2018-03-12 20:17:26 -04:00 |
|
Nathan Braswell
|
ef516891ca
|
add xor
|
2018-03-12 00:43:51 -04:00 |
|
Nathan Braswell
|
5464555e0d
|
addressof, dereference, and [] implemented
|
2018-03-10 15:32:51 -05:00 |
|
Nathan Braswell
|
3c4b1864c7
|
Add in addi to reduce use of imm, add and or and not to put in negate/subtract (might need it's own opcode, really) as well as and or and not themselves
|
2018-03-10 00:27:16 -05:00 |
|
Nathan Braswell
|
55a448a3b5
|
Small work towards operators. + workes now
|
2018-03-08 23:25:48 -05:00 |
|
Nathan Braswell
|
fc67aa7ce8
|
Added support for parameters
|
2018-03-07 22:57:46 -05:00 |
|
Nathan Braswell
|
8da84b56c2
|
working bytecode with call and a real stack and psudo abi. Found a bug where -= doesn't behave correctly when the lhs is a function returning a reference because it's lowered to a = a - b where a is the same ast_node, I think
|
2018-03-07 01:58:19 -05:00 |
|
Nathan Braswell
|
5b46089694
|
Stop declaring variable before assignment - i don't think necessary for recursive closure, def not in current code, and messes up globals with values
|
2018-03-06 23:30:00 -05:00 |
|
Nathan Braswell
|
8a22263b1d
|
make JNZ JZ (if was backwards, and this is more convient right now
|
2018-02-27 21:41:57 -05:00 |
|
Nathan Braswell
|
dad97a25a5
|
If statements work with the addition of jmp and jnz
|
2018-02-27 21:27:29 -05:00 |
|
Nathan Braswell
|
adcebb3284
|
Move towards more legit stack setup api and registers as registers
|
2018-02-27 23:53:08 +00:00 |
|
Nathan Braswell
|
00bb4e928c
|
Can eval basic block with variables and return
|
2018-02-03 22:47:21 -05:00 |
|
Nathan Braswell
|
aad363f631
|
Bytecode work
|
2018-02-03 18:53:13 -05:00 |
|
Nathan Braswell
|
7850f11297
|
very basic groundwork for bytecode
|
2018-02-02 00:26:31 -05:00 |
|