問題タブ [bisonc++]

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

c++ - bisonc++ でブラケットを正しく受け入れる

を使用して基本的な構文チェッカーを作成しようとしましたbisonc++

ルールは次のとおりです。

コンパイルされたコードを実行しようとすると、次の行でエラーが発生します。

最初のルールが適用され、左端と右端の括弧が theOPEN_BRACKETと the になりCLOSE_BRACKETます。残りexpressionは次のとおりです。a+b)-(c+d

この動作を防ぐにはどうすればよいですか? 開き括弧と閉じ括弧を数えることは可能ですか?


編集

式の文法:


編集2

レクサー

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

c++ - GDB でデバッグ中に bison の変数の値を知るにはどうすればよいですか?

入力したコマンドを解析できる小さなコンパイラを作成しようとしています。

解析しようとするコマンドは次のとおりです。

私のコードは次のようになります。

ただし、パーサーを別の場所で呼び出そうとすると、Class以前に定義した を取得できません。

パーサーに何か問題があり、GDB でデバッグを行ったに違いないと思います。しかし、関数に足を踏み入れることはできずpush_back()、情報をobj正しく出力することもできません。

そのため、 GDB の使用中$$または使用中に値を取得できる方法があるかどうか疑問に思っています。$1入力するだけで、別のp $$ものが出力されます。

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

bisonc++ - bisonc++ - プロダクション ルールはありませんか?

私はbisonc ++で以下をコンパイルしようとしています:

ただし、エラーが返され続けます

私には明らかにいくつかの生産ルールがあり、何が間違っているのかわかりません。私は別の実用的な例からほとんどのコードをコピーし、好みに合わせて変更しました。なにが問題ですか?

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

bisonc++ - Bisonc ++ - 競合するルールを返す詳細レポート?

bisonc++ のコンパイラに大きな問題があります。エラー メッセージがゴミです。問題を見つけるのは非常に困難ですLine 63: 2 Reduce/Reduce conflict(s)(63 行目はコードの最後の行です)。bisonc ++も競合の原因となるルールを返すようにする方法、スイッチなどはありますか? 詳細なエラー報告はありますか? ありがとうございました!

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

c++ - ポリモーフィックな bisonc++ 継承

バイソン文法から AST を構築しようとしています。Bison はパーサーを正しく生成しますが、いくつかの数学演算でサンプル コードを解析しようとすると、次のエラーが表示されます。

exprデバッグ後、問題は次のプロダクションの非ターミナルにあることに気付きました。

そしてoperator、次のプロダクション自体があります:

私はポリモーフィック セマンティック タイプを使用してexprおり、タイプ witchに応答する でoperatorタグ付けされており、 withの基本クラスです。バイソンはタグから型を取得し、キャストを行う前にタグをチェックしていると思います。これを解決する方法はありますか?EXPRExprASTNodeIntASTNodeINT