3

是否有任何程序可以执行Irony .NET 语言实现工具包的功能,但适用于其他编程语言?

4

3 回答 3

1

Irony 的语法是用 C# 编码的,带有类似 BNF 的符号,但当然您可以使用它来解析您自己的或其他语言。

如果您正在寻找一个没有用 C# 编码语法的解析器/生成器,请尝试使用ANTLR 之类的方法。使用 ANTLR,您可以在语言描述文件中单独定义语法。

于 2012-10-27T22:51:16.647 回答
1

还有其他几种语言的解析器组合库,仅举几例:

于 2012-12-17T15:47:26.923 回答
0

Python 有PLY,它是 Lex/Yacc 的包装器。

一旦您了解了他们希望您如何使用它并弄清楚如何浏览这些简陋的文档,它就很容易使用。PLY 比 Irony 有更好的文档,但门槛很低。

我从 PLY 开始,但发现 Irony 是一个更有趣的框架,因为:

  • Irony 支持简单的 EBNF 语法规则(MakeStarRule等),而在 PLY 中完成同样的事情是可行的,但很麻烦。
  • 这两种工具都有不错的开箱即用调试工具,但 Irony 在这里有一点优势,因为它有一个不错的 GUI 用于浏览解析规则、减少移位错误等。

祝所有刚开始 Lex/Yacc 之旅的人好运!

于 2017-05-04T05:40:58.897 回答