АБО Шаблони

Оновлено: 24.04.2023

Шаблон АБО — це два або більше шаблонів, розділених вертикальними рисками |. Синтаксис:

or_pattern ::=  "|".closed_pattern+

Лише остаточний підшаблон може бути irrefutable, і кожен підшаблон повинен пов’язувати однаковий набір імен, щоб уникнути двозначності.

Шаблон АБО зіставляє кожен зі своїх підшаблонів по черзі зі значенням суб’єкта, поки один не досягне успіху. Потім шаблон АБО вважається успішним. В іншому випадку, якщо жоден із підшаблонів не вдасться, шаблон АБО буде невдалим.

Простіше кажучи, P1 | P2 | ... намагатиметься знайти відповідність P1, якщо це не вдасться, вона спробує знайти P2, успішно негайно, якщо будь-який з них вдасться, інакше не вдасться.