構文解析の問題をやってみたくなったので。Spaghetti Sourceを見てLL(1)パーサを書いた。+(1,-(002,3)) ↦\mapsto↦ (+ "1" (- "002" "3"))のようにS式になおせば、あとは中置記法で出力するだけになる。
+(1,-(002,3))
(+ "1" (- "002" "3"))
しかし、うっかりスタックサイズを増やし忘れたため、TLEを出した。control-stack-exhaustedでREになる場合はすぐわかるけどTLEになるパターンもたまにあって、後者の場合、それとわかりにくいのでけっこう困る。
control-stack-exhausted