All Classes and Interfaces
Class
Description
The AST node is a terminal node that can be printed with a method implemented
by subclasses.
The caching interval set is a regular interval set
IntervalSet but the @link
org.antlr.v4.runtime.misc.IntervalSet#contains(int)} method also does caching
of the queries if the set has been set to readonly.The comparable pair can be compared to another comparable pair.
This class contains utility methods that allow maintaining Java 8 API
compatability.
The debug visitor prints the tree and some other information to the console.
This class models unparsed directives with the # sign.
The types of directives that can be generated.
The dynamic parse tree walker can with structural modification of a node's
child array.
The empty terminal node is a placeholder in parse tree children lists in
order to prevent exceptions from being thrown because the parse tree walker
expects child lists not to change length during iteration.
Implements custom behavior in parse rule contexts.
This class is used as the base parser class in code generated by ANTLR.
The extended terminal node has additional functionality over the regular
terminal node.
A handler target contains a string to search for and a method that is called
to handle finding the string in a parse tree.
The move checkable interface provides a method for checking if the
implementing node replaces a given node.
The parsable a AST node defines how AST nodes that can be converted back into
parse tree nodes are handled.
The phase collector holds the registered transformations and manages their
execution.
The print visitor visits the parse tree and reprints it while preserving the
position and content of hidden tokens.
This phase finds targets in identifiers and triggers their handlers.
This class was taken from here
and was added to the public domain by the author DaveJarvis
Instances of this class allows multiple listeners to receive events while
walking the parse tree.
The declaration replacement finds layout declarations and replaces all
references to them with function calls and other code.
A replacement target searches for a search string and uses a method to
generate a tree member to replace it in the tree.
A run phase simply executes one method when it is executed in a level by the
phase collector.
The semantic exception should be thrown by a transformation phase when the
parsed code has semantic errors or there is some other content-related reason
why the transformation process should be halted.
String node provides a terminal node with arbitrary contents.
The string token allows the creation of a custom token with any string as the
token's content.
A tensor abstractly represents the many multidimensional number types that
GLSL has.
The different ways bits in a tensor can be interpreted.
The shape is an array of up to three integers describing how big this
tensor is in each dimension.
A target that searches for a search string in and upon finding a match uses a
method to generate an exception which is then thrown.
The transformation is the vehicle through which transformation phases, which
do all the actual transforming work, are added to the phase collector.
The record used to store added transformation phases with their order and
group index.
Implements the phase collector by providing the boilerplate code for setting
up an input, a lexer and a parser.
The transformations phase actually does a specific transformation.
Shader code is expected to be roughly structured as follows:
version, extensions, other directives (#define, #pragma etc.), declarations
(layout etc.), functions (void main etc.).
A tree member has a parent and its tokens can be omitted.
The unparsable AST node is basically just a wrapper around a terminal node
that contains a custom string.
The walk phase is a phase on which the listener methods of the generated
listener interface are called.