相关疑难解决方法(0)

使用Attoparsec时输入不完整的问题

我正在转换使用Parsec的一些正常运行的Haskell代码,而不是使用Attoparsec以期获得更好的性能.我做了更改,所有内容都编译但我的解析器无法正常工作.

我正在解析一个由各种记录类型组成的文件,每行一个.我用于解析记录或注释的每个函数都能正常工作,但是当我尝试编写一个函数来编译一系列记录时,解析器总是会返回一个部分结果,因为它需要更多的输入.

这些是我尝试过的两个主要变体.两者都有同样的问题.

items :: Parser [Item]
items = sepBy (comment <|> recordType1 <|> recordType2) endOfLine
Run Code Online (Sandbox Code Playgroud)

对于第二个,我更改了记录/注释解析器以使用行尾字符.

items :: Parser [Item]
items = manyTill (comment <|> recordType1 <|> recordType2) endOfInput
Run Code Online (Sandbox Code Playgroud)

我的方法有什么问题吗?还有其他方法可以实现我的目标吗?

haskell attoparsec

7
推荐指数
2
解决办法
1836
查看次数

标签 统计

attoparsec ×1

haskell ×1