/** reset the parser's state */ public void reset() { if ( getInputStream()!=null ) getInputStream().seek(0); _errHandler.reset(this); _ctx = null; _syntaxErrors = 0; matchedEOF = false; setTrace(false); _precedenceStack.clear(); _precedenceStack.push(0); ATNSimulator interpreter = getInterpreter(); if (interpreter != null) { interpreter.reset(); } }
public final void push(int value) { add(value); }
/** * Get the precedence level for the top-most precedence rule. * * @return The precedence level for the top-most precedence rule, or -1 if * the parser context is not nested within a precedence rule. */ public final int getPrecedence() { if (_precedenceStack.isEmpty()) { return -1; } return _precedenceStack.peek(); }
final IntegerStack indexStack = new IntegerStack(); indexStack.push(currentIndex); currentIndex = 0; currentNode = currentNode.getChild(0); currentIndex = indexStack.pop();
public void pushMode(int m) { if ( LexerATNSimulator.debug ) System.out.println("pushMode "+m); _modeStack.push(_mode); mode(m); }
public void reset() { // wack Lexer state variables if ( _input !=null ) { _input.seek(0); // rewind the input } _token = null; _type = Token.INVALID_TYPE; _channel = Token.DEFAULT_CHANNEL; _tokenStartCharIndex = -1; _tokenStartCharPositionInLine = -1; _tokenStartLine = -1; _text = null; _hitEOF = false; _mode = Lexer.DEFAULT_MODE; _modeStack.clear(); getInterpreter().reset(); }
@Override public boolean precpred(RuleContext localctx, int precedence) { return precedence >= _precedenceStack.peek(); }
public void unrollRecursionContexts(ParserRuleContext _parentctx) { _precedenceStack.pop(); _ctx.stop = _input.LT(-1); ParserRuleContext retctx = _ctx; // save current ctx (return value) // unroll so _ctx is as it was before call to recursive method if ( _parseListeners != null ) { while ( _ctx != _parentctx ) { triggerExitRuleEvent(); _ctx = (ParserRuleContext)_ctx.parent; } } else { _ctx = _parentctx; } // hook into tree retctx.parent = _parentctx; if (_buildParseTrees && _parentctx != null) { // add return ctx into invoking rule's tree _parentctx.addChild(retctx); } }
@Override protected ANTLRLexerState getLexerState(Lexer lexer) { if (lexer._modeStack.isEmpty()) { return new ANTLRLexerState(lexer._mode, null); } return new ANTLRLexerState(lexer._mode, lexer._modeStack); }
/** * Get the precedence level for the top-most precedence rule. * * @return The precedence level for the top-most precedence rule, or -1 if * the parser context is not nested within a precedence rule. */ public final int getPrecedence() { if (_precedenceStack.isEmpty()) { return -1; } return _precedenceStack.peek(); }
public void walk(ParseTreeListener listener, ParseTree t) { final Deque<ParseTree> nodeStack = new ArrayDeque<ParseTree>(); final IntegerStack indexStack = new IntegerStack(); indexStack.push(currentIndex); currentIndex = 0; currentNode = currentNode.getChild(0); currentIndex = indexStack.pop();
public void enterRecursionRule(ParserRuleContext localctx, int state, int ruleIndex, int precedence) { setState(state); _precedenceStack.push(precedence); _ctx = localctx; _ctx.start = _input.LT(1); if (_parseListeners != null) { triggerEnterRuleEvent(); // simulates rule entry for left-recursive rules } }
public void reset() { // wack Lexer state variables if ( _input !=null ) { _input.seek(0); // rewind the input } _token = null; _type = Token.INVALID_TYPE; _channel = Token.DEFAULT_CHANNEL; _tokenStartCharIndex = -1; _tokenStartCharPositionInLine = -1; _tokenStartLine = -1; _text = null; _hitEOF = false; _mode = Lexer.DEFAULT_MODE; _modeStack.clear(); getInterpreter().reset(); }
@Override public boolean precpred(RuleContext localctx, int precedence) { return precedence >= _precedenceStack.peek(); }