Topazdocs
Политика языка

Строки и шаблоны

Каноническая грамматика, семантика, ограничения и отложенные границы: Строки и шаблоны.

Строки — точный Unicode-текст; tagged templates сохраняют domain intent и границы interpolation как typed values, не полагаясь на quoting целевого языка.

Политика

Обычные двойные и тройные кавычки используют {expression} и фиксированный escape set. Смежные registry tags: p, r, sh, sql, каждый с обеими формами строк. p несёт intent нормализации пути, r — regex с reduced escaping, sh — shell safety metadata без автоматического запуска, sql — parameter metadata без прямой вставки текста.

Определённое поведение

Interpolation вычисляется runtime и использует стандартный renderer. Tagged template сохраняет raw parts, interpolation spans и tag kind; SQL interpolation становится параметром. Triple-quoted content следует точному closing-indent. Между tag и delimiter не должно быть пробела; с пробелом tag — обычный identifier, juxtaposition не является вызовом.

Ограничения и явный отказ

Отклоняются backticks, ${expression}, одинарные кавычки, html, пользовательские и неизвестные adjacent tags, прямая SQL-вставка и утверждение, что sh выполняется. Вне adjacency tags не keywords. Нельзя выдумывать regex-детали сверх reduced-escaping floor и platform path rendering.

Отложенная граница

HTML templates, user tag registration, macros, compile-time выполнение, полностью фиксированный cross-platform regex dialect, shell execution и широкое path/filesystem behavior отложены либо принадлежат библиотекам и host surfaces.

Пример

TOPAZ
let region = "EMEA"

let report = sql"""
    SELECT name, total
    FROM orders
    WHERE region = {region}
    ORDER BY total DESC
    """

Связанные правила