InfiniteLoop.yes means a rule can loop indefinitely while consuming nothing. InfiniteLoop.no means a rule cannot loop indefinitely. InfiniteLoop.indeterminate means the algorithm could not converge.
Left-recursion diagnostic for a rule. A rule is left-recursive when its own name appears at the beginning of its definition or behind possibly-null-matching rules (see below for null matches). For example A <- A 'a' is left-recursive, whereas A <- 'a' A is not. *But* A <- 'a'? A is left-recursive, since if the input does not begin with 'a', then the parsing will continue by invoking A again, at the same position.
NullMatch.yes means a rule can succeed while consuming no input. For example e? or e*, for all expressions e. Nullmatch.no means a rule will always consume at least a token while succeeding. Nullmatch.indeterminate means the algorithm could not converge.
The different kinds of recursion for a rule. 'direct' means the rule name appears in its own definition. 'indirect' means the rule calls itself through another rule (the call chain can be long).
Act on rules parse tree as produced by pegged.parser. Replace every occurence of child in parent by child's parse tree
Returns for all grammar rule:
Struct holding the introspection info on a rule.
This module contains function to inspect a Pegged grammar.