boost-spirit

    6热度

    1回答

    我想解析(首先,只能识别,保留符号)LaTeX数学。现在,我在超级和下标方面遇到了麻烦,并加上了花括号(例如a^{bc}及其组合,我已经有了基本的a^b工作得很好)。一个最小的例子(如短力所能及同时保持可读性可能): #include <iostream> using std::cout; #include <string> using std::string; #inc

    1热度

    1回答

    我正在使用spirit X-3并且想要解析以十六进制表示的RAM地址,如“00ff0af0”。 对于64位系统,地址的大小为64位。 不幸的是boost::spirit::x3::hex使用无符号。 我能做些什么来解析64位十六进制数字与助推精神?

    2热度

    1回答

    如何防止X3符号分析器匹配部分令牌?在下面的例子中,我想匹配“foo”,但不匹配“foobar”。我尝试将符号解析器放在lexeme指令中,就像标识符一样,但没有匹配。 感谢您的任何见解! #include <string> #include <iostream> #include <iomanip> #include <boost/spirit/home/x3.hpp> int m

    2热度

    1回答

    我是新来的精神和一般的提升。我试图解析类似如下的VRML文件的一部分: point [ #coordinates written in meters. -3.425386e-001 -1.681608e-001 0.000000e+000, -3.425386e-001 -1.642545e-001 0.000000e+000,

    2热度

    1回答

    我想分析以下字符串:id=1;entry1=[A,B,D];entry2=[bla,blubb];factor=[1,5]! 我的解析器: struct Entry { uint32_t id; std::vector<std::string> entry1; std::vector<std::string> entry2; bool useFactor

    2热度

    1回答

    使用凤,像这样的规则: start_ = (Rule1[SA1] >> +Rule2[SA2] >> Rule3) [ SA ]; 难道纠正,里面SA, _1是规则1的属性 _2(+规则2)的属性 _3是Rule3的属性? ?

    0热度

    1回答

    我有我的解析器解析不平等,工作正常以下规则: rel = sum [ _val = _1 ] >> *(('<' >> sum [_val = _val < _1]) | ('>' >> sum [_val = _val > _1])); 现在,我想补充的<=和>=运营商。所以我尝试以下方法: rel = sum [ _val = _1 ] >> *(('<'

    2热度

    1回答

    我有这样的语法传递给phrase_parse() double_[push_back(phoenix::ref(v), _1)] >> *(*blank >> double_[push_back(phoenix::ref(v), _1)]) 第二个表达式开始*(*blank,找出0或多次出现的 “双”。在我的情况下,我想确保它恰好匹配6次。是否有可能以助推的精神来做到这一点?

    1热度

    1回答

    我在过去的几个月中经常使用spirit::qi。但是,这次我得到了一个段错误,我真的无法理解。 我已经将它减少到极小的测试用例,语法定义是12行代码。 这种感觉很像earlier question,但在那里的解决方案,将.alias()添加到一些终端,以便qi不复制它们,似乎并没有解决这个问题。 我担心这里有一些基本的东西我不知道,因为我已经设法让语法更加复杂,而不是完全按照我期望的方式进行测试。

    1热度

    2回答

    我使用Boost Spirit示例中的num_list3.cpp。我正在测试它可以解析的多种类型。我用下面的列表: 1.2,0.2 .2,5. 1.e+23,.23E4 0e+10 1.3D+3 我注意到,它无法解析上的最后一个号码1.3D+3。 我怎样才能将D设置为double的指数前缀?