当前位置: 首页 > 编程语言 > C#

在给定BNF语法的情况下输出C#的解析器生成器?分享

时间:2023-04-11 01:17:31 C#

一个在给定BNF语法的情况下输出C#的解析器生成器?我正在寻找可以构建解析器(在C#中)的工具,如果我给它一个BNF语法(例如http://savage.net.au/SQL/sql-2003-2.bnf)这样的生成器存在吗?通常BNF文法过于模糊。ANTLR可能适合您正在寻找的东西。VisualStudioSDK实际上带有词法分析器和解析器生成工具。它们称为MPPG和MPLex,是ManagedBabel包的一部分。虽然它们与用于开发VisualStudio语言扩展的SDK捆绑在一起,但它们非常适合用于创建通用AST发射解析器。MPLex和MPPG基于GPLEX和GPPG(昆士兰科技大学的一个项目),使用方式与Lex和Yacc类似。该SDK还包括MSBuild操作,用于使解析器生成成为常规构建过程的一部分。这是播放MPLex和MPPG的截屏视频:http://msdn.microsoft.com/en-us/vstudio/cc837016.aspx您必须稍微调整BNF,但TinyPG是一个很棒的工具。也可以看看Irony:http://irony.codeplex.com/看起来很有前途的IronMeta是AlexWarth的OMeta的C#实现;它是一个packratPEG(解析表达式语法;使用偏向选择),因此Grammars比使用类似yacc的LALR系统更干净。以上是C#学习教程:AparsergeneratorthatoutputC#givenaBNFgrammar?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: