Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Grammatiken / Grammatiken erstellen

Parsen mit parse

Um eine Grammatik auszuführen, rufen Sie ihre Methode .parse mit der zu untersuchenden Zeichenkette auf:

grammar Pair {
    token TOP   { <key> '=' <value> }
    token key   { \w+ }
    token value { \w+ }
}

my $m = Pair.parse('x=5');
say $m<key>;   # 「x」
say $m<value>; # 「5」

.parse liefert ein Match-Objekt, wenn die Grammatik die gesamte Zeichenkette trifft, und Nil, wenn nicht. Weil die ganze Eingabe treffen muss, sind die Anker ^ und $ nicht nötig — .parse fügt diese Bedingung für Sie hinzu:

say Pair.parse('x=5').defined; # True
say Pair.parse('x=').defined;  # False

Das Match-Objekt funktioniert genau wie jene, die Ihnen früher begegnet sind. Jedes in der Grammatik verwendete Token wird zu einem benannten Capture, $m<key> und $m<value> liefern also die getroffenen Teile. Die Tokens verschachteln sich, eine Grammatik baut also einen kleinen Baum aus Treffern — das Thema eines späteren Abschnitts.

Praxis

Lösen Sie 1 Quiz zum Inhalt dieses Themas.

Kursnavigation

Die TOP-Regel   |   Quiz — Grammatiken erstellen


💪 Oder springen Sie direkt zu den Übungen dieses Abschnitts.