pccts 入門その 2
LL(1) で解決: ch3-03p2.g
expressions : expr ("="^ expr )* "\n" | "\n" ;
のようにすればよい。この場合、左辺を確定した後で右辺のマッチに入るので曖昧にならない。 ただし、この場合は、
1+1=3
も文法的に正しくなる。ので、木を評価するときに左辺をチェックする。 今回はそのまま出力するだけなので、上の式だと '3' を印字する。
そういえば、一部のパターンマッチの機構を持つ言語だと確かに上の文法もアリだ。 なるほどなるほど。