0

这是我第一次真正尝试实现领域特定语言。

我知道语言语法和抽象语法树的基础知识,但是我之前在实现它们时并没有动手。

我想构建一种小语言、简单的变量/数组和条件语句。我想通过我用 C# 构建的解释器来解释和执行用户输入的代码。在精神上与 PHP 非常相似,但更简单。

我搜索,我变得困惑。

我发现具有良好 C# 支持的最佳解析器生成器是 Gold 和 Irony。我也找到了 ANTLR,但我看到太多人抱怨 C# 支持的问题。此外,这三个似乎缺乏良好的文档。

我主要担心的是开始使用其中一个,然后发现它不能用于该任务,要么是因为缺乏良好的 C# 支持,要么是因为缺乏良好的文档或其他原因。我想要一些我可以“自信地”开始工作的东西,让自己在项目中开始。

任何人都可以帮我挑选一些可以很好地完成工作并保证与 C# 一起工作的东西吗?

4

2 回答 2

2

我建议你试试TinyPG。它编译为 C#,您可以直接在语法中提供 C#。

于 2012-11-02T15:09:09.333 回答
2

我建议你使用ANTLR。我使用它编写了自己的编译器(用于 MSIL)。ANTLR 支持 C#,我没有发现任何问题。

您还可以查看我的源代码(我不能作为工作示例,但它有 ANTLT .g 文件)作为示例。

于 2012-11-02T14:47:39.560 回答