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
False

Kommentare

  1. Das Prototoken bool hat zwei benannte Spielarten, true und false.

  2. 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“.

  3. '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