Bil*_*eal 9 c++ unicode parser-generator
在提出这个问题之后,我现在出售试图使用解析器生成器,在我打算手动编写之前.
但是,我似乎找不到任何生成C++代码的解析器,也找不到正确处理Unicode的解析器.(请注意,我的输入是在UCS-2中 - 我不关心支持Basic Multilingual Plane之外的位,如果这使得构建解析器更加困难)
有一些解析器可以生成C,但是这样的解析器似乎都会将异常安全性抛出窗口,这会阻止我在任何语义操作中使用C++.
是否存在满足这两个原则的解析器生成器,或者我是否卡在手上做所有事情?
编辑:哦,我的项目是BSL许可的,因此对解析器生成器本身的输出的使用不会有很多限制.
C++有两种方式.使用一个程序,它从一个以自由形式或使用模板编写的语法中生成C++文件.
在模板类型中编写语法时,您有两种选择.使用boost :: proto,重新定义每个运算符以在boost :: fusion中构建语法树(用于boost :: spirit,boost :: msm,boost :: xpressive).(基本思想在于:Expression Templates)或者在自己的模板的帮助下构建手工编写的表达式树,并将其直接存储在boost :: mpl容器中.这个thecnique用于饼干.
在饼干你有
or_<>, seq_<>, char_<>, ..
Run Code Online (Sandbox Code Playgroud)
模板.饼干是基于Yard,但扩展了boost :: range以获得更好的submatch capabaility.
ANTLR有 Unicode 支持。它具有 C++(以及 C、Java 和其他一些语言)支持,尽管我从未使用过 C++ 支持,所以我不确定它的开发程度如何。
| 归档时间: |
|
| 查看次数: |
2280 次 |
| 最近记录: |