0 | module Data.Swirl.Parsing.String
 1 |
 2 | import Data.String
 3 | import public Data.Swirl.Parsing
 4 |
 5 | %default total
 6 |
 7 | export
 8 | line : RawParser m ? Void r r Char String
 9 | line = RP "" norm fin where
10 |
11 |   norm : Char -> String -> Either String $ WhetherConsumeLast $ Swirl m Void () String
12 |   norm '\n' str = Right $ ConsumeLast $ emit str
13 |   norm k    str = Left $ str ++ singleton k
14 |
15 |   fin : String -> r -> ?
16 |   fin str x = preEmitTo (succeed x) str
17 |