おいふぉりーのぶろぐ

きっと趣味のブログに違いないです!!

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Spirit で XML パーサを書いてみる。

boost::spirit を使って XML のパーサを書いてみました。 Document Type Definition の XML の Recommandation を見ながら、この記事を参考にして書きました。正直、(私は)普段 XML なんて使わない人なので、 XML の概要を理解するのにも時間がかかりました。

なぜ、こんなことをしているのかと言うと RSS を読み取って、蛍光管にニュースを表示させようと思っているからです。 XML のライブラリは Xerces-C++ のライブラリがあるんですが、 RSS を読むためだけに大がかりなライブラリを用意するのもなぁと思って自分で書くことにしました。

実際に書いてみたのがこのソース↓
xml_grammar.hpp
test.cpp

文法を定義しているソースファイルを見ると、ホント C++ のソースとは思えません(笑)。一応、 Document Type Definition の箇所以外は大体 Recommandation 通りに記述してます。書いてみての感想なんですが、何故か処理が重いです(40kBくらいのファイルに数秒時間がかかる)。これから修正したいと思うのですが、その場合 spirit のソースを追うことになるとおもうので、覚悟をきめてから取り掛かろうと思います(なかなか、読むのが大変そうなので)。あと、差のオペレータ'-'の辺りで、 Recommandation 通りに書くとうまく動いてくれない箇所があるので、若干記述を変更しています。

現段階では、文法の定義が終わったところなので、これから文法解析時の AST の生成アクションを付けて AST を生成してやろうと思います。XML は文法以外に(文法で定義できない)制約条件があるので、その制約にしたがっているかチェックするプログラムも必要になります(この辺は適当に済ますつもりですが)。
  1. 2007/02/22(木) 23:54:07|
  2. ハードウェア開発
  3. | トラックバック:0
  4. | コメント:0
<<XML パーサの続き。 | ホーム | クリップボード共有ツール SharedClip>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://tm86eublog.blog42.fc2.com/tb.php/182-6a4e90ce
この記事にトラックバックする(FC2ブログユーザー)

来客数

プロフィール

Euphorie

Author:Euphorie
"おいふぉりー"って呼んでくださいな☆
ハードウェアとかソフトウェアとかの開発に興味があったり。。。
連絡先は上の画像。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。