on master help sign in
Support megaparsec < 8
commit7467a0894eddbecb6e37759ffa2ed1e49ab51d35 authoriko <ilyakooo0@gmail.com> dateWed 18 Mar 2020, 15:44 (7 years ago) parent49d7b89
2 files changed+14−2
idris.cabal+1−1 src/Idris/Parser/Stack.hs+13−1
idris.cabal+1−1
@@ -320,7 +320,7 @@ Library
320320 , fingertree >= 0.1.4.1 && < 0.2
321321 , haskeline >= 0.7 && < 0.8
322322 , ieee754 >= 0.7 && < 0.9
323− , megaparsec >= 8 && < 9
323+ , megaparsec >= 7.0.4 && < 9
324324 , mtl >= 2.1 && < 2.3
325325 , network >= 2.7 && < 3.1.2
326326 , optparse-applicative >= 0.13 && < 0.16
src/Idris/Parser/Stack.hs+13−1
@@ -5,7 +5,7 @@ Description : Idris parser stack and its primitives.
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE ConstraintKinds, FlexibleContexts, MultiParamTypeClasses #-}
8+{-# LANGUAGE ConstraintKinds, FlexibleContexts, MultiParamTypeClasses, CPP #-}
99module Idris.Parser.Stack
1010 ( -- * Parsing
1111 Parser(..)
@@ -77,12 +77,20 @@ parseErrorOffset = P.errorOffset . parseError
7777instance Message ParseError where
7878 messageExtent err = sourcePositionFC pos
7979 where
80+#if MIN_VERSION_megaparsec(8,0,0)
8081 P.PosState {P.pstateSourcePos = pos} =
8182 P.reachOffsetNoLine (parseErrorOffset err) (parseErrorPosState err)
83+#else
84+ (pos, _) = P.reachOffsetNoLine (parseErrorOffset err) (parseErrorPosState err)
85+#endif
8286 messageText = PP.text . init . P.parseErrorTextPretty . parseError
8387 messageSource err = Just sline
8488 where
89+#if MIN_VERSION_megaparsec(8,0,0)
8590 (sline, _) = P.reachOffset (parseErrorOffset err) (parseErrorPosState err)
91+#else
92+ (_, sline, _) = P.reachOffset (parseErrorOffset err) (parseErrorPosState err)
93+#endif
8694
8795-- | A fully formatted parse error, with caret and bar, etc.
8896prettyError :: ParseError -> String
@@ -90,7 +98,11 @@ prettyError = P.errorBundlePretty . unParseError
9098
9199{- * Mark and restore -}
92100
101+#if MIN_VERSION_megaparsec(8,0,0)
93102type Mark = P.State String Void
103+#else
104+type Mark = P.State String
105+#endif
94106
95107-- | Retrieve the parser state so we can restart from this point later.
96108mark :: Parsing m => m Mark