Курс языка программирования Raku / Регулярные выражения и грамматики / Грамматики / Дерево разбора, make и made / Дерево совпадения

Тест — Дерево совпадения

Что выведет следующая программа?

grammar Point {
    token TOP { <x> ',' <y> }
    token x   { \d+ }
    token y   { \d+ }
}

say Point.parse('3,4')<y>;
0「3」
1「4」
0「3,4」
0「y」

Каждый токен становится именованной ветвью дерева совпадения. Обращение <y> у результата добирается до токена y, который совпал с 4, поэтому программа печатает 「4」.

Навигация по курсу

Дерево совпадения   |   make и made