再帰下降構文解析の実装を始めた
6月21日の日記。
この日は雨が降っていた。
前日から、午前6時ぐらいまで起きてしまい、その後、11時過ぎに寝た……。
午後4時半ころに起きた。
構文解析を習得するため、四則演算(かっこもある。)を解釈できる再帰下降構文解析の実装をやっていた。
左再帰(<Expression> ::= <Expression> + <Term>
のような文法規則)で苦しんだ。
ウイキペディアで、左再帰を除去する方法として、左再帰を含む文法規則を2つの文法規則に分割する、というのがあるのだが、この方法では文法の意味が変化してしまう。たとえば、ほんらい ((3 - 2) - 1)
であったものが (3 - (2 - 1))
になる、というようなことが起きる。それでは意味がない(実際、この2つの式を簡約してみると、その値は異なっている。)。
さて、再帰的下降構文解析では(簡単には)左再帰に対応できなくて、 while
ループでは対応できるのだが、 while
ループではダサい……ということで、なんとか再帰で実装できないかと考えていたのだが、この日はできなかった。
これをかなり遅く(午前4時ころ)にもやった。
夜は『ダークソウル3』の配信をやった。次は『ダークソウル2』の配信をやろうかな。
その後、なぜかツイッターで、自分の描いた絵を見せる流れみたいに微妙になっていて、私も公開した。
恥ずかしかった。
くるみ餅さんと,『こうしす!』の監督である井二さんにうまいと言ってもらえたのでうれしかった。井二さんは自主制作アニメの監督なので特にうれしかった。
火曜日は「バトルシステム」の日だが、なにもやっていない。(そろそろ書くことに意味を感じなくなって来た……。でも書こう。)