将令牌号转换为ANTLR4中的字符串

时间:2015-06-30 19:09:29

标签: parsing autocomplete antlr token antlr4

我正在尝试使用ANTLR4来构建一种使用getExpectedTokens()函数的自动完成系统,当解析器遇到错误时可以调用该函数。 getExpectedTokens()返回一个IntervalSet,其中包含解析中该点可接受令牌的所有令牌号。是否存在从令牌号回到实际令牌本身的映射? (例如,如果其中一个预期令牌是关键字,关键字可以以某种方式显示给用户)。

2 个答案:

答案 0 :(得分:3)

These tokens names are accessible through the parser's vocabulary.

parser.getVocabulary().getLiteralName(token_num) will return the string of the literal tokens.

答案 1 :(得分:0)

使用getSymbolicName()为我工作。

所以你可以做parser.getVocabulary().getSymbolicName(tokenType) tokenType是一个int。