gazelle-parser 0.1.0

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

grammar Expr {
    start expr;
    mode lr;

    terminals {
        NUM,
        prec OP,
        LPAREN, RPAREN
    }

    expr = expr OP expr @binary_expression
         | LPAREN expr RPAREN
         | NUM @terminal_expression;
}