Rust製組み込み型パーサジェネレータ(Constructible Parser Generator on Rust)
- example_build_oneshot (main.rs)
- example_build_prebuild (main.rs)
- example_lang_easyarith (syntax.rs)
- example_lang_json (syntax.rs)
- example_lang_pl0 (syntax.rs)
- example_lang_xml (syntax.rs)
$ cargo run -p example_lang_easyarith
var x;
var y;
x = 10;
y = 0x10;
print (x + x) * (y + y);
640
allderiveprebuildtemplatedev
regexlex: crates/lex_regex
lr0: crates/parse_lr_lr0lr1: crates/parse_lr_lr1slr1: crates/parse_lr_slr1lalr1: crates/parse_lr_lalr1
void: crates/ir_voidsexp: crates/ir_sexptree: crates/ir_tree
// RegexLex(lex) + LR1(parse) + SExp(ir)
copager = { ..., features = ["derive", "regexlex", "lr1", "sexp"] }
// RegexLex(lex) + LALR1(parse) + Void(ir)
copager = { ..., features = ["derive", "regexlex", "lalr1", "void"] }
$ cargo test