問題タブ [flex-lexer]

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

parsing - Lex / Flex での状態の開始

パーサー ジェネレーターに Flex と Bison を使用していますが、スキャナーの開始状態に問題があります。

コメントを処理するために排他的なルールを使用していますが、この文法は引用されたトークンと一致しないようです:

この簡単な例では、次の行:

次のルールを含めない限り、コメントとして完全に一致するわけではありません。

これらすべてのトークンを排他的ルールに追加することなく、これを回避するにはどうすればよいですか?

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

flex-lexer - Windows 用の新しいバージョンの flex はいつ利用可能になりますか?

プロジェクトでflex (Adobe Flex ではなく語彙アナライザー) を使用しています。ただし、Windows プラットフォームでもコンパイルできるようにしたいのですが、Windows バージョンの最新バージョンは 2.5.4a しかないため、バージョン 2.5.35 のファイルをコンパイルできません。いいえ、サポートされている Windows の最高バージョンにダウングレードすることはできません。

Windows バージョンをアップグレードする計画について知っている人はいますか、それとも Windows でコンパイルするための提案がありますか?

0 投票する
6 に答える
13331 参照

ide - Flex / Bison IDE?

フレックスまたはバイソン、あるいはその両方で作業できる優れた開発環境を探しています。

これらの機能を備えている、および/またはこれに適しているIDEはありますか?

(次の最も一般的な質問ではない場合、IDEを備えたレクサー/パーサジェネレーターはありますか?)

ありがとう〜アレックス

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

bison - 生成されたファイルを配布に追加する最良の方法は?

autoconf / automakeを使用した非常に複雑な(C ++)プロジェクトがあります。これには、いくつかの「生成された」ファイル(foo.yy-> foo.cc)が含まれています。実際のビルドは、さまざまなプラットフォームで「制御スクリプト」(概念に精通している人のためのGentoo .ebuild)を使用して行われます。

現在、ターゲットプラットフォームの1つはfoo.yy-> foo.ccステップを適切にサポートしておらず、Linuxボックスで生成されたfoo.ccファイルを使用する必要があります。

今、私はこれについて行く2つの方法があります:

1)foo.ccをプロジェクトリポジトリにチェックインし、configure.in(またはその他)にパッチを適用してfoo.yy / foo.ccにタイムスタンプチェックを含め、問題のターゲットで古いターゲットで実行すると、わかりやすいエラーメッセージを生成します。 foo.cc;

2)foo.ccを制御スクリプトリポジトリにチェックインし、スクリプト制御のタイムスタンプを取得して、エラーメッセージを表示します。

2)問題ありませんが、foo.ccを配置するのに適切な場所ではないと思います。

一方、私はautoconf / automakeについてあまり知りませんし、configure.in(またはどこでも)にタイムスタンプチェック/エラーメッセージを実装する方法を知りません。

あなたの提案は何ですか、そしてここの誰かが解決策1)について行く方法を知っていますか?

編集:解決策3)を使用して解決し、foo.yy->foo.ccステップ自体を実行できるようになるまで問題のあるターゲットボックスを微調整します。私の問題は解決しました。

しかし、私は質問を開いたままにしておきます-autoconf / automakeでタイムスタンプチェック/わかりやすいエラーメッセージを実行する方法は?

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

c - レクサーをプログラミングするとき、tokens.h は何に使用されますか?

C でレクサーをプログラミングしていて、ヘッダー ファイルについてどこかで読みましたtokens.h。そこにいますか?もしそうなら、その用途は何ですか?

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

c++ - vc6でバイソンとフレックスを使用する

vc6でbison&flexを使用すると、以下のエラーが発生しました

lex.yy.c(395):エラーC2146:構文エラー:欠落している';' 識別子'YY_PROTO'の前lex.yy.c(395):致命的なエラーC1004:予期しないファイルの終わりが見つかりました

これの原因は何でしょうか?助けてください。

コメントからコピー:

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

c - Bison の %union 値を初期化するには?

バイソンには組合があります

そしてこんな風に使いたい

レックスでは:

それよりも

簡単にメモリリークを防ぐには

ただし、最初に std::string を sval に割り当てる方法が必要です。

どうやってやるの?

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

parsing - Yacc ではなく Lex でエラー状態を処理しますか?

次のようなlex正規表現があるとします

ユーザーが入力した場合

一致します

しかし、ユーザーが次のようなことを言った場合

エラーで「文字 K が認識されません。S が必要です」と言ってほしいです。

私が今していることは、次のように書いているだけです

そして、本質的に Yacc で文字列を re-lex して、意味のあるエラー条件を設定できるようにします。

どうすればこれを回避できますか?

私が考えることができる唯一のことは、名前付きグループを使用することですか?

0 投票する
4 に答える
10674 参照

lex - lex.yy.c の「yy」は何の略ですか?

lex.yy.c の「yy」は何の略ですか?

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

c - yaccまたはBisonとFlexを使用してforeachキーワードを作成する

インタプリタプログラミング言語を開発しました。これはCに強く基づいています。問題は、foreachディレクティブを追加したいのですが、その方法がわかりません。

パーサーとレクサージェネレーターとしてBisonとFlexを使用しています。