1
Angenommen, ich habe einen Attoparsec-Parser, x
.Verwandeln Sie einen Attoparsec-Parser in einen Parser, der ausfällt, wenn die Anzahl der Bytes keine bestimmte Länge hat.
Ich suche eine Funktion f :: Int -> Parser a -> Parser a
, so zu erstellen, dass, wenn y = f n x
, dann gilt:
y
schlägt fehl, wennx
nichty
schlägt fehl, wennx
gelingt undx
verbraucht keinen
Bytesy
gelingt sonst
Wie würde ich das machen?
In 'binary' ist diese Funktion als' isolate' verpackt. Vielleicht ist es dort sinnvoller, da 'binary' die Anzahl der verbrauchten Bytes verfolgt, aber es scheint mir eine gute Ergänzung zur attoparsec-API zu sein (in Form von Tokens, nicht Bytes, also würde Text z. B. keine Bytes zählen). –