syntactic 1.10 → 1.11
raw patch · 4 files changed
+25/−11 lines, 4 files
Files
- examples/NanoFeldspar/Core.hs +1/−1
- src/Language/Syntactic/Frontend/Monad.hs +13/−0
- src/Language/Syntactic/Sharing/Graph.hs +5/−4
- syntactic.cabal +6/−6
examples/NanoFeldspar/Core.hs view
@@ -179,7 +179,7 @@ drawAST :: (Syntactic a, Domain a ~ FeldDomainAll) => a -> IO () drawAST = Syntactic.drawAST . reifySmart (const True) canShareDict --- | Convert the syntax tree to an HTML file with foldable nodes+-- | Write the syntax tree to an HTML file with foldable nodes writeHtmlAST :: (Syntactic a, Domain a ~ FeldDomain) => a -> IO () writeHtmlAST = Syntactic.writeHtmlAST "tree.html" . desugar
src/Language/Syntactic/Frontend/Monad.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE UndecidableInstances #-} -- | Monadic constructs@@ -53,7 +54,11 @@ :: ( IsHODomain dom Typeable pVar , InjectC (MONAD m) dom (m a) , Monad m+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 708+ , Typeable m+#else , Typeable1 m+#endif , Typeable a ) => Mon dom m (ASTF dom a) -> ASTF dom (m a)@@ -63,7 +68,11 @@ sugarMonad :: ( IsHODomain dom Typeable pVar , Monad m+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 708+ , Typeable m+#else , Typeable1 m+#endif , Typeable a , pVar a )@@ -74,7 +83,11 @@ , IsHODomain dom Typeable pVar , InjectC (MONAD m) dom (m (Internal a)) , Monad m+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 708+ , Typeable m+#else , Typeable1 m+#endif , Typeable (Internal a) , pVar (Internal a) ) =>
src/Language/Syntactic/Sharing/Graph.hs view
@@ -85,7 +85,7 @@ alphaEqSym (Node n1) Nil (Node n2) Nil | n1 == n2 = return True | otherwise = do- (hTab,nTab) :: NodeEnv dom p <- asks prjNodeEqEnv+ (hTab,nTab) :: NodeEnv dom (Sat dom) <- asks prjNodeEqEnv if hTab!n1 /= hTab!n2 then return False else case (nTab!n1, nTab!n2) of@@ -117,14 +117,15 @@ -- | Show syntax graph using ASCII art-showASG :: StringTree dom => ASG dom a -> String+showASG :: forall dom a. StringTree dom => ASG dom a -> String showASG (ASG top nodes _) = unlines ((line "top" ++ showAST top) : map showNode nodes) where line str = "---- " ++ str ++ " " ++ rest ++ "\n" where- rest = take (40 - length str) $ repeat '-'+ rest = replicate (40 - length str) '-' + showNode :: (NodeId, ASTSAT (NodeDomain dom)) -> String showNode (n, ASTB expr) = concat [ line ("node:" ++ show n) , showAST expr@@ -241,7 +242,7 @@ nodeChildren :: ASG dom a -> [(NodeId, [NodeId])] nodeChildren = map (id *** fromDList) . snd . snd . foldGraph children where- children :: SyntaxPF dom (DList NodeId) -> DList (NodeId)+ children :: SyntaxPF dom (DList NodeId) -> DList NodeId children (AppPF ns1 ns2) = ns1 . ns2 children (NodePF n _) = single n children _ = empty
syntactic.cabal view
@@ -1,5 +1,5 @@ Name: syntactic-Version: 1.10+Version: 1.11 Synopsis: Generic abstract syntax, and utilities for embedded languages Description: This library provides: .@@ -45,9 +45,9 @@ License-file: LICENSE Author: Emil Axelsson Maintainer: emax@chalmers.se-Copyright: Copyright (c) 2011-2012, Emil Axelsson-Homepage: http://hub.darcs.net/emax/syntactic-Bug-reports: http://hub.darcs.net/emax/syntactic/issues+Copyright: Copyright (c) 2011-2014, Emil Axelsson+Homepage: https://github.com/emilaxelsson/syntactic+Bug-reports: https://github.com/emilaxelsson/syntactic/issues Category: Language Build-type: Simple Cabal-version: >=1.10@@ -59,8 +59,8 @@ tests/gold/*.txt source-repository head- type: darcs- location: http://hub.darcs.net/emax/syntactic+ type: git+ location: https://github.com/emilaxelsson/syntactic library exposed-modules: