Silverilight 中的语言解析器

发布于 2024-08-17 09:15:27 字数 310 浏览 4 评论 0原文

我需要为某些特定语言(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

冬天的雪花 2024-08-24 09:15:27

我不知道你可以在 Silverlight 中使用哪些框架库,但是 Coco /R 看起来相当轻量,只需要来自 System.IOSystem.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 and System.Text.

許願樹丅啲祈禱 2024-08-24 09:15:27

您需要解析器在 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.

假扮的天使 2024-08-24 09:15:27

您可能想尝试像 ANTLR 这样的库。 这里有一篇文章,展示了如何使用它进行 SQL 解析。

You might want to try a library like ANTLR. Here's an article that shows how to use it for SQL parsing.

万劫不复 2024-08-24 09:15:27

您可以使用在 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文