lalrpop-lambda 0.6.1

A λ-calculus grammar writting with LALRPOP.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#![feature(non_ascii_idents)]
extern crate lalrpop_lambda;

use lalrpop_lambda::parse::ExpressionParser;

fn main() {
    let parser = ExpressionParser::new();

    // Make the Y combinator.
    println!("ω = {}", parser.parse(r"λx.(x x)").unwrap());
    println!("Ω = {}", parser.parse(r"(λx.(x x)) (λx.(x x))").unwrap());
    println!("W = {}", parser.parse(r"λf.λx. f x x").unwrap());
    println!("Y = {}", parser.parse(r"λf.(λx.f (x x)) (λx.f (x x))").unwrap());
}