我们一直在探索为我们的平台编写外部 DSL,语法将类似于 JAVA,但生成的底层代码会有所不同。
我们进行了 ANTLR 旋转,并调整了开箱即用的 java 语法文件以符合我们的规则,下一步是语义分析,这有点困难,所以很想知道免费的 JAVA 语义分析器的可用性。与语法文件类似,如果我们设法获得开箱即用的 JAVA 语义分析器代码,那么我们可以对其进行调整以满足我们的需要。
此外,我们还在研究 Scala DSL 功能。
感谢您在这方面的任何帮助。谢谢
我们一直在探索为我们的平台编写外部 DSL,语法将类似于 JAVA,但生成的底层代码会有所不同。
我们进行了 ANTLR 旋转,并调整了开箱即用的 java 语法文件以符合我们的规则,下一步是语义分析,这有点困难,所以很想知道免费的 JAVA 语义分析器的可用性。与语法文件类似,如果我们设法获得开箱即用的 JAVA 语义分析器代码,那么我们可以对其进行调整以满足我们的需要。
此外,我们还在研究 Scala DSL 功能。
感谢您在这方面的任何帮助。谢谢
您可以从 Eclipse 源代码中获得很多帮助。它具有公开的 API,可公开 Java 文件的 AST,并使用所有类型绑定进行注释。但是,我认为您会发现调整该代码非常具有挑战性。
Scala 目前对宏系统有实验性的支持。宏提供了一种方便、轻量级的方式来定义新的语言特性;它们允许您定义 DSL,而无需复制所有进入基础语言的工作。他们不能做所有事情,但他们可以做很多事情,而且当他们适合任务时,他们比编写一种全新的语言更容易创建和调试。