1
attoparsecパーサー、x
があるとします。attoparsecパーサーをパーサーに変換する。消費するバイト数が特定の長さでないと失敗するパーサー
私はy = f n x
ならば、そのようなことを、機能f :: Int -> Parser a -> Parser a
を作成するために探しています:
y
がx
が- を失敗した場合に
x
が成功したとx
がn
バイト y
を消費しない場合y
が失敗した失敗しました他の場合は成功する
これをどうやってやりますか?
「バイナリ」では、この関数は 'isolate 'としてパッケージ化されています。おそらく、バイナリは消費されたバイト数を追跡するので、おそらくそれはもっと賢明ですが、Attoparsec APIの良い追加機能として私を襲います(トークンはバイトではないため、テキストはバイト数をカウントしません)。 –