bison

    5

    1答えて

    私はUNIX用のCプロジェクトをウィンドウに移植します。これまでのところ、私はそれをコンパイルすることはできますが、ビルドすることはできません。 error LNK2001: unresolved external symbol function_name 私は.Yと.Lファイルを追加してい:私は取得しています問題は、ヘッダファイルで宣言されている機能の一部は、私は次のエラーを取得していますf

    3

    1答えて

    私はbisonで書かれたパーサにトークンを渡すflexで書かれた字句解析器を持っています。 次は私のレクサーのごく一部です: ID [a-z][a-z0-9]* %% rule { printf("A rule: %s\n", yytext); return RULE; } {ID} { printf("An identifier: %s\n", yyt

    10

    1答えて

    他の人が次のような問題を抱えていますが、ソリューションを報告した人はいません。FlexでEOF(ファイルの終わり)を見つけてください。私は、EOFを見つけて、それが見つかったことを示すトークンを返すためにFlexが必要です。これはYacc/Bisonに入力ソースファイルの終わりに達したことを伝えることができ、成功した解析を報告することができます。 this questionは、これがLex/Fle

    5

    3答えて

    これは、解答がパーサーを使用していなかったので、this questionの重複ではありません! 私は./parser < file_to_parseを実行して実行できるBisonパーサを持っています。私は私のC++プログラムの中からBisonパーサを呼びたいと思っています。私が望まないのはsystem(./parser < file_to_parse)です。これは、パーサがプリコンパイルされてい

    0

    1答えて

    この質問はthis oneに似ていますが、yyparseではyylexではありません。 私は今数時間これと戦ってきました!私はCプログラム(実際にはC++のもの)からyyparseを呼びたいと思っていますが、C++の新しいバージョンではなく古いflex/bisonを使ってしまいました。唯一のエラーは'yyparse' was not declared in this scopeです。変数をグローバ

    2

    1答えて

    エラーが発生したときに処理を停止するためにflexとbisonを実行する最良の方法は何ですか? yyerrorを呼び出すと、ファイルのスキャンと解析が停止しません。入力が構文的に正しい間に、同じファイルを2回ロードしようとしたなどのユーザエラーがあります。フレックス/バイソンがいなくなると、私のプログラムはエラーをユーザに返し、プログラムは実行し続けなければなりません。私は、C++の例外を投げると

    1

    1答えて

    私はYYSTYPEとして* charを使用すると非常に間違っているようですが、私はかなり新しくて何が起こっているのか分かりませんに。 Bisonは私に構文エラーまたはsegfaultを与えます。レクサーコードとバイソンコードは下にあります。私は... レクサーコードとにかく誰がここで私を助けることができるのは非常に感謝するだろう: /* token codes */ %{ #include <

    1

    1答えて

    bison/yacc GLR-parserで 'expected token'を取得するには? こんにちは、私はやっているプロジェクトで 、いくつかのあいまいなgramar there'er。だから、私は%glr-parserを使ってシフト/コンフリクトを解決しようとしています。 私は非GLRパーサーを使用していましたが、構文エラーを検出すると、yystate(グローバル変数)を使用して "予想さ

    3

    4答えて

    この質問はちょっと混乱するかもしれません。私はFlexを使ってBisonにトークンを渡しています。 Flexは最も長い正規表現にマッチし、そのトークンを渡します(このように動作します)が、そのトークンが文法では機能しない場合は、2番目に長い正規表現に一致し、そのトークン。 私はこの動作を作成する方法を考えるのに苦労しています。どうすればこのことが起こるのですか?明確にするために は、例えば、私は2

    1

    2答えて

    ASTを分析した後、ルールが完了したときにエラーがあるかどうかを知る特定のケースがあります。私は運がないyyerror( "blah")を試しました。 エラーがあるので、別のルールが終了し、現在ではreduce/reduceの競合が発生していると伝えられないためです。これは迷惑なものです。なぜなら、それらのうちの1つが他のものを見ることなく無効であるが、ユーザーはbcに苦しんでいるからです。このブ