packages feed

llvm-pretty 0.1.0.0 → 0.2.0.0

raw patch · 2 files changed

+23/−1 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Text.LLVM.AST: ElfMangling :: Mangling
+ Text.LLVM.AST: MachOMangling :: Mangling
+ Text.LLVM.AST: Mangling :: Mangling -> LayoutSpec
+ Text.LLVM.AST: MipsMangling :: Mangling
+ Text.LLVM.AST: WindowsCoffMangling :: Mangling
+ Text.LLVM.AST: data Mangling
+ Text.LLVM.AST: instance Eq Mangling
+ Text.LLVM.AST: instance Show Mangling
+ Text.LLVM.AST: ppMangling :: Mangling -> Doc
- Text.LLVM: (:>) :: a -> b -> :> a b
+ Text.LLVM: (:>) :: a -> b -> (:>) a b

Files

llvm-pretty.cabal view
@@ -1,5 +1,5 @@ Name:                llvm-pretty-Version:             0.1.0.0+Version:             0.2.0.0 License:             BSD3 License-file:        LICENSE Author:              Trevor Elliott
src/Text/LLVM/AST.hs view
@@ -166,8 +166,15 @@   | StackObjSize  !Int !Int (Maybe Int)   | NativeIntSize [Int]   | StackAlign    !Int+  | Mangling Mangling     deriving (Show) +data Mangling = ElfMangling+              | MipsMangling+              | MachOMangling+              | WindowsCoffMangling+                deriving (Show,Eq)+ -- | Pretty print a single layout specification. ppLayoutSpec :: LayoutSpec -> Doc ppLayoutSpec  BigEndian                  = char 'E'@@ -180,6 +187,7 @@ ppLayoutSpec (StackObjSize  sz abi pref) = char 's'  <> ppLayoutBody sz abi pref ppLayoutSpec (NativeIntSize szs)         = char 'n'  <> colons (map int szs) ppLayoutSpec (StackAlign a)              = char 'S'  <> int a+ppLayoutSpec (Mangling m)                = char 'm'  <> char ':' <> ppMangling m  -- | Pretty-print the common case for data layout specifications. ppLayoutBody :: Int -> Int -> Maybe Int -> Doc@@ -189,6 +197,12 @@     Nothing -> empty     Just p  -> char ':' <> int p +ppMangling :: Mangling -> Doc+ppMangling ElfMangling         = char 'e'+ppMangling MipsMangling        = char 'm'+ppMangling MachOMangling       = char 'o'+ppMangling WindowsCoffMangling = char 'w'+ -- | Parse the data layout string. parseDataLayout :: MonadPlus m => String -> m DataLayout parseDataLayout  = mapM parseLayoutSpec . breaks (== '-')@@ -215,6 +229,13 @@          'n' -> do ints <- mapM parseInt body                    return (NativeIntSize ints) +         'm' -> case tail body of+                  ["e"] -> return (Mangling ElfMangling)+                  ["m"] -> return (Mangling MipsMangling)+                  ["o"] -> return (Mangling MachOMangling)+                  ["w"] -> return (Mangling WindowsCoffMangling)+                  _     -> mzero+          _   -> mzero   ] @@ -230,6 +251,7 @@   parseInt s = case reads s of     [(i,[])] -> return i     _        -> mzero+  -- Inline Assembly -------------------------------------------------------------