heredocs 0.1.1.0 → 0.1.2.0
raw patch · 2 files changed
+23/−8 lines, 2 filesdep +textPVP ok
version bump matches the API change (PVP)
Dependencies added: text
API changes (from Hackage documentation)
Files
- heredocs.cabal +3/−1
- src/Text/Heredoc.hs +20/−7
heredocs.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: heredocs-version: 0.1.1.0+version: 0.1.2.0 synopsis: heredocument description: heredocument homepage: http://github.com/cutsea110/heredoc.git@@ -27,6 +27,7 @@ , doctest >= 0.11.0 , parsec >=3.1.9 , template-haskell >=2.10.0.0+ , text >= 1.2.2.1 hs-source-dirs: src default-language: Haskell2010 @@ -37,5 +38,6 @@ build-depends: base , doctest >= 0.11.0 , heredocs+ , text >= 1.2.2.1 hs-source-dirs: test default-language: Haskell2010
src/Text/Heredoc.hs view
@@ -8,6 +8,7 @@ import Control.Applicative ((<$>), (<*>)) import Control.Arrow ((***)) import Data.Function (on)+import Data.List (intercalate) import Data.Monoid ((<>)) import Text.ParserCombinators.Parsec hiding (Line) import Text.ParserCombinators.Parsec.Error@@ -143,14 +144,14 @@ term) where term :: Parser Expr- term = (C <$> con <|>- T <$> tuple <|>+ term = (T <$> tuple <|> (try (nil >> pure N) <|> try (L <$> list) <|> try (O <$> string ":")) <|> -- only pattern operator (try (V <$> ((++) <$> wild <*> many1 (alphaNum <|> oneOf "_'"))) <|> try (wild >> pure W) <|>- V <$> var)) <* spaceTabs+ V <$> var) <|>+ C <$> con) <* spaceTabs expr :: Parser [Expr] expr = spaceTabs *> many1 (try (A <$> var <* char '@' <*> term) <|>@@ -163,12 +164,12 @@ try (L <$> list) <|> try (O <$> op)) <|> (try (O' <$> op') <|> try (E <$> subexp)) <|>- C <$> con <|>- I <$> integer <|> V' <$> var' <|> (try (V <$> ((++) <$> wild <*> many1 (alphaNum <|> oneOf "_'"))) <|> try (wild >> pure W) <|>- V <$> var)) <* spaceTabs+ V <$> var) <|>+ C <$> con <|>+ I <$> integer) <* spaceTabs tuple :: Parser [[Expr]]@@ -190,7 +191,19 @@ subexp = char '(' *> expr <* char ')' var :: Parser String-var = (:) <$> lower <*> many (alphaNum <|> oneOf "_'")+var = try ((+.+) <$> modul <*> v) <|> v+ where+ x +.+ y = x <> "." <> y+ v :: Parser String+ v = (:) <$> lower <*> many (alphaNum <|> oneOf "_'")++modul :: Parser String+modul = try (intercalate "." <$> many1 (mod' <* char '.')) <|> mod'+ where+ mod' :: Parser String+ mod' = (:) <$> upper <*> many alphaNum++ var' :: Parser String var' = char '`' *> var <* char '`'