boost-phoenix相关内容
“Difference”解析器可以由二元-(减号)运算符创建: rule = qi::char_ - qi::lit("}}") 甚至复合差异: rule = qi::char_ - qi::lit("}}") - qi::lit("]]") 但是如何在分析时生成差异分析器的全部结果? 我猜可能是某种形式,如下所示: phoenix::function
..
有谁知道 C++ 数据结构库提供熟悉的 STL 结构的功能(也称为不可变,或 FP 意义上的“持久")等价物? “功能性"是指对象本身是不可变的,而对这些对象的修改会返回与父对象在适当情况下共享相同内部结构的新对象. 理想情况下,这样的库应该类似于 STL,并且可以很好地与 Boost.Phoenix 一起使用(警告-我实际上并没有使用过 Phoenix,但据我所知它提供了许多算法但没
..
我想解析一个包含以下结构的文件: 一些垃圾*&%第 1 节 {部分内容}第2节{部分内容} 解析section_name1 { ... } section_name2 { ... } 的规则已经定义: section_name_rule = lexeme[+char_("A-Za-z0-9_")];section = section_name_rule >点亮(“{")>/*一些复杂的事情*
..
可以通过二进制-(减号)运算符创建“差异"解析器: rule = qi::char_ - qi::lit("}}") 甚至复合差异: rule = qi::char_ - qi::lit("}}") - qi::lit("]]") 但是我怎么能在解析时生成差异解析器的整个结果? 我猜它可能是某种形式,如下所示: phoenix::function差异解析器;规则 = qi::lazy(
..
我对提升::: spirit很陌生.我想将一串用逗号分隔的对象解析为std :: vector(类似于本教程中的内容).字符串可以具有不同的类型(在编译时已知):整数,例如"1,2,3" ,字符串"Apple,Orange,Banana" 等.等等.我想为所有类型提供一个统一的界面. 如果我解析单个元素,则可以使用 auto _ 表达式.向量可能有相似的界面吗?我可以定义一个规则,给定一个模
..
我是错误"LNK1179:文件无效或损坏:COMDAT重复"的受害者 和这些 (这是对我之前的问题的跟踪.) 我想用其他东西代替boost::phoenix.也许boost::bind,但我不知道如何授予它对karma::_val的访问权限. 以下代码无法在 的VC9上编译 错误C2825:"F":后跟"::"必须是类或名称空间 #include
..
假设我们有一条规则1 qi::rule rule1 = qi::int_[qi::_val=qi::_1]; 我们认为获取一个int作为属性是不够的,我们还想获取原始数据(boost :: iterator_range).我们可能有很多与Rule1类型相同的规则.因此,最好有一个通用的解决方案.因此,我们可以定义另一个规则2.
..
我想基于先前解析的值i定义一个规则. e.输入字符串具有以下结构:D 或I .无论第一个读取字符是D还是I,我都保留在本地布尔变量中.完整的代码是: #define BOOST_SPIRIT_USE_PHOENIX_V3 #include #include
..
我需要解析simple_expression ::= limit int_number (days | hours | minutes).我写了语法代码 struct Parser: grammar { public: Parser(ConditionTree&
..
我一直在尝试使用Boost Spirit解析字符串,如下所示: integer_count int1 int2 int3 ... intN 其中N是integer_count.例如, 5 1 2 3 4 5 代码如下: #define BOOST_SPIRIT_USE_PHOENIX_V3 #include #i
..
有没有办法让一个懒惰的凤凰值/ ref的指针?如果是这样的话? 因此一个简单的& _1 应该可以做到这一点(参见Phoenix docs here )。
..
有没有人知道一个C ++数据结构库,提供功能(在FP意义上是不可变的或“持久的”)熟悉的STL结构的等价物? “功能”我的意思是对象本身是不可变的,而对这些对象的修改会返回与父对象共享相同内部的新对象。 理想情况下,图书馆将类似于STL,并且可以与Boost.Phoenix(注意事项 - 我并没有真正使用Phoenix,但据我所知,它提供了许多算法但没有数据结构,除非对现有数据进行了延
..
我需要解析一个包含unsigned int的行,要舍弃的字符 X 和一个字符串,它们之间用一个或多个空格分隔。例如 1234 X abcd bool a = qi :: phrase_parse首先,最后, uint_ [ref(num)= _1]> lit('X')> lexeme [+(char_-'')], space,parsed_str) ; 上面的代码解析
..
在Boost Phoenix文章“转换表达式树”中,这里,自定义 invert_actions 类的一组特化用于反转二进制算术表达式。例如 a + b 变为 a-b ; a * b 变为 a / b ; 这涉及表达式树的递归遍历 - 但是,遇到涉及未明确处理的运算符的表达式时,此遍历停止。例如, _1 + _2-_3 将变为 _1-_2 + _3 ,但 _1 + _1& _2 将保持原样
..
在Boost Phoenix文章“转换表达式树”中,这里,自定义 invert_actions 类的一组特化用于反转二进制算术表达式。例如 a + b 变为 a-b ; a * b 变为 a / b ; 这涉及表达式树的递归遍历 - 但是,遇到涉及未明确处理的运算符的表达式时,此遍历停止。例如, _1 + _2-_3 将变为 _1-_2 + _3 ,但 _1 + _1& _2 将保持原样
..
我最近开始看着boost phoenix,作为lambda的替代品。 是phoenix完全替代lambda,还是有一些lambda功能不是由phoenix提供?是凤凰成熟吗? 我的主要兴趣是操作符组成,控制语句和强制类型。 感谢 解决方案 此帖子回答了您的所有问题。凤凰非常成熟。 Phoenix和lambda将被合并。它将是未来lambda实现的基础。
..
我最近开始看着boost phoenix,作为lambda的替代品。 是phoenix完全替代lambda,还是有一些lambda功能,不是由phoenix提供?是凤凰成熟吗? 我的主要兴趣是操作符组成,控制语句和强制类型。 感谢 解决方案 此帖子回答了您的所有问题。凤凰是非常成熟的。 Phoenix和lambda将被合并。它将成为未来lambda实现的基础。
..
Boost :: bind和Boost Phoenix :: bind之间有什么区别? 解决方案 phoenix :: bind 就像 lambda :: bind 一个函数,它返回一个表达式模板,它记录了它必须调用给定的函数。这些设计分别与phoenix和lambda一起工作。因此,它们包含更多的东西。类似地,它们返回的类型重载所有可能的操作符,使得它们各自的动作可以被记录和稍后执行。
..
有没有人知道一个C ++数据结构库提供的功能(在FP意义上是不变的,或“持久的”)等同于熟悉的STL结构? “功能”我的意思是对象本身是不可变的,而对这些对象的修改返回与父对象共享相同内部的新对象。 理想情况下,库将类似STL,并可以很好地与Boost.Phoenix(注意,我没有实际使用凤凰,但只要我能告诉它提供了许多算法,但没有数据结构,除非一个懒惰计算的改变现有的数据结构计数 -
..
我的boost :: spirit解析器有另一个问题。 template struct expression:qi :: grammar { expression(): expression :: base_type(expr){ numb
..