How gautamnsankar/crown-lang works
CrownLang is a compiled, statically typed language. A programmer supplies a .cw program; the compiler reads and lexes it, parses an AST, expands imports, checks semantics, and generates an executable. The README highlights standard-library printing and math, while the tree also includes string and math library sources and a C++ runtime. The main driver’s stage calls are visible; some backend/runtime linkage details are not, so that connection is marked unverified.
Main entry points: parser.hpp Parser · index.cpp Compiler Driver · imports.hpp Import Resolver · codegen.hpp LLVM Generator
Components 15
Language Front End
- Compiler Driver
src/index.cpp - Lexer
include/classes/lexer.hpp - Tokens
include/classes/token.hpp - Lexical Constants
include/common/constants.hpp - Parser
include/classes/parser.hpp - AST Model
include/common/ast.hpp - Type Definitions
include/classes/type.hpp - Import Resolver
include/classes/imports.hpp
Program Analysis
- Semantic Analyzer
include/classes/semantics.hpp
Code Generation
- LLVM Generator
include/classes/codegen.hpp
Libraries And Runtime
- Language Libraries
libs - Native Runtime
runtime/runtime.cpp
Other components
- Programmer
- Crown Source
- Executable
Connections 19
- Programmer → Crown Source: writes
README.md - Crown Source → Compiler Driver: supplies input
src/index.cpp - Compiler Driver → Lexer: lexes source
src/index.cpp - Lexer → Lexical Constants: uses definitions
include/classes/lexer.hpp - Lexer → Tokens: produces
include/classes/lexer.hpp - Compiler Driver → Parser: parses tokens
src/index.cpp - Parser → Tokens: reads
include/classes/parser.hpp - Parser → Type Definitions: uses types
include/classes/parser.hpp - Parser → AST Model: builds
include/classes/parser.hpp - Compiler Driver → Import Resolver: resolves imports
src/index.cpp - Import Resolver → Lexer: lexes imported files
include/classes/imports.hpp - Import Resolver → Parser: parses imported files
include/classes/imports.hpp - Import Resolver → Language Libraries: loads library files
include/classes/imports.hpp - Compiler Driver → Semantic Analyzer: checks AST
src/index.cpp - Semantic Analyzer → Parser: uses parser definitions
include/classes/semantics.hpp - Compiler Driver → LLVM Generator: generates executable
src/index.cpp - LLVM Generator → Parser: uses AST declarations
include/classes/codegen.hpp - LLVM Generator → Executable: writes output
- LLVM Generator → Native Runtime: links runtime