Skip to content

oscript-library/oscript-yaml

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oscript-yaml 🚀

Полнофункциональная библиотека для парсинга 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, ~)
  • ✅ Комментарии (#)

Структуры данных

  • ✅ Соответствия (объекты)
  • ✅ Массивы (списки)
  • ✅ Вложенные структуры любой глубины
  • ✅ Смешанные типы в массивах

Flow Style (инлайн синтаксис)

  • ✅ Массивы в квадратных скобках [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
  • ✅ Валидация парных скобок и кавычек
  • ✅ Информативные сообщения об ошибках

🚧 Статус реализации

✅ Реализовано

  1. Базовый парсинг - простые ключ-значение пары
  2. Массивы Block Style - списки с дефисами
  3. Вложенные структуры - многоуровневые объекты
  4. Многострочные литералы - | и > стили
  5. Flow Style - инлайн массивы и объекты
  6. Пустые коллекции - [], {}, неявные пустые значения
  7. Комментарии - строки с #
  8. Якоря и ссылки - &anchor, *anchor, <<: *anchor
  9. Смешанные типы - комбинации различных структур
  10. Сложные структуры - глубокая вложенность

🔄 В разработке / Планируется

Высокий приоритет

  1. Чтение из файлов - метод ПрочитатьИзФайла(ПутьКФайлу)

  2. Экранирование символов в строках

    escaped: "Line 1\nLine 2\tTabbed"
    unicode: "\u0041\u0042\u0043"  # ABC
    quotes: "He said \"Hello\""
  3. Расширенные числовые форматы

    scientific: 1.2e+3
    octal: 0o14
    hex: 0xFF
    binary: 0b1010
    infinity: .inf
    not_a_number: .nan

Средний приоритет

  1. Модификаторы многострочных литералов

    strip_literal: |-    # убирает финальные переводы строк
    keep_literal: |+     # сохраняет финальные переводы строк
  2. Сложные ключи

    "key with spaces": value
    ? "complex key"
    : complex value
  3. Множественные документы

    ---
    document: 1
    ---
    document: 2
    ...

Низкий приоритет

  1. Явные теги типов

    string_tag: !!str 123
    int_tag: !!int "456"
  2. Продвинутые anchor сценарии

    # Циклические ссылки, множественный merge

📋 Дополнительные планы

  1. Запись YAML - класс ЗаписьYaml для сериализации
  2. Производительность - оптимизация для больших файлов
  3. Потоковый парсинг - обработка файлов по частям
  4. Плагины форматирования - кастомные обработчики типов

📄 Лицензия

MIT License - см. файл LICENSE для подробностей.

🔗 Полезные ссылки


oscript-yaml - надежное решение для работы с YAML в экосистеме OneScript! 🎉

About

Реализация yaml-парсера средствами oscript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • 1C Enterprise 100.0%