首页 > TAG信息列表 > boost-phoenix
c – 提升精神还原解析
我想解析包含以下结构的文件: some garbage *&% section1 { section_content } section2 { section_content } 规则解析section_name1 {…} section_name2 {…}已经定义: section_name_rule = lexeme[+char_("A-Za-z0-9_")]; section = section_name_rule > lit("{&c – Boost.Spirit.Qi:在分析时动态创建“差异”解析器
二元 – (减号)运算符可以创建“差异”解析器: rule = qi::char_ - qi::lit("}}") 甚至复合差异: rule = qi::char_ - qi::lit("}}") - qi::lit("]]") 但是如何在解析时生成差异解析器的整个结果呢? 我猜这可能是某种形式,如下所示: phoenix::function<difference_parser_impl> di使用Boost C Phoenix用户定义的参数的下标operator []错误
使用现有的Boost Phoenix(占位符)参数,例如_1,我可以使用数组/下标运算符.例如,以下摘录将显示1. int arr[4] = {1,2,3,4}; std::cout << _1[0](arr) << std::endl; 但是,如果我定义自己的占位符参数: phoenix::actor<phoenix::expression::argument<1>::type> const my_1 = {{}}c – 提高规则的精神排列
我有两种类型的表达式,我想解析并计算结果. > Artimetic表达式:, – ,*,/和sqrt()函数; 例如:“2 3 * sqrt(100 * 25)” – >应计算为152>函数:GetSubString()和ConcatenateStrings()例如:“GetSubString(‘100str1’,0,3)” – >应计算为100 我有2个单独的语法来解析这些表达式类型.现凤凰中的C boost :: lambda :: ret等效
Boost lambda允许使用ret< T>来覆盖推断的返回类型.模板. 我曾尝试在凤凰中搜索等效物,但找不到它. 在凤凰中有相同的东西吗?我知道怎么做自己的替换,但我宁愿不做.谢谢解决方法:重写:我错过了我的第一个答案(已经很晚了),让我再试一次. 让我为像我这样第一次可能会错过你的观点的人