【问题标题】:Building a Compiler for a DSL using ANTLR and the Antlr CSharp Target使用 ANTLR 和 Antlr CSharp 目标为 DSL 构建编译器
【发布时间】:2010-09-30 10:32:41
【问题描述】:

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

我已经做了很多研究,看来 ANTLR 适合构建编译器的工作,以防我正确理解以下内容:

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

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

谢谢:)

【问题讨论】:

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


【解决方案1】:

有关于ANTLR使用CSHarp目标的详细信息

总结:

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

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

【讨论】:

  • 我知道有关 CSharp 目标的信息页面,但由于我(还)对 ANTLR 了解不多,所以我想确保我正确理解了所有内容。谢谢!
  • 我写了一些关于如何在 C#/.NET 上使用 ANTLR 的帖子,lextm.com/search/label/ANTLR
猜你喜欢
  • 2013-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多