papillon 0.1.0.3 → 0.1.0.4
raw patch · 3 files changed
+25/−22 lines, 3 filesdep ~template-haskelldep ~transformers
Dependency ranges changed: template-haskell, transformers
Files
- bin/Class.hs +7/−7
- papillon.cabal +5/−5
- src/Text/Papillon/Core.hs +13/−10
bin/Class.hs view
@@ -74,16 +74,16 @@ varE $ mkName "ParseError" parseErrorT :: Bool -> DecQ-parseErrorT _ = flip (dataD (cxt []) (mkName "ParseError")- [PlainTV $ mkName "pos", PlainTV $ mkName "drv"])- [] $ [ recC (mkName "ParseError") [+parseErrorT _ = dataD (cxt []) (mkName "ParseError")+ [PlainTV $ mkName "pos", PlainTV $ mkName "drv"] Nothing+ [ recC (mkName "ParseError") [ varStrictType c strT, varStrictType m strT, varStrictType com strT, varStrictType d drvT, varStrictType r lstT, varStrictType pos posT ]- ]+ ] (cxt []) where [c, m, com, r, d, pos] = map mkName [ "peCode",@@ -248,7 +248,7 @@ instanceSrcStr _ = instanceD (cxt [classP sourceList [varT c]]) (conT source `appT` listC) [ tySynInstD tokenN $ tySynEqn [listC] (varT c),- flip (newtypeInstD (cxt []) posN [listC]) [] $+ flip (newtypeInstD (cxt []) posN [listC] Nothing) (cxt []) $ normalC listPosN [strictType notStrict $ conT listPosN `appT` varT c], valD (varP getTokenN) (normalB $ varE listTokenN) [],@@ -307,12 +307,12 @@ -} instanceSLC th = instanceD (cxt []) (conT sourceList `appT` conT (charN th)) [- newtypeInstD (cxt []) listPosN [conT $ charN th] (+ newtypeInstD (cxt []) listPosN [conT $ charN th] Nothing ( normalC (mkName "CharPos") [ strictType notStrict $ tupleT 2 `appT` conT (mkName "Int") `appT` conT (mkName "Int")]- ) [mkName "Show"],+ ) (cxt [conT $ mkName "Show"]), funD listTokenN [ clause [infixP (varP c) (consN th) (varP s)] (normalB $ conE (justN th) `appE` tupleBody) [],
papillon.cabal view
@@ -2,7 +2,7 @@ cabal-version: >= 1.8 name: papillon-version: 0.1.0.3+version: 0.1.0.4 stability: Experimental author: Yoshikuni Jujo <PAF01143@nifty.ne.jp> maintainer: Yoshikuni Jujo <PAF01143@nifty.ne.jp>@@ -39,8 +39,8 @@ Text.Papillon.Papillon, Text.Papillon.List build-depends:- base > 3 && < 5, template-haskell == 2.10.*,- monads-tf == 0.1.*, transformers == 0.4.*,+ base > 3 && < 5, template-haskell == 2.11.*,+ monads-tf == 0.1.*, transformers == 0.5.*, bytestring == 0.10.* ghc-options: -Wall -fno-warn-tabs @@ -49,6 +49,6 @@ main-is: papillon.hs other-modules: Class build-depends:- directory, filepath, base > 3 && < 5, template-haskell == 2.10.*,- monads-tf == 0.1.*, transformers == 0.4.*, papillon+ directory, filepath, base > 3 && < 5, template-haskell == 2.11.*,+ monads-tf == 0.1.*, transformers == 0.5.*, papillon ghc-options: -Wall -fno-warn-tabs
src/Text/Papillon/Core.hs view
@@ -92,19 +92,22 @@ pt = SigD (mkPrName prefix "parse") $ src `arrT` ConT (mkPrUName prefix "Derivs") p <- funD (mkPrName prefix "parse") [mkParseBody th (isJust monad) prefix parsed]- return [d, pt, p]+ d' <- d+ return [d', pt, p] -derivs :: Bool -> Type -> Type -> String -> Peg -> Dec-derivs th monad src prefix pg = DataD [] (mkPrUName prefix "Derivs") [] [- RecC (mkPrUName prefix "Derivs") $ map derivs1 pg ++ [- (mkPrName prefix dvCharsN, NotStrict, resultT tkn),- (dvPosN prefix, NotStrict, resultT $ ConT (mkName "Pos") `AppT` src)- ]] []+derivs :: Bool -> Type -> Type -> String -> Peg -> DecQ+derivs th monad src prefix pg = do+ ns <- notStrict+ return $ DataD [] (mkPrUName prefix "Derivs") [] Nothing [+ RecC (mkPrUName prefix "Derivs") $ map (derivs1 ns) pg ++ [+ (mkPrName prefix dvCharsN, ns, resultT tkn),+ (dvPosN prefix, ns, resultT $ ConT (mkName "Pos") `AppT` src)+ ]] [] where tkn = ConT (mkName "Token") `AppT` src- derivs1 (name, Just t, _) = (mkPrName prefix name, NotStrict, resultT t)- derivs1 (name, Nothing, _) =- (mkPrName prefix name, NotStrict, resultT $ TupleT 0)+ derivs1 ns (name, Just t, _) = (mkPrName prefix name, ns, resultT t)+ derivs1 ns (name, Nothing, _) =+ (mkPrName prefix name, ns, resultT $ TupleT 0) resultT typ = ConT (errorTTN th) `AppT` (ConT (mkName "ParseError") `AppT` (ConT (mkName "Pos") `AppT` src)