数式の評価を原始的に #19
入力の解析には演算子順位構文解析を使うことにする。
正当な字句の種類は、非負整数、'+'、'*'、'\n'であり、
さらにこれ以上入力が無いことを示す末尾記号と、
全ての字句に先立って入力に現れる先頭記号が加わる。
これらの字句の間の順位関係を文法に則して定義する。
数 | '+' | '*' | '\n' | 末尾 | |
---|---|---|---|---|---|
数 | > | > | > | > | |
'+' | < | > | < | > | > |
'*' | < | > | > | > | > |
'\n' | < | < | < | > | |
先頭 | < | < | < | < |
各列の最初の項目を右(入力末端に近い側)に現れる字句とした時に、
どちらの順位が上かを >(左が上)と <(右が上)の記号で表したものである。
どちらの記号も無い場合はその組み合わせが文法に則っていないことを表す。