boost.spirit,是boost库的一个部分,是一个LL文法解析器,支持EBNF表达式。
boost.spirit 本身是一套设计非常精巧的结构,由一系列完全正交的功能模块组成,除去核心的Parser,你可以感觉不到任何其他外围模块的存在。
boost.spirit 又一次的将C++ 的各个语言特性威力发挥到极致,尤其对templates的运用令人眼花缭乱,目不暇接,继承了boost的优良传统。通过C++重载运算符,boost.spirit 提供的EBNF表达式表示方法几乎可以以假乱真,你都怀疑是否还仍然在C++环境中编程。如果说以前面向语言(OOL)的想法还只是一个新鲜的构思,那么boost.spirit是否已经是一个超前的实验?
我阅读boost.spirit代码有一段时间了,越是深入,越是着迷。为了不致在这个template迷宫里丢失,每往前一步,都会留下印记。
可惜的是,我用word记录的文档,不能很好的贴到此blog上。如果想要全文的请联系我(全文仍未完成)。
关于boost.spirit的使用方法,请参考boost.spirit的帮助文档;我只关注其实现。