The code tries to ensure that there are no name clashes for rule calls in different branches.
This machinery is needed for reporting parse errors.
Fragment rules.
Base class for grammar that is parameterized by the node type and list of token kinds.
This is the main program for grammar generation.
Ant task for compiling Simpl grammars.
Helper class to manage stack of lexer states.
Literal rules are automatically generated and correspond to keywords or operators in the grammar (essentially, everything between quotation marks).
Base class for normal and option rules.
Normal nonterminal rule in the form:
Option rules:
Base class for generated ANTLR parsers.
Represents a rule in the grammar.
Represents class or trait that is generated from a grammar rule.
Constructor parameter for rule class.
Information about other rule that is called from current rule.
Classes for storing operations on lexer states.
Contains the symbols that are found in the grammar.
Base class for terminal and fragment, but not for literal rules.
Normal terminal rules in the grammar.
Implements the SourceLocation interface using ANTLR tokens.
Various utility methods useful for grammar generation.
Possible multiplicity modifiers for patterns.
Checks whether some strings can be used as identifiers (rule names, parameter names, etc.