Commit Graph

886 Commits (master)

Author SHA1 Message Date
Tristan B. V. Kildaire 5a22b184b7 DGen
- Don't write a blank line at the top of the header comment (see `emitHeaderComment()`)
1 year ago
Tristan B. V. Kildaire 15617e7ced DGen
- Added note to `emitCodeQueue()` that instructions will need recursive `emit()` methods
1 year ago
Tristan B. V. Kildaire f4797b79e2 DGenregs
- This file has been removed

DGen

- Removed unused import for `dgenregs.d`
1 year ago
Tristan B. V. Kildaire b8c99329aa DGen
- Added trailing newline to the comment emitted by `emitHeaderComment()`
1 year ago
Tristan B. V. Kildaire c91d72d0b9 DGen
- Added some NOTEs for potential TODOs
1 year ago
Tristan B. V. Kildaire e6b1de47f1 DGen
- Added docstring to `emitHeaderComment()`
1 year ago
Tristan B. V. Kildaire fe7390caa0 DGen
- The module name of the source file is now correctly added to the header comment (see `emitHeaderComment()`)
1 year ago
Tristan B. V. Kildaire 1f3bdd3279 DGen
- Added support for an additional string comment to be added to the emitted header comment via the `emitHeaderComment()` method
1 year ago
Tristan B. V. Kildaire c37b85b781 DGen
- Emit a header comment to the output C file containing information about the generated code (source file and destination file)
1 year ago
Tristan B. V. Kildaire b43e8de0ef Compiler
- Make output file `tlangout.c`
1 year ago
Tristan B. V. Kildaire 566a916a5a DCodeEmitter
- Removed old code generation code - starting anew
1 year ago
Tristan B. V. Kildaire 99224cbb80 Type checker
- Added `getInitQueue()`
- Removed the `beginEmit(initQueue, codeQueue)` method (as this is done for us in compiler.d

CodeEmitter

- Extract init queue as well
1 year ago
Tristan B. V. Kildaire 6253281f6f Typechecking
- Cleaned up imports
- Added TODOs and a stub `beginEmit(InitQueue, CodeQueue)` method to be used for the beginning of the code emit process
1 year ago
Tristan B. V. Kildaire ff20c28458 Added debug statements at each stage of DNode processing in the `doTypeCheck(DNode[])` method along with seperators for the final stage's InitQueue and CodeQueue print out 2 years ago
Tristan B. V. Kildaire b58c23bd9c Fixed typo 2 years ago
Tristan B. V. Kildaire ff51b2ded0 Cleaned up the `doTypeCheck(DNode[])` method 2 years ago
Tristan B. V. Kildaire 13a0a5057f Removed unused commented block of code 2 years ago
Tristan B. V. Kildaire 9151a46888 Cleaned up 2 years ago
Tristan B. V. Kildaire a122b674e2 Cleaned up ClassStaticNode handling code in the type checker. 2 years ago
Tristan B. V. Kildaire cac86d604e Added method documentation 2 years ago
Tristan B. V. Kildaire b09a247413 Removed unused SList 2 years ago
Tristan B. V. Kildaire 268f4bb48f Added `printInitQueue()` method to print all elements in the initialization queue
Print both the initialixation queue (and then) and the code queue at the end of typechecking the linearized list
2 years ago
Tristan B. V. Kildaire ae789c9114 Increased complexity of test case 2 years ago
Tristan B. V. Kildaire 0c94ece070 Initialization queue
This is a queue where all things such as:

- Class static initializations
- Module initializations (maybe)
- Struct static initializations

will go.

Added `addInit()` along `SList initQueue` to support such a queue.

- Whenever a ClassStaticNode is come across it is added to this queue (at the back - so as to maintain allocation order, not that allocation would matter - only initialization (which is already working))
2 years ago
Tristan B. V. Kildaire 47d1974f93 Just create a ClassStaticInitAllocate instruction but don't do anything with it 2 years ago
Tristan B. V. Kildaire 1b7cf42aa5 Disabled ClassStaticAllocate processing code in typechecker for now
Updated test case
2 years ago
Tristan B. V. Kildaire c9dcf58911 Updated test case to double check that complex examples would be correctly processed 2 years ago
Tristan B. V. Kildaire 31c52c0beb Potential fix for variable declarations and assignments (to them)
- The VarAssDNode processor on typechecker now adds to the back orf the code queue
- We removed all weird swapping code in typechecker
- Dependency wise, a variable declaration is depended-UPON its variable assignment which in turn a module depends ON.
- In the case of no assignments we simpyl make the module depend on the variable declaration dnode directly
- Added new test case to show this all
2 years ago
Tristan B. V. Kildaire cbe40e7184 Formatted code 2 years ago
Tristan B. V. Kildaire f4311b8e67 Added note for something to work on 2 years ago
Tristan B. V. Kildaire cd02bc2b66 Updated toString() for ClassStaticNode 2 years ago
Tristan B. V. Kildaire 3c65af06a0 Added note 2 years ago
Tristan B. V. Kildaire 3536e39f6f Found why we are crashing (dependency generation is ordered right but we need to maybe make different objects or add checks of a different sort) 2 years ago
Tristan B. V. Kildaire b30b6e0fe0 Disabled generation of unused Context object 2 years ago
Tristan B. V. Kildaire 2f586a10cd Updated test case 2 years ago
Tristan B. V. Kildaire 86905da623 Added TODO 2 years ago
Tristan B. V. Kildaire 2031a4645c Context should just be the same one passed in as we are not changing really. 2 years ago
Tristan B. V. Kildaire c85aba1f56 WIP 2 years ago
Tristan B. V. Kildaire e46950778b Fixes:
- The test case was broken -_-
- Full-path traversal now implemented somewhat, along with checks on the container if they require static initialization (such as for Classes)
2 years ago
Tristan B. V. Kildaire 0c104440ae Freeze for now 2 years ago
Tristan B. V. Kildaire 05d00ff58b WIP: Seems wrong the order we get back, might need to take some time to think about how to get about implementing this 2 years ago
Tristan B. V. Kildaire 15d2bf6b68 Dependency generation
Full path evaluation update

If the local segment is a Class-type-of Container then run
a class static allocation on it and make the current dnode
dependent on that ClassStaticAllocation dnode returned from
classStaticAllocate().
2 years ago
Tristan B. V. Kildaire 2d58d5f0d7 WIP: Full path dependency evaluation 2 years ago
Tristan B. V. Kildaire 8a82751a18 Added Gitea issue number #8 for ClassStaticAllocate node 2 years ago
Tristan B. V. Kildaire 4b36623861 Added Gitea issue note 2 years ago
Tristan B. V. Kildaire 96d8f0face WIP: Found a fix for context lookup failure 2 years ago
Tristan B. V. Kildaire e2e356da73 Added FIXME note 2 years ago
Tristan B. V. Kildaire 81f168e154 Removed unused commented-out code 2 years ago
Tristan B. V. Kildaire 69572ff02c Removed unused method (older method before generalPass()) 2 years ago
Tristan B. V. Kildaire a8630b5939 We need to do funciton definition dependency generation ALOGN with normal dependency generation
- Disabled seperate generate() calls to FuncDefs in core.d for typechecking
- Added `saveFunctionDefinitionNode()` and `retrieveFunctionDefinitionNode()` to core.d for dependency
- Added a generalPass() call (and fixed it to skip on things != STATIC for InitScope - temporary fix)
- Added test case to test with
2 years ago
Tristan B. V. Kildaire 60a6f078a3 - Made Function a kind-of Container
- Ensure we set the parentOf all Statement's inside a Function (definition) whilst parsing - to prevent a runtime assertion (I believe, well all fixed now)
2 years ago
Tristan B. V. Kildaire 77708b65be WIP: Linerization (typechecking and code generation) for defined functions 2 years ago
Tristan B. V. Kildaire e810f762bc Added while loop test case 2 years ago
Tristan B. V. Kildaire 5444bd55e8 Added support for comparators to parser 2 years ago
Tristan B. V. Kildaire 200149efdf Cleaned up core.d unittest 2 years ago
Tristan B. V. Kildaire c1efb0c819 Added unit test to test floating point empty string test in lexer 2 years ago
Tristan B. V. Kildaire 3fccf2fa5a Removed debug print 2 years ago
Tristan B. V. Kildaire 806814f01c Fixed bug whereby `isNumericalStr()` returned true for empty strings.
This fixes problems whereby if the current build up was empty and a field accessor was being attempted then lexing would fail.
2 years ago
Tristan B. V. Kildaire 3d54c4deee Removed assertions which are guaranteed to pass now (since the last fix of 449e878796) 2 years ago
Tristan B. V. Kildaire 449e878796 Fixed bug when processing the body of a class and a DNode was hit which was not one of the allowed types:
1. VariableDeclaration

Previously we added back the `varDecInstr` which is post-cast and if the cast failed (hence hitting this !varDecInstr branch) we didn't add back `instr` but rather added back `varDecInstr` which is 0 instead of being non-zero.

This later is incorrect.
2 years ago
Tristan B. V. Kildaire aae5dbabe8 Fixed compilation issue with jcli
Upgraded jcli
2 years ago
Tristan B. V. Kildaire a8f93e5817 Cleaned up comments for number literal code gen and type checking handling 2 years ago
Tristan B. V. Kildaire 7e49cf1d0a Added float support
- Added float constant support to the lexer
- Added float support to the typechecker to build the correct Instruction type

Unit tests

- Added unit test for a bad example of a malformed encoded floating point to test out the lexer
2 years ago
Tristan B. V. Kildaire 2dbe14b490 WIP: Floating pooint literal/constant support 2 years ago
Tristan B. V. Kildaire f49b0ce2b9 Added floating point constants to test 2 years ago
Tristan B. V. Kildaire c561060470 Added float and double types to builtin types
Added floating point test case
2 years ago
Tristan B. V. Kildaire e8ddb62152 Removed Double type
Refactored Float type
2 years ago
Tristan B. V. Kildaire f64c067184 Updated simple_string.t test 2 years ago
Tristan B. V. Kildaire 4488678d3e Code cleanup 2 years ago
Tristan B. V. Kildaire 18411c48c4 Removed TODO 2 years ago
Tristan B. V. Kildaire c8347fefba Updated simple_string.t to include string constants (literals) that test interning to the same pool ID 2 years ago
Tristan B. V. Kildaire d19512668a Pass StringLiteral instruction extracted string literal from StringExpression synmbol
Removed TODO
2 years ago
Tristan B. V. Kildaire e2157f428c Implemented `getStringLiteral()` for StringExpression symbol type 2 years ago
Tristan B. V. Kildaire 7e9e303a1c Implemented StringLiteral Value-kind-of instruction with string interning 2 years ago
Tristan B. V. Kildaire f9a8590604 Array type handling added to builtin-types handling 2 years ago
Tristan B. V. Kildaire e0feaac953 Added new test case 2 years ago
Tristan B. V. Kildaire 6cfca2cea2 Added `addInstr()` for StringExpression handling (String literals)
Bug fixed whenever a "" is encountered
2 years ago
Tristan B. V. Kildaire 415538f54a Added StringLiteral instruction 2 years ago
Tristan B. V. Kildaire ca2fa84057 Added support for Pointer type resolution via `getType()`. Now `char**` -> Pointer("char*"), which before construction of such a Pointer is recursively resolved, so nested Pointer(Pointer(...)) 2 years ago
Tristan B. V. Kildaire 88a48e1b3d FuncDecNode for the Dependecny Tree Generator added 2 years ago
Tristan B. V. Kildaire 35d71a0c25 WIP: FunctionHandle (reference to a funciton's name (NOT a FuncCall)) support (context may not be entirely right) 2 years ago
Tristan B. V. Kildaire f571115c23 Added some possible todos, might not need to do any of them but I also might 2 years ago
Tristan B. V. Kildaire 1322c0f790 BinaryOperatorExpression now has a proper toString() 2 years ago
Tristan B. V. Kildaire 1f8f248219 Added support for the ampersand operator 2 years ago
Tristan B. V. Kildaire 15a848756b Added support for binary/boolean operators in the unary and binary operator cases 2 years ago
Tristan B. V. Kildaire e9a60380b6 Pointer type now only requires you provide it the data type of the data being pointed to.
The name of the type will be automatically constructed as `dataType*` (if `dataType` was the type of the data being pointed to)
2 years ago
Tristan B. V. Kildaire 6412241185 Added a test case to test pointer handles 2 years ago
Tristan B. V. Kildaire 15826a2cab Updated test case to include a variable access 2 years ago
Tristan B. V. Kildaire cc2cdf2c30 Throw a parsing error when attempting to use anything but a +, * or - as a unary operator 2 years ago
Tristan B. V. Kildaire 250d4997e9 Added unit test for simple_function_call 2 years ago
Tristan B. V. Kildaire 2ed6a4834d Cleaned up 2 years ago
Tristan B. V. Kildaire c02a574ffa Updated test case to test new unary operator expression support 2 years ago
Tristan B. V. Kildaire aff0da5116 Added codegen/typecheck support for unary operator expressions 2 years ago
Tristan B. V. Kildaire 1b51d9923e Added support to the dependency tree generator for unary operator expressions 2 years ago
Tristan B. V. Kildaire ef9018db89 Added UnaryOperatorExpression (finished it) 2 years ago
Tristan B. V. Kildaire 1e202fe788 Added Unary Oprator Instruction 2 years ago
Tristan B. V. Kildaire 414d9de902 Updated test case 2 years ago
Tristan B. V. Kildaire cd54753359 cleaned up 2 years ago
Tristan B. V. Kildaire 190f64c0e8 cleaned up 2 years ago
Tristan B. V. Kildaire b5c4ca44ee Updated test case 2 years ago
Tristan B. V. Kildaire d79b9eee5c Debugging things 2 years ago
Tristan B. V. Kildaire 1841ca48d9 Recursively descnend upon function argument expressions 2 years ago
Tristan B. V. Kildaire c28a297064 Added toString() to FunctionCall that includes uniqueness number AND funciton's name 2 years ago
Tristan B. V. Kildaire 1b002382d5 BinaryOperatorExpressions are meant to evaluate to a value, they MUST be ValueInstructions 2 years ago
Tristan B. V. Kildaire ba63f85df9 Binary operator expressions now work 2 years ago
Tristan B. V. Kildaire 6222aabc8b Pop types off for Binary Operator typechecking 2 years ago
Tristan B. V. Kildaire de31585bcc Cleaned up 2 years ago
Tristan B. V. Kildaire 475983dd95 Cleaned up 2 years ago
Tristan B. V. Kildaire da9bc742e5 Constrain FuncCallInstr evaluation (for arguyments) to only being value-deriving instructions 2 years ago
Tristan B. V. Kildaire 492074119d Added sub-instructions to FuncCallInstr being built 2 years ago
Tristan B. V. Kildaire 3cac1b496d Fixed addInfo for FuncCallInstr instruction 2 years ago
Tristan B. V. Kildaire 18eba51144 Remove uneeded reversal code 2 years ago
Tristan B. V. Kildaire 4677cacdf1 I think it works now as the types are in the same order as instructions
So I guess that works
2 years ago
Tristan B. V. Kildaire 76f0d6e1a9 Changed `addType(Type)` to add types to the front of the type queue
Added `addTypeB(Type)` to add Types to the end of the type queue
2 years ago
Tristan B. V. Kildaire 4b53823d9c Added `isTypesEmpty()` 2 years ago
Tristan B. V. Kildaire abe72f45a7 WIP 2 years ago
Tristan B. V. Kildaire a84e0dfe20 Some stuff, working on getting function calls working 2 years ago
Tristan B. V. Kildaire 71efb7ae8f Fixed dependency generation for function call paremeters (expressions) 2 years ago
Tristan B. V. Kildaire aa5e82fe09 Added stub funccallinstr add to sotp segmentation fault on funciton calls being processed 2 years ago
Tristan B. V. Kildaire 5641c7f164 Added the ability to perform ONLY tokenization (lexing) 2 years ago
Tristan B. V. Kildaire b5488d5c92 Stuff 2 years ago
Tristan B. V. Kildaire 49de425e45 Static initialization for classes, including class memory allocation and then static variable (member) initialization has now been implemented for the code generator 3 years ago
Tristan B. V. Kildaire 3a32ecfea5 Or do it like that 3 years ago
Tristan B. V. Kildaire a45d2bc30b Variable's name is full path so resolve from the module 3 years ago
Tristan B. V. Kildaire 263bf5edb7 Bug fixed
Should not be parent of, but rather should be the class itself
3 years ago
Tristan B. V. Kildaire 3da50e9eab Got some sort of class allocator node created, now to re-order it by using Context to be able to know when the StaticVariableDeclaration is within class.
This then generates code to allocate space for the class, once done we can be assured the declarations (placed after it now) will be assigning to properly allocated space (paged and maped for example)
3 years ago
Tristan B. V. Kildaire cae3cfe88c Updated 3 years ago
Tristan B. V. Kildaire c58bf07bb1 WIP: Trying to get literal encoding working (but it is currently broken) 3 years ago
Tristan B. V. Kildaire 6ed33a8051 Done with work for today, good refactoring, now to work on class static initoialization.
Instance initialization and unique-ness, and same for Functions with their "FunctionData" will come later
3 years ago
Tristan B. V. Kildaire cb6fb5f86f Removed unused commented blocks of code 3 years ago
Tristan B. V. Kildaire 020847cb76 Added nested class static initialization to test case 3 years ago
Tristan B. V. Kildaire d74f8cb046 Updated test case 3 years ago
Tristan B. V. Kildaire 47edb41e17 Seems like generalised generalPass() is working 3 years ago
Tristan B. V. Kildaire 3eddf73b7b Added some stuff
FunctionData adding, some generation stuff, but reworking to make a general pass function
3 years ago
Tristan B. V. Kildaire 60f490d8e8 Refactored dependency tree generation code (and all related modules) to its own directory 3 years ago
Tristan B. V. Kildaire fffcc953ab Refactored Context class 3 years ago
Tristan B. V. Kildaire 7dd8f2df75 Updated test case 3 years ago
Tristan B. V. Kildaire f0b0f83c45 Added note to be used later 3 years ago
Tristan B. V. Kildaire c9997c60d0 Made public 3 years ago
Tristan B. V. Kildaire beaad7e7f1 Added the thing 3 years ago
Tristan B. V. Kildaire 6499abb616 Fixed up all other `getStatements()` for other Container types 3 years ago
Tristan B. V. 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 3 years ago
Tristan B. Kildaire 7fe3ea342c Added note on name resolution for correct stack offset mapping 3 years ago
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 3 years ago
Tristan B. Kildaire 3b36113a5b Added Context 3 years ago
Tristan B. Kildaire 8a8ddcee3a Added notes on ceogeneration 3 years ago
Tristan B. Kildaire b88943d2ed Fixed `pushVariable()` to ACTUALLY add to the stackOffsetMap 3 years ago
Tristan B. Kildaire bef0bced14 Addes some stub functions for writing of variables to the stack (code to generate it) 3 years ago
Tristan B. Kildaire 6c1dac5f2a On variable declaration maintain a mapping of offsets of variables on the stack 3 years ago
Tristan B. V. Kildaire fb927eeb17 Yesh 3 years ago
Tristan B. Kildaire 15416aa655 Fixed register generation for Rochard registers on x86_64 3 years ago
Tristan B. Kildaire 4df1aac54c Prevent segmentation faults for now by returning bogus register and bogus emit 3 years ago
Tristan B. Kildaire f75a3cfa5f Added missing register file initialization 3 years ago
Tristan B. Kildaire 90151a2af1 Basic register usage should now be here 3 years ago
Tristan B. Kildaire 94d3128efe Added missing implementation of `getUsableName()` 3 years ago
Tristan B. Kildaire 4dd7e281a2 Renamed method to implement 3 years ago
Tristan B. Kildaire 8bfbb2423c Set to abstract for Register 3 years ago
Tristan B. Kildaire 09233633a0 WIP: Register allocator 3 years ago
Tristan B. Kildaire 0352f96c16 Do not initialize stack variables 3 years ago
Tristan B. Kildaire 536206fdc5 Code emitter can now emit all variable sizes 3 years ago
Tristan B. Kildaire ff9890437d Working code emitter and doing some code gen with it too 3 years ago
Tristan B. Kildaire 2d46eb4458 Removed unused (old) type 3 years ago
Tristan B. V. Kildaire 3dba481260 Refactored code emitter sub-system 3 years ago
Tristan B. V. Kildaire 3d79531978 Removed emitter code from data.d 3 years ago
Tristan B. Kildaire ad5e26602f Removed unused method 3 years ago
Tristan B. Kildaire 7a78a4e5b1 Removed old cruft 3 years ago
Tristan B. Kildaire 12087b8fdf Removed old VTReeNode commented-out code 3 years ago
Tristan B. Kildaire 60b97f90aa Removed unused commented code 3 years ago
Tristan B. Kildaire 9987c46497 Re-enabled a unit test for the type checker 3 years ago
Tristan B. Kildaire 1731ae3299 Re-enabled a unit test for the type checker 3 years ago
Tristan B. Kildaire c8ccc71244 Re-enabled a unit test for the type checker 3 years ago
Tristan B. Kildaire bbd34a951a Re-enabled unit test for type checker 3 years ago
Tristan B. Kildaire 36f073fbff Re-enabled two unit tests for the type checker 3 years ago
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 3 years ago
Tristan B. V. Kildaire cf03601eec Removed unused field 3 years ago
Tristan B. V. Kildaire 8fed8fa4fb Removed unused methods for Statement 3 years ago
Tristan B. V. Kildaire 396ccdbc60 Moved token I/O statements toghether 3 years ago
Tristan B. V. Kildaire 7f29828081 Added negative test case 3 years ago
Tristan B. V. Kildaire 0081277fb1 Cleaned up typechecking (codegen) 3 years ago
Tristan B. V. 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)
3 years ago
Tristan B. V. Kildaire 47375cbec4 Beginning to work on weighting system 3 years ago
Tristan B. V. Kildaire 0bceb16373 Added toString for VariableAssignment 3 years ago
Tristan B. V. Kildaire a14f2a682d Added `getCodeQueue()` which will be used when code generation is complete (after typechecking) and we can then emit code from it 3 years ago
Tristan B. V. Kildaire 7ffbd6f50e Corrected instruction counter for printCodeQueue() 3 years ago
Tristan B. V. Kildaire 9613fcf81d Set the Operator type 3 years ago
Tristan B. V. Kildaire 975acc05a2 Added the following new SymbolTypes
SymbolType.ADD, SymbolType.MINUS, SymbolType.DIVIDE, SymbolType.STAR
3 years ago
Tristan B. V. Kildaire fcfde58b98 Fixed order of execution for AddInstr construction 3 years ago
Tristan B. V. Kildaire 5b70175de4 Added note TODO 3 years ago
Tristan B. V. Kildaire 6ac0f5fed7 AddInstr now shows both toString()'s of its LHS Value Instruction and its RHS Value Instruction 3 years ago
Tristan B. V. Kildaire 2b29a18328 FetchValueVar now shows information (in its toString) about what variable is being fetched and the length of it to read 3 years ago
Tristan B. V. Kildaire 86ee064af5 VariableAssignmentInstr now prints out the nested Instruction for obtaining its value of which will be assigned to the variable it specifies 3 years ago
Tristan B. V. Kildaire 569e53f803 This seems to work 3 years ago
Tristan B. V. Kildaire 129860fc37 WIP 3 years ago
Tristan B. V. Kildaire b9adbc6663 Yo, so I think I got this down 3 years ago
Tristan B. V. Kildaire 8bf3270de7 NumberLiteral now has its own custom toString 3 years ago
Tristan B. V. Kildaire a58c90d6cb Added some ideas for typechecking the action-list and then furthermore emitting code from it 3 years ago
Tristan B. V. Kildaire ceac4f0eaa Print out action-list items in initialization order 3 years ago
Tristan B. V. Kildaire 8833a14da9 Generate linearized action-list for code generation (and type-checking) 3 years ago
Tristan B. V. Kildaire d4ec91dc94 Added TODO to make the graph acyclic and THEN print it 3 years ago
Tristan B. V. Kildaire 0cd1812fa6 Removed comment 3 years ago
Tristan B. V. Kildaire 6e7bb365ed The generation of the tree is now called externally along with printing of the acyclic tree 3 years ago
Tristan B. Kildaire 6ceff9e54a Removed comment as it no longer applies (I have a working method for what I want to do already, just using visitations :)) 3 years ago
Tristan B. Kildaire 19119bbff6 Removed uneeded variables 3 years ago
Tristan B. Kildaire 2606764f84 Updated ExpressionDNode (dependency node) to use the Expression's toString to make indicating the TYPE of Expressionit contains 3 years ago
Tristan B. Kildaire 67b9fd1504 Added override for VariableExpression's toString method 3 years ago
Tristan B. Kildaire 1fb2b05826 Confirmed more intricate ones work 3 years ago
Tristan B. Kildaire b264ad2371 Fixed cast, which caused segfault later 3 years ago
Tristan B. Kildaire 7729ae6f94 Or not 3 years ago
Tristan B. Kildaire f71ad99b9c Seems to work 3 years ago
Tristan B. Kildaire 0cfcf2a5e6 Pretty sure that needs to be there 3 years ago
Tristan B. Kildaire 51b62fe89f Made error message specific such that whena variable is refercned that EXISTS but has not yet been declared and we can tell the clear difference between that and an entity completely not existing in the program (regardless of declaration order) 3 years ago
Tristan B. Kildaire 4d03416383 Updated error message on reference to variable that is yet to be declared 3 years ago
Tristan B. Kildaire de3ed93908 I guess 3 years ago
Tristan B. Kildaire 29e2f146af Added failing unit test
Added working unit test
3 years ago
Tristan B. Kildaire 88114f2ae0 Can confirm it orders variable declarations correctly 3 years ago
Tristan B. Kildaire dbf4667516 Removed comment
Added dependency addition
3 years ago
Tristan B. Kildaire eeba21edd9 Added note, I may want to move this 3 years ago
Tristan B. Kildaire 5a805b699b Hit a bit of a roadblock 3 years ago
Tristan B. Kildaire 1596bedc35 Bruh 3 years ago
Tristan B. Kildaire b1219c20d5 Working on variable declarations (simple) dependency generation (with assignments) 3 years ago
Tristan B. V. Kildaire c60e83832e All for today 3 years ago
Tristan B. Kildaire c721ca1d65 All for now, will clarify and think on it a little more later 3 years ago
Tristan B. Kildaire 8da430475b Will work on this a bit later, probably the weekend 3 years ago
Tristan B. Kildaire 59d325d691 WIP: Will work on more later, I know what must be done 3 years ago
Tristan B. Kildaire 8fc53fb837 Added mechanism that can be used in the future to indicate, given the Context, whether one can resolve upwards or only within (and hence down too) 3 years ago
Tristan B. Kildaire ab70e5ea3a WIP: Working on accessor dependeny generation for `new A().thing.thing` 3 years ago
Tristan B. Kildaire ff5f39c752 WIP 3 years ago
Tristan B. Kildaire 4a39dc97c5 Testing lexer 3 years ago
Tristan B. V. Kildaire 06dbf479ff Use ExpressionNode for now (get more specific later) 3 years ago
Tristan B. V. Kildaire cfabfdb8c4 Updated test case (works as expected) 3 years ago
Tristan B. V. Kildaire 9c445f2a52 Disabled uneeded code 3 years ago
Tristan B. V. Kildaire 193c2b285a WIP:Object initialization 3 years ago
Tristan B. V. Kildaire 52a00f4583 Updated test case 3 years ago
Tristan B. V. Kildaire f76b228114 Implemented use of Object initilization node 3 years ago
Tristan B. V. Kildaire 3c6270be04 Added Object initilization node 3 years ago
Tristan B. V. Kildaire 255f96511e WIP: Object initialization 3 years ago
Tristan B. V. Kildaire d6f15e2b86 Switched to using more specific DNodes for Variables 3 years ago
Tristan B. V. Kildaire 12b0a99d47 Added markings to show static 3 years ago
Tristan B. V. Kildaire 0b36d4304e Updated test case 3 years ago
Tristan B. V. Kildaire 548867fcb1 Added generic pooler using templating 3 years ago
Tristan B. V. Kildaire ba650f1ab7 Added ExpressionDNode 3 years ago
Tristan B. V. Kildaire c957845c66 Made `new` expression support more explicit to return a `NewExpression` with an embedded FunctionCall rather than a FunctionCall alone 3 years ago
Tristan B. V. Kildaire 8799ab9b85 FOund a parsing error that must be fixed to allow `new A().x` 3 years ago
Tristan B. V. Kildaire 8079167fa5 Going to refactor into this 3 years ago
Tristan B. V. Kildaire a2445607ba Reordered visitation marking of variable 3 years ago
Tristan B. V. Kildaire 758614b7fc Added Module Variable Delcration code 3 years ago
Tristan B. V. Kildaire 3548f1d5bb Removed undeeded prints 3 years ago
Tristan B. V. Kildaire 390a573b47 Use special ModuleVariableDeclaration DNode 3 years ago
Tristan B. V. Kildaire e8dfb61ab9 WIP: VariableNode base class 3 years ago
Tristan B. V. Kildaire 756b648420 Fixed segmentation fault 3 years ago