我已經爲一種類型的DSL編寫了JJTree(JavaCC)配置,併成功標記了給定格式的文件,並在請求時轉儲AST。如何使用JavaCC/JJTree存儲令牌?
問題是樹中的每個節點都是空的,因爲我當前沒有存儲令牌(我無法理解這些例子)。
這裏是我的.jjt文件的一部分:
SimpleNode Start() #Root : {} {
(
(Section1())?
(Section2())?
(Section3())*
) {
return jjtThis;
}
}
void Section3() #Section3 : {}
{
<SECTION_3> Identifier() <LBRACE >
Header()
(Details() <SEMICOLON>)*
<RBRACE>
}
我想存儲SECTION1,第2節和爲Section3引用列表的引用根節點。我希望Section3節點存儲標識符,標題塊並保留詳細信息塊的列表。
我的fill .jjt文件是數百行,但我覺得如果我能理解這兩個部分,那麼我就能理解JJTree是如何工作的。請讓我知道如何正確使用JJTree。
謝謝。
感謝您的信息。如果可能的話,你可以告訴我如何處理這個例子而不定義自定義節點類(如何添加字段來將自定義標記保存在已有的JJTree定義的節點類型中)?那就是 - 舉一個你在第一段中解釋的方法的例子。 – Chris 2010-11-23 17:38:12