Raku kurss / Regulārās izteiksmes un gramatikas / Gramatikas / Gramatikas, klases un mantošana / Exercises / Mantojiet gramatiku
Risinājums: Mantojiet gramatiku
Šeit ir iespējams risinājums uzdevumam.
Kods
grammar Animal {
token TOP { <sound> }
token sound { \w+ }
}
grammar Dog is Animal {
token sound { 'woof' }
}
grammar Cat is Animal {
token sound { 'meow' }
}
say Dog.parse('woof').defined;
say Cat.parse('meow').defined;
say Dog.parse('meow').defined;🦋 Atrodiet programmu failā inherit-a-grammar.raku.
Izvade
True
True
FalseKomentāri
Gan
Dog is Animal, ganCat is Animalmanto marķieriTOPno bāzes nemainītu; katra nodrošina tikai savusound.Tātad viena bāzes gramatika ir paplašināta divos dažādos veidos.
Dogpiemeklē tikaiwoof, betCattikaimeow— un tieši tāpēcDog.parse('meow')neizdodas: suns patur savu pārrakstītosound, tieši tāpat kā uz objektiem uzvedas pārrakstītas metodes.