pub enum Rule {
Show 65 variants
EOI,
grammar_rules,
grammar_rule,
assignment_operator,
opening_brace,
closing_brace,
opening_paren,
closing_paren,
opening_brack,
closing_brack,
modifier,
silent_modifier,
atomic_modifier,
compound_atomic_modifier,
non_atomic_modifier,
tag_id,
node_tag,
expression,
term,
node,
terminal,
prefix_operator,
infix_operator,
postfix_operator,
positive_predicate_operator,
negative_predicate_operator,
sequence_operator,
choice_operator,
optional_operator,
repeat_operator,
repeat_once_operator,
repeat_exact,
repeat_min,
repeat_max,
repeat_min_max,
number,
integer,
comma,
_push,
peek_slice,
identifier,
alpha,
alpha_num,
string,
insensitive_string,
range,
character,
inner_str,
inner_chr,
escape,
code,
unicode,
hex_digit,
quote,
single_quote,
range_operator,
newline,
WHITESPACE,
line_comment,
block_comment,
COMMENT,
space,
grammar_doc,
line_doc,
inner_doc,
}
Expand description
Import included grammar (PestParser
class globally for current module).
Pest meta-grammar
§Warning: Semantic Versioning
There may be non-breaking changes to the meta-grammar
between minor versions. Those non-breaking changes, however,
may translate into semver-breaking changes due to the additional variants
added to the Rule
enum. This is a known issue and will be fixed in the
future (e.g. by increasing MSRV and non_exhaustive annotations).
Variants§
EOI
End-of-input
grammar_rules
The top-level rule of a grammar.
grammar_rule
A rule of a grammar.
assignment_operator
Assignment operator.
opening_brace
Opening brace for a rule.
closing_brace
Closing brace for a rule.
opening_paren
Opening parenthesis for a branch, PUSH, etc.
closing_paren
Closing parenthesis for a branch, PUSH, etc.
opening_brack
Opening bracket for PEEK (slice inside).
closing_brack
Closing bracket for PEEK (slice inside).
modifier
A rule modifier.
silent_modifier
Silent rule prefix.
atomic_modifier
Atomic rule prefix.
compound_atomic_modifier
Compound atomic rule prefix.
non_atomic_modifier
Non-atomic rule prefix.
tag_id
A tag label.
node_tag
For assigning labels to nodes.
expression
A rule expression.
term
A rule term.
node
A rule node (inside terms).
terminal
A terminal expression.
prefix_operator
Possible predicates for a rule.
infix_operator
Branches or sequences.
postfix_operator
Possible modifiers for a rule.
positive_predicate_operator
A positive predicate.
negative_predicate_operator
A negative predicate.
sequence_operator
A sequence operator.
choice_operator
A choice operator.
optional_operator
An optional operator.
repeat_operator
A repeat operator.
repeat_once_operator
A repeat at least once operator.
repeat_exact
A repeat exact times.
repeat_min
A repeat at least times.
repeat_max
A repeat at most times.
repeat_min_max
A repeat in a range.
number
A number.
integer
An integer number (positive or negative).
comma
A comma terminal.
_push
A PUSH expression.
peek_slice
A PEEK expression.
identifier
An identifier.
alpha
An alpha character.
alpha_num
An alphanumeric character.
string
A string.
insensitive_string
An insensitive string.
range
A character range.
character
A single quoted character
inner_str
A quoted string.
inner_chr
An escaped or any character.
escape
An escape sequence.
code
A hexadecimal code.
unicode
A unicode code.
hex_digit
A hexadecimal digit.
quote
A double quote.
single_quote
A single quote.
range_operator
A range operator.
newline
A newline character.
WHITESPACE
A whitespace character.
line_comment
A single line comment.
block_comment
A multi-line comment.
COMMENT
A grammar comment.
space
A space character.
grammar_doc
A top-level comment.
line_doc
A rule comment.
inner_doc
A comment content.