Raku kurss / Regulārās izteiksmes un gramatikas / Gramatikas / Marķieri un likumi / Exercises / Piešķiršana ar atstarpēm
Risinājums: Piešķiršana ar atstarpēm
Šeit ir iespējams risinājums uzdevumam.
Kods
grammar Assign {
rule TOP { <key> '=' <value> }
token key { \w+ }
token value { \w+ }
}
say Assign.parse('x = 5').defined;🦋 Atrodiet programmu failā spaced-assignment.raku.
Izvade
TrueKomentāri
Tā kā
TOPirrule, atstarpes raksturā atļauj atstarpes ap=ievadē.Tāpēc
'x = 5'parsējas. JaTOPbūtutoken, sakristu tikai'x=5'.
Atstarpe, ko rule atļauj, ir
neobligāta, nevis obligāta: nozīmīgā atstarpe tikpat
labprāt sakrīt ar nulli atstarpju kā ar vienu, tāpēc parsējas
arī forma bez atstarpēm:
say Assign.parse('x=5').defined; # TrueTāpēc rule vienlīdz pieņem 'x = 5',
'x=5' un pat 'x =5' — elastība, nenorādot, kur
atstarpe drīkst vai nedrīkst būt.
Kursa navigācija
← Piešķiršana ar atstarpēm | Gramatikas, klases un mantošana →