dyayaml../index.htmldyayaml!!注意!!なんなのなんなのdyayamlはYAMLを破壊する機能面downloadDelphiからの使い方リンク!!注意!!dyayaml開発当初はろくなYAMLライブラリが無かったのは確かです。今はlibyamlという優れたライブラリがありますので、そちらの使用を強く推奨します。奇遇にもlibyamlはYAMLをストリームとして扱うメインの構造がdyayamlとまるで同じで、移行はとても簡単です。無いとは思いますが既にdyayamlで作ったデータがあり、dyayamlの勝手な仕様のせいで互換性のないYAMLを抱えてしまっている方は、変換用にdyayaml2libyaml.cを用意しましたので、どうぞお使いください。dyayamlからは早々にお離れください。なんなのなんなの様々な言語から使えるYAMLのReader&Writerです。Ada、もしかしてHaskellから使えます。dyayamlはYAMLを破壊する対応してない構文が多数あります。Mappingだけで、木構造を構成することのみできます。あと細かいところで勝手な仕様を混ぜてますので下手にdyayamlを使うと他のYAMLライブラリで読めなくなるかもしれません。タブをインデントに使うこともできます。strictなYAMLなんてどうでもよくてそれっぽい構文が使えればそれでいい人向け。機能面ライブラリとしての機能は、以下のようなものがあります。ストリーム読みこみができます。ストリーム書き込みができます。コメントも読み書きできます。最大の特徴として、関数内関数を用いて木構造をコード上で再現した読み書きができます。ひとつのルーチンで読み書き両方を行えます。closure必須なのでC/C++ではたぶん無理。いや、templateの大家様なら実現できるかも。深くない歴史的経緯によりD言語のみbogoYAML互換インターフェースが残ってたりして専用のデータホルダにツリー構造を格納することができます。2010-07-23Delphiからの使い方いい加減な説明をします。Delphiからの場合必要なのはdyayaml_omf.objとdyayaml.pasだけです。あとはポイしてください。makefileも要りません。dyayaml.pasのimplementationのすぐ後にdyayaml_omf.objをリンクする指令があるのでそこのパスを実際にファイルを置いた位置に書き換えるだけでOKのはずです。出力はこんな感じです。nil);WriteLn(Writer.Output);end.上記コードは次の出力を行います。0上記コードのままではグローバル変数を介するか、Contextというポインタ型の引数を介するかしないとコールバック関数のT_Mappingに変数を渡せません。ところが、上記コードは何故かこう書き換えることができます。overload;という関数は、そのまま読み込みにも使うことができます。いい加減な説明終わり。LanguageYAMLの本家サイトです。bogoYAMLdyayamlがかなり影響を受けたYAMLライブラリです。Javaによる実装があります。YSLTYAML版XSLT。(中級編)何故かdyayamlが紹介されています。D言語で実装云々は間違いです。