@@ -90,9 +90,11 @@ data Typ = Val String
9090
9191parseTyp :: Parser Typ
9292parseTyp = do
93− f <- many (noneOf "-#\n\r")
93+ f <- many (noneOf "-{\n\r")
9494 spaces
95− s <- optionMaybe parseRet
95+ s <- optionMaybe (try parseRet)
96+ try $ optional inlineComment
97+ try $ optional blockComment
9698 case s of
9799 Nothing -> return $ Val (stripTr f)
98100 Just s' -> return $ ReqArgVal (stripTr f) (stripTr s')
@@ -101,7 +103,7 @@ parseTyp = do
101103 parseRet = do
102104 string "->"
103105 spaces
104− many (noneOf "#\n\r")
106+ many (noneOf "-{\n\r")
105107 stripTr = reverse . dropWhile (== ' ') . reverse
106108
107109
@@ -116,6 +118,18 @@ parseEntry = do
116118 Val s -> return $ url (met s)
117119 ReqArgVal i o -> return $ url $ reqBody i (met o)
118120
121+blockComment :: Parser ()
122+blockComment = do
123+ string "{-"
124+ manyTill anyChar (try $ string "-}")
125+ return ()
126+
127+inlineComment :: Parser ()
128+inlineComment = do
129+ string "--"
130+ manyTill anyChar (try $ lookAhead eol)
131+ return ()
132+
119133eol :: Parser String
120134eol = try (string "\n\r")
121135 <|> try (string "\r\n")
@@ -124,7 +138,7 @@ eol = try (string "\n\r")
124138 <?> "end of line"
125139
126140eols :: Parser ()
127−eols = skipMany $ void eol
141+eols = skipMany $ void eol <|> blockComment <|> inlineComment
128142
129143parseAll :: Parser Type
130144parseAll = do