on master help sign in
Don't need a newtype for inner parser
commit8d460e9c13e7ce5f9fea054ab6754108f345354c authorJason Felice <jason.m.felice@gmail.com> dateSun 29 Oct 2017, 20:24 (9 years ago) parent497bf25
3 files changed+6−11
src/Idris/Package/Parser.hs+2−2 src/Idris/Parser.hs+1−1 src/Idris/Parser/Helpers.hs+3−8
src/Idris/Package/Parser.hs+2−2
@@ -11,7 +11,7 @@ module Idris.Package.Parser where
1111import Idris.CmdOptions
1212import Idris.Imports
1313import Idris.Package.Common
14−import Idris.Parser.Helpers (IdrisInnerParser, MonadicParsing, eol, iName,
14+import Idris.Parser.Helpers (MonadicParsing, eol, iName,
1515 identifier, isEol, lchar, packageName,
1616 parseErrorDoc, reserved, runparser, someSpace')
1717
@@ -25,7 +25,7 @@ import qualified Text.PrettyPrint.ANSI.Leijen as PP
2525import Text.Trifecta ((<?>))
2626import qualified Text.Trifecta as P
2727
28−type PParser = StateT PkgDesc IdrisInnerParser
28+type PParser = StateT PkgDesc P.Parser
2929
3030#if MIN_VERSION_base(4,9,0)
3131instance {-# OVERLAPPING #-} P.DeltaParsing PParser where
src/Idris/Parser.hs+1−1
@@ -1516,7 +1516,7 @@ parseElabShellStep ist = runparser (Right <$> do_ defaultSyntax <|> Left <$> ela
15161516parseImports :: FilePath -> String -> Idris (Maybe (Docstring ()), [String], [ImportInfo], Maybe P.Delta)
15171517parseImports fname input
15181518 = do i <- getIState
1519− case P.parseString (runInnerParser (evalStateT imports i)) (P.Directed (UTF8.fromString fname) 0 0 0 0) input of
1519+ case P.parseString (evalStateT imports i) (P.Directed (UTF8.fromString fname) 0 0 0 0) input of
15201520 P.Failure (P.ErrInfo err _) -> ifail $ show err
15211521 P.Success (x, annots, i) ->
15221522 do putIState i
src/Idris/Parser/Helpers.hs+3−8
@@ -40,12 +40,7 @@ import qualified Text.Trifecta as P
4040import qualified Text.Trifecta.Delta as P
4141
4242-- | Idris parser with state used during parsing
43−type IdrisParser = StateT IState IdrisInnerParser
44−
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)
47−
48−deriving instance P.Parsing IdrisInnerParser
43+type IdrisParser = StateT IState P.Parser
4944
5045#if MIN_VERSION_base(4,9,0)
5146instance {-# OVERLAPPING #-} P.DeltaParsing IdrisParser where
@@ -87,9 +82,9 @@ instance HasLastTokenSpan IdrisParser where
8782newtype ParseError = ParseError { parseErrorDoc :: PP.Doc }
8883
8984-- | 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
9186runparser p i inputname s =
92− case P.parseString (runInnerParser (evalStateT p i))
87+ case P.parseString (evalStateT p i)
9388 (P.Directed (UTF8.fromString inputname) 0 0 0 0) s of
9489 P.Failure (P.ErrInfo doc _) -> Left (ParseError doc)
9590 P.Success value -> Right value