Пример метаязыка для построения СД.

Правила метаязыка

Элементы
  • Terminal(text, href) или строка — лексема. Необязательный параметр href — гиперссылка.
  • NonTerminal(text, href) — термин. Необязательный параметр  href — гиперссылка.
  • Comment(text) — комментарий.
  • Skip() — пустой элемент (линия); используется для выбора с пустым
Контейнеры

Параметр children — это один или несколько параметров через запятую.

  • Sequence(children) — последовательность
  • Choice(index, children) — альтернатива. Параметр index определяет, какая из альтернатив отобразится посередине (остальные будут сверху и снизу)
  • Optional(child) — Сокращение от  Choice(1, [Skip(), child]). Если добавить второй параметр (строку "skip"), пустой вариант окажется посередине
  • OneOrMore(child, repeat) — повторение один или более раз. Необязательный параметр repeat задаёт разделитель
  • ZeroOrMore(child, repeat) — сокращение от Optional(OneOrMore(child, repeat)). Если добавить третий параметр (строку "skip"), пустой вариант окажжется посередине

HTML-код для вставки: