問題タブ [bison]

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 投票する
3 に答える
3603 参照

c++ - Bison は UTF-8 文字を解析できますか?

UTF-8 文字を処理する Bison パーサーを作成しようとしています。パーサーに Unicode 文字の値を実際に解釈させたくはありませんが、UTF-8 文字列を一連のバイトとして解析させたいと考えています。

現在、Bison は問題のある次のコードを生成します。

問題は、UTF-8 文字列の多くのバイトが負の値を持つことであり、Bison は負の値を EOF として解釈し、停止します。

これを回避する方法はありますか?

0 投票する
3 に答える
6127 参照

bison - PHP 内の Flex/Bison ライクな機能

PHP で Flex/Bison (または Lex/Yacc など) をサポートする方法を探しています。具体的には、Web UI にブール値クエリ パーサーを実装しており、(C パーサーを呼び出したり、Python に渡したりするのではなく) すべての操作を PHP 内に保持したいと考えています。

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

bison - Bison の警告「... 宣言された型がありません」の解決方法

このファイルで Bison を実行します。

次のような警告が表示されます。

警告: 'exp' の $$ には宣言された型がありません。

それはどういう意味ですか、どうすれば解決できますか?

0 投票する
3 に答える
1706 参照

search - フレックスとバイソンの結合の難しさ

FlexとBisonを使用して、論理「and」、「or」、「not」操作、および「()」を使用したネストされた部分式をサポートするブールクエリ言語の文法仕様があります。

「(A&B)|(C&D)」として解析したい「AとBまたはCとD」のようなクエリが実際には「A&(B |( CD ) )"。これは結合性の問題であるとほぼ確信していますが、適切な説明や例をどこにも見つけることができないようです。それか、重要な何かが欠けています。

boolpars.yからの関連情報:

誰かが欠陥を見つけることができますか?バイソンが「または」適切な優先順位を与えていない理由がわかりません。

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

c++ - yyparse は先頭のタブを印刷しています

私の bison/flex プログラムでは、yyparse() が呼び出された直後に先頭のタブが出力されますが、その理由はわかりません。何が悪いのか分かりますか?

これは bison コードを呼び出し、yyparse() が戻った直後にタブが出力されます。

私のバイソン ルールはすべて、return ステートメントと組み合わせた正規表現です。これに影響を与えることがわかった bison の唯一の興味深いコードは次のとおりです。

何人かからの提案を試してみましたが、まだうまくいきません。ここに私の完全なフレックスファイルがあります:

}

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

string - Flex はバイソンに一致する文字列を返すことができますか

LaTeX を MathML に変換する Bison/Flex プログラムを作成しています。現時点では、関数 (つまり、\sqrt、\frac など) の処理は、すべての関数のトークンを使用して、次のように機能します。

そして、トークン FUNC_FRAC を bison に渡します。bison は、このサブツリーの説明でその役割を果たします。

しかし、これは、潜在的に無制限の数のトークンを定義してジャグリングする必要があることを意味します。私がやりたいのは、このようなもので、書かれているようには機能しません。フレックス:

そしてバイソンで:

0 投票する
3 に答える
9724 参照

bison - Windows で flex を使用するにはどうすればよいですか?

Windows でプロジェクトをコンパイルしようとしていますが、flex/bison を使用しています。

MinGWをインストールした後、flexファイルとbisonファイルのコンパイルはうまくいきましたが、ビルドの最終ステップに到達すると、次のようになります。

ライブラリが見つからないと表示されます。

Googleでしばらくして、フラグを-llibfl.aに変更しようとしましたが、このライブラリも見つかりませんでした。

このライブラリのコピーを入手したり、自分でビルドしたりするにはどうすればよいですか?

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

c - トークンのセマンティック値 (シンボル レコード) を正しく破壊し、GNU Bison を使用してメモリ リークを回避する方法は?

私は単純化された Pascal パーサー/インタープリターを書いていますが、今はセグメンテーション違反について考えています。まだ取得していません。すべて正常に動作していますが、Cygwin で開発しているため、valgrind を使用してプログラムをテストすることはできません。

基本的に私がやっていることは以下のとおりです。

もちろん、トークンは正しく入力されています。問題は、たとえば、いくつかの式を否定する場合です。通常、新しいものを malloc する代わりに、いくつかの symrec * を再利用します。

例:

もちろん、これは私のコンテキストでは有効ではありません (データ型として int または double を考慮した例では)、symrec * を適切に解析していますが、このシナリオでは、デストラクタは $2 を解放せず、$$ をそのままにします。ある種のダングリングポインター?

これを書いている時点で、これが実際に起こってセグメンテーション違反が発生した場合は、$2 = NULL; を作成するだけでよいと考えています。%destructor{} 句でそれを確認しますか?

PS: 私は英語のネイティブ スピーカーではなく、これをかなり長く作成したため、混乱したアイデアについてはご容赦ください。すぐに再説明します。

0 投票する
3 に答える
15707 参照

parsing - Lex / Flex での状態の開始

パーサー ジェネレーターに Flex と Bison を使用していますが、スキャナーの開始状態に問題があります。

コメントを処理するために排他的なルールを使用していますが、この文法は引用されたトークンと一致しないようです:

この簡単な例では、次の行:

次のルールを含めない限り、コメントとして完全に一致するわけではありません。

これらすべてのトークンを排他的ルールに追加することなく、これを回避するにはどうすればよいですか?