Предложения по редактируемому человеку формату файла данных / библиотеке синтаксического анализа - PullRequest
2 голосов
/ 18 сентября 2008

Например, прямо сейчас у меня есть решение по принципу «сворачивай сам», которое использует файлы данных, которые включают в себя блоки, такие как:

PlayerCharacter Fighter
  Hitpoints 25
  Strength 10
  StartPosition (0, 0, 0)
  Art
    Model BigBuffGuy
    Footprint LargeFootprint
  end
  InventoryItem Sword
  InventoryItem Shield
  InventoryItem HealthPotion
end
  • редактируемый человеком (с минимальным количеством ненужных символов, в идеале)
  • устойчив к ошибкам (наименьшее количество ошибок типа «вау, я не могу больше ничего анализировать», и, таким образом, я потерял все данные в оставшейся части файла) - но все же могу их идентифицировать и сообщить курс. В моем примере единственный полный сбойный случай - это конец.
  • данные стиля вложенной структуры
  • данные стиля массива / списка
  • настраиваемые типы фундаментов
  • быстро

Существуют ли известные решения, которые соответствуют / превосходят эти требования?

Ответы [ 6 ]

6 голосов
/ 18 сентября 2008

Yaml - хорошее решение, очень близкое к тому, что у вас есть. Ищите его.

1 голос
/ 18 сентября 2008

Я бы сказал, что наиболее распространенные варианты:

  1. JSON ( официальный сайт ) - очень гибкий, хотя пунктуация может занять некоторое время, чтобы люди привыкли к
  2. INI - супер простой в использовании, но немного ограниченный в типах данных
  3. XML - довольно гибкий, распространенный, но иногда слишком многословный
1 голос
/ 18 сентября 2008

Я второе предложение YAML . Его чрезвычайно легко редактировать, он простит ошибки и широко поддерживается (особенно среди динамических языков).

0 голосов
/ 18 сентября 2008

Я бы предложил JSON .

  • Так же читабельно / редактируемо, как YAML
  • Если вы используете Web, то можете быть eval () в JavaScript-объектах
  • Возможно, такой же кросс-язык, как YAML
0 голосов
/ 18 сентября 2008

Lua был разработан, чтобы быть языком программирования, где синтаксис позволяет легко использовать его как язык разметки, чтобы вы включали файлы данных, как если бы они были кодом. Многие компьютерные игры используют его для написания сценариев, например World of Warcraft из-за его скорости и простоты использования. Тем не менее, он изначально разработан и поддерживается для энергетической отрасли, поэтому есть серьезный опыт.

Схема с ее S-выражениями также является очень хорошим, но по-другому выглядящим синтаксисом для данных. Наконец, у вас есть XML, который имеет преимущество большинства разработчиков начального уровня, знающих его. Вы также можете создать свой собственный четко определенный и эффективный синтаксический анализатор с хорошим пакетом разработки, таким как ANTLR .

0 голосов
/ 18 сентября 2008

Вы можете попробовать JSON по адресу: http://www.json.org/

Первоначально он был разработан для использования в JavaScript и в Интернете. Но он довольно чистый и поддерживается на многих языках.

...