問題タブ [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 投票する
1 に答える
62 参照

c++ - Bison/flex はルールを認識した後、入力を待ちます

字句解析および構文解析用に次のファイルがあります。

lexico.l

シンタクティコ

次のエントリは正しい必要があります: mkdisk -size=20。size ルールのコードは実行されますが、instr ルールのコードを実行するには CTRL + D を押す必要があります。コードに追加するために何が欠けていますか? パーサーは語彙的ですか、それとも構文的ですか?

編集: パーサーから EOL トークンを削除しました。私が本当に理解していないのは、パーサーがエントリが終了したことをどのように認識するのですか? コンソールで mkdisk -size = 20 コマンドを入力した後、ENTER キーを押します。入力が ENTER で終わることを Bison に伝えるにはどうすればよいですか? アナライザーがエントリーを待って分析を終了するのはなぜですか?

0 投票する
0 に答える
205 参照

c++ - C++ で Flex と Bison を使用するときに yylval を設定するにはどうすればよいですか

C++ で Flex と Bison を使用しています。両方の C バージョンでは、yylval はトークンに関する情報を格納するグローバル ユニオン変数です。

Bison C++では、yylvalはsemantic_typeと呼ばれ、クラスメンバー変数です。Flex C++ からトークンのセマンティック情報を設定するにはどうすればよいですか? Flex C++ では、lexer もクラスであり、メンバ変数として semantic_type を持ちません。

私はこのようなことをしたい: