2020-04-13: アイドルロードが実装された
やったこと
Crystal
網羅性チェックのエラー化。
来たわね、という感じ。どうなるんだろう‥‥。
完全に話が付いてる感じでもないと思うんだよな。
https://github.com/crystal-lang/crystal/pull/9045
RegexLiteral#to_sのやつ。
RX14に%rに対応したエスケープの処理を書けばよくない、と言われているのだけど、それは以下の理由で無理だと思う。
- ほとんどのデリミタ(
<...>は除く)は正規表現的に意味があるので、単純にバックスラッシュでエスケープできない。仮にレキサも修正して、そういうエスケープができるようにする(つまり%r(...)内では\(を(と扱うようにする)と、二重エスケープの問題が生じてかなりややこしくなってしまう。 <...>の場合はそういった問題は生じないけれど、エスケープされたデリミタを元の文字として扱うため(\<を<、\>を>とするため)に、結局レキサの修正は必要になる。つまりコメントの最初のアイディアと本質的に変わらない。そういう意味では、空白のエスケープを特殊扱いする方が理解しやすい仕様だと思う。(実際、空白文字はCrystalのシンタックス上も意味を持つ文字なので、Crystalのレベルで処理するのは合理的)
他のアイディアとして、文字クラス中ではリテラルのデリミタを無視する、という方法がある。このようにすれば%r(...)を使った場合に上手く機能するんじゃないかと思う。けれど、この方法を実装するのはやや複雑だし(少なくとも新しいフィールドをDelimiterStateに追加する必要がある)、interpolationのことも考慮すると、この実装が全く問題がないとは言い切れない気がする。
あとは、エスケープが必要な文字をinterpolationにしてしまう、という方法もあるけど、これは流石に微妙かなぁ。一応これは完全な方法ではある、と思う。
とりあえず、がんばってコメントしたので読んでくれ。頼む。
https://github.com/crystal-lang/crystal/issues/9016#issuecomment-612850172
シャニマス
アイドルロードが実装された。
ミッション確認したけど、これ結構大変だぞ‥‥。
思い出5はそこそこ運ゲーだし、営業20回も結構かかる気がする。
全部やらなくてもSSRにはなるっぽいから、とりあえずそこが目標かな。
と思ったけど、一回プロデュースしたら11個マス進めた。
SSRまでなら案外楽にやれるかもしれない。