Search in sources :

Example 26 with Tuple2

use of org.antlr.v4.runtime.misc.Tuple2 in project antlr4 by tunnelvisionlabs.

the class TestXPath method getNodeStrings.

public List<String> getNodeStrings(String input, String xpath, String startRuleName, String parserName, String lexerName) throws Exception {
    Tuple2<Parser, Lexer> pl = getParserAndLexer(input, parserName, lexerName);
    Parser parser = pl.getItem1();
    ParseTree tree = execStartRule(startRuleName, parser);
    List<String> nodes = new ArrayList<String>();
    for (ParseTree t : XPath.findAll(tree, xpath, parser)) {
        if (t instanceof RuleContext) {
            RuleContext r = (RuleContext) t;
            nodes.add(parser.getRuleNames()[r.getRuleIndex()]);
        } else {
            TerminalNode token = (TerminalNode) t;
            nodes.add(token.getText());
        }
    }
    return nodes;
}
Also used : Lexer(org.antlr.v4.runtime.Lexer) RuleContext(org.antlr.v4.runtime.RuleContext) ArrayList(java.util.ArrayList) TerminalNode(org.antlr.v4.runtime.tree.TerminalNode) ParseTree(org.antlr.v4.runtime.tree.ParseTree) Parser(org.antlr.v4.runtime.Parser)

Aggregations

ArrayList (java.util.ArrayList)12 Tuple2 (org.antlr.v4.runtime.misc.Tuple2)7 GrammarAST (org.antlr.v4.tool.ast.GrammarAST)7 RuleDependency (org.antlr.v4.runtime.RuleDependency)5 AltAST (org.antlr.v4.tool.ast.AltAST)5 HashMap (java.util.HashMap)4 List (java.util.List)4 Lexer (org.antlr.v4.runtime.Lexer)4 Parser (org.antlr.v4.runtime.Parser)4 LinkedHashMap (java.util.LinkedHashMap)3 Element (javax.lang.model.element.Element)3 ExecutableElement (javax.lang.model.element.ExecutableElement)3 TypeElement (javax.lang.model.element.TypeElement)3 VariableElement (javax.lang.model.element.VariableElement)3 RecognitionException (org.antlr.runtime.RecognitionException)3 GrammarASTAdaptor (org.antlr.v4.parse.GrammarASTAdaptor)3 HashSet (java.util.HashSet)2 LinkedHashSet (java.util.LinkedHashSet)2 Map (java.util.Map)2 CommonToken (org.antlr.runtime.CommonToken)2