給定一個語法和附加的動作代碼,是否有任何標準的解決方案來推導每個生產需要產生的類型(以及因此,調用生產應該從中得到什麼類型)?是否有衆所周知的算法來推導解析器規則的「返回類型」?
我在考慮採用類似於c#的var
語法的OO程序和動作代碼(但我並不是在尋找特定於c#的東西)。
如果不是函數重載和遞歸語法,這將非常簡單。
產生的問題是,像這樣的情況:
Foo ::=
Bar Baz { return Fig(Bar, Baz); }
Foo Pit { return Pop(Foo, Pit); } // typeof(foo) = fn(typeof(Foo))
如果我知道關於Icon的任何內容,我會查看一下。 (注意:是的,我知道我是瘋了......我問這個問題,作爲一個先驅,爲此添加[更多]類型推演 - > http://www.dsource.org/projects/scrapple/browser/ trunk/dparser/tag/version_2/dparse.d) – BCS 2008-12-17 08:04:55