How domioking653/vertex works
Vertex is an early-stage statically typed language that compiles source into bytecode and executes it in a virtual machine. The principal workflow is source tokenization, parsing into compilable program nodes, bytecode generation, and VM execution; the repository also has optimization, linking, bytecode persistence, compile-time checking, and built-in macros. The sampled code confirms parser and VM internals, but not the CLI orchestration or the wiring of several unsampled subsystems, so those connections are omitted.
Main entry points: instructions.rs Instructions · mod.rs Bytecode Compiler · parser_trait.rs Parser · vm.rs Virtual Machine
Components 17
Language Frontend
- Tokenizer
src/backend/lexer/tokenizer.rs - Parser
src/backend/ast/parser/parser_trait.rs - AST Nodes
src/backend/ast - Diagnostics
src/backend/errors
Compilation
- Bytecode Compiler
src/backend/compiler/mod.rs - Compile Context
src/backend/compiler/comptime_variable_checker/comptime_context.rs - Built-in Macros
src/backend/buildin_macros - Optimizer
src/backend/compiler/optimization/optimize.rs
Bytecode Artifacts
- Instructions
src/backend/compiler/instructions.rs - Object Linker
src/backend/linker/link.rs - Bytecode Saving
src/backend/saving_bytes/save.rs
Execution
- VM Runner
src/runtime/runner/mod.rs - Bytecode Loader
src/runtime/virtual_machine/pre_parsing.rs - Virtual Machine
src/runtime/virtual_machine/vm.rs - Runtime Values
src/runtime/virtual_machine/value.rs - Runtime Library
src/runtime_lib/src/lib.rs
Other components
- Programmer
Connections 15
- Programmer → Tokenizer: provides source
- Tokenizer → Parser: produces tokens
- Parser → AST Nodes: builds nodes
- Parser → Diagnostics: reports syntax errors
- AST Nodes → Bytecode Compiler: compiles nodes
- Bytecode Compiler → Compile Context: checks compile-time state
- Bytecode Compiler → Instructions: emits instructions
- Bytecode Compiler → Diagnostics: reports compile errors
- Optimizer → Instructions: optimizes bytecode
- Object Linker → Instructions: links objects
- Bytecode Saving → Instructions: saves bytecode
- VM Runner → Virtual Machine: runs program
- Virtual Machine → Bytecode Loader: loads bytes
- Bytecode Loader → Instructions: decodes bytecode
- Virtual Machine → Runtime Values: uses values