インターネットで下調べ

 まず、インターネットで下調べしてみます(この時点で、あまりにも使い勝手の良いツールが見つかったらプログラムを組むのを辞めようと思っていました)。色々調べてみましたが、あまりないようです。

 一つだけ今回作ろうとするプログラムに非常に近いものを見つけました。翔ソフトウェア (Sho's)にあるC#/C++のソースをHTMLに変換するツールCSharpToHTMLです。しかもソースコードも公開されています。C#とJavaは構文レベルでは違いがありますが、字句レベルではそれ程違いが無いのでそのまま使えそうです。

 せっかくソースコードが公開されているいますし、昔買ったC#の入門書があるので、ソースコードを読んでみる事にしました。いくつかソースが分かれていますが、変換のアルゴリズムはCtoHTML.csに書いてあるようです。また、クラス図、状態遷移図などのUMLが書かれているページもあるので、ソースコードの解析はさくさく進みました(仕事の行き帰り、昼休みで1週間ぐらいかかりました)。

 読んでいると、デザインパターンのStateパターンを使っている事が分かってきました。しかし、一旦Tokenという単位に分け、それぞれを一文字ずつ解析していくというのが、少し違和感を感じました。他に幾つか思いついた事もあったので、やっぱり自分で作ってみようと思います。