问题 C#/。NET Lexer生成器


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


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

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


编辑:ANTLR尚不支持Unicode类别。有一个 公开问题 但是,它可能有一天适合我的需要。


12215
2017-10-05 16:04


起源



答案:


GPLEX似乎支持您的要求。


8
2017-10-05 17:00



我到底怎么回事GPPG? - Alex Lyman
我已经使用它多年了:) GPLEX只在最近(去年)。 - leppie


答案:


GPLEX似乎支持您的要求。


8
2017-10-05 17:00



我到底怎么回事GPPG? - Alex Lyman
我已经使用它多年了:) GPLEX只在最近(去年)。 - leppie


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


1
2017-10-05 16:10



Gold不为词法分析器生成/编码/它 - 它构建一个特殊的二进制文件,然后驱动程序在运行时读取。至于Antlr,我找不到任何甚至暗示它支持Unicode / classes /(它似乎允许指定的unicode字符,但不是整个类) - Alex Lyman
ANTLR不支持unicode字符类 - artur02


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

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


1
2017-10-05 17:01





我刚发现了这个

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

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

数量锐减


0
2018-06-10 23:41