作为bitemyapp编写的Haskell书的练习,我需要制作一个可以解析给定日志的解析器。 所以我做了这个:https://gist.github.com/RoelofWobben/79058b1a6a5c24f08a495045c7a685f9
但是当我使用:`parseString parseMultipleDays myLog进行测试时,我看到此错误消息:
Failure (ErrInfo {_errDoc = (interactive):3:1: error: expected: new-line
# 2025-02-05
^ , _errDeltas = [Lines 2 0 20 0]})
任何可以给我提示错误所在的人。必要时,我可以通过一些测试回购我拥有的代码。
我之所以使用trifecta,是因为
答案 0 :(得分:1)
string "--" *> manyTill anyChar newline *> newline
manyTill
已经使用了终止符,因此上面将注释定义为“-”,后接任何内容,后接两条换行符。
您的输入仅在注释后包含一个换行符,因此您会收到一条错误消息,告诉您解析器需要第二个换行符,而不是#
。