2012-08-25 33 views
1

我們一直在探索爲我們的平臺編寫外部DSL,語法與JAVA類似,但生成的底層代碼會有點不同。語義分析

我們給了ANTLR自旋,並且調整了開箱即用的java語法文件以遵守我們的規則,下一步是語義分析,這有點困難,所以很想知道JAVA的免費語義分析器的可用性。與語法文件類似,如果我們設法脫離JAVA語義分析器代碼,那麼我們可以調整它以滿足我們的需要。

另外,我們也在研究Scala DSL的功能。

讚賞這方面的任何幫助。謝謝

回答

0

Scala目前對macro system有實驗支持。宏提供了一種方便,輕量的方式來定義新的語言功能;它們允許您定義DSL而不必複製進入基本語言的所有工作。他們不能做任何事情,但他們可以做很多事情,當他們做出適合的任務時,創建和調試比編寫全新的語言要容易得多。

0

您可以從Eclipse源代碼中獲得很多幫助。它具有暴露Java文件的AST的公共API,註釋了所有類型的綁定。不過,我認爲你會發現調整代碼非常具有挑戰性。