Commit Graph

790 Commits

Author SHA1 Message Date
Tristan B. Velloza Kildaire e2e356da73 Added FIXME note 2022-10-01 21:02:51 +02:00
Tristan B. Velloza Kildaire 81f168e154 Removed unused commented-out code 2022-10-01 20:58:34 +02:00
Tristan B. Velloza Kildaire 69572ff02c Removed unused method (older method before generalPass()) 2022-10-01 20:56:42 +02:00
Tristan B. Velloza 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
2022-10-01 20:55:08 +02:00
Tristan B. Velloza 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)
2022-10-01 20:54:50 +02:00
Tristan B. Velloza Kildaire 77708b65be WIP: Linerization (typechecking and code generation) for defined functions 2022-10-01 16:35:23 +02:00
Tristan B. Velloza Kildaire e810f762bc Added while loop test case 2022-10-01 16:09:26 +02:00
Tristan B. Velloza Kildaire 5444bd55e8 Added support for comparators to parser 2022-10-01 16:08:21 +02:00
Tristan B. Velloza Kildaire 200149efdf Cleaned up core.d unittest 2022-10-01 15:39:26 +02:00
Tristan B. Velloza Kildaire c1efb0c819 Added unit test to test floating point empty string test in lexer 2022-10-01 15:26:13 +02:00
Tristan B. Velloza Kildaire 3fccf2fa5a Removed debug print 2022-09-29 22:44:48 +02:00
Tristan B. Velloza 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.
2022-09-27 09:29:01 +02:00
Tristan B. Velloza Kildaire 3d54c4deee Removed assertions which are guaranteed to pass now (since the last fix of 449e878796) 2022-09-18 21:54:31 +02:00
Tristan B. Velloza 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.
2022-09-18 21:52:11 +02:00
Tristan B. Velloza Kildaire aae5dbabe8 Fixed compilation issue with jcli
Upgraded jcli
2022-08-23 16:33:49 +02:00
Tristan B. Velloza Kildaire a8f93e5817 Cleaned up comments for number literal code gen and type checking handling 2022-08-19 11:42:19 +02:00
Tristan B. Velloza 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
2022-08-11 10:26:30 +02:00
Tristan B. Velloza Kildaire 2dbe14b490 WIP: Floating pooint literal/constant support 2022-07-26 11:16:51 +02:00
Tristan B. Velloza Kildaire f49b0ce2b9 Added floating point constants to test 2022-07-26 10:34:53 +02:00
Tristan B. Velloza Kildaire c561060470 Added float and double types to builtin types
Added floating point test case
2022-07-26 10:27:55 +02:00
Tristan B. Velloza Kildaire e8ddb62152 Removed Double type
Refactored Float type
2022-07-26 10:27:12 +02:00
Tristan B. Velloza Kildaire f64c067184 Updated simple_string.t test 2022-07-26 10:12:35 +02:00
Tristan B. Velloza Kildaire 4488678d3e Code cleanup 2022-07-26 10:10:43 +02:00
Tristan B. Velloza Kildaire 18411c48c4 Removed TODO 2022-07-26 10:07:03 +02:00
Tristan B. Velloza Kildaire c8347fefba Updated simple_string.t to include string constants (literals) that test interning to the same pool ID 2022-07-26 09:59:59 +02:00
Tristan B. Velloza Kildaire d19512668a Pass StringLiteral instruction extracted string literal from StringExpression synmbol
Removed TODO
2022-07-26 09:59:27 +02:00
Tristan B. Velloza Kildaire e2157f428c Implemented `getStringLiteral()` for StringExpression symbol type 2022-07-26 09:58:45 +02:00
Tristan B. Velloza Kildaire 7e9e303a1c Implemented StringLiteral Value-kind-of instruction with string interning 2022-07-26 09:58:25 +02:00
Tristan B. Velloza Kildaire f9a8590604 Array type handling added to builtin-types handling 2022-07-26 09:57:57 +02:00
Tristan B. Velloza Kildaire e0feaac953 Added new test case 2022-07-25 19:34:57 +02:00
Tristan B. Velloza Kildaire 6cfca2cea2 Added `addInstr()` for StringExpression handling (String literals)
Bug fixed whenever a "" is encountered
2022-07-25 19:30:40 +02:00
Tristan B. Velloza Kildaire 415538f54a Added StringLiteral instruction 2022-07-25 19:30:07 +02:00
Tristan B. Velloza 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(...)) 2022-07-25 19:15:27 +02:00
Tristan B. Velloza Kildaire 88a48e1b3d FuncDecNode for the Dependecny Tree Generator added 2022-04-13 09:51:38 +02:00
Tristan B. Velloza Kildaire 35d71a0c25 WIP: FunctionHandle (reference to a funciton's name (NOT a FuncCall)) support (context may not be entirely right) 2022-04-13 09:51:23 +02:00
Tristan B. Velloza Kildaire f571115c23 Added some possible todos, might not need to do any of them but I also might 2022-04-13 09:50:24 +02:00
Tristan B. Velloza Kildaire 1322c0f790 BinaryOperatorExpression now has a proper toString() 2022-04-13 09:49:42 +02:00
Tristan B. Velloza Kildaire 1f8f248219 Added support for the ampersand operator 2022-04-13 09:49:20 +02:00
Tristan B. Velloza Kildaire 15a848756b Added support for binary/boolean operators in the unary and binary operator cases 2022-04-13 09:45:06 +02:00
Tristan B. Velloza 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)
2022-04-13 09:35:46 +02:00
Tristan B. Velloza Kildaire 6412241185 Added a test case to test pointer handles 2022-04-12 16:17:40 +02:00
Tristan B. Velloza Kildaire 15826a2cab Updated test case to include a variable access 2022-04-12 16:17:29 +02:00
Tristan B. Velloza Kildaire cc2cdf2c30 Throw a parsing error when attempting to use anything but a +, * or - as a unary operator 2022-04-12 13:03:40 +02:00
Tristan B. Velloza Kildaire 250d4997e9 Added unit test for simple_function_call 2022-04-12 11:12:02 +02:00
Tristan B. Velloza Kildaire 2ed6a4834d Cleaned up 2022-04-12 11:11:54 +02:00
Tristan B. Velloza Kildaire c02a574ffa Updated test case to test new unary operator expression support 2022-04-12 10:54:12 +02:00
Tristan B. Velloza Kildaire aff0da5116 Added codegen/typecheck support for unary operator expressions 2022-04-12 10:54:04 +02:00
Tristan B. Velloza Kildaire 1b51d9923e Added support to the dependency tree generator for unary operator expressions 2022-04-12 10:53:44 +02:00
Tristan B. Velloza Kildaire ef9018db89 Added UnaryOperatorExpression (finished it) 2022-04-12 10:53:17 +02:00
Tristan B. Velloza Kildaire 1e202fe788 Added Unary Oprator Instruction 2022-04-12 10:52:18 +02:00
Tristan B. Velloza Kildaire 414d9de902 Updated test case 2022-04-08 01:18:57 +02:00
Tristan B. Velloza Kildaire cd54753359 cleaned up 2022-04-08 01:18:12 +02:00
Tristan B. Velloza Kildaire 190f64c0e8 cleaned up 2022-04-08 01:15:31 +02:00
Tristan B. Velloza Kildaire b5c4ca44ee Updated test case 2022-04-08 01:12:55 +02:00
Tristan B. Velloza Kildaire d79b9eee5c Debugging things 2022-04-08 01:12:52 +02:00
Tristan B. Velloza Kildaire 1841ca48d9 Recursively descnend upon function argument expressions 2022-04-08 01:12:34 +02:00
Tristan B. Velloza Kildaire c28a297064 Added toString() to FunctionCall that includes uniqueness number AND funciton's name 2022-04-08 01:08:57 +02:00
Tristan B. Velloza Kildaire 1b002382d5 BinaryOperatorExpressions are meant to evaluate to a value, they MUST be ValueInstructions 2022-04-08 00:34:50 +02:00
Tristan B. Velloza Kildaire ba63f85df9 Binary operator expressions now work 2022-02-20 16:37:45 +02:00
Tristan B. Velloza Kildaire 6222aabc8b Pop types off for Binary Operator typechecking 2022-02-20 16:21:29 +02:00
Tristan B. Velloza Kildaire de31585bcc Cleaned up 2022-02-20 16:05:15 +02:00
Tristan B. Velloza Kildaire 475983dd95 Cleaned up 2022-02-20 16:04:53 +02:00
Tristan B. Velloza Kildaire da9bc742e5 Constrain FuncCallInstr evaluation (for arguyments) to only being value-deriving instructions 2022-02-20 15:36:22 +02:00
Tristan B. Velloza Kildaire 492074119d Added sub-instructions to FuncCallInstr being built 2022-02-20 15:35:34 +02:00
Tristan B. Velloza Kildaire 3cac1b496d Fixed addInfo for FuncCallInstr instruction 2022-02-20 15:35:18 +02:00
Tristan B. Velloza Kildaire 18eba51144 Remove uneeded reversal code 2022-02-20 14:28:31 +02:00
Tristan B. Velloza Kildaire 4677cacdf1 I think it works now as the types are in the same order as instructions
So I guess that works
2022-02-20 14:27:56 +02:00
Tristan B. Velloza 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
2022-02-20 14:24:05 +02:00
Tristan B. Velloza Kildaire 4b53823d9c Added `isTypesEmpty()` 2022-02-20 12:09:10 +02:00
Tristan B. Velloza Kildaire abe72f45a7 WIP 2022-02-19 11:54:00 +02:00
Tristan B. Velloza Kildaire a84e0dfe20 Some stuff, working on getting function calls working 2022-02-18 14:32:45 +02:00
Tristan B. Velloza Kildaire 71efb7ae8f Fixed dependency generation for function call paremeters (expressions) 2022-02-16 07:31:22 +02:00
Tristan B. Velloza Kildaire aa5e82fe09 Added stub funccallinstr add to sotp segmentation fault on funciton calls being processed 2022-02-15 15:04:16 +02:00
Tristan B. Velloza Kildaire 5641c7f164 Added the ability to perform ONLY tokenization (lexing) 2022-01-20 10:54:21 +02:00
Tristan B. Velloza Kildaire b5488d5c92 Stuff 2022-01-20 10:43:12 +02:00
Tristan B. Velloza Kildaire 49de425e45 Static initialization for classes, including class memory allocation and then static variable (member) initialization has now been implemented for the code generator 2021-11-11 12:48:49 +02:00
Tristan B. Velloza Kildaire 3a32ecfea5 Or do it like that 2021-11-11 12:31:42 +02:00
Tristan B. Velloza Kildaire a45d2bc30b Variable's name is full path so resolve from the module 2021-11-11 12:30:40 +02:00
Tristan B. Velloza Kildaire 263bf5edb7 Bug fixed
Should not be parent of, but rather should be the class itself
2021-11-11 10:07:25 +02:00
Tristan B. Velloza 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)
2021-11-10 17:15:27 +02:00
Tristan B. Velloza Kildaire cae3cfe88c Updated 2021-11-10 17:01:17 +02:00
Tristan B. Velloza Kildaire c58bf07bb1 WIP: Trying to get literal encoding working (but it is currently broken) 2021-11-10 17:01:12 +02:00
Tristan B. Velloza 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
2021-11-10 17:00:56 +02:00
Tristan B. Velloza Kildaire cb6fb5f86f Removed unused commented blocks of code 2021-11-10 16:45:08 +02:00
Tristan B. Velloza Kildaire 020847cb76 Added nested class static initialization to test case 2021-11-10 16:44:46 +02:00
Tristan B. Velloza Kildaire d74f8cb046 Updated test case 2021-11-10 16:42:54 +02:00
Tristan B. Velloza Kildaire 47edb41e17 Seems like generalised generalPass() is working 2021-11-10 16:42:15 +02:00
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 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
Tristan B. Velloza Kildaire a14f2a682d Added `getCodeQueue()` which will be used when code generation is complete (after typechecking) and we can then emit code from it 2021-10-27 09:51:13 +02:00
Tristan B. Velloza Kildaire 7ffbd6f50e Corrected instruction counter for printCodeQueue() 2021-10-27 09:25:11 +02:00
Tristan B. Velloza Kildaire 9613fcf81d Set the Operator type 2021-10-26 22:03:48 +02:00
Tristan B. Velloza Kildaire 975acc05a2 Added the following new SymbolTypes
SymbolType.ADD, SymbolType.MINUS, SymbolType.DIVIDE, SymbolType.STAR
2021-10-26 21:35:39 +02:00
Tristan B. Velloza Kildaire fcfde58b98 Fixed order of execution for AddInstr construction 2021-10-26 21:15:26 +02:00
Tristan B. Velloza Kildaire 5b70175de4 Added note TODO 2021-10-26 21:04:47 +02:00
Tristan B. Velloza Kildaire 6ac0f5fed7 AddInstr now shows both toString()'s of its LHS Value Instruction and its RHS Value Instruction 2021-10-26 20:58:42 +02:00
Tristan B. Velloza Kildaire 2b29a18328 FetchValueVar now shows information (in its toString) about what variable is being fetched and the length of it to read 2021-10-26 20:44:10 +02:00
Tristan B. Velloza Kildaire 86ee064af5 VariableAssignmentInstr now prints out the nested Instruction for obtaining its value of which will be assigned to the variable it specifies 2021-10-26 20:36:39 +02:00
Tristan B. Velloza Kildaire 569e53f803 This seems to work 2021-10-26 20:32:47 +02:00
Tristan B. Velloza Kildaire 129860fc37 WIP 2021-10-26 17:17:53 +02:00
Tristan B. Velloza Kildaire b9adbc6663 Yo, so I think I got this down 2021-10-25 22:31:07 +02:00
Tristan B. Velloza Kildaire 8bf3270de7 NumberLiteral now has its own custom toString 2021-10-25 20:49:58 +02:00
Tristan B. Velloza Kildaire a58c90d6cb Added some ideas for typechecking the action-list and then furthermore emitting code from it 2021-10-25 17:03:36 +02:00
Tristan B. Velloza Kildaire ceac4f0eaa Print out action-list items in initialization order 2021-10-25 16:55:43 +02:00
Tristan B. Velloza Kildaire 8833a14da9 Generate linearized action-list for code generation (and type-checking) 2021-10-25 16:54:06 +02:00
Tristan B. Velloza Kildaire d4ec91dc94 Added TODO to make the graph acyclic and THEN print it 2021-08-15 22:33:22 +02:00
Tristan B. Velloza Kildaire 0cd1812fa6 Removed comment 2021-08-15 22:23:31 +02:00
Tristan B. Velloza Kildaire 6e7bb365ed The generation of the tree is now called externally along with printing of the acyclic tree 2021-08-15 22:23:17 +02:00
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 :)) 2021-08-12 15:45:42 +02:00
Tristan B. Kildaire 19119bbff6 Removed uneeded variables 2021-08-12 15:42:39 +02:00
Tristan B. Kildaire 2606764f84 Updated ExpressionDNode (dependency node) to use the Expression's toString to make indicating the TYPE of Expressionit contains 2021-08-12 15:42:22 +02:00
Tristan B. Kildaire 67b9fd1504 Added override for VariableExpression's toString method 2021-08-12 15:41:56 +02:00
Tristan B. Kildaire 1fb2b05826 Confirmed more intricate ones work 2021-08-12 15:32:09 +02:00
Tristan B. Kildaire b264ad2371 Fixed cast, which caused segfault later 2021-08-12 15:26:26 +02:00
Tristan B. Kildaire 7729ae6f94 Or not 2021-08-12 15:23:05 +02:00
Tristan B. Kildaire f71ad99b9c Seems to work 2021-08-12 15:22:50 +02:00
Tristan B. Kildaire 0cfcf2a5e6 Pretty sure that needs to be there 2021-08-12 15:21:59 +02:00
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) 2021-08-12 15:18:52 +02:00
Tristan B. Kildaire 4d03416383 Updated error message on reference to variable that is yet to be declared 2021-08-12 15:17:42 +02:00
Tristan B. Kildaire de3ed93908 I guess 2021-08-12 15:16:52 +02:00
Tristan B. Kildaire 29e2f146af Added failing unit test
Added working unit test
2021-08-12 15:15:34 +02:00
Tristan B. Kildaire 88114f2ae0 Can confirm it orders variable declarations correctly 2021-08-12 15:14:25 +02:00
Tristan B. Kildaire dbf4667516 Removed comment
Added dependency addition
2021-08-12 15:13:36 +02:00
Tristan B. Kildaire eeba21edd9 Added note, I may want to move this 2021-08-12 15:12:26 +02:00
Tristan B. Kildaire 5a805b699b Hit a bit of a roadblock 2021-08-12 15:03:56 +02:00
Tristan B. Kildaire 1596bedc35 Bruh 2021-08-12 14:19:53 +02:00
Tristan B. Kildaire b1219c20d5 Working on variable declarations (simple) dependency generation (with assignments) 2021-08-12 14:16:32 +02:00
Tristan B. Velloza Kildaire c60e83832e All for today 2021-08-11 23:33:53 +02:00
Tristan B. Kildaire c721ca1d65 All for now, will clarify and think on it a little more later 2021-08-11 18:46:25 +02:00
Tristan B. Kildaire 8da430475b Will work on this a bit later, probably the weekend 2021-08-11 18:44:32 +02:00
Tristan B. Kildaire 59d325d691 WIP: Will work on more later, I know what must be done 2021-08-11 18:27:34 +02:00
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) 2021-08-11 18:24:18 +02:00
Tristan B. Kildaire ab70e5ea3a WIP: Working on accessor dependeny generation for `new A().thing.thing` 2021-08-11 18:19:28 +02:00
Tristan B. Kildaire ff5f39c752 WIP 2021-08-11 17:33:16 +02:00
Tristan B. Kildaire 4a39dc97c5 Testing lexer 2021-08-11 17:28:26 +02:00
Tristan B. Velloza Kildaire 06dbf479ff Use ExpressionNode for now (get more specific later) 2021-06-15 18:06:55 +02:00
Tristan B. Velloza Kildaire cfabfdb8c4 Updated test case (works as expected) 2021-06-15 16:23:59 +02:00
Tristan B. Velloza Kildaire 9c445f2a52 Disabled uneeded code 2021-06-15 16:23:53 +02:00
Tristan B. Velloza Kildaire 193c2b285a WIP:Object initialization 2021-06-15 15:45:31 +02:00
Tristan B. Velloza Kildaire 52a00f4583 Updated test case 2021-06-15 15:35:24 +02:00
Tristan B. Velloza Kildaire f76b228114 Implemented use of Object initilization node 2021-06-15 15:35:20 +02:00
Tristan B. Velloza Kildaire 3c6270be04 Added Object initilization node 2021-06-15 15:35:12 +02:00
Tristan B. Velloza Kildaire 255f96511e WIP: Object initialization 2021-06-15 15:25:11 +02:00
Tristan B. Velloza Kildaire d6f15e2b86 Switched to using more specific DNodes for Variables 2021-06-15 15:04:15 +02:00
Tristan B. Velloza Kildaire 12b0a99d47 Added markings to show static 2021-06-15 15:04:05 +02:00
Tristan B. Velloza Kildaire 0b36d4304e Updated test case 2021-06-15 15:00:19 +02:00
Tristan B. Velloza Kildaire 548867fcb1 Added generic pooler using templating 2021-06-15 14:56:40 +02:00
Tristan B. Velloza Kildaire ba650f1ab7 Added ExpressionDNode 2021-06-15 14:48:44 +02:00
Tristan B. Velloza Kildaire c957845c66 Made `new` expression support more explicit to return a `NewExpression` with an embedded FunctionCall rather than a FunctionCall alone 2021-06-15 14:27:32 +02:00
Tristan B. Velloza Kildaire 8799ab9b85 FOund a parsing error that must be fixed to allow `new A().x` 2021-06-15 13:29:04 +02:00
Tristan B. Velloza Kildaire 8079167fa5 Going to refactor into this 2021-06-15 13:12:27 +02:00
Tristan B. Velloza Kildaire a2445607ba Reordered visitation marking of variable 2021-06-15 13:07:11 +02:00
Tristan B. Velloza Kildaire 758614b7fc Added Module Variable Delcration code 2021-06-15 13:05:26 +02:00