Class ProxyParseTreeListener
java.lang.Object
io.github.douira.glsl_transformer.traversal.ProxyParseTreeListener
- All Implemented Interfaces:
PartialParseTreeListener,ParseTreeListener
This class was taken from here
and was added to the public domain by the author DaveJarvis.
Instances of this class allow multiple listeners to receive events while
walking the parse tree. For example:
ProxyParseTreeListener proxy = new ProxyParseTreeListener(); ParseTreeListener listener1 = ... ; ParseTreeListener listener2 = ... ; proxy.add(listener1); proxy.add(listener2); ParseTreeWalker.DEFAULT.walk(proxy, ctx);
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(PartialParseTreeListener listener)Adds the given listener to the list of event notification recipients.voidvoidbooleanisDeepEnough(ExtendedContext node)Returns if this parse tree listener wants to continue to walk the tree but not go any deeper into the current (given) rule.booleanReturns if this parse tree listener is no longer interested in walking the tree.booleanReturns if this listener even needs a tree walk.voidRemoves the listener last processed during iteration from the list of listeners.voidvisitErrorNode(ErrorNode node)voidvisitTerminal(TerminalNode node)Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.github.douira.glsl_transformer.traversal.PartialParseTreeListener
canStop
-
Constructor Details
-
ProxyParseTreeListener
public ProxyParseTreeListener()
-
-
Method Details
-
add
Adds the given listener to the list of event notification recipients.- Parameters:
listener- A listener to begin receiving events.
-
needsWalk
public boolean needsWalk()Returns if this listener even needs a tree walk. This is false if there are no listeners- Returns:
trueif there are listeners
-
removeCurrentListener
public void removeCurrentListener()Removes the listener last processed during iteration from the list of listeners. This is used by the execution planner to remove nodes that are finished with walking. -
isDeepEnough
Description copied from interface:PartialParseTreeListenerReturns if this parse tree listener wants to continue to walk the tree but not go any deeper into the current (given) rule.- Specified by:
isDeepEnoughin interfacePartialParseTreeListener- Parameters:
node- The current node in which to maybe not visit the children- Returns:
trueif the parse tree walker
-
isFinished
public boolean isFinished()Description copied from interface:PartialParseTreeListenerReturns if this parse tree listener is no longer interested in walking the tree.- Specified by:
isFinishedin interfacePartialParseTreeListener- Returns:
trueif the parse tree walker should stop walking the tree entirely.
-
enterEveryRule
- Specified by:
enterEveryRulein interfaceParseTreeListener
-
exitEveryRule
- Specified by:
exitEveryRulein interfaceParseTreeListener
-
visitErrorNode
- Specified by:
visitErrorNodein interfaceParseTreeListener
-
visitTerminal
- Specified by:
visitTerminalin interfaceParseTreeListener
-