• ベストアンサー

BNF(バッカス・ナウア・記法)

BNFについてですが、 <expression> ::= <expression> + <term> | <term> <term> ::= <term> * <primary> | <primary> <primary> ::= (<exprssion>) | <identifier> <identifier> ::= a という、数式の定義があるとき、(((a))) という記号列は得ることが出来ますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Largo_sp
  • ベストアンサー率19% (105/538)
回答No.2

可能だと思いますよ... 順に追っていくと... <identifier> ::= a <primary> = <identifier> = a <expression> =<term> = <primary> =a で、元に戻って、 <primary> = (<exprssion>) = (a) となるので、これを3回繰り返すと、(((a)))になりますよね....

tiruda
質問者

お礼

ご親切にありがとうございます。<expression>から、aという終端記号まで置換できることがよく分かりました(^^)

その他の回答 (1)

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

できます。 だけでは不親切なので、ヒントだけ。 一つの記号列がいろいろな非終端記号(と言ったかな)に 当てはまることがあります。 たとえば、「a」は <identifier>であり<primary>であり<term>であり <expression>です。

tiruda
質問者

お礼

ありがとうございましたm(__)m複数の非終端記号が1つの文字列にあてはまることを、忘れてました。

関連するQ&A