問題タブ [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.
c++ - bisonc++ でブラケットを正しく受け入れる
を使用して基本的な構文チェッカーを作成しようとしましたbisonc++
ルールは次のとおりです。
コンパイルされたコードを実行しようとすると、次の行でエラーが発生します。
最初のルールが適用され、左端と右端の括弧が theOPEN_BRACKET
と the になりCLOSE_BRACKET
ます。残りexpression
は次のとおりです。a+b)-(c+d
この動作を防ぐにはどうすればよいですか? 開き括弧と閉じ括弧を数えることは可能ですか?
編集
式の文法:
編集2
レクサー
c++ - GDB でデバッグ中に bison の変数の値を知るにはどうすればよいですか?
入力したコマンドを解析できる小さなコンパイラを作成しようとしています。
解析しようとするコマンドは次のとおりです。
私のコードは次のようになります。
ただし、パーサーを別の場所で呼び出そうとすると、Class
以前に定義した を取得できません。
パーサーに何か問題があり、GDB でデバッグを行ったに違いないと思います。しかし、関数に足を踏み入れることはできずpush_back()
、情報をobj
正しく出力することもできません。
そのため、 GDB の使用中$$
または使用中に値を取得できる方法があるかどうか疑問に思っています。$1
入力するだけで、別のp $$
ものが出力されます。
bisonc++ - bisonc++ - プロダクション ルールはありませんか?
私はbisonc ++で以下をコンパイルしようとしています:
ただし、エラーが返され続けます
私には明らかにいくつかの生産ルールがあり、何が間違っているのかわかりません。私は別の実用的な例からほとんどのコードをコピーし、好みに合わせて変更しました。なにが問題ですか?
bisonc++ - Bisonc ++ - 競合するルールを返す詳細レポート?
bisonc++ のコンパイラに大きな問題があります。エラー メッセージがゴミです。問題を見つけるのは非常に困難ですLine 63: 2 Reduce/Reduce conflict(s)
(63 行目はコードの最後の行です)。bisonc ++も競合の原因となるルールを返すようにする方法、スイッチなどはありますか? 詳細なエラー報告はありますか? ありがとうございました!
c++ - ポリモーフィックな bisonc++ 継承
バイソン文法から AST を構築しようとしています。Bison はパーサーを正しく生成しますが、いくつかの数学演算でサンプル コードを解析しようとすると、次のエラーが表示されます。
expr
デバッグ後、問題は次のプロダクションの非ターミナルにあることに気付きました。
そしてoperator
、次のプロダクション自体があります:
私はポリモーフィック セマンティック タイプを使用してexpr
おり、タイプ witchに応答する でoperator
タグ付けされており、 withの基本クラスです。バイソンはタグから型を取得し、キャストを行う前にタグをチェックしていると思います。これを解決する方法はありますか?EXPR
ExprASTNode
IntASTNode
INT