dannypsnl / typed-nanopass

rebuild nanopass with typed supports
Apache License 2.0
11 stars 0 forks source link

typed-nanopass

Test Coverage

Explaination

nanopass 的重點是根據語言定義自動生成走訪結構,typed 版的構想是因為我發現 nanopass 有幾個問題

  1. 一個 (a b c ...) 之類的東西,a 到底是不是一個語法結構,取決於它是否是一個 meta variable。然而任何大規模的語言都會可能意外的覆蓋掉定義。我希望直接改成 (a ,b ,c),讓 ,x 表示 x 是一個 meta variable
  2. 在編譯到 asm-like 的模型的語言時,遞迴之後要展開兩次是非常合理的。nanopass 因為只允許目前範圍內的 splicing 而變得很麻煩。我希望可以直接寫 ,@pattern
  3. 語言總是只能從 entry 進入(無論是自動生成的 parse 或是 pass 預設的進入點),但這個限制似乎沒有什麼意義

並非核心要求的則有