2008-09-17 15 views
2

は例えば、今の私のようなブロックを含むデータファイルを使用して、ロール私-独自のソリューションを持っている:提案/パースライブラリ

PlayerCharacter Fighter 
    Hitpoints 25 
    Strength 10 
    StartPosition (0, 0, 0) 
    Art 
    Model BigBuffGuy 
    Footprint LargeFootprint 
    end 
    InventoryItem Sword 
    InventoryItem Shield 
    InventoryItem HealthPotion 
end 
  • 人間編集可能(W /最小限の迷惑な文字、理想的には)
  • エラーに耐えられるようになりました(私はこれ以上の役に立たない構文エラーを解析できないので、残りのファイルのすべてのデータを失ってしまいました)。もちろんそれらを識別し、報告する。私の例では、唯一の完全な失敗のケースは欠点です。
  • 入れ子構造スタイルデータ
  • 配列/リストスタイルデータを
  • カスタマイズ基礎タイプ
  • 速い

は、これらの要件を超えて/満たす任意の周知の解決策はありますか?

答えて

6

Yamlは良いソリューションであり、あなたの持っているものに非常に近いです。それを探してください。

1

私はYAMLの提案よりも2番目です。間違いを非常に寛容にし、広くサポートされています(特に動的言語の中で)。

1

私が最も一般的な選択肢であると言うだろう:

  1. JSONoffical site) - 非常に柔軟な、句読点が
  2. INIに慣れるために人々のために少しを取ることができますが - 使用する超簡単なかなり、柔軟な共通、しかしあまりにも冗長時々
0

あなたはTR可能性 - データ型

  • XMLではなく、ビット限られましたy JSONの利用可能:http://www.json.org/

    これは初めにjavascriptとウェブの使用のために設計されました。しかし、それはかなり清潔で、多くの言語でサポートされています。

  • 0

    Luaは、構文がマークアップ言語としても簡単に使用できるプログラミング言語として設計されているため、データファイルをコードのように含めることができます。多くのコンピュータゲームは、スピードと使いやすさのために、World of Warcraftのようなスクリプトに使用しています。しかし、もともとエネルギー業界向けに設計され維持されていたので、深刻な背景があります。

    S式を持つスキームは、非常にいいですが、見た目が異なる、データの構文です。最後に、ほとんどの初心者の開発者がそれを知っているという利点があるXMLがあります。 ANTLRのような素敵な開発スイートで、よく定義された効率的なパーサをロールバックすることもできます。

    -1

    JSONをお勧めします。

    • 同じように編集可能/読み出し可能なYAMLよう
    • あなたはeval()をすることができて、Webで使用するために起こる場合
    • のJavaScriptにEDが
    YAMLとして
  • おそらくクロスランゲージオブジェクト