gazelle-parser 0.9.3

LR parser generator with runtime operator precedence and natural lexer feedback
Documentation
// Simple expression grammar for runtime_grammar example
//
// Usage:
//   cat examples/expr_tokens.txt | cargo run --example runtime_grammar examples/expr.gzl
//
// Or inline:
//   echo "NUM:1 OP:+@<1 NUM:2 OP:*@<2 NUM:3" | cargo run --example runtime_grammar examples/expr.gzl
//
// Token format: NAME:value@<precedence (< = left assoc, > = right assoc)
// Multiple expressions separated by semicolons

start expr;

terminals {
    NUM,
    prec OP,
    LPAREN, RPAREN
}

expr = expr OP expr => binop
     | LPAREN expr RPAREN => paren
     | NUM => num;