packages feed

language-elm 0.1.1.3 → 0.2.0.0

raw patch · 6 files changed

+58/−59 lines, 6 filesdep −doctestdep ~basePVP ok

version bump matches the API change (PVP)

Dependencies removed: doctest

Dependency ranges changed: base

API changes (from Hackage documentation)

- Elm.Decleration: Dec :: String -> TypeDec -> [Expr] -> Expr -> Dec
- Elm.Decleration: DecType :: String -> [String] -> [(String, [TypeDec])] -> Dec
- Elm.Decleration: DecTypeAlias :: String -> [String] -> TypeDec -> Dec
- Elm.Decleration: data Dec
- Elm.Decleration: instance Elm.Classes.Generate Elm.Decleration.Dec
+ Elm.Declaration: Dec :: String -> TypeDec -> [Expr] -> Expr -> Dec
+ Elm.Declaration: DecType :: String -> [String] -> [(String, [TypeDec])] -> Dec
+ Elm.Declaration: DecTypeAlias :: String -> [String] -> TypeDec -> Dec
+ Elm.Declaration: data Dec
+ Elm.Declaration: instance Elm.Classes.Generate Elm.Declaration.Dec

Files

language-elm.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 5a8ac7a0d3b4256acbac6f6a2752b4d850e3c26442dc066788cbb63c41b5e56e+-- hash: 050e863d71a7e857420f7de3b152deaef3a5bb95ea66f88027aea574e710783e  name:           language-elm-version:        0.1.1.3+version:        0.2.0.0 synopsis:       Generate elm code description:    Generate elm code from an ast category:       Web@@ -37,7 +37,7 @@ library   exposed-modules:       Elm-      Elm.Decleration+      Elm.Declaration       Elm.Expression       Elm.Import       Elm.Program@@ -50,7 +50,7 @@       src   build-depends:       MissingH-    , base >=4.11 && <5+    , base >=4.11 && <4.12     , mtl     , pretty     , protolude@@ -68,8 +68,7 @@       test   ghc-options: -threaded -rtsopts -with-rtsopts=-N   build-depends:-      base >=4.11 && <5-    , doctest+      base >=4.11 && <4.12     , hspec     , language-elm     , mtl
src/Elm.hs view
@@ -28,7 +28,7 @@     , ttuple     , trecord     , trecordParam-    -- * Declerations+    -- * Declarations     , Dec     , decVariable     , decFunction@@ -61,7 +61,7 @@ import           Control.Monad.Writer import           Data.String import           Elm.Classes-import qualified Elm.Decleration+import qualified Elm.Declaration import qualified Elm.Expression import           Elm.GenError         (GenError (WarningList)) import qualified Elm.Import@@ -72,7 +72,7 @@  type Expr = Elm.Expression.Expr type Type = Elm.Type.TypeDec-type Dec = Elm.Decleration.Dec+type Dec = Elm.Declaration.Dec type Import = Elm.Import.Import type ImportExpr = Elm.Import.ImportType type ImportItem = Elm.Import.ImportItem@@ -231,7 +231,7 @@     -> Type -- ^ The variable's type     -> Expr -- ^ The variable's value     -> Dec-decVariable name type_ expr = Elm.Decleration.Dec  name type_ [] expr+decVariable name type_ expr = Elm.Declaration.Dec  name type_ [] expr  -- | Declare a function decFunction :: String  -- ^ The function name@@ -239,21 +239,21 @@     -> [Expr] -- ^ The fuction's paramaters     -> Expr  -- ^ The function's value     -> Dec-decFunction = Elm.Decleration.Dec+decFunction = Elm.Declaration.Dec  -- | Declare a type decType :: String -- ^ The type name     -> [String] -- ^ The type's type paramaters     -> [(String, [Type])] -- ^ The type's constructors     -> Dec-decType = Elm.Decleration.DecType+decType = Elm.Declaration.DecType  -- | Declare a type alias decTypeAlias :: String  -- ^ The type alias' name     -> [String]  -- ^ The type alias's type paramaters     -> Type  -- ^ The type alias's type     -> Dec-decTypeAlias = Elm.Decleration.DecTypeAlias+decTypeAlias = Elm.Declaration.DecTypeAlias  -- | Import an item select :: String -> ImportItem
+ src/Elm/Declaration.hs view
@@ -0,0 +1,44 @@+{-# OPTIONS_HADDOCK prune #-}+{-# OPTIONS_GHC -Wall -Werror #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Safe              #-}++-- | Top level declerations+module Elm.Declaration where++import           Elm.Classes+import           Elm.Expression+import           Elm.Type+import           Text.PrettyPrint++-- | Used to declare functions, variables, and types+data Dec+    -- | Declare a function+    = Dec String TypeDec [Expr] Expr+    -- | Declare a type+    | DecType String [String] [(String, [TypeDec])]+    -- | Declare a type alias+    | DecTypeAlias String [String] TypeDec++instance Generate Dec where+    generate dec =+        case dec of+             Dec name type_ params value -> do+                typeDoc <- generate type_+                paramDocs <- mapM generate params+                valueDoc <- generate value+                return $ text name <+> ":" <+> typeDoc $+$ text name <+> hsep paramDocs <+> "=" $+$ nest 4 valueDoc++             DecType name params instances -> do+                let (keys, values) = unzip instances+                let keyDocs = map text keys+                valueDocs <- mapM (mapM generate) values+                let instanceDocs = map (\(key, values') -> key <+> hsep values') $ zip keyDocs valueDocs+                let paramDocs = map text params+                return $ "type" <+> text name <+> hsep paramDocs $+$+                    (nest 4 $  "=" <+> head instanceDocs $+$ (vcat . map ((<+>)"|") . tail $ instanceDocs))++             DecTypeAlias name params type_ -> do+                typeDoc <- generate type_+                let paramDocs = map text params+                return $ "type alias" <+> text name <+> hsep paramDocs <+> "=" $+$ nest 4 typeDoc
− src/Elm/Decleration.hs
@@ -1,44 +0,0 @@-{-# OPTIONS_HADDOCK prune #-}-{-# OPTIONS_GHC -Wall -Werror #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE Safe              #-}---- | Top level declerations-module Elm.Decleration where--import           Elm.Classes-import           Elm.Expression-import           Elm.Type-import           Text.PrettyPrint---- | Used to declare functions, variables, and types-data Dec-    -- | Declare a function-    = Dec String TypeDec [Expr] Expr-    -- | Declare a type-    | DecType String [String] [(String, [TypeDec])]-    -- | Declare a type alias-    | DecTypeAlias String [String] TypeDec--instance Generate Dec where-    generate dec =-        case dec of-             Dec name type_ params value -> do-                typeDoc <- generate type_-                paramDocs <- mapM generate params-                valueDoc <- generate value-                return $ text name <+> ":" <+> typeDoc $+$ text name <+> hsep paramDocs <+> "=" $+$ nest 4 valueDoc--             DecType name params instances -> do-                let (keys, values) = unzip instances-                let keyDocs = map text keys-                valueDocs <- mapM (mapM generate) values-                let instanceDocs = map (\(key, values') -> key <+> hsep values') $ zip keyDocs valueDocs-                let paramDocs = map text params-                return $ "type" <+> text name <+> hsep paramDocs $+$-                    (nest 4 $  "=" <+> head instanceDocs $+$ (vcat . map ((<+>)"|") . tail $ instanceDocs))--             DecTypeAlias name params type_ -> do-                typeDoc <- generate type_-                let paramDocs = map text params-                return $ "type alias" <+> text name <+> hsep paramDocs <+> "=" $+$ nest 4 typeDoc
src/Elm/Program.hs view
@@ -14,7 +14,7 @@ import           Data.String import           Data.String.Utils import           Elm.Classes-import           Elm.Decleration+import           Elm.Declaration import           Elm.GenError import           Elm.Import import           Text.PrettyPrint
test/Spec.hs view
@@ -2,7 +2,7 @@  import           Control.Monad.Writer import           Elm.Classes-import           Elm.Decleration+import           Elm.Declaration import           Elm.Expression import           Elm.GenError import           Elm.Import