packages feed

parsers 0.6 → 0.7

raw patch · 2 files changed

+25/−9 lines, 2 files

Files

parsers.cabal view
@@ -1,6 +1,6 @@ name:          parsers category:      Text, Parsing-version:       0.6+version:       0.7 license:       BSD3 cabal-version: >= 1.10 license-file:  LICENSE
src/Text/Parser/Token.hs view
@@ -13,9 +13,9 @@ -- -- Parsers that comprehend whitespace and identifier styles ----- > idStyle    = haskellIdentifierStyle { styleReserved = ... }--- > identifier = ident haskellIdentifierStyle--- > reserved   = reserve haskellIdentifierStyle+-- > idStyle    = haskellIdents { styleReserved = ... }+-- > identifier = ident idStyle+-- > reserved   = reserve idStyle -- ----------------------------------------------------------------------------- module Text.Parser.Token@@ -47,6 +47,7 @@   , TokenParsing(..)   -- ** Token Parsing Transformers   , Unspaced(..)+  , Unlined(..)   , Unhighlighted(..)   -- ** /Non-Token/ Parsers   , decimal       -- :: TokenParsing m => m Integer@@ -653,12 +654,12 @@   lift = Unhighlighted   {-# INLINE lift #-} -instance (TokenParsing m, MonadPlus m) => TokenParsing (Unhighlighted m) where+instance TokenParsing m => TokenParsing (Unhighlighted m) where   nesting (Unhighlighted m) = Unhighlighted (nesting m)   {-# INLINE nesting #-}-  someSpace = lift someSpace+  someSpace = Unhighlighted someSpace   {-# INLINE someSpace #-}-  semi      = lift semi+  semi      = Unhighlighted semi   {-# INLINE semi #-}   highlight _ m = m   {-# INLINE highlight #-}@@ -672,12 +673,27 @@   lift = Unspaced   {-# INLINE lift #-} -instance (TokenParsing m, MonadPlus m) => TokenParsing (Unspaced m) where+instance TokenParsing m => TokenParsing (Unspaced m) where   nesting (Unspaced m) = Unspaced (nesting m)   {-# INLINE nesting #-}   someSpace = empty   {-# INLINE someSpace #-}-  semi      = lift semi+  semi      = Unspaced semi   {-# INLINE semi #-}   highlight h (Unspaced m) = Unspaced (highlight h m)+  {-# INLINE highlight #-}++-- | This is a parser transformer you can use to disable the automatic trailing+-- newline (but not whitespace-in-general) consumption of a Token parser.+newtype Unlined m a = Unlined { runUnlined :: m a }+  deriving (Functor,Applicative,Alternative,Monad,MonadPlus,Parsing,CharParsing)++instance TokenParsing m => TokenParsing (Unlined m) where+  nesting (Unlined m) = Unlined (nesting m)+  {-# INLINE nesting #-}+  someSpace = skipMany (satisfy $ \c -> c /= '\n' && isSpace c)+  {-# INLINE someSpace #-}+  semi      = Unlined semi+  {-# INLINE semi #-}+  highlight h (Unlined m) = Unlined (highlight h m)   {-# INLINE highlight #-}