packages feed

lhe 0.1.1 → 0.2

raw patch · 3 files changed

+71/−71 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Text.LHE: Event :: [Double] -> [[Double]] -> Event
- Text.LHE: RawEvent :: [Double] -> [[Double]] -> RawEvent
- Text.LHE: data Event
- Text.LHE: data RawEvent
- Text.LHE: instance Eq Event
- Text.LHE: instance Eq Init
- Text.LHE: instance Eq RawEvent
- Text.LHE: instance Read Event
- Text.LHE: instance Read Init
- Text.LHE: instance Read RawEvent
- Text.LHE: instance Show Event
- Text.LHE: instance Show Init
- Text.LHE: instance Show RawEvent
- Text.LHE: parseEventFile :: String -> IO [Event]
- Text.LHE: parseEvents :: String -> String -> [Event]
- Text.LHE: parseRawEventFile :: String -> IO [RawEvent]
- Text.LHE: parseRawEvents :: String -> String -> [RawEvent]
- Text.LHE: version :: String
+ Data.LHE: Event :: [Double] -> [[Double]] -> Event
+ Data.LHE: RawEvent :: [Double] -> [[Double]] -> RawEvent
+ Data.LHE: data Event
+ Data.LHE: data RawEvent
+ Data.LHE: instance Eq Event
+ Data.LHE: instance Eq Init
+ Data.LHE: instance Eq RawEvent
+ Data.LHE: instance Read Event
+ Data.LHE: instance Read Init
+ Data.LHE: instance Read RawEvent
+ Data.LHE: instance Show Event
+ Data.LHE: instance Show Init
+ Data.LHE: instance Show RawEvent
+ Data.LHE: parseEventFile :: String -> IO [Event]
+ Data.LHE: parseEvents :: String -> String -> [Event]
+ Data.LHE: parseRawEventFile :: String -> IO [RawEvent]
+ Data.LHE: parseRawEvents :: String -> String -> [RawEvent]
+ Data.LHE: version :: String

Files

+ Data/LHE.hs view
@@ -0,0 +1,68 @@+{-|++This module provides a pure haskell implementation of a parser and writer for+the Les-Houches event file format. (Note that the writer doesn't actually exist+yet.)++-}+module Data.LHE (+  -- |The major and minor parts of this version of lhe.+  version,++  parseEventFile,+  parseEvents,++  parseRawEventFile,+  parseRawEvents,++  Event(..),+  RawEvent(..),+) where++import Text.XML.HaXml.Parse (xmlParse)+import Text.XML.HaXml.Types (Document(..), Element(..), Content(..), QName(..))++data Init = Init+  deriving (Eq, Show, Read)++data Event = Event [Double] [[Double]]+  deriving (Eq, Show, Read)++data RawEvent = RawEvent [Double] [[Double]]+  deriving (Eq, Show, Read)++version :: String+version = "0.1.1"++parseEventFile :: String -> IO [Event]+parseEventFile fname = do+  readFile fname >>= return . parseEvents fname++parseEvents :: String -> String -> [Event]+parseEvents fname dat =+  let re = parseRawEvents fname dat in+    []++parseRawEventFile :: String -> IO [RawEvent]+parseRawEventFile fname = do+  readFile fname >>= return . parseRawEvents fname++parseRawEvents :: String -> String -> [RawEvent]+parseRawEvents fname dat =+  let Document _ _ (Elem eName _ eList) _ = xmlParse fname dat in+    map (getRawEvent . getElem) $ filter isEvent eList+  where+    isEvent (CElem (Elem (N "event") _ _) _) = True+    isEvent _ = False+    isCString (CString _ _ _) = True+    isCString _ = False+    parseLine = map parseDouble . words+    getElem (CElem (Elem _ _ c) _) = head $ filter isCString c+    getRawEvent (CString _ eStr _) =+      let eLines = filter (\x -> length x > 2) $ lines eStr in+        RawEvent (parseLine $ head eLines) (map parseLine $ tail eLines)+    getRawEvent _ = RawEvent [] []++parseDouble :: String -> Double+parseDouble = read . reverse . dropWhile (=='.') . reverse+
− Text/LHE.hs
@@ -1,68 +0,0 @@-{-|--This module provides a pure haskell implementation of a parser and writer for-the Les-Houches event file format. (Note that the writer doesn't actually exist-yet.)---}-module Text.LHE (-  -- |The major and minor parts of this version of lhe.-  version,--  parseEventFile,-  parseEvents,--  parseRawEventFile,-  parseRawEvents,--  Event(..),-  RawEvent(..),-) where--import Text.XML.HaXml.Parse (xmlParse)-import Text.XML.HaXml.Types (Document(..), Element(..), Content(..), QName(..))--data Init = Init-  deriving (Eq, Show, Read)--data Event = Event [Double] [[Double]]-  deriving (Eq, Show, Read)--data RawEvent = RawEvent [Double] [[Double]]-  deriving (Eq, Show, Read)--version :: String-version = "0.1.1"--parseEventFile :: String -> IO [Event]-parseEventFile fname = do-  readFile fname >>= return . parseEvents fname--parseEvents :: String -> String -> [Event]-parseEvents fname dat =-  let re = parseRawEvents fname dat in-    []--parseRawEventFile :: String -> IO [RawEvent]-parseRawEventFile fname = do-  readFile fname >>= return . parseRawEvents fname--parseRawEvents :: String -> String -> [RawEvent]-parseRawEvents fname dat =-  let Document _ _ (Elem eName _ eList) _ = xmlParse fname dat in-    map (getRawEvent . getElem) $ filter isEvent eList-  where-    isEvent (CElem (Elem (N "event") _ _) _) = True-    isEvent _ = False-    isCString (CString _ _ _) = True-    isCString _ = False-    parseLine = map parseDouble . words-    getElem (CElem (Elem _ _ c) _) = head $ filter isCString c-    getRawEvent (CString _ eStr _) =-      let eLines = filter (\x -> length x > 2) $ lines eStr in-        RawEvent (parseLine $ head eLines) (map parseLine $ tail eLines)-    getRawEvent _ = RawEvent [] []--parseDouble :: String -> Double-parseDouble = read . reverse . dropWhile (=='.') . reverse-
lhe.cabal view
@@ -6,7 +6,7 @@ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented.-Version:             0.1.1+Version:             0.2  -- A short (one-line) description of the package. Synopsis:            Parse for Les-Houches event files@@ -30,7 +30,7 @@ -- A copyright notice. -- Copyright:            -Category:            Text+Category:            Physics  Build-type:          Simple @@ -44,7 +44,7 @@  Library   -- Modules exported by the library.-  Exposed-modules:     Text.LHE+  Exposed-modules:     Data.LHE      -- Packages needed in order to build this package.   Build-depends: haskell2010 >= 1.0 , HaXml >= 1.22