Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Test01 where
- import Text.Parse
- import qualified Text.ParserCombinators.Poly.State as PS
- main :: IO ()
- main = putStrLn "Test01"
- liftP :: Parser t a -> PS.Parser s t a
- liftP (P func) = PS.P $ \s tx -> pareResult s (func tx)
- where
- pareResult :: s -> Result z a -> Result (z, s) a
- pareResult s (Success z a) = Success (z, s) a
- pareResult s (Failure z e) = Failure (z, s) e
- pareResult s (Committed r) = pareResult s r
- {-
- > PS.runParser (liftP (parens True $ literal "aaa bbb") >> stUpdate (*2) >> (liftP word)) 5 "(aaa bbb) ccc"
- (Right "ccc",10,"")
- > PS.runParser (liftP (parens True $ literal "aaa bbb") >> stUpdate (*2)) 5 "(aaa bbb) ccc"
- (Right (),10," ccc")
- PS.runParser (liftP (parens True $ literal "aaa bbb")) 5 "(aaa bbb) ccc"
- (Right "aaa bbb",5," ccc")
- -}
Add Comment
Please, Sign In to add comment