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).
Returns for all grammar rules:
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 rules:
Struct holding the introspection info on a grammar.
Struct holding the introspection info on a rule.
This module contains function to inspect a Pegged grammar.