Silverilight 中的语言解析器
我需要为某些特定语言(SQL 的子集)编写解析器。据我所知,最简单的方法是在 BNF 中定义语法并使用类似 yacc 的工具(我对 GPPG)。但当我开始时,我意识到这些工具生成的解析器依赖于一些核心解析器程序集(例如用于 GPPG 的 ShiftReduceParser.dll)。我需要为 Silverilght 实现解析器,因此我无法使用针对完整框架的库。
是否有任何解析器生成器工具可用于 Silverilght?
I need to write parser for some specific language (subset of SQL). As I know, the easiest way to do this is to define grammar in BNF and use yacc-like tool (I have positive experience with GPPG). But when I started, I've realized that these tools produce parser with dependency on some core parser assemblies (e.g. ShiftReduceParser.dll for GPPG). I need to implement parser for Silverilght, so I can't use libs targeted to full framework.
Are there any parser generator tools which can be used in/for Silverilght?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我不知道你可以在 Silverlight 中使用哪些框架库,但是 Coco /R 看起来相当轻量,只需要来自
System.IO
和System.Text
的一些流/文本处理。I don't know what framework libraries you're allowed to use in Silverlight, but Coco/R seems pretty light-weight, just needing some stream/text processing from
System.IO
andSystem.Text
.您需要解析器在 Silverlight 中运行吗?您不能让服务器通过 WCF 或其他传输来处理该功能吗?这样您就可以使用您之前有经验的代码来执行解析。
Do you need the parser to run inside Silverlight? Can you not instead get the Server to handle that function via WCF or other transport? That way you can use code that you have prior experience with to perform the parsing.
您可能想尝试像 ANTLR 这样的库。 这里有一篇文章,展示了如何使用它进行 SQL 解析。
You might want to try a library like ANTLR. Here's an article that shows how to use it for SQL parsing.
您可以使用在 C# 4.0 中实现的 Jigsaw 解析库。 CodeProject.com 上有一篇详细的文章解释了如何使用它构建解析器。
You can use the Jigsaw parsing library which is implemented in C# 4.0. There is a detailed article explaining how to build a parser using it here on CodeProject.com.