@@ -90,9 +90,11 @@ data Typ = Val String
91parseTyp :: Parser Typ
91parseTyp :: Parser Typ
92parseTyp = do
92parseTyp = do
93− f <- many (noneOf "-#\n\r")
93+ f <- many (noneOf "-{\n\r")
95− s <- optionMaybe parseRet
95+ s <- optionMaybe (try parseRet)
96+ try $ optional inlineComment
97+ try $ optional blockComment
97 Nothing -> return $ Val (stripTr f)
99 Nothing -> return $ Val (stripTr f)
98 Just s' -> return $ ReqArgVal (stripTr f) (stripTr s')
100 Just s' -> return $ ReqArgVal (stripTr f) (stripTr s')
@@ -101,7 +103,7 @@ parseTyp = do
101 parseRet = do
103 parseRet = do
102 string "->"
104 string "->"
104− many (noneOf "#\n\r")
106+ many (noneOf "-{\n\r")
105 stripTr = reverse . dropWhile (== ' ') . reverse
107 stripTr = reverse . dropWhile (== ' ') . reverse
@@ -116,6 +118,18 @@ parseEntry = do
116 Val s -> return $ url (met s)
118 Val s -> return $ url (met s)
117 ReqArgVal i o -> return $ url $ reqBody i (met o)
119 ReqArgVal i o -> return $ url $ reqBody i (met o)
121+blockComment :: Parser ()
124+ manyTill anyChar (try $ string "-}")
127+inlineComment :: Parser ()
130+ manyTill anyChar (try $ lookAhead eol)
119eol :: Parser String
133eol :: Parser String
120eol = try (string "\n\r")
134eol = try (string "\n\r")
121 <|> try (string "\r\n")
135 <|> try (string "\r\n")
@@ -124,7 +138,7 @@ eol = try (string "\n\r")
124 <?> "end of line"
138 <?> "end of line"
126eols :: Parser ()
140eols :: Parser ()
127−eols = skipMany $ void eol
141+eols = skipMany $ void eol <|> blockComment <|> inlineComment
129parseAll :: Parser Type
143parseAll :: Parser Type
130parseAll = do
144parseAll = do