on master help sign in
Use hidden instead of <?> ""
bd9ce0cJason Felice
src/Idris/Parser/Helpers.hs+11−15
@@ -130,10 +130,7 @@ eol = () <$ P.satisfy isEol <|> P.lookAhead P.eof <?> "end of line"
130@
130@
131 -}
131 -}
132singleLineComment :: MonadicParsing m => m ()
132singleLineComment :: MonadicParsing m => m ()
133−singleLineComment = (string "--" *>
133+singleLineComment = P.hidden (() <$ string "--" *> many (P.satisfy (not . isEol)) *> eol)
134− many (P.satisfy (not . isEol)) *>
135− eol *> pure ())
136− <?> ""
137
134
138{- | Consumes a multi-line comment
135{- | Consumes a multi-line comment
139
136
@@ -153,9 +150,8 @@ singleLineComment = (string "--" *>
153@
150@
154-}
151-}
155multiLineComment :: MonadicParsing m => m ()
152multiLineComment :: MonadicParsing m => m ()
156−multiLineComment = P.try (string "{-" *> (string "-}") *> pure ())
153+multiLineComment = P.hidden $ P.try (string "{-" *> string "-}" *> pure ())
157− <|> string "{-" *> inCommentChars
154+ <|> string "{-" *> inCommentChars
158− <?> ""
159 where inCommentChars :: MonadicParsing m => m ()
155 where inCommentChars :: MonadicParsing m => m ()
160 inCommentChars = string "-}" *> pure ()
156 inCommentChars = string "-}" *> pure ()
161 <|> P.try (multiLineComment) *> inCommentChars
157 <|> P.try (multiLineComment) *> inCommentChars
@@ -184,14 +180,14 @@ docComment = do dc <- pushIndent *> docCommentLine
184 map (\(n, d) -> (n, parseDocstring (T.pack d))) args)
180 map (\(n, d) -> (n, parseDocstring (T.pack d))) args)
185
181
186 where docCommentLine :: MonadicParsing m => m String
182 where docCommentLine :: MonadicParsing m => m String
187− docCommentLine = P.try (do string "|||"
183+ docCommentLine = P.hidden $ P.try $ do
184+ string "|||"
188− many (P.satisfy (==' '))
185+ many (P.satisfy (==' '))
189− contents <- P.option "" (do first <- P.satisfy (\c -> not (isEol c || c == '@'))
186+ contents <- P.option "" (do first <- P.satisfy (\c -> not (isEol c || c == '@'))
190− res <- many (P.satisfy (not . isEol))
187+ res <- many (P.satisfy (not . isEol))
191− return $ first:res)
188+ return $ first:res)
192− eol ; someSpace'
189+ eol ; someSpace'
193− return contents)
190+ return contents
194− <?> ""
195
191
196 argDocCommentLine :: IdrisParser (Name, String)
192 argDocCommentLine :: IdrisParser (Name, String)
197 argDocCommentLine = do P.string "|||"
193 argDocCommentLine = do P.string "|||"