这是我第一次真正尝试实现域特定语言。
我知道语言语法和抽象语法树的基础知识,但是之前我没有弄脏它们。
我想构建一个小语言,简单的变量/数组和条件语句。我想通过我用C#构建的解释器来解释和执行用户输入的代码。在精神上与PHP相似的东西更简单。
我搜索了一下,我感到困惑。
我发现具有良好C#支持的最佳解析器生成器是Gold和Irony。我也发现了ANTLR,但我看到太多人抱怨C#suppots的问题。此外,其中三个似乎缺乏良好的文档。
我主要担心的是开始使用其中一个,然后发现它不能用于任务,要么是因为缺乏良好的C#支持,要么是良好的文档或其他东西。我想要一些我可以“自信地”开始工作的东西,让我自己在项目中开始。
有没有人可以帮我挑选能够很好地完成工作的东西并保证与C#一起使用?
答案 0 :(得分:2)
我建议你使用ANTLR。我使用它编写了自己的编译器(用于MSIL)。 ANTLR有C#支持,我没有发现任何问题。
U也可以查看my source code(我不能使用样本,但它有ANTLT .g文件)。
答案 1 :(得分:2)
我建议你试试TinyPG。它编译为C#,你可以直接在语法中提供C#。