И это всё МОЁ

Собственно понадобились древовидных/иерархических конфиги для написания людьми. Такой себе DSL. Человек пишет декларативный конфиг - прога его обрабатывает и выдаёт результат.


Требования:



  1. Минимальное количество синтаксического шума.

  2. Коментарии.

  3. Многострочный текст.

  4. Иерархичность.

  5. Популярный формат, чтобы либа была для любого языка.


Что имеем:




  • YAML


    Самый очевидный выбор. Но провозившись с ним неделю - я возненавидел его. Он до безобразия переусложнён и не очевиден. Я до сих пор не могу предугадать как мой конфиг будет распарсен - это провал. Я даже пытался написать простенький парсер, чтобы лучше понять его. Но только больше запутался.




  • XML


    Тот случай, когда дедушка XML подходит лучше всего. Но хотелось бы что-то более простое.




  • JSON


    Не подходит по всем параметрам. Не для людей.




  • JSON5


    Ближе всего к идеалу, но малораспространён.




  • TOML


    Всем хорош, но не древовидный (да, если костыль, но это тихий ужас).




Есть идеи?


PS: шутки про s-expressions не интересны









 , ,