問題タブ [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.
c - Bison/Yacc で %union 定義に構造体を含める
Bison との共用体の一部として構造体を含めようとしていますが、%union の「構造体ノード引数」でエラーが発生します。
コード:
私が間違っていることを知っている人はいますか?
c - Flex(lex)およびBison(yacc)でのエラー処理
バイソンマニュアルから:
各入力が1行である単純な対話型コマンドパーサーでは、エラー時にyyparseが1を返し、それが発生したときに呼び出し元が入力行の残りを無視するようにするだけで十分な場合があります(その後、yyparseを再度呼び出します)。
これは私が望んでいることとほぼ同じですが、仕事に取り掛かるのに苦労しています。基本的には、flexでエラーを検出してエラーを検出し、エラーが検出された場合は、Bisonに行全体を破棄してもらいます。私が今持っているものは、私のコマンドがまだ実行されているため、正しく機能していません:
私のBisonファイル:
そして私のフレックスでは:
c - Flex/LexおよびYacc/Bisonを使用して可変置換を行う方法
ウィキペディアの補間定義 私はフレックス/バイソンを学んでいて、それを使って独自のシェルを書いています。私は変数補間を行うための良い方法を見つけようとしています。これに対する私の最初のアプローチは、ホームディレクトリの〜や$ myVarのようなものをフレックススキャンしてから、ルックアップ関数を使用して返されるものにyyval.stringを設定することでした。私の問題は、テキストが1つのトークンで表示される場合、これは役に立たないということです。
私が変数に対して持っているlex定義:
次に、私の文法には、次のようなものがあります。
この種のことを処理する良い方法を知っている人はいますか?私はこれについてすべて間違っていますか?
c - Bison/YACC 文法に関する混乱
次の文法では、この種の入力で構文エラーが発生します。
先読みの仕組みと関係があると思いますが、これは私の最初の文法であり、なぜこのように機能しないのかについて少し混乱しています: external_cmd GT WORD はリダイレクト、リダイレクトはコマンド、コマンドはコマンドなので、入力コマンド NEWLINE が機能するはずです。
文法のトップルール:
エラー トークンが発生したときのデバッグ/詳細入力:
更新:
external_cmd は:
g++ - 「yylex()」への未定義の参照
flex と bison を使用して単純なスクリプト言語を作成しようとしています。今、私は電卓を動かそうとしています。
しかし、私はそれをコンパイルすることはできません。このメイクファイルを実行すると:
.l および .ypp ファイルで、次のエラーが発生します。
そして、次のall
ようなコマンドを作成すると:
見つからなかったと表示されます-lfl
。そして、私がこのようにすると:
エラーに戻りundefined reference
ます。
申し訳ありませんが、私はこれについて少し無知です。
編集:フレックスがインストールされています。-lfl から C:/GnuWin32/lib/libfl.a に変更しようとしました (Linux には奇妙な問題があり、まだ Mac を持っていないため、Windows を使用しようとしています)。同じエラー。
yacc - bison shift/reduce problem 移動 add op を部分式に
もともと例ではこれがありました
「もっとシンプル」にしたかったので、これを書きました(加算と減算の両方で「+」を実行することに気づきました。ただし、これは例です)
これで、シフト/リデュース エラーが発生します。まったく同じはずです-_-(私にとって)。これを修正するにはどうすればよいですか?
編集:物事を明確にするために。最初のものには警告/エラーはありません。%left を使用して優先順位を設定します (また、%right を = およびその他の右側の操作に使用します)。ただし、サブ式に入ると適用されないようです。
bison - yacc/bisonトークンエラー。'>>>'と'>>'の両方に番号62が割り当てられています
私は自分のコードでこのようなことをします
私が得る警告は
別のトークンを使用するにはどうすればよいですか?
c - バイソンとの構文解析
O'ReillyからFlex&Bisonを購入しましたが、パーサーの実装に問題があります(トークンに分解することは大したことではありませんでした)。
巨大なバイナリ文字列があり、ビットを足し合わせる必要があるとします。すべてのビットはトークンです。
1101010111111
または、そのことについては、「操作」のないトークンのコレクション。
そのような文法は正しいでしょうか?
またはそれを行うためのより良い方法はありますか?
compiler-errors - `yyerror'の複数の定義
Bison(またはyacc)を使用して、エラーを解決するにはどうすればよいですか?
%option noyywrap nodefault yylineno
一番上に試作品を書いてみました。運がない。
-編集-
気にしない。使用する例をコピーして貼り付けたとき、すでにyyerror関数があることに気づいていませんでした。