Skip to content
Expression-oriented toy programming language written in Rust
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE-MIT Add: Add initial source code with peg-based parser Aug 6, 2018


Build Status codecov

Expression-oriented toy programming language written in Rust

let add = a -> b -> a + b;
let succ = add(1);
let v = succ(succ(succ(1)));

let f = if v == 4 {
  a -> succ(a)
} else {
  a -> a
let x = f(10)

In this example, x is evaluated to 11.


  • Refine errors
    • Property organize error variants
    • Get rid of unwrap completely
    • Point where the cause is
  • Add EvalConstant transformer which calculates compile-time value
  • Implement operators as functions
  • User-defined types
    • Tuple
    • Enum
    • Struct
  • Multi-line input in REPL


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

You can’t perform that action at this time.