@@ -40,12 +40,7 @@ import qualified Text.Trifecta as P
40import qualified Text.Trifecta.Delta as P
40import qualified Text.Trifecta.Delta as P
42-- | Idris parser with state used during parsing
42-- | Idris parser with state used during parsing
43−type IdrisParser = StateT IState IdrisInnerParser
43+type IdrisParser = StateT IState P.Parser
45−newtype IdrisInnerParser a = IdrisInnerParser { runInnerParser :: P.Parser a }
46− deriving (Monad, Functor, MonadPlus, Applicative, Alternative, P.CharParsing, LookAheadParsing, P.DeltaParsing, P.MarkParsing P.Delta, Monoid, P.TokenParsing)
48−deriving instance P.Parsing IdrisInnerParser
50#if MIN_VERSION_base(4,9,0)
45#if MIN_VERSION_base(4,9,0)
51instance {-# OVERLAPPING #-} P.DeltaParsing IdrisParser where
46instance {-# OVERLAPPING #-} P.DeltaParsing IdrisParser where
@@ -87,9 +82,9 @@ instance HasLastTokenSpan IdrisParser where
87newtype ParseError = ParseError { parseErrorDoc :: PP.Doc }
82newtype ParseError = ParseError { parseErrorDoc :: PP.Doc }
89-- | Helper to run Idris inner parser based stateT parsers
84-- | Helper to run Idris inner parser based stateT parsers
90−runparser :: StateT st IdrisInnerParser res -> st -> String -> String -> Either ParseError res
85+runparser :: StateT st P.Parser res -> st -> String -> String -> Either ParseError res
91runparser p i inputname s =
86runparser p i inputname s =
92− case P.parseString (runInnerParser (evalStateT p i))
87+ case P.parseString (evalStateT p i)
93 (P.Directed (UTF8.fromString inputname) 0 0 0 0) s of
88 (P.Directed (UTF8.fromString inputname) 0 0 0 0) s of
94 P.Failure (P.ErrInfo doc _) -> Left (ParseError doc)
89 P.Failure (P.ErrInfo doc _) -> Left (ParseError doc)
95 P.Success value -> Right value
90 P.Success value -> Right value