preprocessor-tools 0.1.3 → 1.0
raw patch · 7 files changed
+20/−10 lines, 7 files
Files
- CHANGELOG +5/−0
- Language/Haskell/Preprocessor.hs +6/−5
- Language/Haskell/Preprocessor/Ast.hs +1/−0
- Language/Haskell/Preprocessor/Error.hs +1/−0
- Language/Haskell/Preprocessor/Loc.hs +1/−0
- Language/Haskell/Preprocessor/Token.hs +1/−0
- preprocessor-tools.cabal +5/−5
CHANGELOG view
@@ -1,3 +1,8 @@+1.0 (2013/01/23)+ - Changed type of transformer from [Ast] -> [Ast] to [Ast] -> IO [Ast]+ (as suggested by John MacFarlane)+ - Cleaned up some warnings.+ 0.1.2 (2011/01/30) - Updated for GHC 7 (Thanks to Yusaku HASHIMOTO)
Language/Haskell/Preprocessor.hs view
@@ -15,6 +15,7 @@ import System.Environment (getProgName) import System.Exit (exitFailure) import Control.Exception (bracket)+import Control.Monad ((<=<)) import Data.Monoid (Monoid(..)) import qualified Control.Monad.Writer as W@@ -29,7 +30,7 @@ data Extension = Extension { keywords :: [[Keyword]],- transformer :: [Ast] -> [Ast],+ transformer :: [Ast] -> IO [Ast], synspec :: SynSpec, usage :: Maybe (IO ()), syntaxerror :: Maybe (E.Error -> IO ())@@ -38,14 +39,14 @@ instance Monoid Extension where mempty = Extension { keywords = [],- transformer = id,+ transformer = return, synspec = mempty, usage = Nothing, syntaxerror = Nothing } e1 `mappend` e2 = Extension { keywords = keywords e1 ++ keywords e2,- transformer = transformer e1 . transformer e2,+ transformer = transformer e1 <=< transformer e2, synspec = synspec e1 `mappend` synspec e2, usage = usage e1 <+ usage e2, syntaxerror = syntaxerror e1 <+ syntaxerror e2@@ -56,7 +57,7 @@ base :: Extension base = Extension { keywords = [],- transformer = id,+ transformer = return, synspec = defaultSpec, usage = Just (do prog <- getProgName@@ -82,7 +83,7 @@ Nothing -> return () exitFailure Right r -> return r- let result = transformer extension asts+ result <- transformer extension asts case files of [_, _, file] -> fileDump spec file result _ -> stdoutDump spec result
Language/Haskell/Preprocessor/Ast.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveDataTypeable #-} module Language.Haskell.Preprocessor.Ast ( Ast(..), flatten, flattenList, format, cons, module Language.Haskell.Preprocessor.Token
Language/Haskell/Preprocessor/Error.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveDataTypeable #-} module Language.Haskell.Preprocessor.Error ( Error(..), fromParseError, errorAt ) where
Language/Haskell/Preprocessor/Loc.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveDataTypeable #-} module Language.Haskell.Preprocessor.Loc ( Loc, file, line, col, initial, bogus, isBogus,
Language/Haskell/Preprocessor/Token.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveDataTypeable #-} module Language.Haskell.Preprocessor.Token ( Token(..), Tag(..), newToken ) where
preprocessor-tools.cabal view
@@ -1,12 +1,12 @@ Name: preprocessor-tools-Version: 0.1.3+Version: 1.0 Cabal-Version: >= 1.2.3 License: BSD3 License-File: LICENSE Stability: experimental-Author: Jesse A. Tov <tov@ccs.neu.edu>-Maintainer: tov@ccs.neu.edu-Homepage: http://www.ccs.neu.edu/~tov/pubs/haskell-session-types+Author: Jesse A. Tov <tov@eecs.harvard.edu>+Maintainer: tov@eecs.harvard.edu+Homepage: http://www.eecs.harvard.edu/~tov/pubs/haskell-session-types/ Category: Source-tools, Language, Code Generation Synopsis: A framework for extending Haskell's syntax via quick-and-dirty preprocessors Build-type: Simple@@ -31,7 +31,6 @@ base >=4 && <5, syb >=0 && <1 - Extensions: DeriveDataTypeable Exposed-modules: Language.Haskell.Preprocessor, Language.Haskell.Preprocessor.Ast,@@ -44,3 +43,4 @@ Language.Haskell.Preprocessor.Util Other-modules: Language.Haskell.Preprocessor.Lexer+ GHC-options: -Wall