/* consume all initial off-channel tokens */ protected void consumeInitialHiddenTokens() { int firstOnChannelTokenIndex = input.index(); for (int i = 0; i < firstOnChannelTokenIndex; i++) { dbg.consumeHiddenToken(input.get(i)); } initialStreamState = false; }
@Override public int LA(int i) { if (initialStreamState) { consumeInitialHiddenTokens(); } dbg.LT(i, input.LT(i)); return input.LA(i); }
public DebugTokenStream(TokenStream input, DebugEventListener dbg) { this.input = input; setDebugListener(dbg); // force TokenStream to get at least first valid token // so we know if there are any hidden tokens first in the stream input.LT(1); }
@Override public void consume() { if (initialStreamState) { consumeInitialHiddenTokens(); } int a = input.index(); Token t = input.LT(1); input.consume(); int b = input.index(); dbg.consumeToken(t); if (b > a + 1) { // then we consumed more than one token; must be off channel tokens for (int i = a + 1; i < b; i++) { dbg.consumeHiddenToken(input.get(i)); } } }
@Override public String toString(int start, int stop) { return input.toString(start, stop); }
@Override public String toString(Token start, Token stop) { return input.toString(start, stop); }
@Override public TokenSource getTokenSource() { return input.getTokenSource(); }
@Override public int index() { return input.index(); }
@Override public void seek(int index) { // TODO: implement seek in dbg interface // db.seek(index); input.seek(index); }
@Override public int size() { return input.size(); }
@Override public void rewind() { dbg.rewind(); input.rewind(lastMarker); }
@Override public void rewind(int marker) { dbg.rewind(marker); input.rewind(marker); }
@Override public int range() { return input.range(); }
@Override public Token get(int i) { return input.get(i); }
@Override public String toString() { return input.toString(); }
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { TokenStream input = (TokenStream) _input; int _s = s; switch (s) { case 0: int LA5_1 = input.LA(1); int index5_1 = input.index(); input.rewind(); s = -1; if ((LA5_1 == 8) && ((input.LT(1).getText().charAt(0) == 'D'))) { s = 2; } else if ((LA5_1 == WS) && ((CLASSPATH.equals(input.LT(1).getText()) || CLASSPATH_LONG.equals(input.LT(1).getText())))) { s = 3; } else if (((switchOptions.contains(input.LT(1).getText())))) { s = 4; } else if (((VERBOSE.equals(input.LT(1).getText()) || input.LT(1).getText().startsWith(VERBOSE + ':')))) { s = 5; } else if (((VERSION.equals(input.LT(1).getText()) || input.LT(1).getText().startsWith(VERSION + ':')))) { s = 6; } else if (((input.LT(1).getText().startsWith(XSHARE + ':')))) { s = 7; } else if (((input.LT(1).getText().startsWith(XCJNI + ':')))) { s = 8; } else if (((isParamOption(input.LT(1).getText())))) { s = 9; } else if (((memOptions.matcher(input.LT(1).getText()).matches()))) { s = 10; } else if ((true)) { s = 11; } input.seek(index5_1); if (s >= 0) return s; break; } NoViableAltException nvae = new NoViableAltException(getDescription(), 5, _s, input); error(nvae); throw nvae; }
@Override public int mark() { lastMarker = input.mark(); dbg.mark(lastMarker); return lastMarker; }