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

Элементы

  • Terminal(text) или строка — лексема.
  • NonTerminal(text — термин.
  • 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-код для вставки: