Полнофункциональная библиотека для парсинга YAML в экосистеме OneScript/1C. Реализует основные возможности стандарта YAML 1.2 с поддержкой вложенных структур, якорей, многострочных литералов и Flow Style синтаксиса.
opm install oscript-yaml
Или клонируйте репозиторий:
git clone https://github.com/your-username/oscript-yaml.git
#Использовать oscript-yaml
Парсер = Новый ПарсерYaml();
// Простой пример
СтрокаYAML = "
| name: John Doe
| age: 30
| active: true
|";
Результат = Парсер.ПрочитатьYaml(СтрокаYAML);
Сообщить(Результат.Получить("name")); // John Doe
- ✅ Строки (с кавычками и без)
- ✅ Числа (целые и вещественные)
- ✅ Булевы значения (
true
,false
) - ✅ Null значения (
null
,~
) - ✅ Комментарии (
#
)
- ✅ Соответствия (объекты)
- ✅ Массивы (списки)
- ✅ Вложенные структуры любой глубины
- ✅ Смешанные типы в массивах
- ✅ Массивы в квадратных скобках
[1, 2, 3]
- ✅ Объекты в фигурных скобках
{key: value}
- ✅ Вложенные Flow структуры
- ✅ Пустые коллекции
[]
,{}
- ✅ Смешанный Flow и Block стили
- ✅ Literal style (
|
) - сохраняет переводы строк - ✅ Folded style (
>
) - объединяет строки
- ✅ Пустые массивы в Flow style
[]
- ✅ Пустые объекты в Flow style
{}
- ✅ Неявные пустые значения (Block style)
- ✅ Null значения (
null
,~
)
- ✅ Определение якорей
&anchor
- ✅ Ссылки на якоря
*anchor
- ✅ Слияние объектов
<<: *anchor
- ✅ Простые ссылки на скалярные значения
- ✅ Проверка синтаксиса Flow Style
- ✅ Валидация парных скобок и кавычек
- ✅ Информативные сообщения об ошибках
- Базовый парсинг - простые ключ-значение пары
- Массивы Block Style - списки с дефисами
- Вложенные структуры - многоуровневые объекты
- Многострочные литералы -
|
и>
стили - Flow Style - инлайн массивы и объекты
- Пустые коллекции -
[]
,{}
, неявные пустые значения - Комментарии - строки с
#
- Якоря и ссылки -
&anchor
,*anchor
,<<: *anchor
- Смешанные типы - комбинации различных структур
- Сложные структуры - глубокая вложенность
-
Чтение из файлов - метод
ПрочитатьИзФайла(ПутьКФайлу)
-
Экранирование символов в строках
escaped: "Line 1\nLine 2\tTabbed" unicode: "\u0041\u0042\u0043" # ABC quotes: "He said \"Hello\""
-
Расширенные числовые форматы
scientific: 1.2e+3 octal: 0o14 hex: 0xFF binary: 0b1010 infinity: .inf not_a_number: .nan
-
Модификаторы многострочных литералов
strip_literal: |- # убирает финальные переводы строк keep_literal: |+ # сохраняет финальные переводы строк
-
Сложные ключи
"key with spaces": value ? "complex key" : complex value
-
Множественные документы
--- document: 1 --- document: 2 ...
-
Явные теги типов
string_tag: !!str 123 int_tag: !!int "456"
-
Продвинутые anchor сценарии
# Циклические ссылки, множественный merge
- Запись YAML - класс
ЗаписьYaml
для сериализации - Производительность - оптимизация для больших файлов
- Потоковый парсинг - обработка файлов по частям
- Плагины форматирования - кастомные обработчики типов
MIT License - см. файл LICENSE для подробностей.
oscript-yaml - надежное решение для работы с YAML в экосистеме OneScript! 🎉