yacc

    1

    1答えて

    Bisonには、mfcalcを拡張し、FLEXで外部でyylex()のような関数を実装する次のコードがあります。 私の問題を理解するために、重要なルールは、文法の冒頭でlineと呼ばれる非終端トークンにあります。 EOFが検出された場合、具体的に、ルールEVAL CLOSED_STRING '\n'とENDが(このトークンはFLEXによって送信される。最初は、そのファイルにファイルやポイント入力を

    -1

    1答えて

    yacc/lexを使ってシェルのための簡単な文法を書いています。私は文法にパイプラインを認識させたいと思っています。パイプラインの形式は次のとおりです: command1 | command2 | ... | commandn。私は以下のコードでthe simple_commandルールを非終端記号の開始として使用して、単一のコマンドを再調整することができます。しかし、パイプラインを解析するために

    0

    1答えて

    編集:私は多項式を認識し、それらをプリントアウトするために起こっている簡単なコンパイラを書いてみました Polinomルールを変更しました。それは意図したように、多項式を出力した後に構文エラー書き込みを吐き出します。このような問題で私を悩ますものは、それがレクサーかパーサであるかどうかは分かりません。 parser.ypp %{ #include <iostream> #include <c

    0

    2答えて

    yacc文法の定義で括弧 '()'を使用しようとしています。 x == 1 && y == 0 をしかし、この行を解析できません: この行がうまく機能している : 私はコンパイル (x == 1) && (y == 0) 、私は1 conflicを持っており、パースエラーで 競合:1シフト/リダクション 構文エラー(105; 264)& & 前は、ここでは、使用する構文の一部です。 %ty

    0

    1答えて

    私はジョブコントロールシェルを作成しています。私は解析のためにYaccとLexを使う。私の文法の最上位のルールは、pipeline_listです。これはコンマで区切られたパイプラインのリストです。 cmd1 | cmd2; cmd3; cmd4 | cmd5 <newline> cmd1 <newline> <nothing> <newline> Iは(以下を示した)pipelineルール

    0

    1答えて

    ルールの途中でコード{printf( "something");}を置くとこの警告が表示されます。ルールの終わり、私はエラーがなく、すべてうまく動作します。 この点画に警告を投げると1つのシフトを投げる/ reduce衝突 sent_asig: ID {printf("something");} ASIG exp {printf("sent_asig: ID ASIG exp \n");} |

    -1

    1答えて

    特定の構文でテキストファイルを解析する必要があります。私はLEX The return THETOK; [a-zA-Z]* return ROOMNAME; "is a room." return ISROOMTOK; に私が書いたのyaccファイルに次のトークンを書かれている The Living Room is a room. よう ファイルの内容は以下になります comma

    0

    1答えて

    私は自分のミニ言語のパーサーを構築しようとしています(明らかに)、変数の設定が適切に機能しているようです。しかし、Yaccが関数定義を見つけるとすぐに、構文エラーといくつかのEOFエラー(私はYaccに残りのルールが設定されていないときからそうであることを知っています)は何も起こりません。うまくいかない? はここで構文私はパースてるの例です: $name = "John Doe" $age =

    0

    1答えて

    現在、Decaf(プログラミング言語)文法の一部を実装しています。ここでバイソンコードの関連するスニペットは次のとおりです。 type: INT | ID | type LS RS ; local_var_decl: type ID SEMICOLON ; name: THIS | ID | name