@@ -73,12 +73,6 @@ instance {-# OVERLAPPING #-} Tok.TokenParsing IdrisParser where
73-- | Generalized monadic parsing constraint type
73-- | Generalized monadic parsing constraint type
74type MonadicParsing m = (P.DeltaParsing m, LookAheadParsing m, Monad m)
74type MonadicParsing m = (P.DeltaParsing m, LookAheadParsing m, Monad m)
76−class HasLastTokenSpan m where
77− getLastTokenSpan :: m (Maybe FC)
79−instance HasLastTokenSpan IdrisParser where
80− getLastTokenSpan = lastTokenSpan <$> get
82newtype ParseError = ParseError { parseErrorDoc :: PP.Doc }
76newtype ParseError = ParseError { parseErrorDoc :: PP.Doc }
84-- | Helper to run Idris inner parser based stateT parsers
78-- | Helper to run Idris inner parser based stateT parsers
@@ -223,31 +217,31 @@ whiteSpace :: MonadicParsing m => m ()
223whiteSpace = Tok.whiteSpace
217whiteSpace = Tok.whiteSpace
225-- | Parses a string literal
219-- | Parses a string literal
226−stringLiteral :: (MonadicParsing m, HasLastTokenSpan m) => m (String, FC)
220+stringLiteral :: IdrisParser (String, FC)
227stringLiteral = do str <- Tok.stringLiteral
221stringLiteral = do str <- Tok.stringLiteral
228− fc <- getLastTokenSpan
222+ fc <- lastTokenSpan <$> get
229 return (str, fromMaybe NoFC fc)
223 return (str, fromMaybe NoFC fc)
231-- | Parses a char literal
225-- | Parses a char literal
232−charLiteral :: (MonadicParsing m, HasLastTokenSpan m) => m (Char, FC)
226+charLiteral :: IdrisParser (Char, FC)
233charLiteral = do ch <- Tok.charLiteral
227charLiteral = do ch <- Tok.charLiteral
234− fc <- getLastTokenSpan
228+ fc <- lastTokenSpan <$> get
235 return (ch, fromMaybe NoFC fc)
229 return (ch, fromMaybe NoFC fc)
237-- | Parses a natural number
231-- | Parses a natural number
238−natural :: (MonadicParsing m, HasLastTokenSpan m) => m (Integer, FC)
232+natural :: IdrisParser (Integer, FC)
239natural = do n <- Tok.natural
233natural = do n <- Tok.natural
240− fc <- getLastTokenSpan
234+ fc <- lastTokenSpan <$> get
241 return (n, fromMaybe NoFC fc)
235 return (n, fromMaybe NoFC fc)
243-- | Parses an integral number
237-- | Parses an integral number
244−integer :: MonadicParsing m => m Integer
238+integer :: IdrisParser Integer
245integer = Tok.integer
239integer = Tok.integer
247-- | Parses a floating point number
241-- | Parses a floating point number
248−float :: (MonadicParsing m, HasLastTokenSpan m) => m (Double, FC)
242+float :: IdrisParser (Double, FC)
249float = do f <- Tok.double
243float = do f <- Tok.double
250− fc <- getLastTokenSpan
244+ fc <- lastTokenSpan <$> get
251 return (f, fromMaybe NoFC fc)
245 return (f, fromMaybe NoFC fc)
253{- * Symbols, identifiers, names and operators -}
247{- * Symbols, identifiers, names and operators -}