Next: Rpcalc Expr, Previous: Rpcalc Input, Up: Rpcalc Rules
line
の説明次に、line
の定義について考えます。
line: '\n' | exp '\n' { printf ("\t%.10g\n", $1); } ;
最初の選択肢は、改行文字であるトークンです。
これは、rpcalcが空行を受け入れ、それに対応するアクションがないので、
無視することを示します。
第2の選択肢は、式の後に改行が続いたものです。
これが、rpcalcを有用にする選択肢です。
問い合わせの中のexp
が、この選択肢に現れる最初の記号なので、
exp
グループの意味値は、$1
の値です。
アクションは、問い合わされた計算の結果である、
この値を表示します。
このアクションは、値を$$
に代入しないので、例外的です。
したがって、line
に対応する意味値は、初期化されず、
その値は予想できなくなります。
もし、その値が使われると、この仕様はバグになりますが、われわれはこの値を使い
ません。ユーザーが入力した行に対する値を表示したら、
その値はもはや必要ありません。