Package-level declarations
Types
Influence what and how we print the debug information.
This should be used for definitions of classes, interfaces, structures
Use this to mark properties that are internal, i.e., they are used for bookkeeping and are not part of the model, so that they will not be considered branches of the AST.
An entity which has a name.
The Abstract Syntax Tree will be constituted by instances of Node.
PlaceholderElements can be used to represent elements in code matchers templates and code templates. They represent variable elements in ASTs.
A location in a source code file. The line should be in 1..n, the column in 0..n.
An entity that can have a name
An area in a source file, from start to end. The start point is the point right before the starting character. The end point is the point right after the last character. An empty range will have coinciding points.
A reference associated by using a name. It can be used only to refer to Nodes and not to other values.
This source is intended to be used for nodes that are "calculated". For example, nodes representing types that are derived by examining the code but cannot be associated to any specific point in the code.
Functions
Inserts the newNodes after this node if it is in a MutableList. For this to work, Node.assignParents must have been called.
Looks for targetNode in the lists of nodes in this node. When found, newNodes are inserted after it. When not found, an IllegalStateException is thrown.
Inserts the newNodes before this node if it is in a MutableList. For this to work, Node.assignParents must have been called.
Looks for targetNode in the lists of nodes in this node. When found, newNodes are inserted before it. When not found, an IllegalStateException is thrown.
Sets or corrects the parent of all AST nodes. Kolasu does not see set/add/delete operations on the AST nodes, so this function should be called manually after modifying the AST.
Return the property containing this Node, if any. Null should be returned for root nodes.
Return the index of this Node within the containing property. The return value is null for root nodes. The index is always 0 for Nodes in singular containment properties.
Executes an operation on the properties of a node.
Executes an operation on the properties definitions of a node class.
Removes this node from the parent if it is in a MutableList. For this to work, Node.assignParents must have been called.
Looks for targetNode in the lists of nodes in this node. When found, it is removed. When not found, an IllegalStateException is thrown.
Replace this node with other (by modifying the children of the parent node.) For this to work, Node.assignParents must have been called.
Replaces this node with any amount of other nodes if it is in a MutableList.
Looks for oldNode in the lists of nodes in this node. When found, it is removed, and in its place the newNodes are inserted. When not found, an IllegalStateException is thrown.
Replaces the element at index with replacements.
Try to resolve the reference by assigining @parampossibleValue. The assignment is not performed if
Try to resolve the reference by finding a named element with a matching name. The name match is performed in a case sensitive or insensitive way depending on the value of @paramcaseInsensitive.