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