A work-in-progress JavaScript lexer, parser, and interpreter. Written in Rust 🦀 for fun and learning.
cargo build --release --workspace ./target/release/jakescript-cli --eval <source-path> # Evaluate a file ./target/release/jakescript-cli --lex <source-path> # Lex (tokenise) a file ./target/release/jakescript-cli --parse [--json | --yaml] <source-path> # Parse a file and output as JSON or YAML ./target/release/jakescript-cli --repl # Enter an interactive REPL
- 🕮
jakescriptThe core of the project. Contains code for the lexer, parser, interpreter, and most of the tests. - ▷
jakescript-cliCommand line interface with a REPL. Can also run the lexer, parser, and interpreter on a file.
Run all tests:
cargo test --workspaceRun the main integration test on its own, which evaluates each JavaScript file
in the tests-js directory:
cargo test --package jakescript --test js_tests -- --nocapture