boost-spirit-qi

    1熱度

    1回答

    我試圖調試我想在Visual Studio項目中使用一個boost ::精神語法:這是我的代碼片段: #include <boost/spirit/include/classic.hpp> #include <boost/spirit/include/qi.hpp> #include <boost/fusion/include/adapt_struct.hpp> // This is pa

    2熱度

    1回答

    從previous post我找到了一種方法用的boost ::精神來分析這種類型的結構: "parameter" : { "name" : "MyName" , "type" : "MyType" , "unit" : "MyUnit" , "cardinality" : "MyCardinality", "value" : "My

    3熱度

    1回答

    我使用升壓精神分析本質上是一個數學表達式(在m_formula舉行一些文本這是一個std::string) 我設置 double value; auto first = m_formula.begin(); auto last = m_formula.end(); 那麼,對於語法grammar,我解析m_formula: boost::spirit::qi::phrase_parse(fi

    1熱度

    2回答

    我想從文檔中提取關鍵短語:「something KEY phrase END something ... ect」。我的規則運作良好,但結果不包含關鍵名稱。爲了得到一個字符串應該是什麼規則:「KEY短語」。謝謝你的建議。 std::vector<std::string> doc; bool r = qi::phrase_parse(first,last, (qi::omit[*(qi:

    2熱度

    1回答

    我對精神很陌生,目前試圖將ini類文件解析爲結構體。創建語法是好的,但映射代對我來說仍然是一種魔法。該文件是這樣的: [fine] @cmp1 @cmp2 muh=b [fail] @cmp1 a=b @cmp2 它的工作原理,只要我已下令(節「精細」)的要求和特性,但我不能讓若需求和屬性交錯它的工作(節「失敗」)。我的結構定義是這樣的: typedef std::map<st

    4熱度

    1回答

    我正試圖按照以下說明創建自定義解析器:http://boost-spirit.com/home/articles/qi-example/creating-your-own-parser-component-for-spirit-qi/。在這篇文章中,解析器沒有參數,即我不能寫如qi::parse(first, input.end(), +qi::alpha >> custom_parser::it

    1熱度

    1回答

    我用boost::spirit實現了簡單的ascii分析器。 目標ASCII文件看起來像 n 0 23 45 10.0 0.5 ..... n-1 x y ..... 但在measure_list只有1元 ,如果我想讀ASCII作爲一個簡單的vector<double>,而不是結構性的示例返回 - 它工作正常。怎麼了? struct measure { int id;

    4熱度

    1回答

    我試圖解析一個對象,其中屬性的順序應該不重要。 例如,解析僱員 僱員{姓= 「DOE」,姓名= 「John」 的年齡= 30} 應該是相同的 員工{age = 30,firstname =「john」,surname =「doe」} 所以最好我的規則應該是這樣的(不介意缺乏正式定義的) unordered_rule %= lit("employee") >> "{" >> kwd("

    1熱度

    1回答

    我試圖解析逗號分隔的整數,可能的空白。例如,1,2,,3,,-1應該被解析爲{1,2,n,3,n,-1},其中n是一些常數。當n == 0 表達, (int_ | eps) % ',' 作品。更具體地講,下面的代碼使用了特殊的套管爲0: #include <boost/spirit/include/qi.hpp> #include <iostream> int main() {

    1熱度

    1回答

    寫作齊語法與鳳凰綁定我喜歡 升壓/精神/主頁/支持/ context.hpp(180)編譯錯誤:錯誤C2338 :index_is_out_of_bounds 這裏 >> ruleHandId_[phx::bind(&parseContext::handId_, qi::_r1) = qi::_1]; 我只是還沒有太多的expirience鳳凰約束力,但在該行PERV綁定 ruleStart_