Базовый синтаксис

Last updated: 2026-10-14Пары, вложенность, списки, многострочный текст, комментарии и приведение типов — всё, что работает без !active.

Базовый синтаксис

Перенесено из репозитория формата — docs/spec/SPECIFICATION_RU.md, SYNX 3.7.4. Правки вносятся там.

2.1 Ключ-значение

Всё, что идёт после первого пробела — это значение. Кавычки не нужны.

synx
имя Иван
возраст 25
фраза Я люблю программировать и пить кофе!

Эквивалент в JSON:

json
{
  "имя": "Иван",
  "возраст": 25,
  "фраза": "Я люблю программировать и пить кофе!"
}

Правила для ключей:

  • Без пробелов (используйте _ или camelCase)
  • Не могут начинаться с -, #, //, !
  • Могут содержать буквы любого алфавита, цифры, _, - (внутри)

2.2 Автоопределение типов

Парсер автоматически определяет типы:

synx
строка Hello World
целое 42
дробное 3.14
правда true
ложь false
пусто null

Результат:

json
{
  "строка": "Hello World",
  "целое": 42,
  "дробное": 3.14,
  "правда": true,
  "ложь": false,
  "пусто": null
}

Принудительное приведение типа (если нужно число как строку):

synx
zip_code(string) 90210
id(int) 007

Поддерживаемые касты: (int), (float), (bool), (string)


2.3 Вложенность (объекты)

Отступ 2 пробела создаёт вложенный объект. Ключ без значения — это группа (папка).

synx
сервер
  хост 0.0.0.0
  порт 8080
  ssl
    включён true
    сертификат /etc/ssl/cert.pem

Результат:

json
{
  "сервер": {
    "хост": "0.0.0.0",
    "порт": 8080,
    "ssl": {
      "включён": true,
      "сертификат": "/etc/ssl/cert.pem"
    }
  }
}

⚠️ Используйте пробелы, а не TAB. Стандарт — 2 пробела на уровень.


2.4 Списки

Символ - (дефис + пробел) создаёт элемент списка. Элементы без имён — просто порядковый набор.

synx
инвентарь
  - Меч
  - Щит
  - Зелье здоровья

Результат:

json
{
  "инвентарь": ["Меч", "Щит", "Зелье здоровья"]
}

Список объектов (каждый элемент — мини-анкета):

synx
гараж
  - марка BMW
    цвет чёрный
    год 2023
  - марка Audi
    цвет белый
    год 2021

Результат:

json
{
  "гараж": [
    { "марка": "BMW", "цвет": "чёрный", "год": 2023 },
    { "марка": "Audi", "цвет": "белый", "год": 2021 }
  ]
}

2.5 Многострочный текст (блоки)

Символ | после ключа начинает блок текста. Всё, что идёт ниже с отступом — часть этого текста.

synx
описание |
  Это длинное описание,
  которое занимает несколько строк.
  Каждая строка склеивается через перенос.

Результат:

json
{
  "описание": "Это длинное описание,\nкоторое занимает несколько строк.\nКаждая строка склеивается через перенос."
}

Принудительный перенос строки внутри одной строки: /n

synx
баннер Добро пожаловать!/nУдачной игры!

Результат:

Добро пожаловать!
Удачной игры!

2.6 Комментарии

Поддерживаются два стиля комментариев:

synx
# Это комментарий (стиль Python/YAML)
// Это тоже комментарий (стиль JS/C++)

имя Иван  # Инлайн-комментарий после значения
порт 8080 // Тоже инлайн

Комментарии полностью игнорируются парсером.

Базовый синтаксис | AS Docs