X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FParser%2FHttp.hs;h=93fc14d9c80077cf3f2ba63270b215c8fc3f7442;hp=534577c7e6c1c26d388590f5e7966eef4bd00b6a;hb=c6b11025d1f81c668e9995e856b7bb34175230d3;hpb=1000bdc46cfe7b3ae550ff24ccea9f440f11b42a diff --git a/Network/HTTP/Lucu/Parser/Http.hs b/Network/HTTP/Lucu/Parser/Http.hs index 534577c..93fc14d 100644 --- a/Network/HTTP/Lucu/Parser/Http.hs +++ b/Network/HTTP/Lucu/Parser/Http.hs @@ -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