From c625ed1cfe7f7ea4ab2a75a8a0a6a6772f86431c Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Fri, 30 Apr 2021 14:06:58 -0400 Subject: Destroy my own code by using goto --- spec/compiler/compiler.txt | 9 +++++++-- spec/compiler/pre-processor.txt | 6 +++++- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'spec/compiler') 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 __ + +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 -- cgit v1.2.3