boost-spirit

    2热度

    1回答

    我经常需要解析逗号分隔0 or more list助推精神x3。 我知道%-operator,它将1 or more list解析为std::vector。 当我需要一个0 or more list我目前这样做-(element_parser % separator),这是我想要的,但解析为boost::optional<std::vector>,这是不是我所追求的东西。 那么我该如何制作一个解析

    2热度

    1回答

    我试过使用qi::uint_parser<int>()。但它与qi::uint_相同。它们全部匹配整数范围从0到std::numeric_limits<unsigned int>::max()。 是qi::uint_parser<int>()这样设计的?我应该使用什么语法分析器来匹配从0到std::numeric_limits<int>::max()的整数范围?谢谢。

    3热度

    2回答

    我是新来使用升压精神工作 阅读很好articels为提振精神的很多我决定做一个自己的解析器和运行成解析表达式这样的问题 1+(2 +(3+(4+(5+(6+(7+(8))))))) 需要永远上运行时..使得它更简单1+( 2+(3))工作正常。我看起来像解析器的回溯是活跃的。请给我一个提示,如何修改语法或行为以使其及时运行。 这里是一个来自语法的代码。我使用“iter_pos”来跟踪位置。 问候

    1热度

    3回答

    我想解析中间有非数字的字符串的数值。是否有可能以助推精神来做到这一点?例如, std::string s = "AB1234xyz5678C9"; int x = 0; boost::spirit::qi::parse(s.begin(), s.end(), /* Magic Input */, x); // x will be equal 123456789

    2热度

    1回答

    我有一个以下代码来评估一个基于字符串输入的布尔字符串。 应该这样工作的代码: Boolean string: "((0|1)&3);" Sting input: "101" 最近怎么工作的?输入字符串中的每个字符应该被布尔字符串中的相应字符替换。 例如: 1 0在输入字符串布尔字符串 0布尔字符串 1中的输入字符串的输入字符串由1由3布尔型字符串 我知道它很混乱,My问题在于代码被用于许多

    4热度

    1回答

    我有以下的代码和平: #include <gtest/gtest.h> #include <boost/config/warning_disable.hpp> #include <boost/spirit/include/qi.hpp> #include <boost/spirit/include/qi_eps.hpp> #include <boost/spirit/include/pho

    2热度

    1回答

    我试图解析输入,它有一个加号或减号字符,后跟一个X或Y字符,后跟一个无符号整数。 (char_('+') | char_('-')) >> char_("xyXY") >> uint_ 根据我的文档的读数,此合成的属性将是tuple<vector<char>,unsigned int>因为替代解析器(char | char)将char型时,char >> char("xyXY")将vector

    3热度

    2回答

    运行以下代码会导致崩溃。为什么? #include <boost/spirit/include/qi.hpp> #include <boost/spirit/include/support_multi_pass.hpp> using namespace boost::spirit; typedef multi_pass< std::string::const_iterator

    1热度

    1回答

    我已经编写了以下简单语法来检测服务器返回的字符串是否为失败登录。我在phrase_parse函数中使用它内联,但由于代码被定期调用,我想创建一个静态语法实例。我使用的是这样的: bool loginFailed() { namespace qi = boost::spirit::qi; namespace ascii = boost::spirit::ascii;

    1热度

    1回答

    我使用boost spirit x3创建了一个语法。在测试我得到的解析器,我认识到存在这样的情况解析器引发以下exeption的情况下: terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not valid 我不知道这会发生