Parsing 哈斯克尔。为什么我的解析器会失败

Parsing 哈斯克尔。为什么我的解析器会失败,parsing,haskell,trifecta,Parsing,Haskell,Trifecta,作为bitemyapp编写的Haskell书的练习,我需要制作一个解析器来解析给定的日志。 所以我做了这个: 但是当我用:`parseString parseMultipleDays myLog测试它时,我看到以下错误消息: Failure (ErrInfo {_errDoc = (interactive):3:1: error: expected: new-line # 2025-02-05 ^ , _errDeltas = [Lines 2 0 20 0]}) 谁能告

作为bitemyapp编写的Haskell书的练习,我需要制作一个解析器来解析给定的日志。 所以我做了这个:

但是当我用:`parseString parseMultipleDays myLog测试它时,我看到以下错误消息:

Failure (ErrInfo {_errDoc = (interactive):3:1: error: expected: new-line
# 2025-02-05
^            , _errDeltas = [Lines 2 0 20 0]})
谁能告诉我虫子在哪里。当需要时,我可以通过一些测试对我拥有的代码进行重新整理

我之所以使用trifecta,是因为这一章对此进行了解释

string "--" *> manyTill anyChar newline *> newline
manyTill
已经使用终止符,因此上面将注释定义为“-”,后跟任何内容,后跟两个换行符


您的输入仅在注释后包含一个换行符,因此,您会得到一个错误,告诉您解析器需要第二个换行符,而不是

,然后我遇到了这个问题:问题是一行可以在末尾有一个换行符,或者一个注释和一个换行符,或者它是文件的结尾。我在这里做了一个github repo:有问题。