加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

有没有任何免费的解析器生成器生成C代码并正确处理Unicode?

发布时间:2020-12-16 03:23:27 所属栏目:百科 来源:网络整理
导读:在询问 this question之后,我现在出售尝试使用解析器生成器,之前我要手动写东西. 然而,我似乎找不到任何这样的生成C代码的解析器,也不能找到正确处理Unicode的解析器. (请注意,我的输入是在UCS-2 – 我不在乎支持基本多语言平面之外的位,如果这使建立解析器
在询问 this question之后,我现在出售尝试使用解析器生成器,之前我要手动写东西.

然而,我似乎找不到任何这样的生成C代码的解析器,也不能找到正确处理Unicode的解析器. (请注意,我的输入是在UCS-2 – 我不在乎支持基本多语言平面之外的位,如果这使建立解析器更困难)

有一些可以产生C的解析器,但是这样的解析器似乎把异常安全性抛出窗口,这将阻止我在任何语义动作中使用C.

存在符合这两个原则的解析器生成器,或者我卡住了一切手?

编辑:哦,我的项目是BSL许可的,所以对于使用解析器生成器本身的输出不会有太多的限制.

解决方法

C有两种方法.使用程序,从使用免费格式或使用模板编写的语法生成C文件.

当您在模板类型中编写语法时,您有两种选择.使用boost :: proto,其中每个操作符被重新定义,以在boost :: fusion(boost :: spirit,boost :: msm,boost :: xpressive中使用)中构建一个语法树. (基本思想在这里:Expression Templates)或者用自己的模板建立一个手工编写的表达式树,并直接存储boost :: mpl容器.这款巧克力用于饼干.

在饼干你有

or_<>,seq_<>,char_<>,..

模板.饼干是基于Yard,但扩展了扩展boost ::范围,以获得更好的submatch功能.

The Biscuit Parser Library 1

The Biscuit Parser Library 2

Yet Another Recursive Descent (YARD) parsing framework for C++

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读