Component | Completeness | Source Code | Purpose |
---|---|---|---|
CLI | Incomplete | cli paclage |
Parses command line-flags and prepares files for compilation or analysis. |
Lexer | Complete | lexer package |
Breaks meaningless plain text into a sequence of meaningful tokens. |
Parser | Incomplete | parser package |
Consumes tokens from the lexer and constructs an AST. |
AST | Incomplete | ast package |
Represents the structure of a source code file. |
Typechecker | Incomplete | typecheck package |
Ensures that everything in the AST has the correct typing. (ensures a int variable isn’t set to a string, etc.) |
IR | Incomplete | N/A | Breaks a program down into simple instructions to allow for easier compilation to binary formats. |
Codegen | Incomplete | codegen package |
a) Transpiles Skol code into another language from the AST. b) Compiles into executables from IR. |