11

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


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

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


编辑:ANTLR 还不支持 Unicode 类别。不过,它有一个未解决的问题,所以有一天它可能会满足我的需求。

4

4 回答 4

8

GPLEX 似乎支持您的要求。

于 2008-10-05T17:00:46.037 回答
1

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

于 2008-10-05T16:10:10.427 回答
1

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

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

于 2008-10-05T17:01:26.517 回答
0

我刚发现这个

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

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

赫伯

于 2011-06-10T23:41:32.877 回答