use TokenStream;
/// This macro creates
/// let ident = parser_ident.replace("Parser", "");
/// `{ident}Variable` enum,
/// `{ident}Rules` const {variable_i_ident}_RULE for each rule,
/// and impl Parser for `{parser_ident}`.
///
/// # Examples
///
/// ``` ignore
/// use mpl_macro::Parse;
///
/// #[derive(Parse)]
/// #[mplg = "{your path}/my.mplg"]
/// pub struct MyParser;
/// ```
/// Static-codegen variant of [`Parse`]. Emits one `fn` per grammar rule
/// and inherent `fast_recognize` / `fast_parse` methods on the parser
/// struct. The grammar file is read the same way (`#[mplg = "..."]`).
///
/// Uses `mpl::fast::ParserState` and the flat-token output instead of the
/// trait-based `Parser` API.