xhaskell-library 0.0.4 → 0.0.5
raw patch · 2 files changed
+20/−7 lines, 2 files
Files
Text/Regex/PDeriv/ByteString/Posix.lhs view
@@ -19,6 +19,10 @@ > , regexec > ) where ++> import System.IO.Unsafe++ > import Data.List > import Data.Char (ord) > import GHC.Int@@ -26,6 +30,7 @@ > import qualified Data.IntMap as IM > import qualified Data.ByteString.Char8 as S + > import Text.Regex.Base(RegexOptions(..),RegexLike(..),MatchArray) @@ -38,6 +43,9 @@ +> logger io = unsafePerformIO io++ A word is a byte string. > type Word = S.ByteString@@ -174,7 +182,10 @@ > let rs = map snd bs > rs' = map snd bs' > os = map (\ (r,r') -> compareRangeLocal r r') (zip rs rs')-> in firstNonEQ os+> in {- logger (print (show os)) `seq` +> logger (print (show bs)) `seq` +> logger (print (show bs')) `seq` -}+> firstNonEQ os > compareRangeLocal :: [Range] -> [Range] -> Ordering > compareRangeLocal [] [] = EQ@@ -182,7 +193,8 @@ > | (len x) > (len y) = GT > | (len x) == (len y) = compareRangeLocal xs ys > | otherwise = LT-> compareRangeLocal _ _ = LT+> compareRangeLocal (_:_) [] = GT+> compareRangeLocal [] (_:_) = LT > {- > compareRangeLocal [] _ = LT > compareRangeLocal _ [] = GT@@ -324,8 +336,8 @@ > in if null pds then [] > else [ (PE (resToRE pds), ( \_ -> id ), [] ) ] > pdPat0 (PStar p g) l = let pfs = pdPat0 p l-> f' = resetLocalBnd p -- restart all local binder in variables in p-> in [ (PPair p' (PStar p g), (\ i -> (f i) . f'), vs) | (p', f, vs) <- pfs ]+> reset = resetLocalBnd p -- restart all local binder in variables in p+> in [ (PPair p' (PStar p g), (\ i -> reset . (f i) ), vs) | (p', f, vs) <- pfs ] > -- in [ (PPlus p' (PStar p), f) | (p', f) <- pfs ] > {- > pdPat0 (PPlus p1 p2@(PStar _)) l -- we drop this case since it make difference with the PPair@@ -467,7 +479,7 @@ > _ -> error (show (mbPrefixB, mbSubfixB) ) > rs = map snd subPatB > in listToArray (mainB:(map (\r -> case r of { (_:_) -> fromRange (last r) ; [] -> (-1,0) } ) rs))-> where fromRange (b,e) = (b, e)+> where fromRange (b,e) = (b, e-b+1) > listToArray l = listArray (0,length l-1) l @@ -490,6 +502,7 @@ > Right r2 = compile defaultCompOpt defaultExecOpt (S.pack "^((a)|(aa))*$") > s2 = S.pack "aa" +We should reset after apply f 0: "(xy : ((x : a)|(y: aa)))*"
xhaskell-library.cabal view
@@ -1,5 +1,5 @@ Name: xhaskell-library-Version: 0.0.4+Version: 0.0.5 License: BSD3 License-File: LICENSE Copyright: Copyright (c) 2009, Kenny Zhuo Ming Lu and Martin Sulzmann@@ -40,5 +40,5 @@ Text.Regex.PDeriv.Dictionary Buildable: True Extensions: GADTs, MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, TypeSynonymInstances, FlexibleContexts- GHC-Options: -O2 + GHC-Options: GHC-Prof-Options: -auto-all