JJTree筆記
-
每個Production都是一個SimpleNode物件。
-
SimpleNode類別實作Node介面。
-
可以在Production裡用jjtThis變數存取這個Node。
-
SimpleNode物件可以使用dump成員函式來印出parsing tree。
-
如果沒有特別指定,SimpleNode預設會是Prodution的名稱。
-
可以設定MULTI=true來為每個Production生成自己的Abstract Syntax Tree Node。
-
承上,這時每個Production如果沒有特別設定,類別名稱是AST接上Production的名字。
- AST類別在預設情況下是繼承SimpleNode。
-
NODE_EXTENDS選項可以設定一個使用者自訂類別讓SimpleNode繼承它
-
NODE_CLASS選項可以設定一個使用者自訂類別讓它繼承SimpleNode,而所有的AST類別都會改為繼承這個類別。
-
但是NODE_EXTENDS被標示為棄用,在未來的版本可能被消除;而NODE_CLASS則尚未釋出。
-
加入VISITOR選項可以使用Visitor pattern走訪整個AST。
-
Visitor會自動生成一個介面,要做的只是根據不同的AST節點需要寫出不同的實作即可。
-
VISITOR_DATA_TYPE可以設定Visitor的引數型態,避免downcast的使用。
-
VISITOR_RETURN_TYPE可以設定Visitor的回傳型態。
-
然而以上兩個選項都尚未正式釋出。
沒有留言:
張貼留言