Official Tristan Language project compiler https://deavmi.assigned.network/projects/tlang
Go to file
Tristan B. Velloza Kildaire e919dcc8e4 DGen
- Removed the `varDecWantsConsumeVarAss` as it is not used anymore
- The transformation of the `VariableAssignmentInstr` instruction (which is generated by a corresponding `VariableStdAloneAss` parser node) does not check for `varDecWantsConsumeVarAss` anymore and will directly `transform(varAss.data)` (the embedded `Value` instruction in the `VariableAssignmentInstr`
- If a `VariableDeclaration` instruction has an assignment then we extract the `Value` instruction from it and perform a `transform(Value)` - no longer do we have an intermediary `VariableAssignmentInstr`

Instruction

- `VariableDeclaration` now uses a `Value`-based instruction rather than a `VariableAssignmentInstr` as the embedded `varAssInstr`

Dependency

- The creation of a `StaticVariableDeclaration` DNode for `Variable`-declarations that happen to have assignments will now process such assignments by pooling the expression being assigned (via `expressionPass()` and then make the `VarDecNode` depend on it, therefore removing the intermediary `VariableAssignmentNode` dependency-node

Typechecker/Codegen

- When processing a variable declaration (a `StaticVariableDeclaration` dependency-node) we now pop an instruction which would be directly the `Value`-based instruction that we `need()`'d in the dependency generation (this links up with the changes made to the dependency generation for variable declarations)
2023-02-04 12:41:30 +02:00
rando Fuck this is complicated (2/2) 2021-06-06 22:46:06 +02:00
source/tlang DGen 2023-02-04 12:41:30 +02:00
.gitignore .gitignore 2023-01-31 13:38:20 +02:00
README.md App 2022-12-14 19:49:08 +02:00
dub.json Commands 2023-01-26 16:32:55 +02:00
extern_test.sh Check 2023-01-28 18:12:49 +02:00
tets.d Added testing files 2021-11-02 15:14:03 +02:00
texterned.c - Added `texterned.c` for later extern testing 2023-01-19 17:52:46 +02:00
todo1.md I wonder if that worked 2021-06-07 14:27:36 +02:00

README.md

tlang

Official Tristan Language project compiler

Documentation

Docs are available here.

Building

To build you will need dmd and dub installed. You can then run the following:

dub test --coverage
dub build

The first command is optional but you want to make sure the compiler is working so you may as well run all the unit tests - it won't take too long.

Usage

A list of all commands can be found by typing in the following:

./tlang