summaryrefslogtreecommitdiff
path: root/spec/compiler
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2021-04-30 14:06:58 -0400
committerKyle Gunger <kgunger12@gmail.com>2021-04-30 14:06:58 -0400
commitc625ed1cfe7f7ea4ab2a75a8a0a6a6772f86431c (patch)
tree55aab8a27a6cd3b0a979002afa6899a4bda94b74 /spec/compiler
parent60f7c4f7272079e635010e464d8ce3a3a427f97f (diff)
Destroy my own code by using goto
Diffstat (limited to 'spec/compiler')
-rw-r--r--spec/compiler/compiler.txt9
-rw-r--r--spec/compiler/pre-processor.txt6
2 files changed, 12 insertions, 3 deletions
diff --git a/spec/compiler/compiler.txt b/spec/compiler/compiler.txt
index dbc64c0..df7a591 100644
--- a/spec/compiler/compiler.txt
+++ b/spec/compiler/compiler.txt
@@ -10,9 +10,14 @@ in their own file.
2) Validation
- 2a) The expander - expands pre-processor commands and macrosoperations
+ 2a) The expander - expands pre-processor commands and macro operations
2b) The validator - checks all requirements for all functions and expressions are valid
3) Translation
- 3a) ??? \ No newline at end of file
+ 3a) Variable resolver - chooses and creates an internal model of where variables are on the stack, as well as calling conventions for functions
+ 3b) Type translator - places and translates types (internal and external)
+ 3c) Container resolver - checks container (elf, exe, dll, app, out, etc.) and decides how to map the types for future linking
+ 3d) Final translation - translates all logic and expressions into native binary code
+ 3e) Optimization
+ 3f) Container Writer - writes the final output of the previous steps into the specified container
diff --git a/spec/compiler/pre-processor.txt b/spec/compiler/pre-processor.txt
index 3203ff8..8297e7d 100644
--- a/spec/compiler/pre-processor.txt
+++ b/spec/compiler/pre-processor.txt
@@ -2,4 +2,8 @@ A set of components in the compiler (all before the translator) which expand,
resolve, and validate pre-processor directives into code which can be compiled
Consists of the resolver in the parsor.
-The expander and part of the indexer in the validator. \ No newline at end of file
+The expander and part of the indexer in the validator.
+
+Special (compiler specififc) definitions can be added with _<compiler>_<variable name>
+
+E.X. if the official implementation wanted to provide the exact time of the compilation, it could use _TNSLC_TIME_NOW for instance \ No newline at end of file