2017-03-08 55 views
0

我正在使用antlr3。我有我的解析器和詞法分析器文件。我想在解析器文件中打印輸入的令牌(由用戶輸入給出)。我嘗試了input.LT(1)。在antlr3語法中打印傳入的令牌?

它很好地打印輸入令牌(由用戶給出)。但是,爲了將來的分析,我不能使用這個先行標記。那麼是否還有其他可以打印傳入令牌的命令或指令? (例如,如果我的輸入是1 + 2 +;'+'的標記是'PLUS',那麼我必須打印'+'而不是'PLUS')。

+0

請閱讀並調整您的問題,以便有人能幫助您。謝謝! http://stackoverflow.com/help/how-to-ask – feedMe

回答

0

要獲取令牌的實際文本(「+」),請使用token.getText()

要獲得表示令牌名稱(「PLUS」)的文本,您必須詢問解析器:<YourParserClass>.tokenNames[token.getType()]

+0

如何獲得語法中的前一個和下一個標記? – JESSY

+0

哪裏「在語法上」?你的意思是'input.LT(-1)'? –

+0

是的。它的工作原理。但正如我已經說過的,我不能使用這個lookahead令牌LT。是否有替代品? (Like token.getText()) – JESSY