alex-tools 0.1.1.0 → 0.2.0.0
raw patch · 3 files changed
+16/−6 lines, 3 filesnew-uploaderPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ AlexTools: [sourceFile] :: SourceRange -> !Text
- AlexTools: SourceRange :: !SourcePos -> !SourcePos -> SourceRange
+ AlexTools: SourceRange :: !Text -> !SourcePos -> !SourcePos -> SourceRange
Files
- ChangeLog.md +4/−0
- alex-tools.cabal +1/−1
- src/AlexTools.hs +11/−5
ChangeLog.md view
@@ -1,5 +1,9 @@ # Revision history for alex-tools +## 0.2.0.0 -- 2017-03-21++* Add the `sourceFile` field to `SourceRange`+ ## 0.1.1.0 -- 2016-09-02 * Add `NFData` instances
alex-tools.cabal view
@@ -1,5 +1,5 @@ name: alex-tools-version: 0.1.1.0+version: 0.2.0.0 synopsis: A set of functions for a common use case of Alex. description: This captures a common patter for using Alex. license: ISC
src/AlexTools.hs view
@@ -88,7 +88,8 @@ -- | A range in the source code. data SourceRange = SourceRange- { sourceFrom :: !SourcePos+ { sourceFile :: !Text+ , sourceFrom :: !SourcePos , sourceTo :: !SourcePos } deriving (Show, Eq) @@ -97,13 +98,15 @@ prettySourcePos (sourceTo x) instance NFData SourceRange where- rnf (SourceRange x y) = rnf (x,y)+ rnf (SourceRange t x y) = rnf (t,x,y) class HasRange t where range :: t -> SourceRange instance HasRange SourcePos where- range p = SourceRange { sourceFrom = p, sourceTo = p }+ range p = SourceRange { sourceFile = Text.empty+ , sourceFrom = p+ , sourceTo = p } instance HasRange SourceRange where range = id@@ -116,9 +119,12 @@ range (Right x) = range x (<->) :: (HasRange a, HasRange b) => a -> b -> SourceRange-x <-> y = SourceRange { sourceFrom = sourceFrom (range x)+x <-> y = SourceRange { sourceFile = sourceFile xr+ , sourceFrom = sourceFrom xr , sourceTo = sourceTo (range y) }+ where+ xr = range x --------------------------------------------------------------------------------@@ -263,7 +269,7 @@ body go mode inp cfg = caseE [| $alexScanUser $mode $inp (lexerStateMode $cfg $mode) |] [ alexEOF ~> [| lexerEOF $cfg $mode |]- , alexError ~> [| error "language-lua lexer internal error" |]+ , alexError ~> [| error "internal error in lexer (AlexTools.hs)" |] , alexSkip ~> [| $go $mode $xE |] , alexToken ~> [| case runA $zE $inp $xE $yE $mode of (mode', ts) -> ts ++ $go mode' $xE |]