2017-03-17 57 views
1

讓我們假設我現在用的是Python3.g4語法:如何寫一個身份訪問者

我怎麼能寫解析Python的腳本,走語法樹,並輸出相同的舊程序的程序?

後來我想對程序進行一些更改,但現在如果我能夠重現程序,我會很高興。

現在我想我在走一條摘要語法樹時會失去一些信息,並且沒有簡單的方法。

回答

0

問題是您正在丟失隱藏通道上的所有令牌內容。因此,您必須檢查分析樹中的每個令牌是否在其旁邊的TokenStream中存在未在ParseTree中列出的隱藏令牌。

爲此,BufferedTokenStream中的方法getHiddenTokensToRightgetHiddenTokensToLeft應該是這項工作的正確工具。

但是如果你只是想解析輸入的再現,你應該嘗試直接從那裏訪問TokenStream,並宣讀了TokenToken後沒有采取通道Token上的照顧。
因此,您應該能夠重現原始輸入而不會出現很多問題。

相關問題