[824] Re:elsif と else if
投稿者:(ぱ)
2007/02/20 02:13:25
>if文のぶら下がり文に関してふと思いついたんですが、
>本体にブロックを強制する場合でも
>else節にだけ、if文も書けるようにすればelsif(elif, elseif)というようなキーワードを導入しなくても困りませんよね?
なるほど。確かに構文規則を以下のようにいじってbisonにかましてみましたが、
特にconflictは起きませんでした。
if_statement: IF LP expression RP block
| IF LP expression RP block ELSE block
| IF LP expression RP block ELSE if_statement
| IF LP expression RP block elsif_list
| IF LP expression RP block elsif_list ELSE block
| IF LP expression RP block elsif_list ELSE if_statement
>文法が微妙に汚くなるからでしょうか
>then節とelse節で書けるものが違う、とか、if文だけ特別扱い、とか
やっぱりこれを汚いと思う人が多いからではないでしょうか。
汚いかどうかは主観の問題ですけど、私なら、if文だけ特別扱いするくらいなら、
elsifを導入します。
確かに、Cプログラマで、Cにはelse ifという特別な構文があると思っている人は
少なくなかったですから、elseの後のif文だけ特別扱いしてもさほど混乱はないのかも
しれませんけど、「Cにはelse ifという特別な構文があると思っている人」が
周囲にたくさんいた私としては、そういう人への啓蒙もこめてelsifを導入した、
という意図もあったようななかったような。