2010-09-30 251 views
2

我正在编写一个编译器,将编译特定于项目的DSL(具有基本脚本语言的特性)编译为特定于项目的汇编语言。该平台是用C#编写的,所以一个本地的.NET编译器将是完美的解决方案。使用ANTLR和Antlr CSharp目标构建DSL的编译器

我已经做了很多的研究,似乎ANTLR将适合在建设编译器的工作,万一我了解以下正确的事情:

我写的语法文件和“模板“它发出汇编程序。 ANTLR框架(java)从语法文件生成一个编译器。编译器本身是纯粹的C#(通过使用Antlr 3 CSharp目标),并且可以在编译为.NET程序集后,将“我的”DSL编译为我们的定制汇编程序。

我明白了吗?并且在运行时是否确实不需要Java/ANTLR-Java-API(=何时“使用”编译器)? (我也打开其他解决方案/框架,只要生成的编译器是一个.NET组件)。

THX :)

回答

2

有关于使用CSHARP目标ANTLR

总结的详细信息:

所有你需要的是ANTLR产生除了C#的语法/词法分析器代码参考ntlr3.Runtime.dll。

该dll是建模在Java版本之后,但不使用或调用任何Java。

+0

我知道关于CSharp目标的信息页面,但是由于我(还)对ANTLR知之甚少,所以我不愿意确保正确理解所有内容。谢谢! – 2010-09-30 12:06:45

+0

我写了一些关于如何在C#/ .NET上使用ANTLR的文章,http://lextm.com/search/label/ANTLR – 2012-07-11 05:33:36