frithu 0.1.0

A robust, runtime parsing engine based on the Earley/Marpa algorithm.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
extern crate frithu;
use frithu::grammar;
use frithu::parser;

#[test]
fn complex_empty_string_recogniser() {
    let mut builder = grammar::GrammarBuilder::new("A");
    builder.rule("A").add();
    builder.rule("A").nonterminal("B").add();
    builder.rule("B").nonterminal("A").add();

    let grammar = builder.build().expect("Could not build valid grammar?");
    let parser =
        parser::Parser::new(&grammar).expect("Could not build valid parser?");

    println!("{}", parser);
}