Inhaltsverzeichnis

Allgemein

Vorteile

Nachteile

Arbeitsweise

Seltsamheiten

from parsy import regex

a = regex(r"\d{1,4}").descr("Year").map(int)

In obigem Beispiel wird die Funktion regex aufgerufen, die einen Parser für einen regulären Ausdruck zurückgibt.
Anschließend wird die „descr“-Methode des Parser-Objektes aufgerufen und eine Beschreibung gesetzt → was geht da die Funktion ja ein Parser-Objekt zurückgegeben hat und sich der Aufruf auf die Rückgabe der Funktion bezieht.
Danach wird „map“ des Parser-Objektes aufgerufen - das das geht würde man normalerweise nicht erwarten. Das geht weil descr ein neues Parser-Objekt zurückgegeben hat und man auf die Methode „map“ eben jenes zugreift.
a wird dann ein Parser zugewiesen der eine Beschreibung (gesetzt über .descr) und eine Typumwandlung (gesetzt über map) beinhaltet.

Parser

Parser erzeugen

from parsy import regex

a = regex(r"\d{1,4}")

In obigem Beispiel erstellt die Funktion regex einen Parser der auf einen regulären Ausdruck prüft.

Einige mögliche Funktionen die Parser erstellen können:

Funktion Beschreibung
regexEs wird ein regulärer Ausdruck ausgewertet
stringEs wird ein String gegen zu prüfenden Wert geprüft
char_fromZeichenkettePrüfe auf ein Zeichen aus einer Liste von Zeichen (repräsentiert durch eine Zeichenkette).
Entspricht das aktuelle Zeichen einem der Zeichen in der angegeben Kette dann ist der Parser erfolgreich
string_fromTuple von ZeichenkettenPrüft ob irgend eine der angegebenen Zeichenketten auf die zu prüfende Zeichenkette zutrifft.
Wenn eine passt ist der Parser erfolgreich

Es gibt auch vorgefertigte Parser-Objekte. Diese können

Parser Beschreibung
regexEs wird ein regulärer Ausdruck ausgewertet
stringEs wird ein String gegen zu prüfenden Wert geprüft
char_fromZeichenkettePrüfe auf ein Zeichen aus einer Liste von Zeichen (repräsentiert durch eine Zeichenkette).
Entspricht das aktuelle Zeichen einem der Zeichen in der angegeben Kette dann ist der Parser erfolgreich
string_fromTuple von ZeichenkettenPrüft ob irgend eine der angegebenen Zeichenketten auf die zu prüfende Zeichenkette zutrifft.
Wenn eine passt ist der Parser erfolgreich

Parser kombinieren

Methoden des Parser-Objektes

Methode Parameter
parseZeichenfolgeParst die übergebene Zeichenfolge. Die Regel in Parser oder einer der Parser die der Parser aufruft müssen zusammen die gesamte übergebene Zeichenkette abdecken. Wird sie nicht abgedeckt wird ein ParseError geworfen
parse_partialZeichenfolge
descrFügt eine Beschreibung hinzu für was der Parser steht (also für welche Zeichenfolge).
Diese Information wird bei einer Exception ausgegeben statt der Zeichenkette die nicht gefunden wurde.

Die Beschreibung kann auch beim Erzeugen des Parsers als zweiter Parameter angeben werden
mapTypWandle das Ergebnis des Parsers in den gewünschten Typ um

Hilfsfunktionen