2013-04-11 52 views
3

我已經使用Rhino解析了JavaScript源代碼併成功重建了它。如何使用Rhino將「AstRoot」對象寫入包含註釋的文件?

,當我打電話astroot.toSource(),它告訴我重建水源井。

但是.toSource()方法不能打印評論。

使用.toSource()方法,我的所有javascript源代碼的評論都消失了。

那麼,我怎樣才能得到完整的源代碼,包括評論?

我的目標是將AstRoot Object(包含源代碼)寫入包含完整註釋的新JavaScript文件。

我用犀牛1.7R4

回答

0

在一般情況下,這是困難的,因爲評論可以在任何東方電氣,國家換貨或者表達式中出現。那麼如何在各種AST對象中表示這個事實呢?它可以完成,但對於解析器和創建的AST對象來說非常麻煩。

如果您限制自己只允許在語句邊界上進行註釋,則可能會有一些解決方案。

一種方法是編寫自己的javascript tokenizer,並在讀取文件時檢查流。那麼你需要弄清楚如何跟蹤它們。一種詭異的方法是將它們轉換成'var somexXXxx ='comment';'並使用命名約定在ast.toSource()調用後將它們轉換回來。那會將你的評論映射到AST節點結構中。

+0

謝謝你的建議。不幸的是,我不能限制評論。因爲它已經被其他人寫過了。內聯評論或多行評論混合使用。但我會嘗試像你的建議一樣測試。謝謝jarodeells。 – 2013-04-11 23:47:01

相關問題