jmacro 0.6.14 → 0.6.15
raw patch · 2 files changed
+29/−8 lines, 2 filesdep ~basedep ~wl-pprint-textPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, wl-pprint-text
API changes (from Hackage documentation)
- Language.Javascript.JMacro: JMGExpr :: JExpr -> JMGadt JExpr
- Language.Javascript.JMacro: JMGId :: Ident -> JMGadt Ident
- Language.Javascript.JMacro: JMGStat :: JStat -> JMGadt JStat
- Language.Javascript.JMacro: JMGVal :: JVal -> JMGadt JVal
+ Language.Javascript.JMacro: [JMGExpr] :: JExpr -> JMGadt JExpr
+ Language.Javascript.JMacro: [JMGId] :: Ident -> JMGadt Ident
+ Language.Javascript.JMacro: [JMGStat] :: JStat -> JMGadt JStat
+ Language.Javascript.JMacro: [JMGVal] :: JVal -> JMGadt JVal
+ Language.Javascript.JMacro.Util: infix 4 <
+ Language.Javascript.JMacro.Util: infixl 2 =:
+ Language.Javascript.JMacro.Util: infixr 3 &&
- Language.Javascript.JMacro: class ToJExpr a where toJExprFromList = ValExpr . JList . map toJExpr
+ Language.Javascript.JMacro: class ToJExpr a
Files
- Language/Javascript/JMacro/Base.hs +9/−4
- jmacro.cabal +20/−4
Language/Javascript/JMacro/Base.hs view
@@ -47,6 +47,7 @@ import qualified Data.Text as TS import Data.Generics import Data.Monoid(Monoid, mappend, mempty)+import Data.Semigroup(Semigroup(..)) import Numeric(showHex) import Safe@@ -134,12 +135,16 @@ type JsLabel = String +instance Semigroup JStat where+ (<>) (BlockStat xs) (BlockStat ys) = BlockStat $ xs ++ ys+ (<>) (BlockStat xs) ys = BlockStat $ xs ++ [ys]+ (<>) xs (BlockStat ys) = BlockStat $ xs : ys+ (<>) xs ys = BlockStat [xs,ys]++ instance Monoid JStat where mempty = BlockStat []- mappend (BlockStat xs) (BlockStat ys) = BlockStat $ xs ++ ys- mappend (BlockStat xs) ys = BlockStat $ xs ++ [ys]- mappend xs (BlockStat ys) = BlockStat $ xs : ys- mappend xs ys = BlockStat [xs,ys]+ mappend x y = x <> y -- TODO: annotate expressions with type
jmacro.cabal view
@@ -1,5 +1,5 @@ name: jmacro-version: 0.6.14+version: 0.6.15 synopsis: QuasiQuotation library for programmatic generation of Javascript code. description: Javascript syntax, functional syntax, hygienic names, compile-time guarantees of syntactic correctness, limited typechecking. Additional documentation available at <http://www.haskell.org/haskellwiki/Jmacro> category: Language@@ -7,7 +7,7 @@ license-file: LICENSE author: Gershom Bazerman maintainer: gershomb@gmail.com-Tested-With: GHC == 8.0.1+Tested-With: GHC == 8.4.2 Build-Type: Simple Cabal-Version: >= 1.6 @@ -29,14 +29,30 @@ default: False executable jmacro- build-depends: base >= 4, base < 5, containers, wl-pprint-text, text, safe >= 0.2, parsec > 3.0, template-haskell >= 2.3, mtl > 1.1 , haskell-src-exts, haskell-src-meta, bytestring >= 0.9, syb, aeson >= 0.5 , regex-posix > 0.9, vector >= 0.8, unordered-containers >= 0.2, parseargs- main-is: Language/Javascript/JMacro/Executable.hs+ build-depends: base >= 4, base < 5, containers, wl-pprint-text, text, safe >= 0.2, parsec > 3.0, template-haskell >= 2.3, mtl > 1.1 , haskell-src-exts, haskell-src-meta, bytestring >= 0.9, syb, aeson >= 0.5 , regex-posix > 0.9, vector >= 0.8, unordered-containers >= 0.2, parseargs+ main-is: Language/Javascript/JMacro/Executable.hs+ other-modules: Language.Javascript.JMacro.Util+ Language.Javascript.JMacro.TypeCheck+ Language.Javascript.JMacro.Types+ Language.Javascript.JMacro.Prelude+ Language.Javascript.JMacro.Base+ Language.Javascript.JMacro.QQ+ Language.Javascript.JMacro.ParseTH + executable jmacro-bench main-is: Language/Javascript/JMacro/Benchmark.hs if flag(benchmarks) buildable: True build-depends: criterion+ other-modules: Language.Javascript.JMacro.Util+ Language.Javascript.JMacro.TypeCheck+ Language.Javascript.JMacro.Types+ Language.Javascript.JMacro.Prelude+ Language.Javascript.JMacro.Base+ Language.Javascript.JMacro.QQ+ Language.Javascript.JMacro.ParseTH+ else buildable: False