C#/.NET 词法分析生成器

本文关键字:词法分析 NET | 更新日期: 2023-09-27 17:47:21

我正在寻找一个体面的C#/.NET词法扫描生成器 - 支持Unicode字符类别,并生成一些可读和高效的代码。 有人知道吗?


编辑:我需要支持Unicode类别,而不仅仅是Unicode字符。 目前仅在Lu(字母,大写)类别中就有1421个字符,我需要非常具体地匹配许多不同的类别,并且宁愿不手写所需的字符集。

此外,实际代码是必须的 - 这排除了生成二进制文件然后与驱动程序一起使用的东西(即GOLD)


编辑:ANTLR尚不支持Unicode类别。 不过,它有一个悬而未决的问题,所以有一天它可能适合我的需求。

C#/.NET 词法分析生成器

GPLEX似乎支持您的要求。

想到

的两个解决方案是ANTLR和Gold。 ANTLR有一个基于GUI的语法设计器,可以在这里找到一个优秀的C#示例项目。

我同意@David罗宾斯的观点,ANTLR可能是你最好的选择。但是,生成的 ANTLR 代码确实需要一个单独的运行时库才能使用生成的代码,因为生成的代码依赖于一些字符串解析和其他库通用性。ANTLR 生成一个词法分析器和一个解析器。

附带说明一下:ANTLR很棒...我编写了一个 400+ 行语法来生成超过 10k 或 C# 代码来有效地解析语言。这包括内置错误检查,以检查语言解析中可能出错的所有可能的事情。尝试手动执行此操作,您将永远跟不上错误。

我刚刚找到这个

http://www.seclab.tuwien.ac.at/projects/cuplex/lex.htm

它说它是可配置的,足以支持 unicode ;-)。

赫伯