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