egison-pattern-src 0.2.1.1 → 0.2.1.2
raw patch · 6 files changed
+43/−7 lines, 6 filesdep ~containersdep ~freedep ~megaparsecPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: containers, free, megaparsec, mtl, parser-combinators, prettyprinter, recursion-schemes, text
API changes (from Hackage documentation)
- Language.Egison.Parser.Pattern: [$sel:associativity:Fixity] :: Fixity n -> Associativity
- Language.Egison.Parser.Pattern: [$sel:begin:Location] :: Location -> Position
- Language.Egison.Parser.Pattern: [$sel:blockComment:ParseMode] :: ParseMode n v e s -> Maybe (Tokens s, Tokens s)
- Language.Egison.Parser.Pattern: [$sel:column:Position] :: Position -> Int
- Language.Egison.Parser.Pattern: [$sel:end:Location] :: Location -> Position
- Language.Egison.Parser.Pattern: [$sel:expected:UnexpectedToken] :: Error s -> [ErrorItem s]
- Language.Egison.Parser.Pattern: [$sel:filename:ParseMode] :: ParseMode n v e s -> FilePath
- Language.Egison.Parser.Pattern: [$sel:fixities:ParseMode] :: ParseMode n v e s -> [ParseFixity n s]
- Language.Egison.Parser.Pattern: [$sel:fixity:ParseFixity] :: ParseFixity n s -> Fixity n
- Language.Egison.Parser.Pattern: [$sel:found:UnexpectedToken] :: Error s -> Maybe (ErrorItem s)
- Language.Egison.Parser.Pattern: [$sel:input:UnexpectedToken] :: Error s -> Tokens s
- Language.Egison.Parser.Pattern: [$sel:line:Position] :: Position -> Int
- Language.Egison.Parser.Pattern: [$sel:lineComment:ParseMode] :: ParseMode n v e s -> Maybe (Tokens s)
- Language.Egison.Parser.Pattern: [$sel:message:UnexpectedToken] :: Error s -> String
- Language.Egison.Parser.Pattern: [$sel:nameParser:ParseMode] :: ParseMode n v e s -> ExtParser s n
- Language.Egison.Parser.Pattern: [$sel:parser:ParseFixity] :: ParseFixity n s -> ExtParser s ()
- Language.Egison.Parser.Pattern: [$sel:position:UnexpectedToken] :: Error s -> Position
- Language.Egison.Parser.Pattern: [$sel:precedence:Fixity] :: Fixity n -> Precedence
- Language.Egison.Parser.Pattern: [$sel:rest:UnexpectedToken] :: Error s -> Tokens s
- Language.Egison.Parser.Pattern: [$sel:symbol:Fixity] :: Fixity n -> n
- Language.Egison.Parser.Pattern: [$sel:valueExprParser:ParseMode] :: ParseMode n v e s -> ExtParser s e
- Language.Egison.Parser.Pattern: [$sel:varNameParser:ParseMode] :: ParseMode n v e s -> ExtParser s v
- Language.Egison.Pretty.Pattern: AssocLeft :: Associativity
- Language.Egison.Pretty.Pattern: AssocNone :: Associativity
- Language.Egison.Pretty.Pattern: AssocRight :: Associativity
- Language.Egison.Pretty.Pattern: Fixity :: Associativity -> Precedence -> n -> Fixity n
- Language.Egison.Pretty.Pattern: Precedence :: Int -> Precedence
- Language.Egison.Pretty.Pattern: [$sel:associativity:Fixity] :: Fixity n -> Associativity
- Language.Egison.Pretty.Pattern: [$sel:fixities:PrintMode] :: PrintMode n v e -> [PrintFixity n]
- Language.Egison.Pretty.Pattern: [$sel:fixity:PrintFixity] :: PrintFixity n -> Fixity n
- Language.Egison.Pretty.Pattern: [$sel:lineLength:PageMode] :: PageMode -> Int
- Language.Egison.Pretty.Pattern: [$sel:namePrinter:PrintMode] :: PrintMode n v e -> ExtPrinter n
- Language.Egison.Pretty.Pattern: [$sel:pageMode:PrintMode] :: PrintMode n v e -> Maybe PageMode
- Language.Egison.Pretty.Pattern: [$sel:precedence:Fixity] :: Fixity n -> Precedence
- Language.Egison.Pretty.Pattern: [$sel:printed:PrintFixity] :: PrintFixity n -> Text
- Language.Egison.Pretty.Pattern: [$sel:ribbonsPerLine:PageMode] :: PageMode -> Double
- Language.Egison.Pretty.Pattern: [$sel:symbol:Fixity] :: Fixity n -> n
- Language.Egison.Pretty.Pattern: [$sel:valueExprPrinter:PrintMode] :: PrintMode n v e -> ExtPrinter e
- Language.Egison.Pretty.Pattern: [$sel:varNamePrinter:PrintMode] :: PrintMode n v e -> ExtPrinter v
- Language.Egison.Pretty.Pattern: data Associativity
- Language.Egison.Pretty.Pattern: data Fixity n
- Language.Egison.Pretty.Pattern: newtype Precedence
- Language.Egison.Syntax.Pattern.Expr: instance (Data.Data.Data n, Data.Data.Data v, Data.Data.Data e) => Data.Data.Data (Language.Egison.Syntax.Pattern.Expr.Expr n v e)
- Language.Egison.Syntax.Pattern.Fixity: [$sel:associativity:Fixity] :: Fixity n -> Associativity
- Language.Egison.Syntax.Pattern.Fixity: [$sel:precedence:Fixity] :: Fixity n -> Precedence
- Language.Egison.Syntax.Pattern.Fixity: [$sel:symbol:Fixity] :: Fixity n -> n
+ Language.Egison.Parser.Pattern: ($dmparse) :: (Parsable a s mode, Recursive a, Corecursive a, MonadError (Errors s) m) => mode -> s -> m a
+ Language.Egison.Parser.Pattern: ($dmparseNonGreedy) :: (Parsable a s mode, Recursive a, Corecursive a, MonadError (Errors s) m) => mode -> s -> m (a, s)
+ Language.Egison.Parser.Pattern: [associativity] :: Fixity n -> Associativity
+ Language.Egison.Parser.Pattern: [begin] :: Location -> Position
+ Language.Egison.Parser.Pattern: [blockComment] :: ParseMode n v e s -> Maybe (Tokens s, Tokens s)
+ Language.Egison.Parser.Pattern: [column] :: Position -> Int
+ Language.Egison.Parser.Pattern: [end] :: Location -> Position
+ Language.Egison.Parser.Pattern: [expected] :: Error s -> [ErrorItem s]
+ Language.Egison.Parser.Pattern: [filename] :: ParseMode n v e s -> FilePath
+ Language.Egison.Parser.Pattern: [fixities] :: ParseMode n v e s -> [ParseFixity n s]
+ Language.Egison.Parser.Pattern: [fixity] :: ParseFixity n s -> Fixity n
+ Language.Egison.Parser.Pattern: [found] :: Error s -> Maybe (ErrorItem s)
+ Language.Egison.Parser.Pattern: [input] :: Error s -> Tokens s
+ Language.Egison.Parser.Pattern: [lineComment] :: ParseMode n v e s -> Maybe (Tokens s)
+ Language.Egison.Parser.Pattern: [line] :: Position -> Int
+ Language.Egison.Parser.Pattern: [message] :: Error s -> String
+ Language.Egison.Parser.Pattern: [nameParser] :: ParseMode n v e s -> ExtParser s n
+ Language.Egison.Parser.Pattern: [parser] :: ParseFixity n s -> ExtParser s ()
+ Language.Egison.Parser.Pattern: [position] :: Error s -> Position
+ Language.Egison.Parser.Pattern: [precedence] :: Fixity n -> Precedence
+ Language.Egison.Parser.Pattern: [rest] :: Error s -> Tokens s
+ Language.Egison.Parser.Pattern: [symbol] :: Fixity n -> n
+ Language.Egison.Parser.Pattern: [valueExprParser] :: ParseMode n v e s -> ExtParser s e
+ Language.Egison.Parser.Pattern: [varNameParser] :: ParseMode n v e s -> ExtParser s v
+ Language.Egison.Pretty.Pattern: [fixities] :: PrintMode n v e -> [PrintFixity n]
+ Language.Egison.Pretty.Pattern: [fixity] :: PrintFixity n -> Fixity n
+ Language.Egison.Pretty.Pattern: [lineLength] :: PageMode -> Int
+ Language.Egison.Pretty.Pattern: [namePrinter] :: PrintMode n v e -> ExtPrinter n
+ Language.Egison.Pretty.Pattern: [pageMode] :: PrintMode n v e -> Maybe PageMode
+ Language.Egison.Pretty.Pattern: [printed] :: PrintFixity n -> Text
+ Language.Egison.Pretty.Pattern: [ribbonsPerLine] :: PageMode -> Double
+ Language.Egison.Pretty.Pattern: [valueExprPrinter] :: PrintMode n v e -> ExtPrinter e
+ Language.Egison.Pretty.Pattern: [varNamePrinter] :: PrintMode n v e -> ExtPrinter v
+ Language.Egison.Syntax.Pattern.Expr: instance (Data.Data.Data v, Data.Data.Data e, Data.Data.Data n) => Data.Data.Data (Language.Egison.Syntax.Pattern.Expr.Expr n v e)
+ Language.Egison.Syntax.Pattern.Fixity: [associativity] :: Fixity n -> Associativity
+ Language.Egison.Syntax.Pattern.Fixity: [precedence] :: Fixity n -> Precedence
+ Language.Egison.Syntax.Pattern.Fixity: [symbol] :: Fixity n -> n
- Language.Egison.Parser.Pattern: class (Stream s, IsToken (Token s)) => Source s
+ Language.Egison.Parser.Pattern: class (TraversableStream s, IsToken Token s) => Source s
- Language.Egison.Parser.Pattern: parse :: (Parsable a s mode, Recursive a, Corecursive a, MonadError (Errors s) m) => mode -> s -> m a
+ Language.Egison.Parser.Pattern: parse :: (Parsable a s mode, MonadError (Errors s) m) => mode -> s -> m a
- Language.Egison.Parser.Pattern: parseNonGreedy :: (Parsable a s mode, Recursive a, Corecursive a, MonadError (Errors s) m) => mode -> s -> m (a, s)
+ Language.Egison.Parser.Pattern: parseNonGreedy :: (Parsable a s mode, MonadError (Errors s) m) => mode -> s -> m (a, s)
- Language.Egison.Parser.Pattern: type Errors s = NonEmpty (Error s)
+ Language.Egison.Parser.Pattern: type Errors s = NonEmpty Error s
- Language.Egison.Parser.Pattern: type ExprL n v e = Cofree (ExprF n v e) Location
+ Language.Egison.Parser.Pattern: type ExprL n v e = Cofree ExprF n v e Location
- Language.Egison.Syntax.Pattern.Base: AndF :: r_anzL -> r_anzL -> ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: AndF :: r -> r -> ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: CollectionF :: [r_anzL] -> ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: CollectionF :: [r] -> ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: InfixF :: n_aiZ9 -> r_anzL -> r_anzL -> ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: InfixF :: n -> r -> r -> ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: NotF :: r_anzL -> ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: NotF :: r -> ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: OrF :: r_anzL -> r_anzL -> ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: OrF :: r -> r -> ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: PatternF :: n_aiZ9 -> [r_anzL] -> ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: PatternF :: n -> [r] -> ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: PredicateF :: e_aiZb -> ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: PredicateF :: e -> ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: TupleF :: [r_anzL] -> ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: TupleF :: [r] -> ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: ValueF :: e_aiZb -> ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: ValueF :: e -> ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: VariableF :: v_aiZa -> ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: VariableF :: v -> ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: WildcardF :: ExprF r_anzL
+ Language.Egison.Syntax.Pattern.Base: WildcardF :: ExprF n v e r
- Language.Egison.Syntax.Pattern.Base: data ExprF (n_aiZ9 :: Type) (v_aiZa :: Type) (e_aiZb :: Type) r_anzL
+ Language.Egison.Syntax.Pattern.Base: data ExprF n v e r
Files
- CHANGELOG.md +8/−0
- egison-pattern-src.cabal +4/−4
- src/Language/Egison/Parser/Pattern/Prim/Error.hs +8/−0
- src/Language/Egison/Parser/Pattern/Prim/Location.hs +3/−0
- src/Language/Egison/Parser/Pattern/Prim/Parse.hs +10/−2
- src/Language/Egison/Parser/Pattern/Prim/Source.hs +10/−1
CHANGELOG.md view
@@ -1,3 +1,11 @@+## 0.2.1.2++- Support megaparsec >= 9.0.0 [#25](https://github.com/egison/egison-pattern-src/issues/25)++## 0.2.1.1++- Relax version upper bound for prettyprinter and recursion-scheme.+ ## 0.2.1.0 - Fix use of external parsers to delimit input with `,`, `)`, or `]`
egison-pattern-src.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.0 name: egison-pattern-src-version: 0.2.1.1+version: 0.2.1.2 synopsis: Manipulating Egison patterns: abstract syntax, parser, and pretty-printer @@ -34,11 +34,11 @@ base >=4.8 && <5 , containers >=0.5.4 && <0.7 , free >=5.0.1 && <5.2- , megaparsec >=7.0.0 && <8.1+ , megaparsec >=7.0.0 && <10.0 , mtl ^>=2.2.1 , parser-combinators >=1.0.0 && <1.3- , prettyprinter >=1.0.0- , recursion-schemes >=5.2+ , prettyprinter >=1.0.0 && <2.0+ , recursion-schemes >=5.0.2 && <5.3 , text >=0.1.0 && <1.3 hs-source-dirs: src
src/Language/Egison/Parser/Pattern/Prim/Error.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE UndecidableInstances #-} -- |@@ -43,6 +44,9 @@ , ErrorItem(..) , ErrorFancy(..) , SourcePos+#if MIN_VERSION_megaparsec(9,0,0)+ , TraversableStream (..)+#endif , ParseError(..) , ParseErrorBundle(..) , attachSourcePos@@ -126,7 +130,11 @@ -- | Convert 'Parsec.ParseErrorBundle' to 'Errors'. fromParseErrorBundle+#if MIN_VERSION_megaparsec(9,0,0)+ :: Parsec.TraversableStream s => Parsec.ParseErrorBundle s (CustomError s) -> Errors s+#else :: Parsec.Stream s => Parsec.ParseErrorBundle s (CustomError s) -> Errors s+#endif fromParseErrorBundle Parsec.ParseErrorBundle { Parsec.bundleErrors = errors, Parsec.bundlePosState = posState } = fmap makeError errorsWithPos where
src/Language/Egison/Parser/Pattern/Prim/Location.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ -- | -- -- Module: Language.Egison.Parser.Pattern.Prim.Location@@ -5,6 +7,7 @@ -- Stability: experimental -- -- A helper module to handle source code locations during parsing.+ module Language.Egison.Parser.Pattern.Prim.Location ( Location(..)
src/Language/Egison/Parser/Pattern/Prim/Parse.hs view
@@ -29,8 +29,12 @@ , PosState(..) ) import qualified Text.Megaparsec as Parsec- ( Stream- , State(..)+ ( State(..)+#if MIN_VERSION_megaparsec(9,0,0)+ , TraversableStream(..)+#else+ , Stream(..)+#endif , PosState(..) , runParser' , initialPos@@ -59,7 +63,11 @@ deriving newtype (MonadReader (ParseMode n v e s)) deriving newtype (MonadParsec (CustomError s) s) +#if MIN_VERSION_megaparsec(9,0,0)+instance Parsec.TraversableStream s => Locate (Parse n v e s) where+#else instance Parsec.Stream s => Locate (Parse n v e s) where+#endif getPosition = fromSourcePos <$> Parsec.getSourcePos
src/Language/Egison/Parser/Pattern/Prim/Source.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE AllowAmbiguousTypes #-}+{-# LANGUAGE CPP #-} -- | --@@ -22,7 +23,11 @@ , snoc ) import qualified Text.Megaparsec as Parsec- ( Stream(..) )+ ( Stream(..)+#if MIN_VERSION_megaparsec(9,0,0)+ , TraversableStream(..)+#endif+ ) import Language.Egison.Parser.Pattern.Token ( IsToken )@@ -36,7 +41,11 @@ -- | Constraint for the source of parser. -- TODO: Hide these methods in haddock (see haskell/haddock#330)+#if MIN_VERSION_megaparsec(9,0,0)+class (Parsec.TraversableStream s, IsToken (Token s)) => Source s where+#else class (Parsec.Stream s, IsToken (Token s)) => Source s where+#endif -- | Check if the stream is null or not. eof :: s -> Bool -- | Reify the input stream into a chunk of tokens.