X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FParser%2FHttp.hs;fp=Network%2FHTTP%2FLucu%2FParser%2FHttp.hs;h=6758d40c2ae87e4a404a03672a173a42f46f3832;hp=e59f4607b25b521d6935a2c4a75a2c4f997e9495;hb=5f2ef377345fc47aabc63c1325df82c1cd9da9ed;hpb=313924e79d4ed48d3efb9f2530a48305fdd68c4b diff --git a/Network/HTTP/Lucu/Parser/Http.hs b/Network/HTTP/Lucu/Parser/Http.hs index e59f460..6758d40 100644 --- a/Network/HTTP/Lucu/Parser/Http.hs +++ b/Network/HTTP/Lucu/Parser/Http.hs @@ -30,8 +30,7 @@ import Control.Applicative import Control.Monad import Data.Ascii (Ascii) import qualified Data.Ascii as A -import Data.Attoparsec.Char8 as P hiding (scan) -import qualified Data.Attoparsec.FastSet as FS +import Data.Attoparsec.Char8 import qualified Data.ByteString.Char8 as BS import Network.HTTP.Lucu.Parser import Prelude.Unicode @@ -53,10 +52,7 @@ isText = (¬) ∘ isCtl -- separators. isSeparator ∷ Char → Bool {-# INLINE isSeparator #-} -isSeparator = flip FS.memberChar set - where - {-# NOINLINE set #-} - set = FS.charClass "()<>@,;:\\\"/[]?={}\x20\x09" +isSeparator = inClass "()<>@,;:\\\"/[]?={}\x20\x09" -- |@'isChar' c@ returns 'True' iff @c <= 0x7f@. isChar ∷ Char → Bool @@ -126,7 +122,7 @@ separators = (A.unsafeFromByteString <$> takeWhile1 isSeparator) quotedStr ∷ Parser Ascii {-# INLINEABLE quotedStr #-} quotedStr = do void $ char '"' - xs ← P.many (qdtext <|> quotedPair) + xs ← many (qdtext <|> quotedPair) void $ char '"' return ∘ A.unsafeFromByteString $ BS.pack xs