問題タブ [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.
antlr - Flex/Bison と比較して、ANTLR を使用することの欠点は何ですか?
私は数年前、学部生時代に Flex や Bison に取り組みました。とはいえ、今はあまり覚えていません。最近、ANTLRのことをよく耳にするようになりました。
- Flex/Bison をブラッシュアップするために、ANTLR またはそれ以上を学習することをお勧めしますか?
- ANTLR の機能は Flex/Bison より多い/少ないですか?
regex - 言語を構築するために正規表現を知っておくとよいでしょうか?
O'Reilly からFlex と Bisonを読んでいますが、事前に正規表現を学習することがプログラミング言語の開発に役立つかどうかを知りたいですか?
yacc - %glr-parserを使用する必要がありますか?
私はシフト/リデュースエラーを遠ざけています。ついに私は自分の試合に出会ったと思います。
問題は、int[]が次のように定義されていることです。
一方、a[0]は次のように定義されます
VarとTypeはどちらも、有効な変数であるVARとして定義されています[a-zA-Z][a-zA-Z0-9_]
。ダミートークン(**Decl** Type OptSquareBrackets
代わりになど)を追加する以外に、競合が発生しないようにこれを書き込む方法はありますか?この1つのルールから、1つのシフト/削減と1つの削減/削減の警告が表示されます。
yacc - '(' ではなく ')' に shift reduce/conflict があるのはなぜですか?
私は次のような構文を持っています
と
および (var)
私のルールは次のようなものです
問題は、それが ) に属している%(CommaLoop)
かどうかを判断できないように見えることです% (val)
が、( の代わりに ) に文句を言うのです。一体何ですか? 文句を言う(
べきではありませんか? どうすればエラーを修正できますか?%(
トークンを作成することは良い解決策ですが$(
、これを行う前にエラーではない理由を確認したいと思います。
yacc - コンフリクトを解決するために Bison/Yacc にシフトし、削減しないように指示する
私が理解しているシフト/リデュースの競合があるルールがある状況があります。可能な限り最後の瞬間 (行末) まで削減しないというルールが必要です。ですから、常にシフトしていると言いたいです。どうすればいいですか?
yacc - yaccで文字列を使用してyylvalを使用する方法
トークンの実際の文字列を渡したい。IDというトークンがある場合は、yaccファイルに実際にIDと呼ばれるものを認識させたいと思います。私はyylvalを使用して文字列をflexファイルからyaccファイルに渡さなければならないことです。それ、どうやったら出来るの?
parsing - yylval とユニオン
yacc ファイルのユニオンの目的は何ですか? flex ファイルの yylval に直接関連していますか? yylval を使用しない場合は、union を使用する必要はありませんか?
c - 構造体の配列の配列を作成する方法
構造体の配列の配列を使用してシンボルテーブルを作成しようとしています。
現在、構造体の配列があり、次のように作成されています。
それは動作しますが、私はこのようなものを作りたいです:
どうすればいいですか?私がやろうとしていることは理にかなっていますか?
macos - Mac OS X 10.6でシェイクスピアプログラミング言語トランスレータspl2cをコンパイルして実行すると、警告/エラーが発生します
Shakespeareプログラミング言語を試してみたかったので、ここからダウンロードして、を使用してMakefileを実行しましたcd spl-1.2.1
Make
。
のコンパイルはspl2c
、いくつかの警告とともに実行されます。
そして、すべての例をコンパイルしようとすると、すべてがうまくいきません。
誰かがこれを修正するための正しい方向に私を向けることができますか?私の元のプロジェクトは、デバッグコンパイラに頼るのではなく、splを学習する予定でした(実際には、最終的には独自のコンパイラを作成したいのですが、今は最初のプロジェクトを使い続けたいと思います)。
、、、、を実行してOS X 10.6.2
います。gcc version 4.2.1 (Apple Inc. build 5646) (dot 1)
flex 2.5.35
bison (GNU Bison) 2.3
編集:gotoを必要としない単純なプログラム(例:hello.spl)の場合、最初のACT I /SCENEIを除くすべてのACT/SCENE行を削除することで問題を回避できます。