multipartFormP :: String -> Parser [FormData]
multipartFormP boundary
= do parts <- many (partP boundary)
- string "--"
- string boundary
- string "--"
- crlf
+ _ <- string "--"
+ _ <- string boundary
+ _ <- string "--"
+ _ <- crlf
eof
return $ map partToFormData parts
partP :: String -> Parser Part
partP boundary
- = do string "--"
- string boundary
- crlf -- バウンダリの末尾に -- が付いてゐたらここで fail する。
+ = do _ <- string "--"
+ _ <- string boundary
+ _ <- crlf -- バウンダリの末尾に -- が付いてゐたらここで fail する。
hs <- headersP
body <- bodyP boundary
return $ Part hs body
bodyP :: String -> Parser L8.ByteString
bodyP boundary
= do body <- manyChar $
- do notFollowedBy $ do crlf
- string "--"
- string boundary
+ do notFollowedBy $ ( crlf >>
+ string "--" >>
+ string boundary )
anyChar
- crlf
+ _ <- crlf
return body
return $ ContDispo dispoType params
where
paramP :: Parser (String, String)
- paramP = do many lws
- char ';'
- many lws
- name <- token
- char '='
+ paramP = do _ <- many lws
+ _ <- char ';'
+ _ <- many lws
+ name <- token
+ _ <- char '='
value <- token <|> quotedStr
return (name, value)