egison-pattern-src-haskell-mode 0.1.0.0 → 0.1.1.0
raw patch · 3 files changed
+22/−7 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Language.Egison.Parser.Pattern.Mode.Haskell: parseExprWithParseFixities :: MonadError (Errors String) m => ParseMode -> [ParseFixity] -> String -> m Expr
Files
- CHANGELOG.md +5/−0
- egison-pattern-src-haskell-mode.cabal +1/−1
- src/Language/Egison/Parser/Pattern/Mode/Haskell.hs +16/−6
CHANGELOG.md view
@@ -1,3 +1,8 @@+## 0.1.1.0++- Correct some documentations+- Add `parseExprWithParseFixities` to configure parsers flexibly (e.g. parse as `++`, but interpret it as `join`)+ ## 0.1.0.0 - Initial Release
egison-pattern-src-haskell-mode.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.0 name: egison-pattern-src-haskell-mode-version: 0.1.0.0+version: 0.1.1.0 synopsis: Parser and pretty printer for Egison pattern expressions in Haskell source code
src/Language/Egison/Parser/Pattern/Mode/Haskell.hs view
@@ -12,6 +12,7 @@ Expr , parseExpr , parseExprWithFixities+ , parseExprWithParseFixities -- * Converting @haskell-src-exts@'s entities , ParseMode , ParseFixity@@ -92,7 +93,6 @@ Left err -> Left err -- | Build 'Egison.Fixity' using 'Haskell.Fixity' from @haskell-src-exts@.--- Note that a built-in constructor with special syntax, that is represented as 'Special' in 'QName', is just ignored here. makeFixity :: Haskell.Fixity -> Fixity makeFixity (Haskell.Fixity assoc prec name) = fixity where@@ -146,7 +146,7 @@ parseExpr mode@Haskell.ParseMode { Haskell.parseFilename } = Egison.parseExpr (makeHaskellMode mode) parseFilename --- | Parse 'Expr' using 'Haskell.ParseMode' from @haskell-src-exts@, while supplying an explicit list of 'ParseFixity'.+-- | Parse 'Expr' using 'Haskell.ParseMode' from @haskell-src-exts@, while supplying an explicit list of 'Fixity'. -- Note that fixities obtained from 'Haskell.ParseMode' are just ignored here. parseExprWithFixities :: MonadError (Errors String) m@@ -154,9 +154,19 @@ -> [Fixity] -> String -> m Expr-parseExprWithFixities mode@Haskell.ParseMode { Haskell.parseFilename } fixities+parseExprWithFixities mode =+ parseExprWithParseFixities mode . mapMaybe makeParseFixity++-- | Parse 'Expr' using 'Haskell.ParseMode' from @haskell-src-exts@, while supplying an explicit list of 'ParseFixity'.+-- Note that fixities obtained from 'Haskell.ParseMode' are just ignored here.+parseExprWithParseFixities+ :: MonadError (Errors String) m+ => Haskell.ParseMode+ -> [ParseFixity]+ -> String+ -> m Expr+parseExprWithParseFixities mode@Haskell.ParseMode { Haskell.parseFilename } fixities = Egison.parseExpr hsModeWithFixities parseFilename where- hsMode = makeHaskellMode mode- hsModeWithFixities =- hsMode { Egison.fixities = mapMaybe makeParseFixity fixities }+ hsMode = makeHaskellMode mode+ hsModeWithFixities = hsMode { Egison.fixities }