我需要为某些特定语言(SQL的子集)编写解析器。据我所知,最简单的方法是在BNF中定义语法并使用类似yacc的工具(我对GPPG有积极的经验)。但是当我开始时,我意识到这些工具会产生依赖于某些核心解析器程序集的解析器(例如,用于GPPG的ShiftReduceParser.dll)。我需要为Silverilght实现解析器,所以我不能使用针对完整框架的库。
是否有可用于/用于Silverilght的解析器生成器工具?
答案 0 :(得分:3)
我不知道您允许在Silverlight中使用哪些框架库,但Coco/R似乎非常轻量级,只需要System.IO
和{{1}进行一些流/文本处理}。
答案 1 :(得分:0)
您是否需要解析器在Silverlight中运行?您是否可以让服务器通过WCF或其他传输来处理该功能?这样,您就可以使用之前经验丰富的代码来执行解析。
答案 2 :(得分:0)
您可能想尝试像ANTLR这样的库。 Here's an article,展示了如何将其用于SQL解析。
答案 3 :(得分:0)
您可以使用C#4.0中实现的Jigsaw parsing library。有一篇详细的文章解释how to build a parser using it here on CodeProject.com。