added architecture section to README
This commit is contained in:
parent
2a05b06615
commit
c0ed2f79b8
45
README.md
45
README.md
|
@ -11,6 +11,51 @@
|
||||||
Gemstone is a programming language compiler (short: GSC) written in C based on flex and GNU bison.
|
Gemstone is a programming language compiler (short: GSC) written in C based on flex and GNU bison.
|
||||||
It uses LLVM to produce optimized native binaries for many platforms and uses its own builtin build system for more complex project management.
|
It uses LLVM to produce optimized native binaries for many platforms and uses its own builtin build system for more complex project management.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
Gemstone is a LALR enabled non-reentrant compiler utilizing a linear flow of components. The compiler has multiple stages of operation, each representing a crucial step in compilation.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
---
|
||||||
|
title: GSC Architecture Overview
|
||||||
|
---
|
||||||
|
flowchart LR
|
||||||
|
lex["`**Lexical Analysis**
|
||||||
|
tokenization via flex`"]
|
||||||
|
bison["`**Syntax Analysis**
|
||||||
|
parsing via bison`"]
|
||||||
|
set["`**Semantic Analysis**
|
||||||
|
parse tree generation`"]
|
||||||
|
llvm["`**Codegen**
|
||||||
|
code generation via LLVM`"]
|
||||||
|
driver["`**Linking**
|
||||||
|
Linkage via Clang/GCC`"]
|
||||||
|
|
||||||
|
start(("Start")) --> lex
|
||||||
|
|
||||||
|
subgraph compile AST
|
||||||
|
lex --> bison
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph Validation
|
||||||
|
bison --> import{"Import/Include?"}
|
||||||
|
import --> |yes| ast[[compile AST]] --> merge["Merge AST"] --> import
|
||||||
|
import --> |no| set
|
||||||
|
set --> llvm
|
||||||
|
end
|
||||||
|
|
||||||
|
stop(("End"))
|
||||||
|
|
||||||
|
subgraph Codegen
|
||||||
|
llvm --> lib{"Produce Library?"}
|
||||||
|
lib -->|no| driver --> executable(["Executable"])
|
||||||
|
lib -->|yes| library(["Library"])
|
||||||
|
end
|
||||||
|
|
||||||
|
library --> stop
|
||||||
|
executable --> stop
|
||||||
|
```
|
||||||
|
|
||||||
## Dependencies (build)
|
## Dependencies (build)
|
||||||
|
|
||||||
### Windows 11
|
### Windows 11
|
||||||
|
|
Loading…
Reference in New Issue