yacc

    0

    1答えて

    次を評価するバイソンのプログラムは、yaccのコードです: %{ #include<stdio.h> #include<math.h> %} %token NUMBER %left '-' '+' %left '*' '/' %nonassoc UMINUS %% statement:expression {printf("Answer=%g\n",$1);} ; expre

    0

    1答えて

    私は文法の原因となるエラーのこの部分を知っていますが、それを修正する方法はわかりません。%左右を使用していますが、助けにはなりません。誰でもこの文法の問題点を知るために私を助けてください。 ご協力いただきありがとうございます。 %token VARIABLE NUM %right '=' %left '+' '-' %left '*' '/' %left '^' %start S_PRO

    0

    2答えて

    私はyacc/lexの絶対初心者です。私は単純なように思えますが、理解できません。私は以下の2つの規則を持っています:S : E;とE : STR;(そしてレクサーでは[a-z]+はSTRにマップされます)。私の推測では、入力を "ヒーティング"にすると、入力が消費され、パーサが終了するはずです。 パーザはまだ入力を待っていますので、なんとかS : Eは消費されません。入力を続けていると、構文エラ

    5

    2答えて

    golang's yacc toolを使用してパーサーを作成しようとしています。私はnexを見つけて、パーサに与えるためのレクサーの作成を簡単にしました。私の問題は、生成されたパーサには解析結果にアクセスするためのメソッドやフィールドがないことです。解析結果をグローバル変数に格納するだけでも問題はないようです。現在、私は私のparser.yファイルの先頭に最初の試みとして、以下を追加しました :

    4

    1答えて

    glpkパッケージからGNU MathProg言語用の文法を作成しようとしていますhttps://www3.nd.edu/~jeff/mathprog/glpk-4.47/doc/gmpl.pdf 残念ながら、これまで書いた文法はあいまいです。 いくつかの識別子が使われているときに、バイソンに構文解析ツリーのどの枝が正しいかを伝える方法がわかりません。例: numericExpression :

    1

    1答えて

    私はこの問題を2,3日間抱えていました。このパーサのポイントはhttpリクエストを解析することですが、それは正常ですが、リクエストの終わりに達すると、パーサは無限ループに入ります。私はのCというファイルをlexファイルから生成していますが、この問題の解決方法はわかりません。 私は他の同様の質問で提案された以下のアプローチを成功させることなく試みました。 bison-end-of-file lex-

    1

    2答えて

    私はおもちゃコンパイラを開始しています。私は想像できる最も簡単なことをしていますが、うまくいきません。 Lexがコンパイルされ、Yaccがコンパイルされ、それらはリンクされますが、出力されたプログラムは期待したことをしません。 レックス: %{ #include <stdlib.h> void yyerror(char *); #include "y.tab.h" %} %% a

    -2

    1答えて

    私はlexとyaccで作業しています.2つの出力ファイルを作成する必要があります。何が必要なのですか(複数のファイルを作成する機能がある場合)、どのように各ファイルの名前を付けますか? lexとyaccを使って、htmlファイルをcssでテストし、そこからhtmlとcssの2つのファイルを生成する必要があります。基本的にHTMLからCSSを分離し、別のファイルに入れます。 誰かが2つの出力ファイル

    2

    2答えて

    LexとYaccでコメントを作成するにはどうすればよいですか? これまで私はYaccを試していませんでしたが、Lexでは/* comment */と// commentを試しましたが、どちらもコンパイルしませんでした。私はMac上で、組み込みのLexとYaccコンパイラを使っています(あるいは、X-Codeのものかもしれませんが、わかりません)。 LexまたはYaccのコメントの正しい構文は何か、

    0

    1答えて

    私はLexとYaccで書かれた2つの非常に小さなファイルを持っています。 レックス: %{ #include <stdlib.h> #include "y.tab.h" void yyerror(char *); %} %% [a] { yylval = *yytext; return VAR; } [ \t\n] ;