List of usage examples for org.antlr.v4.runtime.tree ParseTreeListener visitTerminal
void visitTerminal(TerminalNode node);
From source file:parser.walkers.SnapTreeWalker.java
License:Open Source License
public void walk(ParseTreeListener listener, ParseTree t) { if (t instanceof ErrorNode) { listener.visitErrorNode((ErrorNode) t); return;/* w w w . j av a2 s . c o m*/ } else if (t instanceof TerminalNode) { listener.visitTerminal((TerminalNode) t); return; } GlobalInfo info = GlobalInfo.getInstance(); info.setNotVisitNodes(new ArrayList<Integer>()); RuleNode r = (RuleNode) t; enterRule(listener, r); int n = r.getChildCount(); for (int i = 0; i < n; i++) { Boolean found = false; for (int j = 0; j < info.getNotVisitNodes().size(); ++j) { if (info.getNotVisitNodes().get(j).equals(i)) { found = true; break; } } if (!found) { List<Integer> aux = info.getNotVisitNodes(); info.setNotVisitNodes(new ArrayList<Integer>()); walk(listener, r.getChild(i)); info.setNotVisitNodes(aux); } } exitRule(listener, r); info.setNotVisitNodes(new ArrayList<Integer>()); }