カラクリスタ

『輝かしい青春』なんて失かったヒトのブログ

独自記法をどうやって実装するか

概要: はてな記法やWikiの記法のような独自記法をどうやって実装するかで悩み中。


今このBlogで使っている独自記法を、微妙な点を改善しつつ、Perlモジュールにしようと思っているのだけど、 どうやって実装するかで悩んでいる。

色々な独自記法を見た限り、大きくわけて、

  • 一行ずつ読み込んでして処理
  • 正規表現でまとめて処理

の2タイプに分かれる。前者の場合、Text::HatenaやText::Tracがそうで、 後者の場合Text::Markdownがそうなっている。

で、今使っている記法の実装はText::Markdownと同じ後者で、Perl書き始めたあたりに書いたやつなので、 コードがいい加減で、メンテナンスしづらかったりする。

で、色々なスクリプト等で使いたいため、モジュール化しようと考えているんだけど、 どう実装するかのめどが立たない。

XMLを処理するSAX(:=Simple API for XML)とか参考になりそうなんだけど、 なかなかいい資料が見つからない。(英語だと読む気しない><)

独自記法の作成/実装とかどこかにノウハウがありそうなんだけど、みつからないんだよなー。

さて、どうしたものやら。

追記:2006-12-20T17:27:00

YACCとかANTLRとかLexなるものがあるらしい。

うむむむむ。知らなかった。