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

True

Komentoj

  1. La proto-ĵetono number havas du variantojn, dec kaj hex.

  2. Por 0xff, la varianto dec kongruas nur kun la komenca 0, kio lasus xff restanta; la varianto hex kongruas kun la tutaĵo. Kongruigo laŭ plej longa ĵetono do elektas hex, kaj la ĉeno analiziĝas. La sama gramatiko ankoraŭ akceptas simplan dekumon kiel 42.

Kursa navigado

← Nombro per proto   |   Buleo per proto →