1
讓我們假設我現在用的是Python3.g4語法:如何寫一個身份訪問者
我怎麼能寫解析Python的腳本,走語法樹,並輸出相同的舊程序的程序?
後來我想對程序進行一些更改,但現在如果我能夠重現程序,我會很高興。
現在我想我在走一條摘要語法樹時會失去一些信息,並且沒有簡單的方法。
讓我們假設我現在用的是Python3.g4語法:如何寫一個身份訪問者
我怎麼能寫解析Python的腳本,走語法樹,並輸出相同的舊程序的程序?
後來我想對程序進行一些更改,但現在如果我能夠重現程序,我會很高興。
現在我想我在走一條摘要語法樹時會失去一些信息,並且沒有簡單的方法。
問題是您正在丟失隱藏通道上的所有令牌內容。因此,您必須檢查分析樹中的每個令牌是否在其旁邊的TokenStream
中存在未在ParseTree
中列出的隱藏令牌。
爲此,BufferedTokenStream
中的方法getHiddenTokensToRight
和getHiddenTokensToLeft
應該是這項工作的正確工具。
但是如果你只是想解析輸入的再現,你應該嘗試直接從那裏訪問TokenStream
,並宣讀了Token
Token
後沒有采取通道Token
上的照顧。
因此,您應該能夠重現原始輸入而不會出現很多問題。