HtmlParser

HTMLパーサを書いています。
世の中はDOMツリー的なパーサが多いですね。
HTMLはXMLに比べると、それほど厳格ではないので、解釈する立場からすると解析しづらいです。
「いいかげんなHTMLを、どう解釈するか・・・」が難しいのです。
なので、それをあきらめて、ツリーではなくリストで返しています。
つまり、

<hoge attrib="value">
<!-- こめんと -->もじ
<hr>
</hoge>

は、

Element[hoge OPEN attribute={attrib=value}]
Text["\n"]
Comment[ こめんと ]
Text["もじ\n"]
Element[hr OPEN attribute={}]
Text["\n"]
Element[hoge CLOSE ]

のようなリストになります。
私が元々やりたかったのは「Webクローラ」なので、文章の構造は興味がなく、A HREFタグやIMGタグなどがわかれば十分なのです。
おおむね、動くようになったかな?
あー、Javaで書いてます。