2013-10-16 21 views
1

我正在使用Irony.Net(https://irony.codeplex.com/)並且一直在使用SQL語法。現在我有解析器和項目正在解析正確的語句。 (我不得不將參數支持添加到默認語法中)。Irony重建語句

現在我的問題很簡單。在我操作了ParseTree之後,我想要重新生成針對ParseTree的語句。

是否具有反諷重建原始解析的文字對樹的方法,或者我需要寫我自己的系統呢?

我很好寫我自己的系統,但如果它已經到位,我寧願使用它。

回答

1

相當長的一段時間與Irony.Net解析器工作後,似乎比較困難,重建原分析的字符串你操縱分析樹後。

這樣做的原因是,除非您保留空格並分配標點符號,否則分析樹會自動刪除這些條目。

現在解析樹的一部分,確實給你當令牌\術語原始字符串存在的人物的「跨越」。

鑑於跨度細節,您基本上可以通過刪除跨度標記處原始語句中的字符來重建語句。

經過多次討論後發現,雖然Irony.Net項目是在解析您的語句轉換爲AST美妙的項目是不適合的解析樹的操縱。

說到這裏,我們仍然在使用Irony.Net項目解決其他問題。

+0

您是否找到解決方案來「重建」解析的信息? – inselberg

+1

不,我們沒有找到重建的解決方案,而是我們所做的是用樹來重建一個新的語句。這花了比我們所希望的多一點的時間,但Irony.net確實給了我們想要的簽名方面的東西。 – Nico