2023-11-24: エンダーエンダー最終日
やったこと
ミリシタ
エンダーエンダー最終日。
なんだかんだ1500位くらいを走っていた。
最後の方あまりできなかったけど大丈夫だろうか。
Prism
このissueに頭を悩ませている。
https://github.com/ruby/prism/issues/1468
Rubyの演算子の優先順位は一部捻れが生じていて、例えば foo = 1 rescue 2
は foo = (1 rescue 2)
とパースされたりする。
!
演算子もそのような捻れのある演算子の1つで、トップレベルにあるときだけ中の式のメソッド呼び出しの括弧が省略できたり代入が入ってきたりできたりする。
つまり ! foo 1
や ! foo = 1
がパースされたりする。
この辺りを今のPrismで正しく実装するのは相当難しいと思う。どうしたものか。