metrale_grammar/grammar/
mod.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2
3//! 2026-09-26: The grammar representation and its front end: the expression and rule
4//! data (`GrammarExpr`, `GrammarData`), `GrammarBuilder`, the EBNF lexer and parser
5//! (`parse_ebnf`), the normalising and optimising passes (`functor`), and the EBNF
6//! printer.
7//!
8//! Owner: grammar.
9//! Invariants: none beyond the types.
10
11pub mod builder;
12pub mod data;
13pub mod expr;
14pub mod functor;
15pub mod lexer;
16pub mod parser;
17pub mod printer;
18
19pub use builder::GrammarBuilder;
20pub use data::{GrammarData, Rule, TagDispatch};
21pub use expr::{GrammarExpr, GrammarExprType};
22pub use functor::{
23    GrammarConcat, GrammarFsmBuilder, GrammarFsmHasher, GrammarNormalizer, GrammarOptimizer,
24    GrammarUnion,
25};
26pub use parser::{ParseError, parse_ebnf, parse_ebnf_default};
27pub use printer::{GrammarPrinter, print_grammar};