aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2019-03-02 00:40:08 +0100
committerdec05eba <dec05eba@protonmail.com>2020-07-25 14:36:46 +0200
commit00ab5c3488c02beab5c3f4e371f5196404334e3c (patch)
tree51179376d5ff4754f0ddc6366b8b56d57a12c334 /doc
parent971e0015e2d2008a5bc87e77894327c14c01b253 (diff)
Fix crash in parser import, optimize tokenizer_consume_if to not reparse if already parsed
Diffstat (limited to 'doc')
-rw-r--r--doc/IMPLEMENTATION.md2
1 files changed, 2 insertions, 0 deletions
diff --git a/doc/IMPLEMENTATION.md b/doc/IMPLEMENTATION.md
index 1d86297..0da1c1a 100644
--- a/doc/IMPLEMENTATION.md
+++ b/doc/IMPLEMENTATION.md
@@ -1,5 +1,7 @@
# Goal
1. In the first stage the parser parses multiple files at the same time using multiple threads.
+The tokenization should be done without storing the tokens in a list (streaming) but AST needs to be stored in a list
+because the compiler needs to support out of order declarations.
2. In the second stage the ast is handled using multiple threads. In this stage, variables, parameters
and types are defined and resolved and if a type is defined after there is a reference to it,
then the compiler first resolves that type. There are flags set to make sure there aren't recursive dependencies.