C# 有(直接)flex/yacc 端口吗?或者人们在 C# 中使用什么词法分析器/解析器? [关闭]

2024-04-07

我可能是错的,但到目前为止,C#/.NET 似乎还没有直接的 flex/bison (lex/yacc) 端口。

对于LALR解析器,我找到了GPPG/GPLEX,对于LL解析器,有著名的ANTLR。但是,我想尽可能地重用我的 flex/bison 语法。

  • 有没有针对 C# 的 flex/bison 直接移植?
  • 人们通常在 C# 中使用什么词法分析器/解析器?这样的选择有什么理由吗?

我认为你最好的选择是 GPLEX/GPPG,据我所知,它是最接近 Yacc/Lex for C# 的东西,无论如何你都需要将你的操作移植到 C# 中。

我还使用过 Coco/R、ANTLR(当然),最近还使用过 Irony.net、fslex/fsyacc (F#) 和 fparsec (F#)。

这是一些链接

Fparsec http://www.quanttec.com/fparsec/

Coco/R http://www.ssw.uni-linz.ac.at/Coco/

讽刺网 https://github.com/IronyProject/Irony

Gardens Point 解析器生成器 http://gppg.codeplex.com/

花园点莱克斯 http://gplex.codeplex.com/

我没有出于技术原因而使用其中一种:我使用这些主要是为了好玩。几年前,我确实为工作项目创建了一些 DSL,但我在这些项目上手动安装了扫描仪/解析器(当时我主要在 Pascal 中工作,我发现 TP Lex/Yacc 不适合我的口味,并且DSL 足够简单)。我发现 FParsec 和 Irony 最适合我的口味,因为我发现另一个有点“混乱”(缺乏优雅)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 有(直接)flex/yacc 端口吗?或者人们在 C# 中使用什么词法分析器/解析器? [关闭] 的相关文章

随机推荐