How terminal-js/cmsc124-terminal-js works
SukiScript is a Rust language front end with a command-line tokenization path and an expression-parsing path. A user supplies a file or enters expressions interactively; the CLI scans source, and the parse path passes tokens to a precedence-based parser before printing the resulting AST. The README documents commerce-oriented language constructs, but the sampled parser currently handles expressions only, and file execution is a placeholder. The graph reflects the implemented paths; it does not imply evaluation or execution features that are not shown.
Main entry points: main.rs CLI dispatch · parser.rs Expression parser · scanner.rs Source scanner · token.rs Token records
Components 8
CLI workflow
- CLI dispatch
src/main.rs
Lexical layer
- Source scanner
src/scanner.rs - Token records
src/token.rs - Token types
src/token_type.rs
Expression parsing
- Expression parser
src/parser.rs - Expression AST
src/expr.rs - AST printer
src/print_ast.rs
Other components
- User
Connections 11
- User → CLI dispatch: provides input
README.md - CLI dispatch → Source scanner: scans source
src/main.rs - Source scanner → Token records: creates tokens
src/scanner.rs - Source scanner → Token types: classifies lexemes
src/scanner.rs - Token records → Token types: stores type
src/token.rs - CLI dispatch → Expression parser: parses tokens
src/main.rs - Expression parser → Token records: reads tokens
src/parser.rs - Expression parser → Token types: matches kinds
src/parser.rs - Expression parser → Expression AST: builds AST
src/parser.rs - CLI dispatch → AST printer: prints AST
src/main.rs - AST printer → Expression AST: formats tree
src/print_ast.rs