我正在使用Scala中的本地解析器组合器库,我想解析我的输入的一些部分,但不是其他解释器。具体来说,我想放弃我关心的输入之间的所有任意文本。例如,该输入: begin
Text I care about
Text I care about
DONT CARE
Text I don't care about
begin
More text I care about
...
我在scala中使用本地解析器组合器库,我想用它来解析一些大文件。我有我的combinators设置,但我试图解析的文件太大,一次不能读入内存。我希望能够通过解析器从输入文件进行流式处理,并将其读回到磁盘,以便我不需要立即将其全部存储在内存中。我的当前系统看起来像这样: val f = Source.fromFile("myfile")
parser.parse(parser.document.
让我们来看看代码片段: pSegmentBegin p i = pIndentExact i *> ((:) <$> p i <*> ((pEOL *> pSegment p i) <|> pure []))
,如果我在我的解析器更改此代码: pSegmentBegin p i = do
pIndentExact i
((:) <$> p i <*> ((pEOL *> p