write wrong line number correctly in line-by-line mode

This commit is contained in:
Filip Gralinski 2018-01-13 15:31:35 +01:00 committed by Filip Gralinski
parent 5c00ab6d26
commit f32564a42a

View File

@ -388,7 +388,7 @@ gevalCoreGeneralized' :: forall m ctxt c d . (EvaluationContext ctxt m, MonadBas
gevalCoreGeneralized' parserSpec itemStep aggregator finalStep context = do gevalCoreGeneralized' parserSpec itemStep aggregator finalStep context = do
v <- runResourceT $ v <- runResourceT $
(((getZipSource $ (,) (((getZipSource $ (,)
<$> ZipSource (CL.sourceList [1..]) <$> ZipSource (CL.sourceList [(getFirstLineNo (Proxy :: Proxy m) context)..])
<*> (ZipSource $ recordSource context parserSpec)) =$= CL.map (checkStep (Proxy :: Proxy m) itemStep)) $$ CL.catMaybes =$ aggregator) <*> (ZipSource $ recordSource context parserSpec)) =$= CL.map (checkStep (Proxy :: Proxy m) itemStep)) $$ CL.catMaybes =$ aggregator)
return $ finalStep v return $ finalStep v
@ -397,6 +397,7 @@ class EvaluationContext ctxt m where
data WrappedParsedRecord ctxt :: * data WrappedParsedRecord ctxt :: *
data ParsedRecord ctxt :: * data ParsedRecord ctxt :: *
recordSource :: ctxt -> ParserSpec ctxt -> Source (ResourceT m) (WrappedParsedRecord ctxt) recordSource :: ctxt -> ParserSpec ctxt -> Source (ResourceT m) (WrappedParsedRecord ctxt)
getFirstLineNo :: Proxy m -> ctxt -> Word32
getExpectedFilePath :: ctxt -> String getExpectedFilePath :: ctxt -> String
getOutFilePath :: ctxt -> String getOutFilePath :: ctxt -> String
checkStep :: Proxy m -> ((Word32, ParsedRecord ctxt) -> c) -> (Word32, WrappedParsedRecord ctxt) -> Maybe c checkStep :: Proxy m -> ((Word32, ParsedRecord ctxt) -> c) -> (Word32, WrappedParsedRecord ctxt) -> Maybe c
@ -408,6 +409,7 @@ instance (MonadBaseControl IO m, MonadIO m, MonadThrow m) => EvaluationContext (
data ParserSpec (WithoutInput m e o) = ParserSpecWithoutInput (Text -> Either String e) (Text -> Either String o) data ParserSpec (WithoutInput m e o) = ParserSpecWithoutInput (Text -> Either String e) (Text -> Either String o)
data WrappedParsedRecord (WithoutInput m e o) = WrappedParsedRecordWithoutInput (SourceItem e) (SourceItem o) data WrappedParsedRecord (WithoutInput m e o) = WrappedParsedRecordWithoutInput (SourceItem e) (SourceItem o)
data ParsedRecord (WithoutInput m e o) = ParsedRecordWithoutInput e o data ParsedRecord (WithoutInput m e o) = ParsedRecordWithoutInput e o
getFirstLineNo _ (WithoutInput _ (LineSource _ _ lineNo)) = lineNo
getExpectedFilePath (WithoutInput (LineSource _ expectedFilePath _) _) = expectedFilePath getExpectedFilePath (WithoutInput (LineSource _ expectedFilePath _) _) = expectedFilePath
getOutFilePath (WithoutInput _ (LineSource _ outFilePath _)) = outFilePath getOutFilePath (WithoutInput _ (LineSource _ outFilePath _)) = outFilePath
recordSource (WithoutInput expectedLineSource outLineSource) (ParserSpecWithoutInput expParser outParser) = getZipSource $ WrappedParsedRecordWithoutInput recordSource (WithoutInput expectedLineSource outLineSource) (ParserSpecWithoutInput expParser outParser) = getZipSource $ WrappedParsedRecordWithoutInput
@ -436,6 +438,7 @@ instance (MonadBaseControl IO m, MonadIO m, MonadThrow m) => EvaluationContext (
data ParserSpec (WithInput m i e o) = ParserSpecWithInput (Text -> Either String i) (Text -> Either String e) (Text -> Either String o) data ParserSpec (WithInput m i e o) = ParserSpecWithInput (Text -> Either String i) (Text -> Either String e) (Text -> Either String o)
data WrappedParsedRecord (WithInput m i e o) = WrappedParsedRecordWithInput (SourceItem i) (SourceItem e) (SourceItem o) data WrappedParsedRecord (WithInput m i e o) = WrappedParsedRecordWithInput (SourceItem i) (SourceItem e) (SourceItem o)
data ParsedRecord (WithInput m i e o) = ParsedRecordWithInput i e o data ParsedRecord (WithInput m i e o) = ParsedRecordWithInput i e o
getFirstLineNo _ (WithInput _ _ (LineSource _ _ lineNo)) = lineNo
getExpectedFilePath (WithInput _ (LineSource _ expectedFilePath _) _) = expectedFilePath getExpectedFilePath (WithInput _ (LineSource _ expectedFilePath _) _) = expectedFilePath
getOutFilePath (WithInput _ _ (LineSource _ outFilePath _)) = outFilePath getOutFilePath (WithInput _ _ (LineSource _ outFilePath _)) = outFilePath
recordSource (WithInput inputLineSource expectedLineSource outLineSource) (ParserSpecWithInput inpParser expParser outParser) = getZipSource $ (\x (y,z) -> WrappedParsedRecordWithInput x y z) recordSource (WithInput inputLineSource expectedLineSource outLineSource) (ParserSpecWithInput inpParser expParser outParser) = getZipSource $ (\x (y,z) -> WrappedParsedRecordWithInput x y z)