Raku kurss / Regulārās izteiksmes un gramatikas / Gramatikas / Gramatikas, klases un mantošana / Exercises / Skaitlis ar proto
Risinājums: Skaitlis ar proto
Šeit ir iespējams risinājums uzdevumam.
Kods
grammar Number {
token TOP { <number> }
proto token number {*}
token number:sym<dec> { \d+ }
token number:sym<hex> { '0x' <[0..9a..f]>+ }
}
say Number.parse('0xff').defined;🦋 Atrodiet programmu failā proto-number.raku.
Izvade
TrueKomentāri
Proto marķierim
numberir divi varianti —decunhex.Virknei
0xffvariantsdecpiemeklē tikai vadošo0, kas atstātu pārixff; variantshexpiemeklē visu. Tāpēc garākā marķiera piemeklēšana izvēlashex, un virkne parsējas. Tā pati gramatika joprojām pieņem arī vienkāršu decimālu skaitli, piemēram,42.