@@ -34,7 +34,6 @@ import Data.Void (Void(..))
3434import System.FilePath
3535import qualified Text.Parser.Char
3636import qualified Text.Parser.Combinators
37−import qualified Text.Parser.Token as Tok
3837import qualified Text.PrettyPrint.ANSI.Leijen as PP
3938import Text.Megaparsec ((<?>))
4039import qualified Text.Megaparsec as P
@@ -55,7 +54,7 @@ parseErrorDoc :: ParseError -> PP.Doc
5554parseErrorDoc = PP.string . parseErrorPretty
5655
5756-- | Generalized monadic parsing constraint type
58−type MonadicParsing m = (P.MonadParsec Void String m, Tok.TokenParsing m)
57+type MonadicParsing m = (P.MonadParsec Void String m)
5958
6059someSpace' :: MonadicParsing m => m ()
6160someSpace' = many (simpleWhiteSpace <|> singleLineComment <|> multiLineComment) *> pure ()
@@ -72,7 +71,7 @@ instance Text.Parser.Char.CharParsing IdrisInnerParser where
7271 char = P.char
7372 string = P.string
7473
75−tokenFC :: IdrisParser a -> IdrisParser (a, FC)
74+tokenFC :: MonadicParsing m => m a -> m (a, FC)
7675tokenFC p = do (FC fn (sl, sc) _) <- getFC --TODO: Update after fixing getFC
7776 -- See Issue #1594
7877 r <- p
@@ -80,9 +79,8 @@ tokenFC p = do (FC fn (sl, sc) _) <- getFC --TODO: Update after fixing getFC
8079 whiteSpace
8180 return (r, FC fn (sl, sc) (el, ec))
8281
83−instance {-# OVERLAPPING #-} Tok.TokenParsing IdrisParser where
84− someSpace = someSpace'
85− token p = p <* whiteSpace
82+token :: MonadicParsing m => m a -> m a
83+token p = p <* whiteSpace
8684
8785-- | Helper to run Idris inner parser based stateT parsers
8886runparser :: StateT st IdrisInnerParser res -> st -> String -> String -> Either ParseError res
@@ -227,7 +225,7 @@ whiteSpace :: MonadicParsing m => m ()
227225whiteSpace = someSpace' <|> pure ()
228226
229227-- | Parses a string literal
230−stringLiteral :: IdrisParser (String, FC)
228+stringLiteral :: MonadicParsing m => m (String, FC)
231229stringLiteral = tokenFC . P.try $ P.char '"' *> P.manyTill P.charLiteral (P.char '"')
232230
233231-- | Parses a char literal
@@ -258,7 +256,7 @@ reservedIdentifiers = HS.fromList
258256 ]
259257
260258identifierOrReserved :: MonadicParsing m => m String
261−identifierOrReserved = Tok.token $ P.try $ do
259+identifierOrReserved = token $ P.try $ do
262260 c <- P.satisfy isAlpha <|> P.oneOf "_"
263261 cs <- P.many (P.satisfy isAlphaNum <|> P.oneOf "_'.")
264262 return $ c : cs
@@ -271,12 +269,12 @@ string = P.string
271269
272270-- | Parses a character as a token
273271lchar :: MonadicParsing m => Char -> m Char
274−lchar = Tok.token . P.char
272+lchar = token . P.char
275273
276274-- | Parses a character as a token, returning the source span of the character
277275lcharFC :: MonadicParsing m => Char -> m FC
278276lcharFC ch = do (FC file (l, c) _) <- getFC
279− _ <- Tok.token (P.char ch)
277+ _ <- token (P.char ch)
280278 return $ FC file (l, c) (l, c+1)
281279
282280symbol :: MonadicParsing m => String -> m ()
@@ -289,7 +287,7 @@ symbolFC str = do (FC file (l, c) _) <- getFC
289287
290288-- | Parses a reserved identifier
291289reserved :: MonadicParsing m => String -> m ()
292−reserved name = Tok.token $ P.try $ do
290+reserved name = token $ P.try $ do
293291 P.string name
294292 P.notFollowedBy (P.satisfy isAlphaNum <|> P.oneOf "_'.") <?> "end of " ++ name
295293
@@ -307,7 +305,7 @@ reservedHL str = reservedFC str >>= flip highlightP AnnKeyword
307305-- Taken from Parsec (c) Daan Leijen 1999-2001, (c) Paolo Martini 2007
308306-- | Parses a reserved operator
309307reservedOp :: MonadicParsing m => String -> m ()
310−reservedOp name = Tok.token $ P.try $
308+reservedOp name = token $ P.try $
311309 do string name
312310 P.notFollowedBy operatorLetter <?> ("end of " ++ show name)
313311
@@ -403,7 +401,7 @@ invalidOperators = [":", "=>", "->", "<-", "=", "?=", "|", "**", "==>", "\\", "%
403401
404402-- | Parses an operator
405403symbolicOperator :: MonadicParsing m => m String
406−symbolicOperator = do op <- Tok.token . some $ operatorLetter
404+symbolicOperator = do op <- token . some $ operatorLetter
407405 when (op `elem` (invalidOperators ++ commentMarkers)) $
408406 fail $ op ++ " is not a valid operator"
409407 return op