Commit Graph

821 Commits

Author SHA1 Message Date
Tristan B. Velloza Kildaire 3eddf73b7b Added some stuff
FunctionData adding, some generation stuff, but reworking to make a general pass function
2021-11-10 16:17:42 +02:00
Tristan B. Velloza Kildaire 60f490d8e8 Refactored dependency tree generation code (and all related modules) to its own directory 2021-11-09 19:16:51 +02:00
Tristan B. Velloza Kildaire fffcc953ab Refactored Context class 2021-11-09 19:00:23 +02:00
Tristan B. Velloza Kildaire 7dd8f2df75 Updated test case 2021-11-09 18:27:01 +02:00
Tristan B. Velloza Kildaire f0b0f83c45 Added note to be used later 2021-11-09 18:26:50 +02:00
Tristan B. Velloza Kildaire c9997c60d0 Made public 2021-11-09 18:26:39 +02:00
Tristan B. Velloza Kildaire beaad7e7f1 Added the thing 2021-11-09 18:26:30 +02:00
Tristan B. Velloza Kildaire 6499abb616 Fixed up all other `getStatements()` for other Container types 2021-11-09 16:54:00 +02:00
Tristan B. Velloza Kildaire b39fea5e10 Fixed `getStatements()` for Module container type to be stable. Not having it so caused bad affects and re-ordering that should have NOT happened 2021-11-09 16:50:04 +02:00
Tristan B. Kildaire 7fe3ea342c Added note on name resolution for correct stack offset mapping 2021-11-09 15:51:08 +02:00
Tristan B. Kildaire de261ec511 Copy Context information from the ParserNode across to the Instruction node (only so far for Module Variable Declaration DNodes' embedded PNode 2021-11-09 15:50:04 +02:00
Tristan B. Kildaire 3b36113a5b Added Context 2021-11-09 15:49:59 +02:00
Tristan B. Kildaire 8a8ddcee3a Added notes on ceogeneration 2021-11-09 15:40:35 +02:00
Tristan B. Kildaire b88943d2ed Fixed `pushVariable()` to ACTUALLY add to the stackOffsetMap 2021-11-09 15:40:28 +02:00
Tristan B. Kildaire bef0bced14 Addes some stub functions for writing of variables to the stack (code to generate it) 2021-11-09 15:35:45 +02:00
Tristan B. Kildaire 6c1dac5f2a On variable declaration maintain a mapping of offsets of variables on the stack 2021-11-09 15:30:37 +02:00
Tristan B. Velloza Kildaire fb927eeb17 Yesh 2021-11-06 12:38:13 +02:00
Tristan B. Kildaire 15416aa655 Fixed register generation for Rochard registers on x86_64 2021-11-02 17:24:08 +02:00
Tristan B. Kildaire 4df1aac54c Prevent segmentation faults for now by returning bogus register and bogus emit 2021-11-02 17:16:46 +02:00
Tristan B. Kildaire f75a3cfa5f Added missing register file initialization 2021-11-02 17:14:15 +02:00
Tristan B. Kildaire 90151a2af1 Basic register usage should now be here 2021-11-02 17:13:48 +02:00
Tristan B. Kildaire 94d3128efe Added missing implementation of `getUsableName()` 2021-11-02 17:06:36 +02:00
Tristan B. Kildaire 4dd7e281a2 Renamed method to implement 2021-11-02 17:05:47 +02:00
Tristan B. Kildaire 8bfbb2423c Set to abstract for Register 2021-11-02 17:05:24 +02:00
Tristan B. Kildaire 09233633a0 WIP: Register allocator 2021-11-02 17:03:38 +02:00
Tristan B. Kildaire 0352f96c16 Do not initialize stack variables 2021-11-02 15:29:04 +02:00
Tristan B. Kildaire 536206fdc5 Code emitter can now emit all variable sizes 2021-11-02 15:27:17 +02:00
Tristan B. Kildaire 43891b1dfb Added testing files 2021-11-02 15:14:03 +02:00
Tristan B. Kildaire ff9890437d Working code emitter and doing some code gen with it too 2021-11-02 15:13:44 +02:00
Tristan B. Kildaire 2d46eb4458 Removed unused (old) type 2021-11-02 13:58:36 +02:00
Tristan B. Velloza Kildaire 3dba481260 Refactored code emitter sub-system 2021-11-02 10:41:03 +02:00
Tristan B. Velloza Kildaire 3d79531978 Removed emitter code from data.d 2021-11-02 10:38:09 +02:00
Tristan B. Kildaire ad5e26602f Removed unused method 2021-11-02 09:43:02 +02:00
Tristan B. Kildaire 7a78a4e5b1 Removed old cruft 2021-11-02 09:42:50 +02:00
Tristan B. Kildaire 12087b8fdf Removed old VTReeNode commented-out code 2021-11-02 09:42:21 +02:00
Tristan B. Kildaire 60b97f90aa Removed unused commented code 2021-11-02 09:41:30 +02:00
Tristan B. Kildaire 9987c46497 Re-enabled a unit test for the type checker 2021-11-02 09:36:15 +02:00
Tristan B. Kildaire 1731ae3299 Re-enabled a unit test for the type checker 2021-11-02 09:35:48 +02:00
Tristan B. Kildaire c8ccc71244 Re-enabled a unit test for the type checker 2021-11-02 09:35:27 +02:00
Tristan B. Kildaire bbd34a951a Re-enabled unit test for type checker 2021-11-02 09:34:57 +02:00
Tristan B. Kildaire 36f073fbff Re-enabled two unit tests for the type checker 2021-11-02 09:34:40 +02:00
Tristan B. Kildaire 71be300582 Disabled a lot of old typechecking code that we either don't need or I am not working with right now 2021-11-02 09:32:52 +02:00
Tristan B. Velloza Kildaire cf03601eec Removed unused field 2021-11-01 18:28:19 +02:00
Tristan B. Velloza Kildaire 8fed8fa4fb Removed unused methods for Statement 2021-11-01 18:25:53 +02:00
Tristan B. Velloza Kildaire 396ccdbc60 Moved token I/O statements toghether 2021-11-01 18:25:43 +02:00
Tristan B. Velloza Kildaire 7f29828081 Added negative test case 2021-10-27 21:30:22 +02:00
Tristan B. Velloza Kildaire 0081277fb1 Cleaned up typechecking (codegen) 2021-10-27 21:12:00 +02:00
Tristan B. Velloza Kildaire bbf174b757 Added weighting such that `getStatements()` can be ordered more easily. Many weights are still missing but the things I am testing with now are atleast here.
Added check for standalone variable assignments to error (crash) the compiler when the variable has not yet been declared.

I still need to clean up the codegen and add back in typechecking, the thing has become weird with many weird function calls, but I can do it in one function call to be honest (and that makes most sense)

Standalone variable assignments are now in the dependency tree and therefore make it into the typechecking/codegen phase (of which code to handle them has also been added)
2021-10-27 20:57:30 +02:00
Tristan B. Velloza Kildaire 47375cbec4 Beginning to work on weighting system 2021-10-27 15:52:43 +02:00
Tristan B. Velloza Kildaire 0bceb16373 Added toString for VariableAssignment 2021-10-27 15:33:24 +02:00