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的指數前綴?