Bruce.です。
T.Watanabe writes:
> ねこ丸です。
> ところで、
>
> > awkを256倍…で
> >
> > if HOGE
> > {
> > …
> > }
> >
> > if HOGE{
> > …
> > }
> >
> > と挙動が違う、つー指摘は、ショックでした。
>
> これホントですか? 本の方を確認しないでスクリプトを書いてみました。
Zazelさんの発言で、ああそういえば v7のawkはソースが見られるように
なったんだよなあということで確認してみました。
if:
IF '(' conditional ')' optNL { PUTS("if(cond)"); $$ = $3; }
ということで、')' のあとに optNL(省略可能な改行) というのがありますので
statement:
simple_stat st { PUTS("simple stat"); }
| if statement { PUTS("if stat"); $$ = stat3(IF, $1, $2, nullstat); }
| if statement else statement
{ PUTS("if-else stat"); $$ = stat3(IF, $1, $2, $4); }
この if と statement の間に改行があったとしても、そこで文の解析が
途切れるということはないですね。
って、そもそもif の本体がないから構文エラーぢゃん。
なに勘違いかましてんだわしわ。
>
> パターン {
> アクション
> }
>
> のことであれば別の行に分離しちゃダメだと思うんですけど。
つーことで、でびさんの勘違いに100(お好きな単位をどうぞ)
いじょ。