boost-spirit-x3

    3

    1答えて

    floatまたはintの単純なリストをバリアントのベクトルに解析しようとしています。私はWindows上で1.64のブーストを使用しています(mingw 64bit)。ここで は、最小限の例です:GCC 7.1は、次のエラー与え #include <boost/spirit/home/x3/support/ast/variant.hpp> #include <boost/fusion/adapt

    1

    1答えて

    私は、ブースト1.65.1のSpirit X3を使ってパーサを作成しようとしています。私はシンプルな構造で、次の小さな例に私の問題を低減しています #include <boost/config/warning_disable.hpp> #include <boost/spirit/home/x3.hpp> #include <boost/fusion/include/adapt_struct.

    1

    1答えて

    以下のルールでx3 :: epsを削除すると、最初の部分一致の文字列結果は2番目の一致文字列に残り、重複した内容の文字列になります。 私の中に別のケースを追加すると、私はまだ2つではなく1つの複製が得られます。 なぜx3 :: epsを使用する必要があるのですか。ルールと合成属性の評価で私は誤解しますか? 代わりに先読みを使用する必要がありますか? #include <boost/config/w

    2

    2答えて

    これらの移動エラーが多く発生し、文字列を解析する方法とは関係のない以外の理由がわかりません。 「ダミー」と関係のあるものをすべて削除すると、エラーが戻ってきます。 誰かがattr_gen(ドキュメントでこれを見つけることができませんでした)を使用して記述しました。このような "traits :: move_to"コンパイルエラーを回避できますが、パーサはまだ失敗します。私はそれをコンパイルするため

    1

    1答えて

    私はboost spirit x3を使って文法を作成しました。私の結果のパーサをテストしている間、私はパーサは、次のexeptionスローする場合があることを認識: terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not va

    2

    1答えて

    文字列に文字列をマッピングするキーと値のペアを解析したいと思います。私は右辺のため{ ... }のブロックをサポートしたいので、私は #include <boost/spirit/home/x3.hpp> #include <boost/fusion/include/std_pair.hpp> namespace grammar::map { using namespace bo

    1

    1答えて

    実装したい文法では、列挙型(astノードの具体的なキーワードの列挙型IDを格納する)または同じ特定のキーワードの存在のみを含むいくつかのキーワードがあります。ブール値のコンテキストではオプションです。私は、自己表現力パーサ表現およびASTノードを持ちたいので、私は、次の(コンパイル可能)解決策を考え出した: #include <iostream> //#define BOOST_SPIRIT_X

    1

    1答えて

    ドキュメントから、expectオペレータを使用すると、オペレータが一致しなかった場合にexpectation_failureを取得する必要があると言われています。私は誤った入力がどこにあるのかをユーザに指示するために例外をキャッチしたいと思う。しかし、私が代わりにラップされた例外のいくつかの種類を取得するようだ: terminate called after throwing an instanc

    2

    1答えて

    を使用して0以上のリストを分離ブーストスピリット×3で0 or more listを分離しました。 私はstd::vectorに1 or more listを解析し%-operatorを知っています。 私が必要とするとき0 or more list私は現在、私が何をしたいんが、私は後の午前はかなりのものではありませんこれは、boost::optional<std::vector>に解析し、この-(

    0

    1答えて

    私の問題は次のとおりです。私は次のようにのように定義されたASTノードがあります。 struct foo_node{ std::vector<std::string> value; } を、私は正常に動作し、構造体に解析するために、このようなパーサ、持っている: typedef x3::rule<struct foo_node_class, foo_node> foo_node_t