Example usage for org.antlr.v4.runtime.tree TerminalNodeImpl TerminalNodeImpl

List of usage examples for org.antlr.v4.runtime.tree TerminalNodeImpl TerminalNodeImpl

Introduction

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

Prototype

public TerminalNodeImpl(Token symbol) 

Source Link

Usage

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

License:Open Source License

private static RuleContext createColumnName_(Expr_functionContext rule, OutputField field) {
    Column_name_Context column_name_ = new Column_name_Context(rule.getParent(), rule.invokingState);
    Column_nameContext column_name = new Column_nameContext(column_name_.getParent(), rule.invokingState);
    IdentifierContext identifier = new IdentifierContext(column_name, rule.invokingState);
    CommonToken token = CommonTokenFactory.DEFAULT.create(MysqlParser.BACKTICK_QUOTED_IDENTIFIER,
            '`' + field.name + '`');
    TerminalNode term = new TerminalNodeImpl(token);
    identifier.addChild(term);//  w w w .  ja v a  2 s  . c o  m
    column_name.addChild(identifier);
    column_name_.addChild(column_name);
    return column_name_;
}

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

License:Apache License

@Override
public Expression visitIn_expression(JPQLSelectExpressionParser.In_expressionContext ctx) {
    InPredicate inPredicate;/*from  w w  w.ja v  a 2 s . c o m*/
    Expression left;
    if (ctx.left == null) {
        left = ctx.getChild(0).accept(this);
    } else {
        List<PathElementExpression> pathElems = new ArrayList<>();
        pathElems.add(new PropertyExpression(ctx.left.getText()));
        left = new PathExpression(pathElems);
    }
    if (ctx.param == null && !ctx.in_item().isEmpty()) {
        List<Expression> inItems = new ArrayList<Expression>();
        for (In_itemContext inItemCtx : ctx.in_item()) {
            inItems.add(inItemCtx.accept(this));
        }
        inPredicate = new InPredicate(left, inItems);
    } else if (ctx.param != null) {
        ParameterExpression collectionParam = (ParameterExpression) new TerminalNodeImpl(ctx.param)
                .accept(this);
        collectionParam.setCollectionValued(true);
        inPredicate = new InPredicate(left, collectionParam);
    } else {
        //            List<PathElementExpression> pathElems = new ArrayList<PathElementExpression>();
        //            pathElems.add(new PropertyExpression(ctx.right.getText()));
        //            Expression inExpr = new PathExpression(pathElems);
        Expression inExpr = ctx.getChild(ctx.not == null ? 2 : 3).accept(this);
        inPredicate = new InPredicate(left, inExpr);
    }
    if (ctx.not != null) {
        inPredicate.setNegated(true);
    }
    return inPredicate;
}

From source file:org.eclipse.titan.common.parsers.cfg.ConfigTreeNodeUtilities.java

License:Open Source License

/**
 * Creates a new hidden token node, which can be added to a ParseTree
 * @param aText token text/*from   www  . j a v  a 2s  .  com*/
 */
public static TerminalNodeImpl createHiddenTokenNode(final String aText) {
    return new TerminalNodeImpl(new CommonToken(0, aText));
}

From source file:org.sourcepit.ltk.parser.ParseTreeBuilder.java

License:Apache License

private Rule handleRuleNode(Terminal origin, Rule parent, RuleNode ruleNode) {
    final RuleContext ruleContext = ruleNode.getRuleContext();
    final List<ParseNode> children = new ArrayList<>();
    final Rule rule = new Rule(parent, children, ruleContext.getClass(), origin);
    for (int i = 0; i < ruleNode.getChildCount(); i++) {
        final ParseTree child = ruleNode.getChild(i);
        if (child instanceof RuleNode) {
            children.add(handleRuleNode(null, rule, (RuleNode) child));
        } else {/*from w  w  w. j  a  v  a2s.  c  om*/
            final TerminalNode terminalNode = (TerminalNode) child;
            final ParseResult parseResult = parseResultStack.peek();
            final BufferedTokenStream tokenStream = parseResult.getTokenStream();
            final org.antlr.v4.runtime.Token token = terminalNode.getSymbol();
            final int tokenIndex = token.getTokenIndex();

            // final TerminalContext tc = new TerminalContext();
            // tc.terminalNode = terminalNode;
            // tc.tokenStream = tokenStream;

            // tokenIndexToTerminalNodeMap.put(Integer.valueOf(tokenIndex), tc);

            final List<org.antlr.v4.runtime.Token> hiddenTokensToLeft = tokenStream
                    .getHiddenTokensToLeft(tokenIndex);
            if (hiddenTokensToLeft != null && !hiddenTokensToLeft.isEmpty()) {
                int prevTokenIdx = hiddenTokensToLeft.get(0).getTokenIndex() - 1;
                int startIdx;
                if (prevTokenIdx < 0) {
                    startIdx = 0;
                } else {
                    // final TerminalContext preTc = tokenIndexToTerminalNodeMap.get(Integer.valueOf(prevTokenIdx));
                    // final TerminalNode preTerminalNode = preTc.terminalNode;
                    // startIdx = parserDelegeate.getLen((RuleNode) preTerminalNode.getParent(),
                    // preTerminalNode.getSymbol(),
                    // hiddenTokensToLeft, preTc.tokenStream);
                    startIdx = tokenIndexToHiddenWsLength.get(Integer.valueOf(prevTokenIdx));
                }
                for (int j = startIdx; j < hiddenTokensToLeft.size(); j++) {
                    final TerminalNodeImpl dummy = new TerminalNodeImpl(hiddenTokensToLeft.get(j));
                    dummy.parent = ruleNode;
                    children.add(handleTerminalNode(null, rule, dummy));
                }
            }

            if (terminalNode.getSymbol().getType() != Lexer.EOF) {
                children.add(handleTerminalNode(null, rule, terminalNode));
            }

            final List<org.antlr.v4.runtime.Token> hiddenTokensToRight = tokenStream
                    .getHiddenTokensToRight(tokenIndex);
            if (hiddenTokensToRight != null) {
                int len = parserDelegeate.getLen(ruleNode, token, hiddenTokensToRight, tokenStream);
                tokenIndexToHiddenWsLength.put(Integer.valueOf(tokenIndex), Integer.valueOf(len));
                for (int j = 0; j < len; j++) {
                    final TerminalNodeImpl dummy = new TerminalNodeImpl(hiddenTokensToRight.get(j));
                    dummy.parent = ruleNode;
                    children.add(handleTerminalNode(null, rule, dummy));
                }
            }
        }
    }
    return rule;
}