[1509] 「1回以上の繰り返し」の定義
投稿者:yuya
2010/03/08 09:19:49
「プログラミング言語を作る」p43~p44にかけてのソースに、
expression /* 「式」とは… */
: primary_expression /* 「一次式」、 */
| expression ADD expression /* または、「式」 + 「式」 */
(以下略)
とあるのを見て、はたと疑問に思いました。
これって、
expression /* 「式」とは… */
: primary_expression /* 「一次式」、 */
| expression ADD primary_expression /* または、「式」 + 「一次式」 */
(以下略)
としなくてもよいのでしょうか?
他のソースではそうなっているので、反射的に「あっ、間違いだ!」と思ってしまったのですが、
よく考えると、これでもいいような気がします。
一般に、「hoge は piyo の1回以上の繰り返しである」という定義を、
hoge
: piyo
| hoge piyo
と書かずに
hoge
: piyo
| hoge hoge
と書いてはいけない理由って、何かありますでしょうか?