+1514
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
[151] ns-flow-pair-entry(n,c) ::= ns-flow-pair-yaml-key-entry(n,c)
| c-ns-flow-map-empty-key-entry(n,c)
| c-ns-flow-pair-json-key-entry(n,c)
[152] ns-flow-pair-yaml-key-entry(n,c) ::= ns-s-implicit-yaml-key(flow-key)
c-ns-flow-map-separate-value(n,c)
[153] c-ns-flow-pair-json-key-entry(n,c) ::= c-s-implicit-json-key(flow-key)
c-ns-flow-map-adjacent-value(n,c)
[154] ns-s-implicit-yaml-key(c) ::= ns-flow-yaml-node(n/a,c) s-separate-in-line?
/* At most 1024 characters altogether */
[155] c-s-implicit-json-key(c) ::= c-flow-json-node(n/a,c) s-separate-in-line?
/* At most 1024 characters altogether */
If the “?” indicator is omitted, parsing needs to see past the implicit key to recognize it as such. To limit the amount of lookahead required, the “:” indicator must appear at most 1024 Unicode characters beyond the start of the key. In addition, the key is restricted to a single line.
Note that YAML allows arbitrary nodes to be used as keys. In particular, a key may be a sequence or a mapping. Thus, without the above restrictions, practical one-pass parsing would have been impossible to implement.
Столкнулся, значит, с проблемой. ЙАМЛ парсер для Го не может распарсить даже примеры из спецификации.
Заглянул в исходники - ад и погибель. Копипаста сишного кода из libyaml с косметическими изменениями. Функции по 200+ строк с кучей ифов, регулярками и т.п. Решил заглянуть в спецификацию в надежде, что может можно самому как-то... в спецификации - ад и погибель. Копипаста с грамматическими ошибками, и тьма их. Ну а как дошел до этого места, так сразу и понял, что тут уже делать больше нечего.
Запостил:
wvxvw,
19 Августа 2016
лол
к слову одна из прог "гениально" последнюю проблему решила: у каждого значение есть ключ/имя, но во многих местах ключи/имена просто игнорируется. таким образом прога форсирует что бы все параметры были однозначно: либо контейнером, либо простые значения.
ЗЫ на этой теме меня до сих пор пробивает что нет стандарта конфигов на s-expressions. наверное опять lisp curse.
Слишком просто, нет простора для выебонов типа YAML'овских...
Вот юзеров, копипастящих команды из блокнота наблюдаю часто. А ещё мне рассказывали, как одни утырки скрипт сохранили в .doc, переименовали в .sh и написали багрепорт, что, мол, ваша железка не работает.
для секспов есть какие библиотеки?
"Раньше был XML, но он жирный слишком для конфигов с тысячами объектов."
фи как не культурно. мой прошлый работодатель дампы базы в XML сливал и читал. ну подумаешь что нужно <size-of-DB> гигов памяти что бы дамп прочитать/провалидировать. это у вас просто памяти мало на серваках стоит.
зачем? sax отменили?
так как json никто не валидирует сильно, у нас в одном месте в качестве комментариев просто левые ключики со комментарием как значение/строка используются.