public List<String> getTokenTypes(LexerGrammar lg, ATN atn, CharStream input, boolean adaptive) { LexerATNSimulator interp = new LexerATNSimulator(atn); List<String> tokenTypes = new ArrayList<String>(); int ttype; do { if (adaptive) ttype = interp.match(input, Lexer.DEFAULT_MODE); else ttype = interp.matchATN(input); if (ttype == Token.EOF) tokenTypes.add("EOF"); else { tokenTypes.add(lg.typeToTokenList.get(ttype)); } } while (ttype != Token.EOF); return tokenTypes; }