C#/。NET Lexer生成器

我正在为C#/ .NET寻找一个不错的词法扫描程序生成器 – 支持Unicode字符类别,并生成一些可读和有效的代码。 谁知道一个?


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

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


编辑:ANTLR尚不支持Unicode类别。 但是,它存在一个悬而未决的问题 ,所以它有朝一日可能符合我的需求。

GPLEX似乎支持您的要求。

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

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

旁注:ANTLR非常好……我编写了400多行语法来生成超过10k或C#代码以有效地解析语言。 这包括对语言解析中可能出错的每个可能事物的内置错误检查。 尝试手工完成,你永远不会跟上这些错误。

我刚发现了这个

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

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

数量锐减