@@ -1,4 +1,4 @@
1−{-# LANGUAGE GeneralizedNewtypeDeriving, ConstraintKinds, PatternGuards #-}
1+{-# LANGUAGE GeneralizedNewtypeDeriving, ConstraintKinds, PatternGuards, OverlappingInstances #-}
2module Idris.ParseHelpers where
2module Idris.ParseHelpers where
4import Prelude hiding (pi)
4import Prelude hiding (pi)
@@ -41,11 +41,17 @@ import Debug.Trace
41type IdrisParser = StateT IState IdrisInnerParser
41type IdrisParser = StateT IState IdrisInnerParser
43newtype IdrisInnerParser a = IdrisInnerParser { runInnerParser :: Parser a }
43newtype IdrisInnerParser a = IdrisInnerParser { runInnerParser :: Parser a }
44− deriving (Monad, Functor, MonadPlus, Applicative, Alternative, CharParsing, LookAheadParsing, Parsing, DeltaParsing, MarkParsing Delta, Monoid)
44+ deriving (Monad, Functor, MonadPlus, Applicative, Alternative, CharParsing, LookAheadParsing, Parsing, DeltaParsing, MarkParsing Delta, Monoid, TokenParsing)
46−instance TokenParsing IdrisInnerParser where
46+instance TokenParsing IdrisParser where
47 someSpace = many (simpleWhiteSpace <|> singleLineComment <|> multiLineComment) *> pure ()
47 someSpace = many (simpleWhiteSpace <|> singleLineComment <|> multiLineComment) *> pure ()
48−
48+ token p = do s <- get
53+ put (s { lastTokenSpan = Just (startFC, endFC) })
49-- | Generalized monadic parsing constraint type
55-- | Generalized monadic parsing constraint type
50type MonadicParsing m = (DeltaParsing m, LookAheadParsing m, TokenParsing m, Monad m)
56type MonadicParsing m = (DeltaParsing m, LookAheadParsing m, TokenParsing m, Monad m)