当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《解析器生成器在给定BNF语法的情况下输出C#?》经验,为你挑选了3个好方法。

如果我给它一个BNF语法,我正在寻找能够构建解析器(在C#中)的工具(例如http://savage.net.au/SQL/sql-2003-2.bnf)

这样的发电机存在吗?



1> Tormod Fjeld..:

在Visual Studio的SDK实际上附带词法和语法分析器生成工具.这些被称为MPPG和MPLex,是Managed Babel包的一部分.虽然将它们与SDK捆绑在一起的目的是为Visual Studio开发语言扩展,但它们完全可用于创建通用的AST发射解析器.

MPLex和MPPG基于GPLEX和GPPG(昆士兰科技大学的项目),并以类似于Lex和Yacc的方式使用.SDK还包含MSBuild操作,用于使解析器生成成为常规构建过程的一部分.

这是一个播放MPLex和MPPG的截屏视频:http:
//msdn.microsoft.com/en-us/vstudio/cc837016.aspx



2> leppie..:

通常BNF语法太模糊了.ANTLR可能对您正在寻找的东西有益.


看来你是对的.我只是在网上的某处读到:"if-then-else无法在无上下文,优先级/谓词无关的语法中明确指定,例如EBNF"

3> Jonathan C D..:

您将不得不稍微调整BNF,但TinyPG是一个很棒的工具.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有