From ffukuda @ ntes.nec.co.jp Mon Jul 1 11:21:17 2002 From: ffukuda @ ntes.nec.co.jp (FUKUDA Fumiki) Date: Mon, 01 Jul 2002 11:21:17 +0900 Subject: [MiX-users] greeting Message-ID: <200207010221.g612LxcG029939@tmg01.ntes.nec.co.jp> επιστημηです。 復活! でやんすね^^; -----:-----:-----:-----:-----:-----:-----:-----:-----:----- FUKUDA (episteme) Fumiki -- magical, but never a magic... From ahiru @ gao.hot.co.jp Mon Jul 1 21:36:06 2002 From: ahiru @ gao.hot.co.jp (あひる) Date: Mon, 01 Jul 2002 21:36:06 +0900 Subject: [MiX-users] よろしくの挨拶です Message-ID: <20020701213606YZnpwf@gao.hot.co.jp> あひるです。 某MLで紹介されたので、早速参加しちゃいました。 たいした役には立たないでしょうが、よろしくお 願いします_(_"_)_ #まだ最新版チェックしてないです(^_^;) ------------------------------------------------------------ all the time with a smile / いつも笑顔で ahirugao がー >^ mailto:ahiru @ gao.hot.co.jp / http://www3.to/ahirus 【河童もよろしく】 http://www.shibu.jp/cuppa From webmaster @ soup.jp Mon Jul 1 22:24:20 2002 From: webmaster @ soup.jp (KUBO,Yotaro) Date: Mon, 01 Jul 2002 22:24:20 +0900 Subject: [MiX-users] SourceForgeJP Message-ID: えと、復活!です。 やっぱSourceForgeは便利ですね。 ML,Forum,CVS,Webサイト,コンパイル環境,バグトラッカ.... 思い付くものはなんでもありますね。 けど、ForumとMLって使い道がかぶってないですかね? この二つを使い分ける良いアイデアないかなぁ… /** * 久保 陽太郎 * * Mail: webmaster @ soup.jp */ From ffukuda @ ntes.nec.co.jp Tue Jul 2 10:31:32 2002 From: ffukuda @ ntes.nec.co.jp (FUKUDA Fumiki) Date: Tue, 02 Jul 2002 10:31:32 +0900 Subject: [MiX-users] SourceForgeJP In-Reply-To: Your message of "Mon, 01 Jul 2002 22:24:20 +0900" Message-ID: <200207020132.g621WFcG023646@tmg01.ntes.nec.co.jp> επιστημηです。 --- "[MiX-users] SourceForgeJP" / KUBO,Yotaro / 2002/07/01 22:24:20 +0900 --- >えと、復活!です。 いぇい。 >やっぱSourceForgeは便利ですね。 >ML,Forum,CVS,Webサイト,コンパイル環境,バグトラッカ.... >思い付くものはなんでもありますね。 使い切れていないですぅ > 河童 >けど、ForumとMLって使い道がかぶってないですかね? >この二つを使い分ける良いアイデアないかなぁ… わしら河童軍団はForum使ってないわ。 開発屋ML と お客様ML だけでやってます。 -----:-----:-----:-----:-----:-----:-----:-----:-----:----- FUKUDA (episteme) Fumiki -- magical, but never a magic... From gimite @ mx12.freecom.ne.jp Fri Jul 5 23:22:02 2002 From: gimite @ mx12.freecom.ne.jp (Hiroshi Ichikawa) Date: Fri, 5 Jul 2002 23:22:02 +0900 Subject: [MiX-users] よろしくお願いします Message-ID: <000f01c2242f$55de4c90$020019ac@gimitenote> 密かなMiX BCB動作確認担当?の市川です。よろしくお願いします。 遅れましたが、MiX-0.4.5をBCB6 Proでコンパイルしてみました。 いくつかの修正が必要だったので報告したいんですが、どこですればいいでしょう? MLとか、トラッキングとか、色々あって、どこに報告すればいいのか分からないので (笑)教えてください。 Gimite 市川/市川 宙 http://village.infoweb.ne.jp/~fwhk9290/gimite/ From webmaster @ soup.jp Tue Jul 9 00:16:58 2002 From: webmaster @ soup.jp (KUBO,Yotaro) Date: Tue, 09 Jul 2002 00:16:58 +0900 Subject: [MiX-users] よろしくお願いします In-Reply-To: <000f01c2242f$55de4c90$020019ac@gimitenote> References: <000f01c2242f$55de4c90$020019ac@gimitenote> Message-ID: 亀レスすいません。久保です。 > 密かなMiX BCB動作確認担当?の市川です。よろしくお願いします。 ども、いつもお世話になってます。 > 遅れましたが、MiX-0.4.5をBCB6 Proでコンパイルしてみました。 > いくつかの修正が必要だったので報告したいんですが、どこですればいいでしょう? > MLとか、トラッキングとか、色々あって、どこに報告すればいいのか分からないので > (笑)教えてください。 SourceForgeの欠点は「多機能過ぎ」ってあたりですかね。 # 素晴らしい欠点だ… えと、僕自身しばらく迷ったんですがバグトラッカーの"Patch"の項目に 投げといてください。 あと、MLは基本的に"なんでもあり"なんで、MLに投げてくれれば、 僕が代理でトラッカに追加します。 /** * 久保 陽太郎 * * Mail: webmaster @ soup.jp */ From ffukuda @ ntes.nec.co.jp Thu Jul 11 14:17:13 2002 From: ffukuda @ ntes.nec.co.jp (FUKUDA Fumiki) Date: Thu, 11 Jul 2002 14:17:13 +0900 Subject: [MiX-users] りくえすと Message-ID: <200207110518.g6B5I2cG026210@tmg01.ntes.nec.co.jp> επιστημηです。 我が河童プロジェクトではUnitTest、特にCppUnitへのXMLの応用を考えておりまして、 あの重たいXercesからの脱却を夢見ております^^; その解のひとつはSOXで、もうひとつが、そう、MiXなんですな。 そこでいくつかりくえすと。 - DOM_NodeList DOM_Element::getElementsByTagName(string tagname) がほしかったりする。 我が子の中から指定したtag名を持つノードを'再帰的'に収集してリストをこさえます。 - 機能限定でかまわんから XPath もどきがほしい。 node["hoge/payo/pemo[3]"] とかやると hogeの下のpayoの下の3番目のpemo を返します。なんての。 -----:-----:-----:-----:-----:-----:-----:-----:-----:----- FUKUDA (episteme) Fumiki -- magical, but never a magic... From webmaster @ soup.jp Wed Jul 17 20:37:52 2002 From: webmaster @ soup.jp (KUBO,Yotaro) Date: Wed, 17 Jul 2002 20:37:52 +0900 Subject: [MiX-users] 開発状況(7/17 '2002) Message-ID: 久保です。 長文です。 1. Policyのまとめ 普通にMiXを使用する分にはあまり関係のないことかもしれませんが、 Policyを一つにまとめようと思っています。 今まで、 MiX::SAX_Parser だったものが、 template struct DefaultTraits{ typedef MiX_DEFAULT_CHAR_TRAITS char_traits; typedef DefaultXMLTraits xml_traits; }; MiX::SAX_Parser になります。 これは、将来的にICUやらiconvやらを連結させる時に、 コンバータの動作を指定するPolicyを今までの形で指定しようとすると、 MiX::SAX_Parser とかTemplateが引数を4つも取るようになっちゃって、 使いづらいと思ったからです。 2.επιστημηさんのリクエスト Element::getElementsByTagName(string_type name) は実装しました。 XPath対応は…正直厳しいかもしれません。 コーディングの難しさは勿論のことですが、XPath対応のために、 '/'とか'['とか']'といった文字を特別扱いしなければいけなくなってしまい、 MiX::DefaultXMLTraitsが複雑になってしまうような気がします。 # 外部ライブラリで実現したいですね。 3.Gimiteさんのバグ報告 修正しました。 BCBのバグ、最新版でも取れてないようなので、 関数オブジェクトのargument_type,result_typeのtypedefをマクロ化して 回避しちゃおうかなーと考えてます。 4.TestSuite再構築 TestSuiteがいい加減古くて、不完全なので再構築しています。 子河童さんを使ってみたり。 結構いい感じです。 > 子河童さん # CppUnitがどんなマジックを使ってTestSuiteを検出してるのかわからない… # なんでヘッダを使わずにsuiteを呼べるんだろう… 現在は1と4の作業を並列して行っています。 /** * 久保 陽太郎 * * Mail: webmaster @ soup.jp */ From kn @ mm.neweb.ne.jp Fri Jul 19 15:18:02 2002 From: kn @ mm.neweb.ne.jp (kn) Date: Fri, 19 Jul 2002 15:18:02 +0900 Subject: [MiX-users] hello & questions Message-ID: <20020719140504.054C.KN@mm.neweb.ne.jp> はじめまして、Kent.Nと申します。 cppllで存在を知り、ぼちぼち動かしてます。 以後、よろしくお願いします。m(_ _)m さて、gcc 2.95でMiX-0.4.5をコンパイルしようとしたところ、 いくつかトラブルにあってしまいました。 質問しようと思って細かいところを確認していたら、なんとなく 直ってしまったので、その報告をしたいと思います(^^;; その前に、私の環境; FreeBSD 4.6-RELEASE gcc 2.95.3 20010315 および gcc 3.1 最初、まず素の状態でgcc 3.1をつかってコンパイルしました。 なにやら警告が大量に出たものの、ともかくうまくビルドでき ました。 で、次にgcc 2.95.3でトライしてみました。 さすがにそのままでは駄目だったので、install.htmlに従って config.h: #define XiM_DEFAULT_TRAITS string_char_traits しました。 それでもsyntax errorが出ていたので、 SAX_Parser.cpp: #include を SAX_Parser.cpp: #include に変えてみました。 これでも大量のdeclaration conflictsが出てうまくいきません。 よくよく見てみると、引っかかっているのは全部attr_mapを instance化させるところでした。 で、misc.hを見てみると… 63: typedef AttrMap attrmap_type; \ 64: typedef XMLString string_type; \ 65: typedef NodeList nodelist_type; \ 66: typedef AttrMap attrmap_type; となっていたので、この63行目をさっくり削除してみました。 そしたら動きました(^^;; あと、 MiX::SAX_Parser<>::parseは、バッファ上の文字列に対してパース を実行しますよね。これをstd::istream経由にするにはどうすれば よいでしょうか? サンプルではまずファイル全体をバッファに読み込んで、それを 食わせていますが、これだと大きなファイルは扱えませんし、 だいいち、あんまりかっこよくない(^^; とりあえず一行ごとにparseを掛けていますが、これだと複数行に わたるコメントでエラーが出てしまいます… from Kent.N : kn @ mm.neweb.ne.jp From kn @ mm.neweb.ne.jp Fri Jul 19 23:03:17 2002 From: kn @ mm.neweb.ne.jp (kn) Date: Fri, 19 Jul 2002 23:03:17 +0900 Subject: [MiX-users] hello & questions In-Reply-To: References: <20020719140504.054C.KN@mm.neweb.ne.jp> Message-ID: <20020719224413.054F.KN@mm.neweb.ne.jp> Kent.Nです。 On Tue, 20 Aug 2002 17:24:02 +0900 "KUBO,Yotaro" wrote: > > はじめまして、Kent.Nと申します。 > どうも、久保です。 よろしくお願いします。 > > で、misc.hを見てみると… > > 63: typedef AttrMap attrmap_type; \ > > 64: typedef XMLString string_type; \ > > 65: typedef NodeList nodelist_type; \ > > 66: typedef AttrMap attrmap_type; > あ、二重指定... (^^;; 気が付いたときには、もう鬼の首でもとったかのように うれしかったです。(^^;; #これに気づかずに泣く泣くgcc 3.1を入れたのでした(^^;;; > > あと、 > > MiX::SAX_Parser<>::parseは、バッファ上の文字列に対してパース > > を実行しますよね。これをstd::istream経由にするにはどうすれば > > よいでしょうか? > これは是非是非実現したいですね。 > istream経由Parse > SAX_ParserはVer0.3.xあたりからいじってないんで、ちょっと怖い気も > しますが... ぜひお願いします! ざっと見た感じだと、Tokenizerが1行ごとにストリームから自前で充填 するようにすれば大丈夫じゃないでしょうか。 Tokenizer.cppの30行目あたりで再充填すればいけそうな気がします。 > > とりあえず一行ごとにparseを掛けていますが、これだと複数行に > > わたるコメントでエラーが出てしまいます… > 想定外です...動いてます? > 複数行にわたるコメントがない文書で動いてるようなら、ちょっと > いじってきちんとした動作をさせるようにしてみたいと思います。 例えば 1: だと3行目でParsingExceptionが飛んできます。これを無視すれば あとは普通に動いているようですよ。 from Kent.N : kn @ mm.neweb.ne.jp From kn @ mm.neweb.ne.jp Sat Jul 20 02:44:45 2002 From: kn @ mm.neweb.ne.jp (kn) Date: Sat, 20 Jul 2002 02:44:45 +0900 Subject: [MiX-users] hello & questions In-Reply-To: <20020719224413.054F.KN@mm.neweb.ne.jp> References: <20020719224413.054F.KN@mm.neweb.ne.jp> Message-ID: <20020720003632.0552.KN@mm.neweb.ne.jp> Kent.Nです。 On Fri, 19 Jul 2002 23:03:17 +0900 kn wrote: > > > MiX::SAX_Parser<>::parseは、バッファ上の文字列に対してパース > > > を実行しますよね。これをstd::istream経由にするにはどうすれば > > > よいでしょうか? > > これは是非是非実現したいですね。 > istream経由Parse > > SAX_ParserはVer0.3.xあたりからいじってないんで、ちょっと怖い気も > > しますが... > ぜひお願いします! > ざっと見た感じだと、Tokenizerが1行ごとにストリームから自前で充填 > するようにすれば大丈夫じゃないでしょうか。 > Tokenizer.cppの30行目あたりで再充填すればいけそうな気がします。 いけそうだったのでやってみました。 …いけました(^^;; 追加した部分は以下の通りです; -- SAX_Parser.h ---------------------- class SAX_Parser{ ... bool parse(MiX_STD::basic_istream& is); ... }; -- SAX_Parser.cpp -------------------- template bool SAX_Parser::parse(MiX_STD::basic_istream& is) { if(handler_==NULL){ std::ostringstream sout; sout << "ParsingException" << MiX_STD::endl << "Invalid Handler" << MiX_STD::endl << MiX_STD::ends; throw ParsingException(-1,InvalidHandler,sout.str()); return false; } tokenizer_.injectString(is); // ここ以外は // parse(const Char* szText)と同じ state_ = STATE_Text; while(state_!=STATE_Complete && state_!=STATE_Exception){ if(state_==STATE_Text) state_ = parseText(); else if(state_==STATE_Tag) state_ = parseTag(); else if(state_==STATE_Comment) state_ = parseComment(); else if(state_==STATE_Declaration) state_ = parseDeclaration(); else if(state_==STATE_XMLDeclaration) state_ = parseXMLDeclaration(); } if(state_ == STATE_Exception) return false; return true; } -- Tokenizer.h ----------------------- class Tokenizer{ ... MiX_STD::basic_istream* pis_; XMLString line_; ... bool injectString(const Char* text) { imbueStringFromBuffer(text); return true; }; bool injectString(MiX_STD::basic_istream& is) { pis_ = &is; imbueString(); }; bool imbueStringFromBuffer(const Char* text) { current_ = start_ = data_ = text; return true; }; bool imbueString() { if (pis_ != NULL && MiX_STD::getline(*pis_, line_)) { if (*line_.rbegin() == pis_->widen('\r')) line_.resize(line_.size()- 1); return imbueStringFromBuffer(line_.c_str()); } else { return false; } }; ... -- Tokenizer.cpp --------------------- bool Tokenizer::ejectToken(XMLToken& dest){ ... // もとは if(*current_==XMLTraits::null()){... while(*current_==XMLTraits::null()){ if (! imbueString()) { XMLToken tok(current_,current_+1,Token_null,current_-start_); dest = tok; return false; } } ... --- 使う方は parser->parse(is); とかやります。 > > > とりあえず一行ごとにparseを掛けていますが、これだと複数行に > > > わたるコメントでエラーが出てしまいます… > > 想定外です...動いてます? > だと3行目でParsingExceptionが飛んできます。これを無視すれば > あとは普通に動いているようですよ。 これ、ちょっとピントずれてましたね。一行ごとにparse掛けるのが 想定外なんですね。 複数行コメントが無い場合、ちゃんと処理できている…ような気がします。 ちなみに、このistreamバージョンでは、複数行コメントもちゃんと動いて いるっぽいです。 from Kent.N : kn @ mm.neweb.ne.jp From kn @ mm.neweb.ne.jp Sat Jul 20 03:15:44 2002 From: kn @ mm.neweb.ne.jp (kn) Date: Sat, 20 Jul 2002 03:15:44 +0900 Subject: [MiX-users] hello & questions In-Reply-To: <20020720003632.0552.KN@mm.neweb.ne.jp> References: <20020719224413.054F.KN@mm.neweb.ne.jp> <20020720003632.0552.KN@mm.neweb.ne.jp> Message-ID: <20020720031226.7BDC.KN@mm.neweb.ne.jp> Kent.Nです。 On Sat, 20 Jul 2002 02:44:45 +0900 kn wrote: > -- Tokenizer.h ----------------------- > > class Tokenizer{ > ... > bool imbueString() { > if (pis_ != NULL && MiX_STD::getline(*pis_, line_)) { > if (*line_.rbegin() == pis_->widen('\r')) line_.resize(line_.size()- 1); > return imbueStringFromBuffer(line_.c_str()); > } else { > return false; > } > }; > ... ここ、CRを削除するのはまずいみたいですね。むしろLFつけるのが 正しいっぽい…すると bool imbueString() { if (pis_ != NULL && MiX_STD::getline(*pis_, line_)) { line_.push_back(XMLTraits::crlf()); return imbueStringFromBuffer(line_.c_str()); } else { return false; } }; ですかね。 from Kent.N : kn @ mm.neweb.ne.jp From ffukuda @ ntes.nec.co.jp Mon Jul 22 18:27:04 2002 From: ffukuda @ ntes.nec.co.jp (FUKUDA Fumiki) Date: Mon, 22 Jul 2002 18:27:04 +0900 Subject: [MiX-users] hello & questions In-Reply-To: Your message of "Tue, 20 Aug 2002 17:24:02 +0900" Message-ID: <200207220927.g6M9RxcG009126@tmg01.ntes.nec.co.jp> επιστημηです。 # あれ、久保さんのマシン、時刻がおかしくない? # メールのtimestampが 8月 になってるっぽい。 --- "Re: [MiX-users] hello & questions" / KUBO,Yotaro / 2002/08/20 17:24:02 +0900 --- >> MiX::SAX_Parser<>::parseは、バッファ上の文字列に対してパース >> を実行しますよね。これをstd::istream経由にするにはどうすれば >> よいでしょうか? >> サンプルではまずファイル全体をバッファに読み込んで、それを >> 食わせていますが、これだと大きなファイルは扱えませんし、 >> だいいち、あんまりかっこよくない(^^; >これは是非是非実現したいですね。 > istream経由Parse >SAX_ParserはVer0.3.xあたりからいじってないんで、ちょっと怖い気も >しますが... とりあえずは istream から eof になるまでどかっとstringに吸い込んで、 んでもってparseすれば....意味ねぇけど^^; >> とりあえず一行ごとにparseを掛けていますが、これだと複数行に >> わたるコメントでエラーが出てしまいます… >想定外です...動いてます? >複数行にわたるコメントがない文書で動いてるようなら、ちょっと >いじってきちんとした動作をさせるようにしてみたいと思います。 一行ずつ...なとき複数行にわたるコメントでコケるとすれば のようにエレメントが複数行にまたがったときもやばいっすよね? -----:-----:-----:-----:-----:-----:-----:-----:-----:----- FUKUDA (episteme) Fumiki -- magical, but never a magic... From webmaster @ soup.jp Tue Jul 30 19:21:54 2002 From: webmaster @ soup.jp (KUBO,Yotaro) Date: Tue, 30 Jul 2002 19:21:54 +0900 Subject: [MiX-users] MiX-0.4.6! Message-ID: MiX-0.4.6をリリースしました。 変更点は以下の通り。 - clone追加 - NodeContainer::getElementsByTagNameを追加 - 大幅リファクタリング(Traits周りと、ソース全般) - テストを刷新 - GCC3.1に対応(警告473個とか出てたし...) - ストリームから直接parseに対応 ストリームから直接Parseはあれば嬉しいけど必須じゃないよなぁ、、、 とか思ってましたが、実際に書いてみるとスゴく綺麗に書けるので大満足です。 こんな感じで。 parser.parse(std::ifstream(filename)); /** * 久保 陽太郎 * * http://mix.sourceforge.jp * Mail: webmaster @ soup.jp */ From kn @ mm.neweb.ne.jp Tue Jul 30 22:51:23 2002 From: kn @ mm.neweb.ne.jp (kn) Date: Tue, 30 Jul 2002 22:51:23 +0900 Subject: [MiX-users] MiX-0.4.6! In-Reply-To: References: Message-ID: <20020730224115.0400.KN@mm.neweb.ne.jp> Kent.Nです。 On Tue, 30 Jul 2002 19:21:54 +0900 "KUBO,Yotaro" wrote: > MiX-0.4.6をリリースしました。 さっそくリプレースしました。 いまのところトラブルなしで動いてます。 ドキュメントで「動作しますように...」になっていたBCBは、 多少の修正(市川さんのpatch + α)で動作しました。 具体的には MiX_Template_Typedef(charT,traitsT); のセミコロンをはずすのと、 typedef NodeContainer nodecontainer_type; を削除すること、です。後者はMiX_Template_Typedefの中で 宣言してあるようで、二重宣言のエラーがでてました。 ちなみに、こちらのBCBはVer.4なので、Ver.5や6でどうなるかは わかりません。 あと上記の修正を加えても、gcc-3.1でさっくり動作してます。 > ストリームから直接Parseはあれば嬉しいけど必須じゃないよなぁ、、、 > とか思ってましたが、実際に書いてみるとスゴく綺麗に書けるので大満足です。 > こんな感じで。 > parser.parse(std::ifstream(filename)); 短いことはいいことだ :-) from Kent.N : kn @ mm.neweb.ne.jp