2008年5月4日 星期日

JJTree筆記

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

沒有留言:

張貼留言