packages feed

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 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.