Example usage for org.antlr.v4.runtime.tree ParseTree getChild

List of usage examples for org.antlr.v4.runtime.tree ParseTree getChild

Introduction

In this page you can find the example usage for org.antlr.v4.runtime.tree ParseTree getChild.

Prototype

@Override
    ParseTree getChild(int i);

Source Link

Usage

From source file:AST.java

License:Open Source License

private static boolean containsTokens(ParseTree node) {
    if (node.getPayload() instanceof Token) {
        return true;
    }// w ww.ja  va2s.co  m
    for (int i = 0; i < node.getChildCount(); i++) {
        ParseTree child = node.getChild(i);
        if (containsTokens(child)) {
            return true;
        }
    }
    return false;
}

From source file:AST.java

License:Open Source License

private static void walk(ParseTree tree, AST ast) {

    //System.out.println(String.valueOf(AST.getPayload(tree)) + ":" + tree.getText() + " = " + tree.getPayload().getClass().getName() + " @" + (containsTokens(tree) ? "true" : "false"));
    if (tree.getChildCount() == 0) {
        // We've reached a leaf. We must create a new instance of an AST because
        // the constructor will make sure this new instance is added to its parent's
        // child nodes.
        new AST(ast, null, tree);
    } /*else if (tree.getChildCount() == 1) {
      // We've reached an inner node with a single child: we don't include this in
      // our AST./*from www  .j  ava2  s .c o  m*/
      walk(tree.getChild(0), ast);
      } */ else /*if (tree.getChildCount() > 1)*/ {

        for (int i = 0; i < tree.getChildCount(); i++) {

            ParseTree child = tree.getChild(i);

            if (!containsTokens(child)) {
                continue;
            }

            //System.out.println(String.valueOf(AST.getPayload(child)) + ":" + child.getText() + " = " + child.getPayload().getClass().getName() + " @" + (containsTokens(child) ? "true" : "false"));
            AST temp = new AST(ast, null, tree.getChild(i));

            if (!(temp.payload instanceof Token)) {
                //if ((temp.payload instanceof String)) {
                // Only traverse down if the payload is not a Token.
                walk(tree.getChild(i), temp);
            }
        }
    }
}

From source file:SExpr.java

License:Open Source License

public SExpr eval(ParseTree tree) throws Exception {
    //        System.out.println(tree.getClass());
    //        System.out.println(tree.getChild(1).getClass());
    //        System.out.println(tree.getChild(2).getClass());
    //        System.out.println(tree.getChild(3).getClass());

    if (tree instanceof TerminalNodeImpl) {
        SExpr sexpr = new SExpr(tree.toString());
        String[] tokens = sexpr.value.split(":");
        String action = tokens[0];
        String term = tokens[1];/* ww w. j ava 2  s.c  o m*/
        System.out.println("Searching relation: " + action);
        System.out.println("With term: " + term);
        QueryEngine queryEngine = new QueryEngine(term, action, musicOntology);
        ArrayList<Track> tracks = queryEngine.getResults();
        System.out.println("GOT: " + tracks.size());
        sexpr.tracks = tracks;
        return sexpr;
    } else {
        if (tree.getChildCount() == 1) {
            System.out.println("the start tag");
            return (eval(tree.getChild(0)));
        }
        if (tree.getChild(2).toString().equalsIgnoreCase("&")) {
            //and operation
            SExpr left_evaled = eval(tree.getChild(1));
            SExpr right_evaled = eval(tree.getChild(3));

            SExpr sexpr = new SExpr(tree.getChild(1).toString() + " and " + tree.getChild(1).toString());
            sexpr.tracks = (ArrayList<Track>) intersection(left_evaled.tracks, right_evaled.tracks);

            return sexpr;
        } else if (tree.getChild(2).toString().equalsIgnoreCase("|")) {
            //or operation

            SExpr left_evaled = eval(tree.getChild(1));
            SExpr right_evaled = eval(tree.getChild(3));

            SExpr sexpr = new SExpr(tree.getChild(1).toString() + " or " + tree.getChild(1).toString());
            sexpr.tracks = (ArrayList<Track>) union(left_evaled.tracks, right_evaled.tracks);

            return sexpr;

        }

    }

    return null;
}

From source file:annis.ql.parser.RawAqlListener.java

License:Apache License

private static void collectToken(ParseTree node, List<Token> token) {
    for (int i = 0; i < node.getChildCount(); i++) {
        ParseTree child = node.getChild(i);
        if (child.getPayload() instanceof Token) {
            token.add((Token) child.getPayload());
        } else {//from   w w  w.j  av  a 2 s .  c  o m
            collectToken(child, token);
        }
    }
}

From source file:br.unicamp.cst.util.SimulateConfiguration.java

License:Open Source License

