2

我们一直在探索为我们的平台编写外部 DSL,语法将类似于 JAVA,但生成的底层代码会有所不同。

我们进行了 ANTLR 旋转,并调整了开箱即用的 java 语法文件以符合我们的规则,下一步是语义分析,这有点困难,所以很想知道免费的 JAVA 语义分析器的可用性。与语法文件类似,如果我们设法获得开箱即用的 JAVA 语义分析器代码,那么我们可以对其进行调整以满足我们的需要。

此外,我们还在研究 Scala DSL 功能。

感谢您在这方面的任何帮助。谢谢

4

2 回答 2

0

您可以从 Eclipse 源代码中获得很多帮助。它具有公开的 API,可公开 Java 文件的 AST,并使用所有类型绑定进行注释。但是,我认为您会发现调整该代码非常具有挑战性。

于 2012-08-25T10:23:12.437 回答
0

Scala 目前对宏系统有实验性的支持。宏提供了一种方便、轻量级的方式来定义新的语言特性;它们允许您定义 DSL,而无需复制所有进入基础语言的工作。他们不能做所有事情,但他们可以做很多事情,而且当他们适合任务时,他们比编写一种全新的语言更容易创建和调试。

于 2012-08-25T16:07:01.847 回答