]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Parser/Http.hs
data/mime.types
[Lucu.git] / Network / HTTP / Lucu / Parser / Http.hs
index 534577c7e6c1c26d388590f5e7966eef4bd00b6a..93fc14d9c80077cf3f2ba63270b215c8fc3f7442 100644 (file)
@@ -2,6 +2,8 @@ module Network.HTTP.Lucu.Parser.Http
     ( isCtl       -- Char -> Bool
     , isSeparator -- Char -> Bool
     , isChar      -- Char -> Bool
+    , isToken     -- Char -> Bool
+    , listOf      -- Parser a -> Parser [a]
     , token       -- Parser String
     , lws         -- Parser String
     , text        -- Parser Char
@@ -32,8 +34,19 @@ isChar c
     | otherwise   = False
 
 
+isToken :: Char -> Bool
+isToken c = not (isCtl c || isSeparator c)
+
+
+listOf :: Parser a -> Parser [a]
+listOf p = do many lws
+              sepBy p (do many lws
+                          char ','
+                          many lws)
+
+
 token :: Parser String
-token = many1 $ satisfy (\ c -> not (isCtl c || isSeparator c))
+token = many1 $ satisfy isToken
 
 
 lws :: Parser String