ショー君には、「Xionの処理系をJavaで作りましょう」とだけ伝えているのですが、ちょっと途方にくれる言い方だったかもしれない。
だいたい次のような段取りでしょう。(ただし、時間的に順にやるってことではない。)
- 構文の定義
- オブジェクトモデルの定義
- オブジェクトを作る(DOM風)パーザーの仕様定義
- トークナイズ(レキシカル・スキャン)に毛が生えた(SAX風)パーザーの仕様定義
- SAX風パーザーの作成
- DOM風パーザーの作成
- 応用固有のオブジェクトをいきなり作るパーザーの仕様定義
- いきなりパーザーの作成
「DOM風」、「SAX風」と言っているのはあくまで例えであって、DOM/SAXを意識する必要はありません。まー、SAXの構文的インベントの仕様は参考にしてもいいけど、DOMのやり方はほとんど採用しない。既存のものでは、org.json.simpleが一番イメージに近いかな。