0

次のようにステートメントを解析するための yacc 文法を書きたい

START  
statement1
statement2  
END  
START
statement3
END
START
statement4
END

また

START
  statement1
  statement2
  XYZ               (2)
      START
      statement3
      statement4
      XYZ           (1)
      END
  statement5
  XYZ               (3)
END

等々..

このような START-END セットはいくつでも存在できます。

各 START には END が必要です。XYZ が (1) にある場合は、(2) と (3) にも存在する必要があります。ただし、XYZ が (2) および (3) に存在する場合、(1) に存在する場合と存在しない場合があります。つまり、最も内側の START-END セットに XYZ がある場合とない場合があります。パターン?

4

1 に答える 1

1

これを使って:

プログラム -> S

S -> S START ステートメント END | ;

ステートメント -> ステートメント ステートメント | ;

ステートメント -> 通常のステートメント | XYZ ;

次に、カウンタを使用して、文法で XYZ の存在パターンを確認します。ENDご存知かもしれませんが、yacc ファイルの前で確認できます。

于 2013-06-23T06:46:29.053 に答える