Курс языка программирования Raku / Регулярные выражения и грамматики / Грамматики / Грамматики, классы и наследование / Proto-токены и альтернативы
Тест — Грамматики и наследование
Что выведет следующая программа?
grammar Base {
token TOP { <word> }
token word { 'cat' }
}
grammar Pet is Base {
token word { 'dog' }
}
say Pet.parse('dog').defined;| 1 | True |
| 0 | False |
| 0 | 「cat」 |
| 0 | 「dog」 |
Pet наследует TOP от Base, но
переопределяет токен word, чтобы тот сопоставлял
dog. Когда Pet разбирает 'dog',
используется её собственный word, поэтому разбор удаётся и
.defined даёт True.