boost-spirit-qi

    0

    1答えて

    以下の関数は、最初にs.begin()を指し、s.begin() + 1を指しているイテレータを変更しますか?私は正しい? #include <boost/spirit/include/qi.hpp> #include <string> #include <iostream> using namespace boost::spirit; int main() { std::

    1

    1答えて

    非常に特殊な文法を実装しようとしています。特定の時点でコンマで区切られた整数のリストを解析する必要があります。気のルールは以下のようになります。 qi::rule<Iterator, ascii::space_type> ident; qi::rule<Iterator, ascii::space_type> nlist; ... ident = char_ >> nlist; nli

    2

    1答えて

    多少単純な問題がありますが、何とか答えが見つかりません。より大きな文法の解析に取り組んでいるうちに、15文字を超える文字列を解析すると、パーサが失敗したとして返されることがわかりました。パーサは、次のようになります。 namespace parser { template <typename Iterator> struct p_grammar : qi::grammar<It

    1

    1答えて

    インスタンス名とパスの解析が必要な文法を実装したいと考えています。パスはディバイダで区切られたインスタンス名のリストです。分周器は、どちらか.(ピリオド)または/(スラッシュ)パスがリストされている前に、入力ファイルに与えられた、例えばことができます。一度設定すると DIVIDER . a.b.c x.y.z に設定すると、分周器はファイル全体(つまりために変更されることはありません.、a

    0

    1答えて

    ブースト::スピリットを習得しようとしていて、Cスタイルの識別子の簡単な例に取り掛かりたい。以下の文法は、 'incompatible_start_rule'と主張してコンパイルしません。目標は、この文法が、デフォルトの属性伝播ルールのように、文字列のベクトルの代わりに文字列を返すことです。 template <typename IT> struct cppIdentifier : qi::gr

    3

    1答えて

    空白で区切られた、オプションでタグ付けされたキーワードの文字列を解析しようとしています。例えば、 descr:expense type:receivable customer 27.3 ここで、コロンの前の式はタグであり、任意である(すなわち、デフォルトのタグが仮定される)。 私はパーサーに自分がしたいことをすることはできません。私はcanonical exampleからいくつかのマイナーチェ

    1

    1答えて

    このコードは機能します。この質問はそれをよりよく見せることです。 私はutreeについて記事を知っているのを見たことがありますが、それが最善の方法であるかどうかはわかりません。が qi::rule<Iterator, common_node(), Skipper> newcall qi::rule<Iterator, std::wstring()> tyname; ターゲット共通ASTノード

    2

    1答えて

    として継承された属性を持つルールの我々はルール1 qi::rule<std::string::iterator, int()> rule1 = qi::int_[qi::_val=qi::_1]; を持っており、我々は属性としてint型を取得して決めましょうが、十分ではありません、我々はまた、強化(生データを取得したい:: iterator_range)。ルール1と同じタイプのルールがたくさん

    1

    1答えて

    boost::asio::async_read_untilを使用して、TCPソケットから\n -ended行を読み取ります。ここで http://www.boost.org/doc/libs/1_63_0/doc/html/boost_asio/reference.html#boost_asio.reference.async_read_until void-or-deduced async_re