chrysanthemum(中文名“菊花”)是一个由C++写成的小巧灵活、高度可伸缩、模块化、高性能的词法/语法分析框架。chrysanthemum是一个纯模板库,包含头文件即可使用,且无任何第三方依赖。chrysanthemum不同于YACC和ANLTR等词法/语法分析工具(根据文法文件生成解析器代码),它是一个纯模板库,利用C++的表达式模板,模板元编程等技术,使用一系列简介、小巧、灵活的核心类,自动推导并构建出任意复杂的文本解析对象,
而且chrysanthemum允许灵活的嵌入C++函数对象作为语义动作,因此具有很好的灵活性和伸缩性。chrysanthemum能够极大的简化语法分析器的编写工作,使用户可以在C++环境中“书写”BNF范式从而快速的构造出对应的词法/文法分析器。同时chrysanthemum尽最大努力保证分析器的性能,力求达到近似于纯手工代码的效率。chrysanthemum大量使用使用表达式模板技术、模板元编程、C++0X新标准和函数式编程思想。
注意:编译时请加上-std=c++0x或-std=c++11参数以打开C++0X支持.
评论