-1

作为 bitmyapp 编写的 Haskell Book 的练习,我需要制作一个可以解析给定日志的解析器。所以我做了这个: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 是因为在本章中对此进行了解释

4

1 回答 1

1
string "--" *> manyTill anyChar newline *> newline

manyTill已经使用了终止符,所以上面定义了一个注释为“--”,后跟任何内容,然后是两个换行符。

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

于 2018-07-08T21:56:23.373 回答