問題タブ [boost-spirit-x3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
441 参照

c++ - ブースト スピリット x3 パーサーから返されたベクター内の空の文字列

すべての列挙型のファイルをチェックしたい (これは単なる MCVE であるため、複雑なことは何もない)。列挙型の名前は、次のstd::vectorようにパーサーを構築する

enum_finderthisを使用して文字列を に解析しようとするとstd::vectorstd::vector多くの空の文字列も含まれます。このパーサーが空の文字列もベクトルに解析するのはなぜですか?

0 投票する
2 に答える
397 参照

c++ - ブーストスピリット x3 int32 | double_ は double の解析に失敗します

int32_taまたは aを解析するパーサーを作成しようとしていdoubleます。最初の試みとして、私はこのパーサーを書きました:

boost::variant<int32_t, double> パーサーが int のような解析に成功することを期待して12, 100, -42, 7いますが、 double のような解析に失敗します13.243, 42.7, 12.0 -10000.3

ここにライブデモがあります

このパーサーが double で失敗するのはなぜですか?

0 投票する
2 に答える
722 参照

c++ - キーワードを除く識別子の解析

キーワードではない英数字文字列を解析する識別子パーサーを書くのに苦労しています。キーワードはすべて表にあります。

識別子のパーサーは次のようになります。

これらを組み合わせて、識別子パーサーがキーワードの解析に失敗するようにしました。私はこのように試しました:

この:

ほとんどの入力で機能しますが、文字列が次のようなキーワードで始まる場合int, whilefoo, forbar、パーサーはこの文字列の解析に失敗します。このパーサーを正しくするにはどうすればよいですか?

0 投票する
1 に答える
323 参照

c++ - Spirit X3、セマンティック アクションによりコンパイルが失敗する: 属性に期待されるサイズがない

このコードはコンパイルされません (gcc 5.3.1 + boost 1.60):

静的アサーションで失敗します。

wandbox のおかげで、boost 1.61 と clang も試しましたが、どちらも同じ結果が得られました。

に添付されているセマンティック アクションを削除すると、正常にportalコンパイルされます。次のように変更destしても同じことが起こります。

どんな助けでも大歓迎です。ティア。

0 投票する
1 に答える
166 参照

c++ - 文字列のリストに続いて文字列のリストを精神 x3 で解析する

ブーストスピリットx3を使用して、文字列を構造体に解析しようとしています:

これで、次のような文字列に一致するパーサー ルールができました。

私のパーサールールは次のようになります。

whereid_stringの組み合わせを解析しalphanumます。foo.barたとえば、解析中にルールのこの部分が-(id_string % ".")文字列全体を消費するため、このルールが意図したとおりに解析できないことはわかっています。構造体で正しく解析するようにルールを変更するにはどうすればよいですか?