使用ANTLR和Antlr CSharp目标为DSL构建编译器

时间:2010-09-30 02:24:49

标签: c# .net compiler-construction antlr dsl

我正在编写一个编译器,它将项目特定的DSL(具有基本脚本语言的功能)编译成项目特定的汇编语言。该平台是用C#编写的,因此本机.NET编译器将是完美的解决方案。

我已经做了很多研究,似乎ANTLR适合构建编译器,以防我理解以下事项:

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

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

Thx:)

1 个答案:

答案 0 :(得分:2)

有关于使用ANTLR

的CSHarp目标的详细信息

总结:

除了对ntlr3.Runtime.dll的引用之外,您所需要的只是ANTLR生成的C#解析器/词法分析器代码。

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