private void jButtonApplyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonApplyActionPerformed
    // TODO add your handling code here:

    String s = jTextAreaComand.getText();
    //String s = jTextAreaComand.getText();
    jTextAreaComand.setText(null);//from   w w w  .ja  v a  2  s .  co  m
    // jTextAreaComand.setText(null);
    s = s + "\n";

    /**
     * ******************** to Parse *******************
     */
    ANTLRInputStream input = new ANTLRInputStream(s);

    // create a lexer that feeds off of input CharStream
    OwrlLexer lexer = new OwrlLexer(input);

    // create a buffer of tokens pulled from the lexer
    CommonTokenStream tokens = new CommonTokenStream(lexer);

    // create a parser that feeds off the tokens buffer
    OwrlParser parser = new OwrlParser(tokens);

    ParseTree tree = parser.conf(); // begin parsing at init rule

    // Walk it and attach our listener
    ParseTreeWalker walker = new ParseTreeWalker();
    CustomizedListener listener = new CustomizedListener();

    for (int i = 1; i < (tree.getChildCount() - 2); i++) {

        walker.walk(listener, tree.getChild(i));

    }

    List<Pair<String, List<AbstractObject>>> memory = listener.getMemory();
    //
    //        if (!configurations.applyCommands(memory)) {
    //            jTextAreaComand.setText(jTextAreaComand.getText().concat("\nErro: Falha ao aplicar instrues. Verifique seu comando.\n"));
    //        }
    buildTree();
}

From source file:com.antsdb.saltedfish.sql.mysql.InstructionGenerator.java

License:Open Source License

static void scan(GeneratorContext ctx, ParseTree node) {
    if (node instanceof TerminalNode) {
        if (node.getText().equals("?")) {
            ctx.addParameter((TerminalNode) node);
        }/* w  w  w.  j a v a 2s  .c o m*/
    }
    if (node instanceof Function_nameContext) {
        if (node.getText().equalsIgnoreCase("sum")) {
            ctx.setHasAggregateFunctions(true);
        } else if (node.getText().equalsIgnoreCase("count")) {
            ctx.setHasAggregateFunctions(true);
        } else if (node.getText().equalsIgnoreCase("GROUP_CONCAT")) {
            ctx.setHasAggregateFunctions(true);
        } else if (node.getText().equalsIgnoreCase("max")) {
            ctx.setHasAggregateFunctions(true);
        } else if (node.getText().equalsIgnoreCase("min")) {
            ctx.setHasAggregateFunctions(true);
        }
    }
    for (int j = 0; j < node.getChildCount(); j++) {
        scan(ctx, node.getChild(j));
    }
}

From source file:com.bacoder.parser.java.adapter.JavaAdapter.java

License:Apache License

protected boolean isTerminalNode(ParseTree tree, int index, int symbolType) {
    if (tree.getChildCount() > index) {
        ParseTree node = tree.getChild(index);
        return node instanceof TerminalNode && ((TerminalNode) node).getSymbol().getType() == symbolType;
    } else {/* www .  j a v a2 s  . c  om*/
        return false;
    }
}

From source file:com.blazebit.persistence.impl.expression.JPQLSelectExpressionVisitorImpl.java

License:Apache License

private FunctionExpression handleFunction(String name, ParseTree ctx) {
    List<Expression> funcArgs = new ArrayList<Expression>(ctx.getChildCount());
    for (int i = 0; i < ctx.getChildCount(); i++) {
        if (!(ctx.getChild(i) instanceof TerminalNode)) {
            funcArgs.add(ctx.getChild(i).accept(this));
        }//from   w w  w . j  a  v  a2s.c  om
    }
    return new FunctionExpression(name, funcArgs);
}

From source file:com.blazebit.persistence.parser.expression.JPQLSelectExpressionVisitorImpl.java

License:Apache License

private FunctionExpression handleFunction(String name, ParseTree ctx) {
    List<Expression> funcArgs = new ArrayList<Expression>(ctx.getChildCount());
    for (int i = 0; i < ctx.getChildCount(); i++) {
        if (!(ctx.getChild(i) instanceof TerminalNode)) {
            funcArgs.add(ctx.getChild(i).accept(this));
        }/* ww  w  . j a v a 2 s . c o m*/
    }

    if ("FUNCTION".equalsIgnoreCase(name) && funcArgs.size() > 0
            && aggregateFunctions.contains(getLiteralString(funcArgs.get(0)).toLowerCase())) {
        return new AggregateExpression(false, name, funcArgs);
    } else {
        return new FunctionExpression(name, funcArgs);
    }
}

From source file:com.cisco.yangide.core.parser.ValidationUtil.java

License:Open Source License

static String getName(ParseTree child) {
    String result = "";
    for (int i = 0; i < child.getChildCount(); ++i) {
        if (child.getChild(i) instanceof StringContext) {
            final StringContext context = (StringContext) child.getChild(i);
            if (context != null) {
                return stringFromStringContext(context);

            }// w w  w  .  j a v  a2 s. co m
        }
    }
    return result;
}