我有一个attoparsec
解析器,并对其进行测试,令我烦恼的是,如果我评论解析器的一部分并运行测试,解析器不会返回Left "parse error at line ..."
,而是我得到Right []
.
请注意,我parseOnly
用来明确表示不会再有任何输入。
否则很高兴获得部分解析的输入,它肯定很有用,我很高兴拥有它。但是我想被告知整个输入没有被消耗。也许是为了获得最后一个使用的字母的字符偏移量,或者如果这就是它所需要的,至少是一个要返回的选项Left
。
如果它是相关的,解析器可以在那里找到。
例如,如果我评论以下行:
<|> PlainText <$> choice (string <$> ["[", "]", "*", "`"])
并运行测试,例如:
1) notes parsing tests parses notes properly
simple test
expected: Right [NormalLine [PlainText "one line* # hello world"]]
but got: Right []
这是来自那个测试。