Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Grammatiken / Grammatiken, Klassen und Vererbung / Exercises / Ein Wahrheitswert mit proto
Lösung: Ein Wahrheitswert mit proto
Hier ist eine mögliche Lösung der Aufgabe.
Code
grammar Bool {
token TOP { <bool> }
proto token bool {*}
token bool:sym<true> { 'true' }
token bool:sym<false> { 'false' }
}
say Bool.parse('true').defined;
say Bool.parse('false').defined;
say Bool.parse('unknown').defined;🦋 Du findest den Quellcode in der Datei proto-bool.raku.
Ausgabe
True
True
FalseKommentare
Das Prototoken
boolhat zwei benannte Spielarten,trueundfalse.Jede Zerlegung wählt die passende Spielart, sowohl
'true'als auch'false'gelingt also. Ein Prototoken ist die ordentliche Art einer Grammatik zu sagen: „eine dieser benannten Alternativen“.'unknown'trifft keine der beiden Spielarten, das Prototoken hat also nichts, wohin es weiterreichen könnte, und das Zerlegen scheitert —False. Die Proto nimmt genau die Alternativen an, die Sie aufführen, und sonst nichts.
Kursnavigation
← Ein Wahrheitswert mit proto | Der Parsebaum, make und made →