From f83752f43b5252a1d59d23943ffcf65211a633a6 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Thu, 9 Feb 2023 23:15:19 +0100 Subject: [PATCH] update compiler internals diagram --- docs/source/prog8compiler.odg | Bin 31493 -> 32179 bytes docs/source/prog8compiler.svg | 137 +++++++++++++++++++--------------- 2 files changed, 77 insertions(+), 60 deletions(-) diff --git a/docs/source/prog8compiler.odg b/docs/source/prog8compiler.odg index 7927e519f0a7abd46b688ca13d90f4d0c9d1af67..6ed8b879a2190dd7bac96d03abf32440dd50454f 100644 GIT binary patch delta 29322 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 OS@dN_cKh_tPX7xz2vzd{ delta 28626 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 diff --git a/docs/source/prog8compiler.svg b/docs/source/prog8compiler.svg index 0372e81d8..d79a82bfb 100644 --- a/docs/source/prog8compiler.svg +++ b/docs/source/prog8compiler.svg @@ -1,6 +1,9 @@ - + @@ -96,6 +99,7 @@ + @@ -113,13 +117,20 @@ + + + + + + + - + @@ -192,7 +203,7 @@ - Convert to AST + Build compiler AST @@ -307,18 +318,18 @@ - - - - Select CodeGenfor target + + + + Build simpler AST for codegen - - + + - + @@ -329,21 +340,6 @@ - - - - Make Intermediate AST - - - - - - - - - - - @@ -351,14 +347,14 @@ - - - + + + - + @@ -366,35 +362,22 @@ - + - + Generate 6502 Asm - - - - - - - - - - - (depends on codegen) - - - + @@ -402,14 +385,14 @@ - + - + @@ -417,14 +400,14 @@ - + - + @@ -432,41 +415,41 @@ - + - + - + - + - + (future) - + @@ -474,7 +457,7 @@ - + @@ -482,7 +465,7 @@ - + @@ -490,14 +473,14 @@ - + - + @@ -505,12 +488,46 @@ - + + + + + + + Codegen choice + + + + + + + + + + + + + VM or experi + + + + + + + + + + + + + Regular 6502 + +