boost-spirit-qi

    2

    1答えて

    「一般的な」エラー処理(チュートリアルで与えられているような)とNabialekのトリックをどういう形で組み合わせることはできますか?このように:some_other_ruleは怠け者-と呼ばれ、失敗した場合今 ... on_error<fail> ( start , std::cout << val("Error! Expecting ") << _

    0

    1答えて

    私はプロジェクトにブースト::精神を実施してきたし、私の課題の一つは、タイプの容器に直接解析することです: map<string, string> Iほとんどそこにいる。私が実行した問題は、std :: pairのキー値を自動的に割り当てることです。つまり、入力文字列内の各トークンには事前に決められたキーがあり、トークンが解析されると自動的にペアに挿入されます。 は私が近いんだと思いますが、そ

    2

    1答えて

    最近私はboost :: spirit :: qiで遊んでいて、自分自身を書こうとしています単純な)スクリプト言語を使用して解析します。私はスクリプトのif文にアクセスしたときに問題が発生しました。関数呼び出しが真の場合、パーサーが入力の一部をスキップする必要があります。 たとえば、変数名(a-zA-Z_)を受け入れるようにトークンを定義し、 ">"または "<"を受け入れるように比較を設定しまし

    1

    2答えて

    Unixのファイルパスをフォルダのペア(キーと値のペア - アプリケーションに必要なもの)に解析しようとしています。問題は、qi :: ruleを正しく使用してパーサーを定義できないことです。私は完全に理解できないコンパイラエラーのページを手に入れます(質問は単純ですが、本当に固まって進行することができない場合は申し訳ありません) 以下はプログラムスニペットです。 更新:Nicolとildjarn

    1

    1答えて

    私はBoost.Spiritが新しく、ライブラリを使って実装しようとしているミニインタープリタに関する質問があります。私の言語の構文解析のサブタスクとして、私は、フォームの入力からファイルパスを抽出する必要があります。 "path = \"/path/to/file\"" とセマンティックアクションに(引用符なし)、それを文字列として渡します。 このタイプの入力を解析できるコードを書いています

    4

    1答えて

    スピリットパーサーを実装するためにthis exampleを見ると、私が似たようなものを書くときに何かがわかりました。 文法の属性テンプレートパラメータ(std::map<std::string, std::string>())とルールの署名テンプレートパラメータ(たとえばqi::rule<Iterator, std::string()> key, value)には括弧が含まれています。 name

    7

    1答えて

    私はBoost :: Spiritを使ってテキストを構造体に解析しています。これには、テキストを解析して構造体に直接格納するためにBOOST_FUSION_ADAPT_STRUCTを使用する必要があります。私はマクロが2つの引数を取ることを知っています:第1引数としての構造体名と第2引数としてのすべての構造体メンバそして、私はちょうどそれらの2を渡しています。しかし、私は言ってコンパイルエラーを取

    0

    2答えて

    boost :: spiritのドキュメントでは、文法はstructを使って定義されています。たとえば、 template <typename Iterator> struct my_grammar : qi::grammar<Iterator, qi::locals<std::string>, ascii::space_type > { my_grammar()

    0

    1答えて

    私はSpiritライブラリを初めて使用しようとしています。私は今までそれを楽しんでいますが、ドキュメンテーションに大きな影響を受けた例を試しても、あらかじめ定義されたルールから文法を構築することはできません。ここで は私の問題の核心である: #include <boost/spirit/home/qi.hpp> using boost::spirit::qi::ascii::space_type

    0

    1答えて

    Boost Spirit Qiパーサーの文法はすばらしく、私はそれらを常に小さなもののために使います。しかし、別々の文法を作ってみたいという時があります。 これは、適切な文法を組み込み、1つのコンパイルで#1つのコンパイルを簡単に行うことができます。しかし、これにより、コンパイル時間が屋根を通過し始める。同様に他の欠点もある。 個別にコンパイルされた文法を作成する方法はありますか?言い換えれば、ヘ