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