A small, readable programming language with clear semantics. Built in Rust.
let name = 'World';
println("Hello, {name}!");
function factorial(n) {
if n <= 1 { return 1; }
return n * factorial(n - 1);
}
println("10! = " + to_string(factorial(10)));letfor immutable bindings,varfor mutable bindings- Numbers, strings, booleans, null, lists, maps
- String interpolation in double-quoted strings:
"Hello, {name}!" - Functions with closures
if/elseif/else,while,for..in- Built-in standard library for strings, lists, maps, I/O
- Clear error messages with source locations
# Build
cargo build --release
# Run a program
cargo run -- run examples/hello.ing
# Check syntax without running
cargo run -- check examples/hello.ing
# Start the REPL
cargo run -- replSee the examples/ directory:
hello.ing- Hello Worldvariables.ing- Variables and immutabilitybranching.ing- If/elseif/elseloops.ing- While and for..in loopsfunctions.ing- Functions and closurescollections.ing- Lists and mapsstrings.ing- String operationsfizzbuzz.ing- FizzBuzz
Integrity keeps the frontend split into explicit layers:
integrity-syntaxowns source spans and token definitionsintegrity-astowns the parsed tree (Program,Block, statements, expressions, bindings)integrity-parseris the only stage that converts syntax tokens into AST nodesintegrity-driverowns CLI-facing orchestration forcheck,run, and REPL evaluationintegrity(CLI) is a thin shell for args, file I/O, terminal output, and process exit codes
That keeps lexer independent from AST internals and lets diagnostics depend only on source-level spans.
cargo test --workspaceMIT