在ANTLR4中,当lexer遇到无法匹配的字符序列时,默认会自动插入
要解决这个问题,可以使用ANTLR4提供的TokenStream来遍历完整的token序列,而不仅是getTokens()方法返回的单个token。以下是示例代码:
MyLexer lexer = new MyLexer(new ANTLRInputStream("input string")); CommonTokenStream tokens = new CommonTokenStream(lexer);
// 遍历所有token tokens.fill(); for(Token token : tokens.getTokens()) { // 处理每个token System.out.println(token); }