Kurso de Raku / Regulesprimoj kaj gramatikoj / Gramatikoj / Gramatikoj, klasoj kaj heredo / Exercises / Nombro per proto
Solvo: Nombro per proto
Jen ebla solvo de la tasko.
Kodo
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;🦋 Vi povas trovi la fontkodon en la dosiero proto-number.raku.
Eligo
TrueKomentoj
La proto-ĵetono
numberhavas du variantojn,deckajhex.Por
0xff, la variantodeckongruas nur kun la komenca0, kio lasusxffrestanta; la variantohexkongruas kun la tutaĵo. Kongruigo laŭ plej longa ĵetono do elektashex, kaj la ĉeno analiziĝas. La sama gramatiko ankoraŭ akceptas simplan dekumon kiel42.