Package org.antlr.v4.runtime.tree

Examples of org.antlr.v4.runtime.tree.TerminalNode


      if (startNode instanceof ParserRuleContext) {
        ParserRuleContext context = (ParserRuleContext) startNode;
        node.setStartLine(context.getStart().getLine());
        node.setStartIndex(context.getStart().getStartIndex());
      } else if (startNode instanceof TerminalNode) {
        TerminalNode terminal = (TerminalNode) startNode;
        node.setStartLine(terminal.getSymbol().getLine());
        node.setStartIndex(terminal.getSymbol().getStartIndex());
      }

      if (endNode instanceof ParserRuleContext) {
        ParserRuleContext context = (ParserRuleContext) endNode;
        node.setEndLine(context.getStop().getLine());
        node.setEndIndex(context.getStop().getStopIndex());
      } else if (endNode instanceof TerminalNode) {
        TerminalNode terminal = (TerminalNode) endNode;
        node.setEndLine(terminal.getSymbol().getLine());
        node.setEndIndex(terminal.getSymbol().getStopIndex());
      }
    }
  }
View Full Code Here


     * @return value matching AST node type
     */
    public static Object parse(ParseTree node)
    {
        if (node instanceof TerminalNode) {
            TerminalNode terminal = (TerminalNode) node;
            switch(terminal.getSymbol().getType())
            {
                case EsperEPL2GrammarParser.BOOLEAN_TRUE:  return BoolValue.parseString(terminal.getText());
                case EsperEPL2GrammarParser.BOOLEAN_FALSE: return BoolValue.parseString(terminal.getText());
                case EsperEPL2GrammarParser.VALUE_NULL:    return null;
                default:
                    throw ASTWalkException.from("Encountered unexpected constant type " + terminal.getSymbol().getType(), terminal.getSymbol());
            }
        }
        else {
            RuleNode ruleNode = (RuleNode) node;
            int ruleIndex = ruleNode.getRuleContext().getRuleIndex();
View Full Code Here

    public static boolean isTerminatedOfType(Tree child, int tokenType) {
        if (!(child instanceof TerminalNode)) {
            return false;
        }
        TerminalNode termNode = (TerminalNode) child;
        return termNode.getSymbol().getType() == tokenType;
    }
View Full Code Here

    public static int getAssertTerminatedTokenType(ParseTree child) {
        if (!(child instanceof TerminalNode)) {
            throw ASTWalkException.from("Unexpected exception walking AST, expected terminal node", child.getText());
        }
        TerminalNode term = (TerminalNode) child;
        return term.getSymbol().getType();
    }
View Full Code Here

                int ruleIndex = ctx.getRuleIndex();
                String ruleName = EsperEPL2GrammarParser.ruleNames[ruleIndex];
                printer.print(ruleName);
            }
            else {
                TerminalNode terminal = (TerminalNode) node;
                printer.print(terminal.getSymbol().getText());
                printer.print(" [");
                printer.print(terminal.getSymbol().getType());
                printer.print("]");
            }

            if (node instanceof ParseTree) {
                ParseTree parseTree = (ParseTree) node;
View Full Code Here

      if (startNode instanceof ParserRuleContext) {
        ParserRuleContext context = (ParserRuleContext) startNode;
        node.setStartLine(context.getStart().getLine());
        node.setStartColumn(context.getStart().getCharPositionInLine());
      } else if (startNode instanceof TerminalNode) {
        TerminalNode terminal = (TerminalNode) startNode;
        node.setStartLine(terminal.getSymbol().getLine());
        node.setStartColumn(terminal.getSymbol().getCharPositionInLine());
      }

      if (endNode instanceof ParserRuleContext) {
        ParserRuleContext context = (ParserRuleContext) endNode;
        node.setEndLine(context.getStop().getLine());
        node.setEndColumn(context.getStop().getCharPositionInLine()
            + context.getStop().getText().length() - 1);
      } else if (endNode instanceof TerminalNode) {
        TerminalNode terminal = (TerminalNode) endNode;
        node.setEndLine(terminal.getSymbol().getLine());
        node.setEndColumn(terminal.getSymbol().getCharPositionInLine()
            + terminal.getSymbol().getText().length() - 1);
      }
    }
  }
View Full Code Here

    ATNOptimizer.optimize(g, atn);

    for (Triple<Rule, ATNState, ATNState> pair : preventEpsilonClosureBlocks) {
      LL1Analyzer analyzer = new LL1Analyzer(atn);
      if (analyzer.LOOK(pair.b, pair.c, null).contains(org.antlr.v4.runtime.Token.EPSILON)) {
        ErrorType errorType = pair.a instanceof LeftRecursiveRule ? ErrorType.EPSILON_LR_FOLLOW : ErrorType.EPSILON_CLOSURE;
        g.tool.errMgr.grammarError(errorType, g.fileName, ((GrammarAST)pair.a.ast.getChild(0)).getToken(), pair.a.name);
      }
    }

    optionalCheck:
View Full Code Here

  /* start->ruleblock->end */
  @NotNull
  @Override
  public Handle rule(@NotNull GrammarAST ruleAST, @NotNull String name, @NotNull Handle blk) {
    Rule r = g.getRule(name);
    RuleStartState start = atn.ruleToStartState[r.index];
    epsilon(start, blk.left);
    RuleStopState stop = atn.ruleToStopState[r.index];
    epsilon(blk.right, stop);
    Handle h = new Handle(start, stop);
View Full Code Here

    return h;
  }

  @NotNull
  public Handle _ruleRef(@NotNull GrammarAST node) {
    Rule r = g.getRule(node.getText());
    if ( r==null ) {
      g.tool.errMgr.grammarError(ErrorType.INTERNAL_ERROR, g.fileName, node.getToken(), "Rule "+node.getText()+" undefined");
      return null;
    }
    RuleStartState start = atn.ruleToStartState[r.index];
View Full Code Here

//    System.out.println("setAltAssoc: op " + alt + ": " + t.getText()+", assoc="+assoc);
  }

  @Override
  public void binaryAlt(AltAST originalAltTree, int alt) {
    AltAST altTree = (AltAST)originalAltTree.dupTree();
    String altLabel = altTree.altLabel!=null ? altTree.altLabel.getText() : null;

    String label = null;
    boolean isListLabel = false;
    GrammarAST lrlabel = stripLeftRecursion(altTree);
View Full Code Here

TOP

Related Classes of org.antlr.v4.runtime.tree.TerminalNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.