macro_rules! parser {
($($pattern:tt)*) => { ... };
}
Expand description
Macro that creates a parser for a given pattern.
See the top-level documentation for more about how to write patterns.
Here’s a formal syntax for patterns:
pattern ::= expr
expr ::= seq
| seq "=>" rust_expr -- custom conversion
seq ::= lterm
| seq lterm -- concatenated subpatterns
lterm ::= term
| ident ":" term -- labeled subpattern
term ::= prim
| term "*" -- optional repeating
| term "+" -- repeating
| term "?" -- optional
prim ::= "(" expr ")"
| ident "(" expr,* ")" -- function call
| ident -- named parser (when not followed by `(`)
| literal -- exact char or string
| "{" expr,* "}" -- one-of syntax
ident ::= a Rust identifier
expr ::= a Rust expression
literal ::= a Rust literal