Page 1 of 1

Wie man Haskell Parsec Parser bei EOF stoppt

Posted: 12 Feb 2025, 02:33
by Anonymous
Also schreibe ich einen kleinen Parser, der alle Tag -Inhalt mit spezifischer Klasse extrahiert, wie diese einige Inhalte -> richtig "Einige Inhalte"

Ich werde eine große HTML -Datei analysieren, aber ich kümmere mich nicht wirklich um all das Geräusch, also war die Idee zu Konsumieren Sie alle Zeichen, bis ich erreiche, als ich alle Zeichen (Inhalt) konsumieren würde, bis in den Inhaltszeichenfolge zurückgegeben würde.

Dies funktioniert einwandfrei, wenn das letzte Element in einer Datei mein td.liste Tag ist. Wenn ich jedoch einen Text danach habe oder als mein Parser es konsumiert und das unerwartete Ende wirft von input < /code> Wenn Sie PreaksemyTest Test3 < /code>. Um zu verstehen, was der Edge -Fall ist.

Code: Select all

import Text.Parsec
import Text.Parsec.String

import Data.ByteString.Lazy (ByteString)
import Data.ByteString.Char8 (pack)

colOP :: Parser String
colOP = string ""

colCL :: Parser String
colCL = string ""

col :: Parser String
col = do
manyTill anyChar (try colOP)
content  Either ParseError [String]
parseMyTest test = parse cols "test" test

btos :: ByteString -> String
btos = read . show