我需要为某些特定语言(SQL 的子集)编写解析器。据我所知,最简单的方法是在 BNF 中定义语法并使用类似 yacc 的工具(我对GPPG有积极的经验)。但是当我开始时,我意识到这些工具生成的解析器依赖于一些核心解析器程序集(例如 GPPG 的 ShiftReduceParser.dll)。我需要为 Silverilght 实现解析器,所以我不能使用针对完整框架的库。
是否有任何可用于 Silverilght 的解析器生成器工具?
我需要为某些特定语言(SQL 的子集)编写解析器。据我所知,最简单的方法是在 BNF 中定义语法并使用类似 yacc 的工具(我对GPPG有积极的经验)。但是当我开始时,我意识到这些工具生成的解析器依赖于一些核心解析器程序集(例如 GPPG 的 ShiftReduceParser.dll)。我需要为 Silverilght 实现解析器,所以我不能使用针对完整框架的库。
是否有任何可用于 Silverilght 的解析器生成器工具?
我不知道您可以在 Silverlight 中使用哪些框架库,但Coco/R看起来很轻量级,只需要从System.IO
和进行一些流/文本处理System.Text
。
您需要解析器在 Silverlight 中运行吗?你不能让服务器通过 WCF 或其他传输来处理该功能吗?这样你就可以使用你之前有经验的代码来执行解析。
您可以使用在 C# 4.0 中实现的Jigsaw 解析库。CodeProject.com 上有一篇详细的文章解释了如何使用它构建解析器。