1
幾個星期前,我開始與ANTLR4合作。我想知道是否有一種方法可以通過詞法分析器忽略匹配的標記,並將CharStream的索引位置重置爲忽略的標記的起始位置,以便可以通過其他規則重新匹配(例如,其他規則一個不同的模式)。如何忽略令牌並重置詞法分析器lookahead索引
非常感謝提前。
幾個星期前,我開始與ANTLR4合作。我想知道是否有一種方法可以通過詞法分析器忽略匹配的標記,並將CharStream的索引位置重置爲忽略的標記的起始位置,以便可以通過其他規則重新匹配(例如,其他規則一個不同的模式)。如何忽略令牌並重置詞法分析器lookahead索引
非常感謝提前。
這聽起來頗有幾分像它提出了,但從來沒有完全定義less
詞法分析器命令:
#212: A new lexer command: Less
現在,我會在你的詞法分析器覆蓋nextToken
命令。
@Override
public Token nextToken() {
while (true) {
int mark = input.mark();
try {
int startIndex = input.index();
Token token = super.nextToken();
if (token != null && token.getType() == MY_SPECIAL_TYPE) {
pushMode(MY_SPECIAL_MODE);
input.seek(startIndex);
continue;
}
return token;
}
finally {
input.release(mark);
}
}
}
它的工作原理。我認爲這是一個有趣的想法,請按照鏈接中的建議創建一個詞法分析器命令。非常感謝。 –
也許:: {_input.seek(_tokenStartCharIndex);跳躍(); }; –