Commit Graph

36 Commits

Author SHA1 Message Date
Tristan B. Velloza Kildaire 8a481fb0ac App
- Added newline to release info print
- Fixed module docstring

Commands

- Added new command-line options: `syntaxcheck`, `typecheck`
- Added todo to `help` command
- Re-ordered commands for order of appearance in help text

Compiler

- Added docstring to `beginCompilation(string[])` function

Mapper

- Added debug print of the Container being used for the symbol lookup

CodeEmitter

- Re-worked CodeEmitter class to use a single so-called "selected queue"
- Added methods to move back and forth between said "selected queue", get the length, etc.
- Remove old queue-specific methods

DGen

- Use the new CodeEmitter "selected-queue" functionality
- Emit function definitions now supported

Exceptions

- Added this keyword

Check

- Added support for SymbolTYpe.OCURLY and SymbolType.CCURLY to `getCharacter(SymbolType)`

Data

- Added a `hasParams()` method to the Function entity type

TypeChecker

- Added support for emitting function definitions (required DNode.poes = [] (cleaning), codeQueue cleaning etc.)
- Added `getInitQueue()` method to make a copy of the current "scratchpad" `codeQueue`
- Build up a copy of the global queue now (make a copy similiar to what we did for `getInitQueue()` but inline)
- Added a debug print

Dependency

- Added a FIXME note for issue #46
- Added a TODO relating to `static DNode[] poes`

Test cases

- Added test case `simple_function_decls.t` to test function definition code emit
- Updated test case `simple_variables.t` to note that the T code generates invalid C code

README

- Build instructions now generate coverage files (`.lst`s)
- Updated link to documentation
2022-12-14 19:49:08 +02:00
Tristan B. Velloza Kildaire 5364380e7c DGen
- Removed redundant imports

Dependency

- Set the context for the `VariableAssignmentStdAlone` entity
- Removed words that show I have the mental maturity of a 12 year old

----

 Test cases

 - Updated `simple_variables_decls_ass.t`
 - Updated `simples_variables.t`
2022-12-13 09:43:31 +02:00
Tristan B. Velloza Kildaire 50728d02d3 Dependency
- VariableAssignment entity now has its Context object set to the current Context (of the Variable being declared) (so this is a declare assignment case only (so far)) (fixes #36)

TypeChecker

- Extract the Context object from the VariableAssignment entity and then set it as the Context for the VariableAssigmnetInstr instruction (fixes #36)

VariableAssigmnentInstr

- The `emit()` method will now emit the assignment code

Check

- Added `getCharacter(SymbolType)` which maps a SymbolType to a maths operator (WIP)
2022-12-12 13:12:03 +02:00
Tristan B. Velloza Kildaire 42fac8020a Context
- Added static field for a TypeChecker instance

TypeChecker

- Set the static field of `Context` class to hold a reference to the TypeChecker instance
2022-12-11 18:18:50 +02:00
Tristan B. Velloza 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
2022-10-15 17:15:03 +02:00
Tristan B. Velloza Kildaire cbe40e7184 Formatted code 2022-10-15 16:55:10 +02:00
Tristan B. Velloza Kildaire f4311b8e67 Added note for something to work on 2022-10-15 16:48:57 +02:00
Tristan B. Velloza Kildaire 3c65af06a0 Added note 2022-10-14 21:16:33 +02:00
Tristan B. Velloza 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) 2022-10-14 20:44:33 +02:00
Tristan B. Velloza Kildaire b30b6e0fe0 Disabled generation of unused Context object 2022-10-14 20:13:10 +02:00
Tristan B. Velloza Kildaire 86905da623 Added TODO 2022-10-14 20:12:28 +02:00
Tristan B. Velloza Kildaire 2031a4645c Context should just be the same one passed in as we are not changing really. 2022-10-14 20:10:57 +02:00
Tristan B. Velloza Kildaire c85aba1f56 WIP 2022-10-14 19:58:33 +02:00
Tristan B. Velloza 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)
2022-10-14 18:45:44 +02:00
Tristan B. Velloza Kildaire 0c104440ae Freeze for now 2022-10-14 18:01:35 +02:00
Tristan B. Velloza 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 2022-10-13 18:35:25 +02:00
Tristan B. Velloza 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().
2022-10-13 18:32:33 +02:00
Tristan B. Velloza Kildaire 2d58d5f0d7 WIP: Full path dependency evaluation 2022-10-13 18:29:30 +02:00
Tristan B. Velloza Kildaire 4b36623861 Added Gitea issue note 2022-10-13 13:45:39 +02:00
Tristan B. Velloza Kildaire 96d8f0face WIP: Found a fix for context lookup failure 2022-10-13 13:21:35 +02:00
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 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 250d4997e9 Added unit test for simple_function_call 2022-04-12 11:12:02 +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 190f64c0e8 cleaned up 2022-04-08 01:15:31 +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 71efb7ae8f Fixed dependency generation for function call paremeters (expressions) 2022-02-16 07:31:22 +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 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