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
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
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
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
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
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
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
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
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
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
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
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
b264ad2371
Fixed cast, which caused segfault later
2021-08-12 15:26:26 +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
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. Velloza Kildaire
06dbf479ff
Use ExpressionNode for now (get more specific later)
2021-06-15 18:06:55 +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
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
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
Tristan B. Velloza Kildaire
3548f1d5bb
Removed undeeded prints
2021-06-15 12:54:05 +02:00
Tristan B. Velloza Kildaire
390a573b47
Use special ModuleVariableDeclaration DNode
2021-06-15 12:53:39 +02:00
Tristan B. Velloza Kildaire
e8dfb61ab9
WIP: VariableNode base class
2021-06-15 12:44:43 +02:00
Tristan B. Velloza Kildaire
756b648420
Fixed segmentation fault
2021-06-15 12:44:37 +02:00
Tristan B. Velloza Kildaire
075c175d3e
Implemented `getName()` temporarily to make tree print-out work
2021-06-15 11:25:04 +02:00
Tristan B. Velloza Kildaire
998a2dd577
Refactored into directory for class-related types
2021-06-15 11:23:22 +02:00
Tristan B. Velloza Kildaire
b807718fad
Make fields protected
2021-06-15 11:23:08 +02:00
Tristan B. Velloza Kildaire
350ff14586
WIP: Expression dependencies
2021-06-15 11:15:08 +02:00
Tristan B. Velloza Kildaire
2b2f119fdc
Support for previous commit
2021-06-15 11:10:58 +02:00
Tristan B. Velloza Kildaire
8b1e1c1db5
Associate variable's and their assignment statements bidirectionally
2021-06-15 11:10:50 +02:00
Tristan B. Velloza Kildaire
750ec6605c
WIP: Expression dependency generation
2021-06-15 10:51:40 +02:00
Tristan B. Velloza Kildaire
8e2f7032ad
Added getters and setters for left-hand and right-hand expressions of BinaryOperatorExpression
2021-06-15 10:49:19 +02:00
Tristan B. Velloza Kildaire
c6d0d762e8
Store the left-hand and right-hand expressions for BinaryOperatorExpression
2021-06-15 10:48:01 +02:00
Tristan B. Kildaire
c8ae0e7ae4
Back to where we were last night now
2021-06-09 21:14:48 +02:00
Tristan B. Kildaire
f22df86e39
Damn I spent time making ascii art
2021-06-09 20:47:52 +02:00
Tristan B. Kildaire
54a1b8f247
Introduce new marking, `completed`, means that it has visited during psot-processing
2021-06-09 20:35:17 +02:00
Tristan B. Kildaire
687cf6c92c
Fixed visitation loop detection algorithmn
2021-06-09 20:19:26 +02:00
Tristan B. Kildaire
1b5c783b75
If the class has not been visited then set it as such and return immediately
2021-06-09 20:10:47 +02:00
Tristan B. Kildaire
01684f785e
Use `getType()` instead for resolving types
2021-06-09 20:07:39 +02:00
Tristan B. Kildaire
2ebf2c13cf
Use `getType` instead
2021-06-09 20:07:23 +02:00
Tristan B. Kildaire
7cdd7bc57f
Make variable declarations at the module-level that use class-types depend on their static initialization
2021-06-09 19:54:22 +02:00
Tristan B. Kildaire
3ba469c481
Re-enabled printing of dependency tree
2021-06-09 19:53:04 +02:00
Tristan B. Kildaire
8cdd414dab
Only initialize the parent Container if it is of type Clazz
2021-06-09 19:52:32 +02:00
Tristan B. Kildaire
392fae8088
Debugging segmentation fault now
2021-06-09 19:51:39 +02:00
Tristan B. Kildaire
653495b324
Disabled code generation (for now)
2021-06-09 19:49:49 +02:00
Tristan B. Kildaire
de6687de24
New direction
...
We need to do what we did with data structures for parsing for type checking (dependency checking).
We have pooling sorted now, but we must actually create our own initializer sub-types from DNode (non static vs static class init for example)
2021-06-09 19:45:57 +02:00
Tristan B. Kildaire
695354d4b6
Trashed old code
2021-06-09 18:22:07 +02:00
Tristan B. Kildaire
cbaca17d96
I want to rework the whole thing
2021-06-09 18:20:50 +02:00
Tristan B. Kildaire
6d19bd9b44
TODO added
2021-06-09 17:44:21 +02:00
Tristan B. Kildaire
48c7e9c681
Trying to reduce duplicate code for variable declaration checking
2021-06-09 13:08:55 +02:00
Tristan B. Kildaire
fb5de13895
Fixed bug whereby the semicolon after a `discard`'s expression was not expected and neither consumed
2021-06-09 12:57:43 +02:00
Tristan B. Kildaire
dc162e7b03
Added support for discard statement
2021-06-09 12:55:59 +02:00
Tristan B. Kildaire
55b256565c
Added support for `new` operator in expression parsing (not yet as a statement)
2021-06-09 12:44:26 +02:00
Tristan B. Kildaire
c24b19bc0a
Added `new` keyword
2021-06-09 12:43:59 +02:00
Tristan B. Velloza Kildaire
5e20c97d1a
Fixed bug whereby the Module (top-level and base case (should be, is NOW)) was checked for a container (which would always be null), don't do this for Module's
...
We START at Modules
2021-06-09 12:28:38 +02:00
Tristan B. Velloza Kildaire
8c3a92ac4c
Bug found and fixed, introduces bug globally now but that is an easy fix.
2021-06-09 12:24:19 +02:00
Tristan B. Velloza Kildaire
8473b2e836
Formatted
2021-06-09 11:23:56 +02:00
Tristan B. Velloza Kildaire
51b113f734
Remove uneeded check (unit tests pass)
2021-06-08 13:26:19 +02:00
Tristan B. Velloza Kildaire
52e904495e
WIP: BIg to fix with Module
2021-06-08 13:20:50 +02:00
Tristan B. Velloza Kildaire
9b2468144b
Ensure they are variables
...
Added variable to myClass1.myClass1_1 as `entity` and code to the unit test to test it
2021-06-08 13:03:46 +02:00
Tristan B. Velloza Kildaire
8feb055c86
Cleaned up
2021-06-08 13:00:21 +02:00
Tristan B. Velloza Kildaire
1e46615f81
Vice-versa of the above should not be true (unit test passes)
2021-06-08 12:58:36 +02:00