All Classes and Interfaces
Class
Description
Models things on which an activation supplier can be set.
Combines activatable and lifecycle user functionality.
The AST builder is a visitor of the parse tree (not an AST visitor) that
generates AST nodes from parse tree nodes.
The AST listener interface has a method for entering and exiting each
non-terminal AST node.
The AST node represents a node in the abstract syntax tree.
The AST printer emits tokens to convert an AST node into a string with the
help of a few other utility classes.
The ast transformer transforms some representation of an input and returns
the same kind of output.
The AST visitor knows how to traverse the AST and visit each node.
The auto-hinted matcher is a matcher that automatically determines the hint
by finding the longest identifier in the pattern.
Used to specify how often a
CachingSupplier should be evaluated.The caching interval set is a regular interval set
IntervalSet but the @link
org.antlr.v4.runtime.misc.IntervalSet#contains(int)} method does caching of
queries.The caching parser extends the enhanced parser and returns previous parse
trees if they are available.
Wraps a supplier and caches its result according to a given cache policy.
The channel filter accepts all tokens that are not from a lexer channel that
is on the given list of disallowed channels.
A child list that notifies the given parent of child additions.
This class contains utility methods that allow maintaining Java 8 API
compatability.
Extends a transformation with methods for making it easily configurable.
Holds utility methods for configuring core transformations and transformation
phases.
Shader code is expected to be roughly structured as follows:
version, extensions, other directives (#define, #pragma etc.), declarations
(layout etc.), functions (void main etc.).
Implements the execution planner by providing the boilerplate code for
setting
up an input, a lexer and a parser.
This class models unparsed directives with the # sign.
The types of directives that can be generated.
Base class for trie variants that insert more than one entry per key.
The dynamic parse tree walker can handle some structural modification of a
node's child array.
The empty root overrides a normal root just to do nothing.
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.
The enhanced parser does more than just parsing.
Enum for the parsing strategy.
This annotation causes the annotated method to be excluded from the jacoco
coverage report.
The execution planner finds a valid way of satisfying the root
transformation's dependencies.
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.
The filter token source wraps another token source but reads tokens from it
until a given filter accepts one.
The default
WrappedParameters implementation uses the
NonFixedJobParameters which means that it never produces cached
execution plans.The "read" subset of the
Map interface.GroupedASTTransformer<T extends JobParameters,K,M extends Map<K,String>,N extends Map<K,TranslationUnit>>
The grouped AST transformer parses multiple strings stored in an arbitrarily
A handler target contains a string to search for and a method that is called
to handle finding the string in a parse tree.
Implements a handler target in a simple way by simply being constructed with
a fixed needle.
A hinted matcher contains an additional string that can be used to find
identifiers whose matching ancestor might match the pattern.
Indexes identifiers based on their content and enabled fast string queries.
The "read" subset of the
Map interface.Defines a map that can be iterated directly without needing to create an entry set.
All job parameters have to extend this job parameter base class.
Defines the interface to analyze
Trie keys on a bit level.Implemented by classes that have an execution planner parent and can receive
job parameters.
This implementation of a lifecycle user may be used if a class can be
extended.
Inserts #line directives that make the compiler report errors as if they were
happening in the original source file.
Defines an iterator that operates over a
Map.Instances of the matcher can match a node against a stored pattern.
The move checkable interface provides a method for checking if the
implementing node replaces a given node.
A multi filter checks all contained filters with either requiring all of them
or at least one of them to allow the token.
The newline filter filters out regular unnecessary newlines if there is more
than one.
Indexes nodes based on their ASTNode subclass and enables fast queries for
nodes by type.
This class is used when the job parameters have no fixed part and the
execution plan can't be statically optimized for certain job parameter
combinations.
Defines an iterator that operates over an ordered container.
Defines a map that maintains order and allows both forward and backward
iteration through that order.
Defines an iterator that operates over an ordered
Map.Controls the output of the
ASTPrinter.The parsable a CST node defines how CST nodes that can be converted back into
parse tree nodes are handled.
A parsed replace target generates a node from parsing a string for each
replacement.
A parsed replace target generates a new parsed node from a stored string each
time a replacement is handled.
The parser interface provides the basic methods for interfacing with an
object that contains an
EnhancedParser.Adds a method to the parse tree listener with which the parse tree walker can
detect if it should stop walking the tree.
A pass-through function takes a value and returns another (or the same) value
of the same type.
Implementation of a PATRICIA Trie (Practical Algorithm to Retrieve Information
Coded in Alphanumeric).
This permuterm trie supports prefix, suffix, infix and inverted infix (suffix
+ prefix) queries and works by inserting all rotations of the key into the
underlying trie.
This prefix-suffix trie supports both prefix and suffix queries but no
infix-related queries and works by inserting the key and its reverse into the
underlying trie.
The print visitor visits the parse tree and reprints it while preserving the
position and content of hidden tokens.
An array list extension that calls a notification method whenever an element
is added or removed from the list.
This class was taken from here
and was added to the public domain by the author DaveJarvis.
The "write" subset of the
Map interface.A replacement target searches for a search string and uses a method to
generate a tree member to replace it in the tree.
Each AST has a root referenced by all its members.
A run phase simply executes one method when it is executed in a level by the
execution planner.
This phase finds targets in specified target token types (usually
identifiers) and triggers their handlers.
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.
The AST transformer takes parses a string, turns it into an AST, transforms
it with the given transformation and then prints it back.
The string token filter disallows tokens that are matched against a set of
disallowed strings.
An
KeyAnalyzer for Strings.String node provides a terminal node with arbitrary contents.
The superclass node index also creates index entries for the superclasses for
all nodes.
A tensor abstractly represents the many multidimensional number types that
GLSL has.
The CST node is a terminal node that can be printed with a method implemented
by subclasses.
A terminal replace target replaces the target with a terminal string node.
This terminal replacement target uses a given string to generate terminal
nodes to use as replacement nodes for replacing found targets.
A target that searches for a search string in and upon finding a match uses a
method to generate a string for a semantic exception which is then thrown.
A throw target that has a fixed message it puts into the exception that's
thrown when the target is found.
A list of the possible channels a token can have.
A token filter is an object that can check if given tokens should be printed
or not.
How important a token is to include in the output and why it exists in the
token stream.
The transformation holds information about dependencies between
transformation phases and nested transformations.
The transformations phase is the smallest unit of the transformation process.
The transformation phase base class already contains most of the
functionality of a regular transformation phase but can't be used as an item
in the execution planner.
A transformer takes a string, does something with it and returns a string.
The translation unit is the entry point of a program and represents a single
file of source code.
A tree member has a parent and its tokens can be omitted.
A triple consumer takes three values and does something with them.
Defines the interface for a prefix tree, an ordered tree data structure.
A collection of
Trie utilities.This enum represents the type of a value in GLSL and contains easily accessible
data about each of them.
The different ways bits in a tensor can be interpreted.
Marker interface for collections, maps and iterators that are unmodifiable.
Decorates an ordered map iterator such that it cannot be modified.
An unmodifiable
Trie.The unparsable CST node is basically just a wrapper around a terminal node
that contains a custom string.
A value supplier is a supplier that just returns a predetermined value.
Provides utility methods for the Lexer to only recognize tokens allowed in
the current context, version, profile, extension setting, ES/non-ES mode,
Vulkan/non-Vulkan mode.
The version statement holds information about the selected GLSL version and
profile.
The walk phase is a phase on which the listener methods of the generated
listener interface are called.
The wrap identifier transformation wraps the usage of a certain identifier
with new code by replacing its usage with a new expression and inserting code
that takes care of handling the conversion from the new to the old value.
This class simply wraps a parameter object that extends the job parameter
type.
The wrap target is used for detecting the presence of a wrap result.
This implementation of the wrap target uses a field for statically holding
the wrap result.