Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Grammatiken / Grammatiken, Klassen und Vererbung / Exercises / Eine Zahl mit proto
Lösung: Eine Zahl mit proto
Hier ist eine mögliche Lösung der Aufgabe.
Code
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;🦋 Du findest den Quellcode in der Datei proto-number.raku.
Ausgabe
TrueKommentare
Das Prototoken
numberhat zwei Spielarten,decundhex.Bei
0xfftrifft die Spielartdecnur die führende0, wonachxffübrig bliebe; die Spielarthextrifft das Ganze. Longest-token matching wählt daherhex, und die Zeichenkette wird zerlegt. Dieselbe Grammatik nimmt weiterhin eine schlichte Dezimalzahl wie42an.