0
如何獲取Antlr 3解析器中的上一個令牌?其實我可以通過使用「input.LT(-1)」輕鬆搞定,但我不想使用lookahead.So是否有任何其他方法在解析器中獲得前一個標記?Antlr3解析器中的上一個令牌
如何獲取Antlr 3解析器中的上一個令牌?其實我可以通過使用「input.LT(-1)」輕鬆搞定,但我不想使用lookahead.So是否有任何其他方法在解析器中獲得前一個標記?Antlr3解析器中的上一個令牌
另一種方法是在您的詞法分析器中覆蓋emit(Token t)
和nextToken()
並跟蹤最後發出的令牌。舉一個例子來說明這個如何工作,看看這個PyEsque
這個語法從這個Q &答:ANTLR What is simpliest way to realize python like indent-depending grammar?
但是我只是使用input.LT(-1)
。
避免「LT(-1)」的原因是什麼?只要您希望在當前匹配的前一個標記之前,這是標準方法,並且完全由ANTLR支持。只有情況下,我知道你不能使用它的地方是,如果你想知道一些給定的任意標記(而不是實際匹配的標記)之前的前一個標記。 –