haskell-src 1.0.1.3 → 1.0.1.4
raw patch · 3 files changed
+46/−16 lines, 3 filesdep +sybdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: syb
Dependency ranges changed: base
API changes (from Hackage documentation)
- Language.Haskell.Lexer: At :: Token
- Language.Haskell.Lexer: BackQuote :: Token
- Language.Haskell.Lexer: Backslash :: Token
- Language.Haskell.Lexer: Bar :: Token
- Language.Haskell.Lexer: Character :: Char -> Token
- Language.Haskell.Lexer: Colon :: Token
- Language.Haskell.Lexer: Comma :: Token
- Language.Haskell.Lexer: ConId :: String -> Token
- Language.Haskell.Lexer: ConSym :: String -> Token
- Language.Haskell.Lexer: DotDot :: Token
- Language.Haskell.Lexer: DoubleArrow :: Token
- Language.Haskell.Lexer: DoubleColon :: Token
- Language.Haskell.Lexer: EOF :: Token
- Language.Haskell.Lexer: Equals :: Token
- Language.Haskell.Lexer: Exclamation :: Token
- Language.Haskell.Lexer: FloatTok :: Rational -> Token
- Language.Haskell.Lexer: IntTok :: Integer -> Token
- Language.Haskell.Lexer: KW_As :: Token
- Language.Haskell.Lexer: KW_Case :: Token
- Language.Haskell.Lexer: KW_Class :: Token
- Language.Haskell.Lexer: KW_Data :: Token
- Language.Haskell.Lexer: KW_Default :: Token
- Language.Haskell.Lexer: KW_Deriving :: Token
- Language.Haskell.Lexer: KW_Do :: Token
- Language.Haskell.Lexer: KW_Else :: Token
- Language.Haskell.Lexer: KW_Export :: Token
- Language.Haskell.Lexer: KW_Foreign :: Token
- Language.Haskell.Lexer: KW_Hiding :: Token
- Language.Haskell.Lexer: KW_If :: Token
- Language.Haskell.Lexer: KW_Import :: Token
- Language.Haskell.Lexer: KW_In :: Token
- Language.Haskell.Lexer: KW_Infix :: Token
- Language.Haskell.Lexer: KW_InfixL :: Token
- Language.Haskell.Lexer: KW_InfixR :: Token
- Language.Haskell.Lexer: KW_Instance :: Token
- Language.Haskell.Lexer: KW_Let :: Token
- Language.Haskell.Lexer: KW_Module :: Token
- Language.Haskell.Lexer: KW_NewType :: Token
- Language.Haskell.Lexer: KW_Of :: Token
- Language.Haskell.Lexer: KW_Qualified :: Token
- Language.Haskell.Lexer: KW_Safe :: Token
- Language.Haskell.Lexer: KW_Then :: Token
- Language.Haskell.Lexer: KW_Type :: Token
- Language.Haskell.Lexer: KW_Unsafe :: Token
- Language.Haskell.Lexer: KW_Where :: Token
- Language.Haskell.Lexer: LeftArrow :: Token
- Language.Haskell.Lexer: LeftCurly :: Token
- Language.Haskell.Lexer: LeftParen :: Token
- Language.Haskell.Lexer: LeftSquare :: Token
- Language.Haskell.Lexer: Minus :: Token
- Language.Haskell.Lexer: QConId :: (String, String) -> Token
- Language.Haskell.Lexer: QConSym :: (String, String) -> Token
- Language.Haskell.Lexer: QVarId :: (String, String) -> Token
- Language.Haskell.Lexer: QVarSym :: (String, String) -> Token
- Language.Haskell.Lexer: RightArrow :: Token
- Language.Haskell.Lexer: RightCurly :: Token
- Language.Haskell.Lexer: RightParen :: Token
- Language.Haskell.Lexer: RightSquare :: Token
- Language.Haskell.Lexer: SemiColon :: Token
- Language.Haskell.Lexer: StringTok :: String -> Token
- Language.Haskell.Lexer: Tilde :: Token
- Language.Haskell.Lexer: Underscore :: Token
- Language.Haskell.Lexer: VRightCurly :: Token
- Language.Haskell.Lexer: VarId :: String -> Token
- Language.Haskell.Lexer: VarSym :: String -> Token
- Language.Haskell.Lexer: data Token
- Language.Haskell.Lexer: instance Eq Token
- Language.Haskell.Lexer: instance Show Token
- Language.Haskell.Lexer: lexer :: (Token -> P a) -> P a
- Language.Haskell.ParseMonad: Layout :: Int -> LexContext
- Language.Haskell.ParseMonad: NoLayout :: LexContext
- Language.Haskell.ParseMonad: ParseFailed :: SrcLoc -> String -> ParseResult a
- Language.Haskell.ParseMonad: ParseMode :: String -> ParseMode
- Language.Haskell.ParseMonad: ParseOk :: a -> ParseResult a
- Language.Haskell.ParseMonad: alternative :: Lex a v -> Lex a (Lex a v)
- Language.Haskell.ParseMonad: atSrcLoc :: P a -> SrcLoc -> P a
- Language.Haskell.ParseMonad: checkBOL :: Lex a Bool
- Language.Haskell.ParseMonad: data Lex r a
- Language.Haskell.ParseMonad: data LexContext
- Language.Haskell.ParseMonad: data P a
- Language.Haskell.ParseMonad: data ParseMode
- Language.Haskell.ParseMonad: data ParseResult a
- Language.Haskell.ParseMonad: defaultParseMode :: ParseMode
- Language.Haskell.ParseMonad: discard :: Int -> Lex r ()
- Language.Haskell.ParseMonad: getInput :: Lex r String
- Language.Haskell.ParseMonad: getOffside :: Lex a Ordering
- Language.Haskell.ParseMonad: getSrcLoc :: P SrcLoc
- Language.Haskell.ParseMonad: instance (Show a) => Show (ParseResult a)
- Language.Haskell.ParseMonad: instance (Show a) => Show (ParseStatus a)
- Language.Haskell.ParseMonad: instance Eq LexContext
- Language.Haskell.ParseMonad: instance Monad (Lex r)
- Language.Haskell.ParseMonad: instance Monad P
- Language.Haskell.ParseMonad: instance Ord LexContext
- Language.Haskell.ParseMonad: instance Show LexContext
- Language.Haskell.ParseMonad: lexNewline :: Lex a ()
- Language.Haskell.ParseMonad: lexTab :: Lex a ()
- Language.Haskell.ParseMonad: lexWhile :: (Char -> Bool) -> Lex a String
- Language.Haskell.ParseMonad: parseFilename :: ParseMode -> String
- Language.Haskell.ParseMonad: popContext :: P ()
- Language.Haskell.ParseMonad: popContextL :: String -> Lex a ()
- Language.Haskell.ParseMonad: pushContextL :: LexContext -> Lex a ()
- Language.Haskell.ParseMonad: pushCurrentContext :: P ()
- Language.Haskell.ParseMonad: runParser :: P a -> String -> ParseResult a
- Language.Haskell.ParseMonad: runParserWithMode :: ParseMode -> P a -> String -> ParseResult a
- Language.Haskell.ParseMonad: setBOL :: Lex a ()
- Language.Haskell.ParseMonad: startToken :: Lex a ()
- Language.Haskell.ParseUtils: checkAssertion :: HsType -> P HsAsst
- Language.Haskell.ParseUtils: checkClassBody :: [HsDecl] -> P [HsDecl]
- Language.Haskell.ParseUtils: checkClassHeader :: HsQualType -> P (HsContext, HsName, [HsName])
- Language.Haskell.ParseUtils: checkContext :: HsType -> P HsContext
- Language.Haskell.ParseUtils: checkDataHeader :: HsQualType -> P (HsContext, HsName, [HsName])
- Language.Haskell.ParseUtils: checkExpr :: HsExp -> P HsExp
- Language.Haskell.ParseUtils: checkInstHeader :: HsQualType -> P (HsContext, HsQName, [HsType])
- Language.Haskell.ParseUtils: checkPattern :: HsExp -> P HsPat
- Language.Haskell.ParseUtils: checkPrec :: Integer -> P Int
- Language.Haskell.ParseUtils: checkRevDecls :: [HsDecl] -> P [HsDecl]
- Language.Haskell.ParseUtils: checkUnQual :: HsQName -> P HsName
- Language.Haskell.ParseUtils: checkValDef :: SrcLoc -> HsExp -> HsRhs -> [HsDecl] -> P HsDecl
- Language.Haskell.ParseUtils: mkRecConstrOrUpdate :: HsExp -> [HsFieldUpdate] -> P HsExp
- Language.Haskell.ParseUtils: splitTyConApp :: HsType -> P (HsName, [HsType])
- Language.Haskell.Pretty: prettyPrint :: (Pretty a) => a -> String
+ Language.Haskell.Pretty: prettyPrint :: Pretty a => a -> String
- Language.Haskell.Pretty: prettyPrintStyleMode :: (Pretty a) => Style -> PPHsMode -> a -> String
+ Language.Haskell.Pretty: prettyPrintStyleMode :: Pretty a => Style -> PPHsMode -> a -> String
- Language.Haskell.Pretty: prettyPrintWithMode :: (Pretty a) => PPHsMode -> a -> String
+ Language.Haskell.Pretty: prettyPrintWithMode :: Pretty a => PPHsMode -> a -> String
Files
- Language/Haskell/ParseMonad.hs +22/−0
- Language/Haskell/Syntax.hs +2/−1
- haskell-src.cabal +22/−15
Language/Haskell/ParseMonad.hs view
@@ -26,6 +26,8 @@ ) where import Language.Haskell.Syntax(SrcLoc(..))+import Control.Applicative+import Data.Monoid -- | The result of a parse. data ParseResult a@@ -34,6 +36,26 @@ -- ^ The parse failed at the specified -- source location, with an error message. deriving Show++instance Functor ParseResult where+ fmap f (ParseOk x) = ParseOk $ f x+ fmap f (ParseFailed loc msg) = ParseFailed loc msg++instance Applicative ParseResult where+ pure = ParseOk+ ParseOk f <*> x = f <$> x+ ParseFailed loc msg <*> _ = ParseFailed loc msg++instance Monad ParseResult where+ return = ParseOk+ ParseOk x >>= f = f x+ ParseFailed loc msg >>= _ = ParseFailed loc msg++instance Monoid m => Monoid (ParseResult m) where+ mempty = ParseOk mempty+ ParseOk x `mappend` ParseOk y = ParseOk $ x `mappend` y+ ParseOk _ `mappend` err = err+ err `mappend` _ = err -- left-biased -- internal version data ParseStatus a = Ok ParseState a | Failed SrcLoc String
Language/Haskell/Syntax.hs view
@@ -1,4 +1,5 @@-{-# OPTIONS_GHC -fglasgow-exts -cpp #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveDataTypeable #-} ----------------------------------------------------------------------------- -- | -- Module : Language.Haskell.Syntax
haskell-src.cabal view
@@ -1,19 +1,26 @@-name: haskell-src-version: 1.0.1.3-license: BSD3-license-file: LICENSE-author: Simon Marlow, Sven Panne and Noel Winstanley-maintainer: libraries@haskell.org-category: Language-synopsis: Manipulating Haskell source code+name: haskell-src+version: 1.0.1.4+license: BSD3+license-file: LICENSE+author: Simon Marlow, Sven Panne and Noel Winstanley+maintainer: libraries@haskell.org+category: Language+synopsis: Support for manipulating Haskell source code description:- Facilities for manipulating Haskell source code:- an abstract syntax, lexer, parser and pretty-printer.+ The 'haskell-src' package provides support for manipulating Haskell+ source code. The package provides a lexer, parser and+ pretty-printer, and a definition of a Haskell abstract syntax tree+ (AST). Common uses of this package are to parse or generate Haskell+ 98 code. build-type: Simple-cabal-version: >=1.2+cabal-version: >=1.6 flag split-base +source-repository head+ type: darcs+ location: http://code.haskell.org/haskell-src+ library exposed-modules: Language.Haskell.Lexer,@@ -23,11 +30,11 @@ Language.Haskell.Syntax, Language.Haskell.ParseUtils if flag(split-base)- build-depends: base >= 3 && < 4, pretty, array+ build-depends: base >= 4 && < 5, syb, pretty, array else- build-depends: base < 3+ build-depends: base < 3 build-depends: haskell98 -- The dependency on Haskell 98 is only because -- Happy generates a parser that imports Array- extensions: CPP- nhc98-options: -K11M+ extensions: CPP+ nhc98-options: -K11M