hxt-regex-xmlschema 9.2.0.3 → 9.2.0.7
raw patch · 4 files changed
+33/−23 lines, 4 filesdep ~basedep ~hxt-charpropertiesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, hxt-charproperties
API changes (from Hackage documentation)
- Text.Regex.XMLSchema.Generic: errRegex :: (StringLike s) => GenRegex s -> s
+ Text.Regex.XMLSchema.Generic: errRegex :: StringLike s => GenRegex s -> s
- Text.Regex.XMLSchema.Generic: mkAll :: (StringLike s) => GenRegex s
+ Text.Regex.XMLSchema.Generic: mkAll :: StringLike s => GenRegex s
- Text.Regex.XMLSchema.Generic: mkAlt :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkAlt :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkCompl :: (StringLike s) => GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkCompl :: StringLike s => GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkDiff :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkDiff :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkElse :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkElse :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkExor :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkExor :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkIsect :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkIsect :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkOpt :: (StringLike s) => GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkOpt :: StringLike s => GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkRep :: (StringLike s) => Int -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkRep :: StringLike s => Int -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkRng :: (StringLike s) => Int -> Int -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkRng :: StringLike s => Int -> Int -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkStar :: (StringLike s) => GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkStar :: StringLike s => GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkSym1 :: (StringLike s) => Char -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkSym1 :: StringLike s => Char -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkSymRng :: (StringLike s) => Char -> Char -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkSymRng :: StringLike s => Char -> Char -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkWord :: (StringLike s) => [Char] -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkWord :: StringLike s => [Char] -> GenRegex s
- Text.Regex.XMLSchema.Generic: mkZero' :: (StringLike s) => String -> GenRegex s
+ Text.Regex.XMLSchema.Generic: mkZero' :: StringLike s => String -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: delta :: (StringLike s) => s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: delta :: StringLike s => s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: delta1 :: (StringLike s) => Char -> s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: delta1 :: StringLike s => Char -> s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: errRegex :: (StringLike s) => GenRegex s -> s
+ Text.Regex.XMLSchema.Generic.Regex: errRegex :: StringLike s => GenRegex s -> s
- Text.Regex.XMLSchema.Generic.Regex: firstChars :: (StringLike s) => GenRegex s -> CharSet
+ Text.Regex.XMLSchema.Generic.Regex: firstChars :: StringLike s => GenRegex s -> CharSet
- Text.Regex.XMLSchema.Generic.Regex: matchWithRegex :: (StringLike s) => GenRegex s -> s -> Bool
+ Text.Regex.XMLSchema.Generic.Regex: matchWithRegex :: StringLike s => GenRegex s -> s -> Bool
- Text.Regex.XMLSchema.Generic.Regex: matchWithRegex' :: (StringLike s) => GenRegex s -> s -> Maybe (SubexResults s)
+ Text.Regex.XMLSchema.Generic.Regex: matchWithRegex' :: StringLike s => GenRegex s -> s -> Maybe (SubexResults s)
- Text.Regex.XMLSchema.Generic.Regex: mkAll :: (StringLike s) => GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkAll :: StringLike s => GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkAlt :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkAlt :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkCompl :: (StringLike s) => GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkCompl :: StringLike s => GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkDiff :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkDiff :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkElse :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkElse :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkExor :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkExor :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkIsect :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkIsect :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkOpt :: (StringLike s) => GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkOpt :: StringLike s => GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkRep :: (StringLike s) => Int -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkRep :: StringLike s => Int -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkRng :: (StringLike s) => Int -> Int -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkRng :: StringLike s => Int -> Int -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkStar :: (StringLike s) => GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkStar :: StringLike s => GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkSym :: (StringLike s) => CharSet -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkSym :: StringLike s => CharSet -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkSym1 :: (StringLike s) => Char -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkSym1 :: StringLike s => Char -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkSymRng :: (StringLike s) => Char -> Char -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkSymRng :: StringLike s => Char -> Char -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkWord :: (StringLike s) => [Char] -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkWord :: StringLike s => [Char] -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: mkZero' :: (StringLike s) => String -> GenRegex s
+ Text.Regex.XMLSchema.Generic.Regex: mkZero' :: StringLike s => String -> GenRegex s
- Text.Regex.XMLSchema.Generic.Regex: nullable :: (StringLike s) => GenRegex s -> Bool
+ Text.Regex.XMLSchema.Generic.Regex: nullable :: StringLike s => GenRegex s -> Bool
- Text.Regex.XMLSchema.Generic.Regex: nullable' :: (StringLike s) => GenRegex s -> Nullable s
+ Text.Regex.XMLSchema.Generic.Regex: nullable' :: StringLike s => GenRegex s -> Nullable s
- Text.Regex.XMLSchema.Generic.Regex: splitWithRegex :: (StringLike s) => GenRegex s -> s -> Maybe (SubexResults s, s)
+ Text.Regex.XMLSchema.Generic.Regex: splitWithRegex :: StringLike s => GenRegex s -> s -> Maybe (SubexResults s, s)
- Text.Regex.XMLSchema.Generic.Regex: splitWithRegex' :: (StringLike s) => GenRegex s -> s -> Maybe (GenRegex s, s)
+ Text.Regex.XMLSchema.Generic.Regex: splitWithRegex' :: StringLike s => GenRegex s -> s -> Maybe (GenRegex s, s)
- Text.Regex.XMLSchema.Generic.Regex: splitWithRegexCS :: (StringLike s) => GenRegex s -> CharSet -> s -> Maybe (SubexResults s, s)
+ Text.Regex.XMLSchema.Generic.Regex: splitWithRegexCS :: StringLike s => GenRegex s -> CharSet -> s -> Maybe (SubexResults s, s)
- Text.Regex.XMLSchema.Generic.Regex: splitWithRegexCS' :: (StringLike s) => GenRegex s -> CharSet -> s -> Maybe (GenRegex s, s)
+ Text.Regex.XMLSchema.Generic.Regex: splitWithRegexCS' :: StringLike s => GenRegex s -> CharSet -> s -> Maybe (GenRegex s, s)
- Text.Regex.XMLSchema.Generic.StringLike: class (Eq a, IsString a, Show a) => StringLike a where nullS = isNothing . uncons headS (uncons -> Just (c, _)) = c headS _ = error "headS: empty StringLike" concatS = foldl appendS emptyS
+ Text.Regex.XMLSchema.Generic.StringLike: class (Eq a, IsString a, Show a) => StringLike a
- Text.Regex.XMLSchema.String: errRegex :: (StringLike s) => GenRegex s -> s
+ Text.Regex.XMLSchema.String: errRegex :: StringLike s => GenRegex s -> s
- Text.Regex.XMLSchema.String: mkAll :: (StringLike s) => GenRegex s
+ Text.Regex.XMLSchema.String: mkAll :: StringLike s => GenRegex s
- Text.Regex.XMLSchema.String: mkAlt :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.String: mkAlt :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.String: mkCompl :: (StringLike s) => GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.String: mkCompl :: StringLike s => GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.String: mkDiff :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.String: mkDiff :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.String: mkElse :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.String: mkElse :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.String: mkExor :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.String: mkExor :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.String: mkIsect :: (StringLike s) => GenRegex s -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.String: mkIsect :: StringLike s => GenRegex s -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.String: mkOpt :: (StringLike s) => GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.String: mkOpt :: StringLike s => GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.String: mkRep :: (StringLike s) => Int -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.String: mkRep :: StringLike s => Int -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.String: mkRng :: (StringLike s) => Int -> Int -> GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.String: mkRng :: StringLike s => Int -> Int -> GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.String: mkStar :: (StringLike s) => GenRegex s -> GenRegex s
+ Text.Regex.XMLSchema.String: mkStar :: StringLike s => GenRegex s -> GenRegex s
- Text.Regex.XMLSchema.String: mkSym1 :: (StringLike s) => Char -> GenRegex s
+ Text.Regex.XMLSchema.String: mkSym1 :: StringLike s => Char -> GenRegex s
- Text.Regex.XMLSchema.String: mkSymRng :: (StringLike s) => Char -> Char -> GenRegex s
+ Text.Regex.XMLSchema.String: mkSymRng :: StringLike s => Char -> Char -> GenRegex s
- Text.Regex.XMLSchema.String: mkWord :: (StringLike s) => [Char] -> GenRegex s
+ Text.Regex.XMLSchema.String: mkWord :: StringLike s => [Char] -> GenRegex s
Files
- hxt-regex-xmlschema.cabal +2/−2
- src/Text/Regex/XMLSchema/Generic/Matching.hs +1/−1
- src/Text/Regex/XMLSchema/Generic/Regex.hs +19/−9
- test/Date.hs +11/−11
hxt-regex-xmlschema.cabal view
@@ -1,5 +1,5 @@ Name: hxt-regex-xmlschema-Version: 9.2.0.3+Version: 9.2.0.7 Synopsis: A regular expression library for W3C XML Schema regular expressions Description: This library supports full W3C XML Schema regular expressions inclusive all Unicode character sets and blocks.@@ -61,7 +61,7 @@ build-depends: base >= 4 && < 5 , bytestring >= 0.10- , hxt-charproperties >= 9 && < 10+ , hxt-charproperties >= 9 , parsec >= 2.1 && < 4 , text >= 0.10
src/Text/Regex/XMLSchema/Generic/Matching.hs view
@@ -244,7 +244,7 @@ token1'' = token' re1 fcs -- token' :: StringLike s => GenRegex s -> CharSet -> (s, Int) -> s -> [Either s s]- token' re' fcs' (uns, ! n) inp+ token' re' fcs' (uns, !n) inp | nullS inp = addUnmatched [] | otherwise = evalRes . splitWithRegexCS re' fcs' $ inp where
src/Text/Regex/XMLSchema/Generic/Regex.hs view
@@ -1,4 +1,5 @@-{-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE ViewPatterns #-} {-# LANGUAGE FlexibleInstances #-} @@ -22,7 +23,7 @@ module Text.Regex.XMLSchema.Generic.Regex ( GenRegex- + , mkZero , mkZero' , mkUnit@@ -69,10 +70,15 @@ where import Data.List (intercalate)-import Data.Monoid ((<>)) import Data.Set.CharSet import Data.String (IsString(..)) +#if MIN_VERSION_base(4,13,0)+#else+import Data.Monoid ((<>))+#endif++ import Text.Regex.XMLSchema.Generic.StringLike {-@@ -109,7 +115,7 @@ -- see splitWithRegex type SubexResults s = [(Label s, s)]- + type Nullable s = (Bool, SubexResults s) @@ -427,7 +433,7 @@ mkCbr ss e = Cbr ss e -- ------------------------------------------------------------- + instance (StringLike s) => Show (GenRegex s) where show (Zero e) = "{" ++ toString e ++ "}" show Unit = "()"@@ -471,7 +477,7 @@ show (Intl e1 e2) = "(" ++ show e1 ++ "{:}" ++ show e2 ++ ")" show (Br l e) = "({" ++ showL l ++ "}" ++ show e ++ ")" show (Obr l s n e) = "({" ++ showL l ++ "=" ++ toString (takeS n s) ++ "}" ++ show e ++ ")"- show (Cbr ss e) = "([" ++ intercalate "," (map (\ (l, s) -> showL l ++ "=" ++ toString s) ss) ++ "]"+ show (Cbr ss e) = "([" ++ intercalate "," (map (\ (l, s) -> showL l ++ "=" ++ (show $ toString s)) ss) ++ "]" ++ show e ++ ")" @@ -594,6 +600,11 @@ d' e@(Star e1) = mkSeq (d' e1) e d' (Alt e1 e2) = mkAlt (d' e1) (d' e2) d' (Else e1 e2) = mkElse (d' e1) (d' e2)++ d' (Seq e1@(Br l e1') e2)+ | nullable e1' = mkAlt (mkSeq (d' e1) e2) -- longest submatch first+ (mkCbr [(l, emptyS)] (d' e2))+ d' (Seq e1@(Obr l s n e1') e2) | nu = mkAlt (mkSeq (d' e1) e2) (mkCbr ((l, takeS n s) : ws) (d' e2))@@ -610,7 +621,7 @@ d' (Exor e1 e2) = mkExor (d' e1) (d' e2) d' (Intl e1 e2) = mkAlt (mkInterleave (d' e1) e2 ) (mkInterleave e1 (d' e2))- + d' (Br l e) = d' (mkObr l inp 0 e) -- a subex parse starts d' (Obr l s n e) = mkObr l s (n + 1) (d' e) -- a subex parse cont. d' (Cbr ss e) = mkCbr ss (d' e) -- the results of a subex parse@@ -623,7 +634,7 @@ where d' e@(Zero _) = e -- don't process whole input, parse has failed d' e@(Star Dot) = e -- don't process input, derivative does not change- d' e = delta inp' ( -- trc "delta1=" $+ d' e = delta inp' ( -- trc ("delta(" ++ show c ++ ")=") $ delta1 c inp e) delta _empty e@@ -726,4 +737,3 @@ | otherwise = Nothing -- -------------------------------------------------------------
test/Date.hs view
@@ -218,23 +218,23 @@ -- must be extended for weekday or semester, if neccessay -data DateVal = DT { _year :: ! Int- , _month :: ! Int- , _day :: ! Int- , _hour :: ! Int- , _min :: ! Int+data DateVal = DT { _year :: !Int+ , _month :: !Int+ , _day :: !Int+ , _hour :: !Int+ , _min :: !Int } deriving (Eq, Show) -data DateParse = DP { _pre :: StringFct- , _rep :: StringFct- , _dat :: ! DateVal+data DateParse = DP { _pre :: StringFct+ , _rep :: StringFct+ , _dat :: !DateVal } -- just a helper for result output-data DateRep = DR { _p :: String- , _r :: String- , _d :: ! DateVal+data DateRep = DR { _p :: String+ , _r :: String+ , _d :: !DateVal } deriving (Eq, Show)