我正在为C#/ .NET寻找一个不错的词法扫描程序生成器 - 支持Unicode字符类别,并生成一些可读和有效的代码。谁知道一个?
编辑:我 需要 支持 Unicode类别,而不仅仅是Unicode字符。目前只有1421个字符 Lu
(字母,大写)类别,我需要非常具体地匹配许多不同的类别,而不是手写它所必需的字符集。
另外,实际代码是 必须 - 这排除了生成二进制文件然后与驱动程序一起使用的东西(即GOLD)
编辑:ANTLR尚不支持Unicode类别。有一个 公开问题 但是,它可能有一天适合我的需要。
想到的两个解决方案是 ANTLR 和 金。 ANTLR拥有基于GUI的语法设计器,以及C#中的优秀示例项目 可以在这里找到。
我同意@David Robbins,ANTLR可能是你最好的选择。但是,生成的ANTLR代码确实需要一个单独的运行时库才能使用生成的代码,因为生成的代码依赖于某些字符串解析和其他库共性。 ANTLR生成词法分析器和解析器。
旁注:
ANTLR非常好......我编写了一个400+行语法来生成超过10k或C#代码以有效地解析语言。这包括对语言解析中可能出错的每个可能事物的内置错误检查。尝试手工完成,你永远不会跟上这些错误。