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