packages feed

haxparse 0.2.0.0 → 0.3.0.0

raw patch · 3 files changed

+46/−52 lines, 3 filesdep +haxparsedep −lensdep ~basedep ~bytestringdep ~containersPVP ok

version bump matches the API change (PVP)

Dependencies added: haxparse

Dependencies removed: lens

Dependency ranges changed: base, bytestring, containers, template-haskell

API changes (from Hackage documentation)

- HaxParse.Parser: _curDiscId :: ParserState -> Word32
- HaxParse.Parser: _frame :: ParserState -> Word32
- HaxParse.Parser: _playerList :: ParserState -> IntMap Player
- HaxParse.Parser: curDiscId :: Lens' ParserState Word32
+ HaxParse.Parser: curDiscId :: ParserState -> Word32
- HaxParse.Parser: frame :: Lens' ParserState Word32
+ HaxParse.Parser: frame :: ParserState -> Word32
- HaxParse.Parser: playerList :: Lens' ParserState (IntMap Player)
+ HaxParse.Parser: playerList :: ParserState -> IntMap Player

Files

haxparse.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:          haxparse-version:       0.2.0.0+version:       0.3.0.0 synopsis:      Readable HaxBall replays description:   Provides an interface for parsing HaxBall replays. homepage:      https://github.com/joelteon/haxparse@@ -13,6 +13,7 @@ category:      Data build-type:    Simple cabal-version: >=1.8+tested-with:   GHC == 7.4.2, GHC == 7.6.3  source-repository head   type:     git@@ -22,46 +23,41 @@   exposed-modules: HaxParse.AST                    HaxParse.AST.TH                    HaxParse.Parser-  build-depends:   base == 4.6.*,-                   binary == 0.7.*,-                   bytestring == 0.10.*,-                   containers == 0.5.*,-                   data-binary-ieee754 == 0.4.*,-                   data-default == 0.5.*,-                   lens == 3.9.*,-                   optparse-applicative == 0.5.*,-                   mtl == 2.1.*,-                   parsec == 3.1.*,-                   split == 0.2.*,-                   template-haskell == 2.8.*,-                   transformers == 0.3.*,-                   utf8-string == 0.3.*,-                   zlib == 0.5.*+  build-depends:   base >= 4.4 && < 4.8,+                   binary >= 0.7 && < 0.8,+                   bytestring >= 0.9 && < 0.11,+                   containers >= 0.4 && < 0.6,+                   data-binary-ieee754 >= 0.4 && < 0.5,+                   data-default >= 0.5 && < 0.6,+                   mtl >= 2.1 && < 2.2,+                   parsec >= 3.1 && < 3.2,+                   split >= 0.2 && < 0.3,+                   template-haskell >= 2.7 && < 2.10,+                   transformers >= 0.3 && < 0.4,+                   utf8-string >= 0.3 && < 0.4,+                   zlib >= 0.5 && < 0.6   hs-source-dirs:  src   extensions:      FlexibleInstances, MultiParamTypeClasses, OverloadedStrings, TemplateHaskell  executable haxparse   main-is:        Main.hs-  other-modules:  HaxParse.AST.TH-                  HaxParse.AST-                  HaxParse.Options+  other-modules:  HaxParse.Options                   HaxParse.Output.Plain                   HaxParse.Output-                  HaxParse.Parser   hs-source-dirs: src-  build-depends:  base == 4.6.*,-                  binary == 0.7.*,-                  bytestring == 0.10.*,-                  containers == 0.5.*,-                  data-binary-ieee754 == 0.4.*,-                  data-default == 0.5.*,-                  lens == 3.9.*,-                  optparse-applicative == 0.5.*,-                  mtl == 2.1.*,-                  parsec == 3.1.*,-                  split == 0.2.*,-                  template-haskell == 2.8.*,-                  transformers == 0.3.*,-                  utf8-string == 0.3.*,-                  zlib == 0.5.*+  build-depends:  base >= 4.4 && < 4.8,+                  binary >= 0.7 && < 0.8,+                  bytestring >= 0.9 && < 0.11,+                  containers >= 0.4 && < 0.6,+                  data-binary-ieee754 >= 0.4 && < 0.5,+                  data-default >= 0.5 && < 0.6,+                  haxparse,+                  mtl >= 2.1 && < 2.2,+                  optparse-applicative >= 0.5 && < 0.6,+                  parsec >= 3.1 && < 3.2,+                  split >= 0.2 && < 0.3,+                  template-haskell >= 2.7 && < 2.10,+                  transformers >= 0.3 && < 0.4,+                  utf8-string >= 0.3 && < 0.4,+                  zlib >= 0.5 && < 0.6   extensions:     FlexibleInstances, MultiParamTypeClasses, OverloadedStrings, TemplateHaskell
src/HaxParse/Output/Plain.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE MultiWayIf #-} {-# OPTIONS_GHC -fno-warn-unused-do-bind #-}  module HaxParse.Output.Plain (@@ -102,9 +101,11 @@ showEv (ChangeAvatar s) p = return $ printf "%s changes avatar to \"%s\"" (toString $ name p) (toString s) showEv (Departure d k b r) p = do ps <- asks snd                                   let n = toString . name $ ps I.! fromIntegral d-                                  if | b -> return $ printf "%s bans %s (%s)" n (toString $ name p) (maybe "no reason" toString r)-                                     | k -> return $ printf "%s kicks %s (%s)" n (toString $ name p) (maybe "no reason" toString r)-                                     | otherwise -> return $ printf "%s leaves" n+                                  if b+                                      then return $ printf "%s bans %s (%s)" n (toString $ name p) (maybe "no reason" toString r)+                                      else if k+                                               then return $ printf "%s kicks %s (%s)" n (toString $ name p) (maybe "no reason" toString r)+                                               else return $ printf "%s leaves" n showEv StopMatch p = return $ printf "%s stops match" (toString $ name p) showEv (TeamChange m t) p = do ps <- asks snd                                let n = toString . name $ ps I.! fromIntegral m
src/HaxParse/Parser.hs view
@@ -5,7 +5,6 @@  import           Codec.Compression.Zlib import           Control.Applicative        ((<$>), (<*>), pure)-import           Control.Lens               hiding (Action) import           Control.Monad import           Data.Binary import           Data.Binary.Get@@ -24,15 +23,13 @@ import           Text.Parsec.Error import           Text.Parsec.Prim -data ParserState = ParserState { _frame      :: Word32-                               , _curDiscId  :: Word32-                               , _playerList :: I.IntMap Player+data ParserState = ParserState { frame      :: Word32+                               , curDiscId  :: Word32+                               , playerList :: I.IntMap Player                                }  instance Default ParserState where def = ParserState 0 0 mempty -makeLenses ''ParserState- type Parser = Parsec C.ByteString ParserState  instance (Monad m) => Stream C.ByteString m Char where@@ -58,7 +55,7 @@                players_                count 14 $ char '\NUL'                ev <- many event-               plist <- fmap (^. playerList) getState+               plist <- fmap playerList getState                return Replay { version      = vers                              , frameCount   = framecount                              , firstFrame   = firstframe@@ -145,8 +142,8 @@             count (fromIntegral s) disc  disc :: Parser Disc-disc = do discid <- view curDiscId <$> getState-          modifyState (curDiscId +~ 1)+disc = do discid <- curDiscId <$> getState+          modifyState (\p -> p { curDiscId = curDiscId p + 1 })           posx <- double           posy <- double           speedx <- double@@ -213,13 +210,13 @@                            , handicap = h                            , pDiscId  = did                            }-            modifyState (playerList %~ I.insert pid p)+            modifyState (\st -> st { playerList = I.insert pid p (playerList st) })  event :: Parser Action event = do timeUpdate <- bool <?> "is it a time update?"            when timeUpdate $ do frames <- int32-                                modifyState (frame +~ frames)-           fc <- view frame <$> getState+                                modifyState (\st -> st { frame = frame st + frames })+           fc <- frame <$> getState            pid <- fromIntegral <$> int32            evty <- int8            result <- case evty of 0 -> newPlayer@@ -262,7 +259,7 @@                               , handicap = 0                               , pDiscId  = -1                               }-               modifyState (playerList %~ I.insert i p)+               modifyState (\st -> st { playerList = I.insert i p $ playerList st })                return $ NewPlayer { npId      = i                                   , npName    = n                                   , npAdmin   = ai