boost-spirit-qi

    3熱度

    1回答

    我有以下片段。 #include <iostream> #include <sstream> #include <chrono> #include <boost/spirit/include/qi.hpp> #include <boost/spirit/include/classic.hpp> namespace qi = boost::spirit::qi; namespace

    2熱度

    2回答

    所以我試圖做的是解析字符串列表: namespace qi = boost::spirit::qi; namespace ascii = boost::spirit::ascii; std::string TEST = "aa\nbbbb\nccc\n"; std::istringstream INPUT (TEST); std::noskipws(INPUT); typedef

    3熱度

    2回答

    我正在嘗試使用boost::spirit:qi從其他參數動態構建解析器。目標是解析一個字符串並用鍵和值填充std::map<std::string, std::string>。但是,映射的關鍵字段沒有被解析(即在解析器生成之前它是已知的)。 我猜我需要編寫一個語義操作,將映射的鍵設置爲適當的分析值。我可以看到qi::_1提供瞭解析器的內容,但我如何引用返回結構(在本例中爲std::map)? 如果

    2熱度

    1回答

    由於某種奇怪的原因,我無法獲得qi::as_string[]與repeat()[]一起使用。 解析std::string str = { "{ +100S+++ ;\n }" };,我得到以下OUTPUT PLUS OR MINUS+ THREE PLUS OR MINUS PARSED FINE ------------------------- Parsing succeeded -

    0熱度

    1回答

    我試圖解析與升壓::精神這個簡單consise XML的頭腦結構, One{ Two{ Three{ } } } 和代碼的組織結構如下: 的結構定義保持精神-東西: struct config; typedef boost::variant< boost::recursive_wrapper<config> , std::string > con

    1熱度

    2回答

    我有一種情況,我想通過std :: map來過濾作爲規則內的綜合屬性出現的值。 該映射是預生成的,在解析過程中不會更改。 地圖的性質和真正的解析器意味着查找應該永遠不會失敗(儘管實際元素數量可能相當大) 完美適合此問題的常用方法(使用符號表)isn'適合真實的情況。在真正的問題中,查找是基於一個屬性的條件,這個屬性直到解析的很晚(在某種程度上被刪除的規則中)纔會顯現出來。 我嘗試: #define

    2熱度

    1回答

    當我在詞法分析器限定 typedef boost::mpl::vector<std::string, unsigned int, bool> token_value_types; lex::token_def<unsigned int> lit_uint("[0-9]+", token_ids::lit_uint); ,然後用它在一些語法如 primary_expr =

    1熱度

    1回答

    我正在嘗試編寫一個解析器,它使用Variable-Declaration和-Instantiations讀入文本文件,並構造一個Variable-Table,其中包含所有聲明的變量及其關聯的值。 文件如下所示: int a = 18, b = 1+a*5; float test = rand(a); 要做到這一點,我想使用升壓::精神::氣解析庫,提供了一個動態符號表解析器可以象徵關聯一個可

    2熱度

    1回答

    我想解析文本文件中的浮點數並將其插入符號表中;解析器和符號表由spirit :: qi提供。 這裏是我的代碼: #include <boost/spirit/include/qi.hpp> #include <boost/spirit/include/phoenix.hpp> #include <stdint.h> #include <iostream> #include <string

    2熱度

    2回答

    我需要匹配一些輸入,構造一個複雜的對象,然後以兩種方式匹配其餘輸入,具體取決於某些道具。的構建對象。 我試過了qi :: eps(/ 條件 /)>> p1 | p2但結果對我來說很明顯。 簡化代碼http://liveworkspace.org/code/1NzThA $ 6 在代碼片段,我從輸入int_匹配,如果該值== 0嘗試匹配「a」或者 - 「B」 但我得到了「0B」輸入OK!我試圖玩大括