BBT BNF Parser - 基于BNF的通用解析器

这是一个通用的文本解析器. 他的使用类似于正则表达式, 但比正则表达式更复杂, 可以用来解析更复杂的文本.
所谓"通用", 指的是只要你能用BNF按照一定的规则正确的将你要解析的内容描述出来, 那么就可以使用这个解析器来解析对应的文本.

举个例子说, 我现在想要解析MS SQL Server所使用的TSQL语言定义的查询语句, 那么比较直接的办法就是找来MSDN, 研究其中的SQL各种Statement的定义, 然后按部就班的写一个复杂的程序来解析. 显然, 要做这样一个解析器还是相当复杂和花时间的.

那我的这个BNFParser可以帮你作那些事呢?你可以这么做: 1.研究MSDN中关于TSQL的语法(这个步骤是不能省的, 要有这个知识储备); 2.将MSDN中相关的TSQL用BNF描述出来(事实上MSDN就是用类似BNF的语法来描述的, 只是细节表述不同罢了);3.将得到的BNF作为BNFParser的输入参数, 就行了.只要有了正确的BNF, 我的通用解析器就可以工作了, 你可以试着解析一些SQL语句, 然后会得到一个结果树, 这棵树的结构和你的BNF定义的结构一致, 你可以根据你的需要进行处理了.

在我的安装包中我就包含了一个这样的TSQL的解析器, 有兴趣的朋友可以试试.

要注意的是: 请勿将这个安装包作商业用途, 本软件的一切权利除明确声明外均由原作者保留.

若发现有什么问题, 可以发Email联系:[email protected]

 示例中的代码片段
     //创建Parser
     GeneralBNFBasedParser bnfSyntaxParse
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值