id:pmoky氏のコードを読んでみた。(part3)

id:pmoky氏のブログで議論がさくっと進行してる。
土日遊んでた&言語処理関係の話題は門外漢なんでネタについていけない orz
とりあえずStoryGeneratorの肝の部分あたりから読んだほうが良さそうだ。
ということで続き。

Runner/Runner.cs

  • Exitでthread.Abortしてるけど、これってThreadAbortExceptionが飛ばないんだろうか。。。(時間があったら検証してみよう)
  • Threadの一番上でrethrowしてるけど、これって何もしないと.NET Framework1.1だと闇に葬られちゃうんじゃなかったっけ?それでいいなら構わないけど。。。

参考文献

Runner/Interpreter.cs

  • string iniFileNameはnullチェックだけじゃなくて長さチェックとかしなくていいの?
  • Subってサブルーチン呼び出してないじゃん(スタックにコードを積むだけっぽい) <- pmoky氏の「読めば判るコードが最上」ってポリシーと矛盾してるよね?
  • RemoveNewLineIfNextでInnerStackのカウントチェックしてない。IndexOutOfRangeExceptionをSmallExceptionでラップしたほうが良い(そんなことはありえないとしても)。

Runner/RunningStack.cs

  • Popでstackのカウントチェックしてない。IndexOutOfRangeExceptionをSmallExceptionでラップしたほうが良い(そんなことはありえないとしても)。

Runner/Executer/Executer.cs

  • Get-Setとプロパティが両方定義されてるのは何か意図があるんだろうか?
  • LineIDのtry-catchって。。。コメントにもらった「ありえないことがおきたらバグ」と反してるように思えるが。。。
  • NowScriptNameではtry-catchしないのか。。。

とりあえずここまで。
イベントアクセサ宣言子を使ってるのをはじめて見た(特別な処理はしてないけど)。
こういう新鮮さがあるから人のコードを読むのはおもしろい。
他にどんなものがあるのか楽しみだ。