問題タブ [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.
c++ - ブースト スピリット x3 パーサーから返されたベクター内の空の文字列
すべての列挙型のファイルをチェックしたい (これは単なる MCVE であるため、複雑なことは何もない)。列挙型の名前は、次のstd::vector
ようにパーサーを構築する
enum_finder
thisを使用して文字列を に解析しようとするとstd::vector
、std::vector
多くの空の文字列も含まれます。このパーサーが空の文字列もベクトルに解析するのはなぜですか?
c++ - ブーストスピリット x3 int32 | double_ は double の解析に失敗します
int32_t
aまたは aを解析するパーサーを作成しようとしていdouble
ます。最初の試みとして、私はこのパーサーを書きました:
boost::variant<int32_t, double>
パーサーが int のような解析に成功することを期待して12, 100, -42, 7
いますが、 double のような解析に失敗します13.243, 42.7, 12.0 -10000.3
ここにライブデモがあります
このパーサーが double で失敗するのはなぜですか?
c++ - キーワードを除く識別子の解析
キーワードではない英数字文字列を解析する識別子パーサーを書くのに苦労しています。キーワードはすべて表にあります。
識別子のパーサーは次のようになります。
これらを組み合わせて、識別子パーサーがキーワードの解析に失敗するようにしました。私はこのように試しました:
この:
ほとんどの入力で機能しますが、文字列が次のようなキーワードで始まる場合int, whilefoo, forbar
、パーサーはこの文字列の解析に失敗します。このパーサーを正しくするにはどうすればよいですか?
c++ - Spirit X3、セマンティック アクションによりコンパイルが失敗する: 属性に期待されるサイズがない
このコードはコンパイルされません (gcc 5.3.1 + boost 1.60):
静的アサーションで失敗します。
wandbox のおかげで、boost 1.61 と clang も試しましたが、どちらも同じ結果が得られました。
に添付されているセマンティック アクションを削除すると、正常にportal
コンパイルされます。次のように変更dest
しても同じことが起こります。
どんな助けでも大歓迎です。ティア。
c++ - 文字列のリストに続いて文字列のリストを精神 x3 で解析する
ブーストスピリットx3を使用して、文字列を構造体に解析しようとしています:
これで、次のような文字列に一致するパーサー ルールができました。
私のパーサールールは次のようになります。
whereid_string
の組み合わせを解析しalphanum
ます。foo.bar
たとえば、解析中にルールのこの部分が-(id_string % ".")
文字列全体を消費するため、このルールが意図したとおりに解析できないことはわかっています。構造体で正しく解析するようにルールを変更するにはどうすればよいですか?