問題タブ [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.
parsing - Lex / Flex での状態の開始
パーサー ジェネレーターに Flex と Bison を使用していますが、スキャナーの開始状態に問題があります。
コメントを処理するために排他的なルールを使用していますが、この文法は引用されたトークンと一致しないようです:
この簡単な例では、次の行:
次のルールを含めない限り、コメントとして完全に一致するわけではありません。
これらすべてのトークンを排他的ルールに追加することなく、これを回避するにはどうすればよいですか?
flex-lexer - Windows 用の新しいバージョンの flex はいつ利用可能になりますか?
プロジェクトでflex (Adobe Flex ではなく語彙アナライザー) を使用しています。ただし、Windows プラットフォームでもコンパイルできるようにしたいのですが、Windows バージョンの最新バージョンは 2.5.4a しかないため、バージョン 2.5.35 のファイルをコンパイルできません。いいえ、サポートされている Windows の最高バージョンにダウングレードすることはできません。
Windows バージョンをアップグレードする計画について知っている人はいますか、それとも Windows でコンパイルするための提案がありますか?
ide - Flex / Bison IDE?
フレックスまたはバイソン、あるいはその両方で作業できる優れた開発環境を探しています。
これらの機能を備えている、および/またはこれに適しているIDEはありますか?
(次の最も一般的な質問ではない場合、IDEを備えたレクサー/パーサジェネレーターはありますか?)
ありがとう〜アレックス
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でタイムスタンプチェック/わかりやすいエラーメッセージを実行する方法は?
c - レクサーをプログラミングするとき、tokens.h は何に使用されますか?
C でレクサーをプログラミングしていて、ヘッダー ファイルについてどこかで読みましたtokens.h
。そこにいますか?もしそうなら、その用途は何ですか?
c++ - vc6でバイソンとフレックスを使用する
vc6でbison&flexを使用すると、以下のエラーが発生しました
lex.yy.c(395):エラーC2146:構文エラー:欠落している';' 識別子'YY_PROTO'の前lex.yy.c(395):致命的なエラーC1004:予期しないファイルの終わりが見つかりました
これの原因は何でしょうか?助けてください。
コメントからコピー:
c - Bison の %union 値を初期化するには?
バイソンには組合があります
そしてこんな風に使いたい
レックスでは:
それよりも
簡単にメモリリークを防ぐには
ただし、最初に std::string を sval に割り当てる方法が必要です。
どうやってやるの?
parsing - Yacc ではなく Lex でエラー状態を処理しますか?
次のようなlex正規表現があるとします
ユーザーが入力した場合
一致します
しかし、ユーザーが次のようなことを言った場合
エラーで「文字 K が認識されません。S が必要です」と言ってほしいです。
私が今していることは、次のように書いているだけです
そして、本質的に Yacc で文字列を re-lex して、意味のあるエラー条件を設定できるようにします。
どうすればこれを回避できますか?
私が考えることができる唯一のことは、名前付きグループを使用することですか?
lex - lex.yy.c の「yy」は何の略ですか?
lex.yy.c の「yy」は何の略ですか?
c - yaccまたはBisonとFlexを使用してforeachキーワードを作成する
インタプリタプログラミング言語を開発しました。これはCに強く基づいています。問題は、foreach
ディレクティブを追加したいのですが、その方法がわかりません。
パーサーとレクサージェネレーターとしてBisonとFlexを使用しています。