Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Grammatiken / Grammatiken erstellen / Exercises / Parsen Sie einen Hashtag
Lösung: Parsen Sie einen Hashtag
Hier ist eine mögliche Lösung der Aufgabe.
Code
grammar Hashtag {
token TOP { '#' <tag> }
token tag { \w+ }
}
say Hashtag.parse('#raku')<tag>;🦋 Du findest den Quellcode in der Datei parse-hashtag.raku.
Ausgabe
「raku」Kommentare
TOPschreibt das feste#aus, gefolgt vom Token<tag>..parseverlangt, dass die ganze Zeichenkette trifft, und der Tag steht danach als Capture<tag>zur Verfügung.
Eine andere Möglichkeit
Sie können stattdessen tag den ganzen Hashtag treffen
lassen — das # samt dem Wort — und das Wort über eine
verschachtelte Regel word erreichen:
grammar Hashtag {
token TOP { <tag> }
token tag { '#' <word> }
token word { \w+ }
}
say Hashtag.parse('#raku')<tag><word>;Das gibt dasselbe 「raku」 aus. Nun capturt
<tag> das ganze #raku, während das Wort
darin als <tag><word> erreicht wird. Die
Grammatik liest sich damit etwas mehr wie das, was sie beschreibt — ein
Hashtag ist ein # gefolgt von einem Wort, und das
Wort ist ein benanntes Stück für sich.