packages feed

cgrep 6.4.16 → 6.4.17

raw patch · 6 files changed

+38/−25 lines, 6 files

Files

README.md view
@@ -4,7 +4,7 @@ Usage ----- -Cgrep 6.4.16 Usage: cgrep [OPTION] [PATTERN] files...+Cgrep 6.4.17 Usage: cgrep [OPTION] [PATTERN] files...  cgrep [OPTIONS] [ITEM] 
cgrep.cabal view
@@ -1,6 +1,6 @@ Name:                cgrep Description:         Cgrep: a context-aware grep for source codes-Version:             6.4.16+Version:             6.4.17 Synopsis:            Command line tool Homepage:            http://awgn.github.io/cgrep/ License:             GPL-2
src/CGrep/Semantic/WildCard.hs view
@@ -19,6 +19,8 @@ module CGrep.Semantic.WildCard (WildCard(..), MultiCard,                                 filterTokensWithMultiCards,                                 wildCardMatch,+                                isWildCardPattern,+                                rmWildCardEscape,                                 multiCardMatch) where  import qualified Data.Map as M@@ -79,6 +81,22 @@         where ts = multiCardGroupCompare opt l r  +isWildCardPattern :: String -> Bool+isWildCardPattern s =+    case () of+        _ | (x:y:_) <- s   -> wprefix x && not (wprefix y)+          | [x]     <- s   -> wprefix x+          | otherwise     -> error "isWildCardPattern"+    where wprefix x = x == '$' || x == '_'+++rmWildCardEscape :: String -> String+rmWildCardEscape ('$':'_':xs) = '_' : xs+rmWildCardEscape ('_':'_':xs) = '_' : xs+rmWildCardEscape ('$':'$':xs) = '$' : xs+rmWildCardEscape xs = xs++ {-# INLINE multiCardCompareAll #-}  multiCardCompareAll :: [(Bool, (MultiCard a, [String]))] -> Bool@@ -127,7 +145,7 @@ tokensZip :: (SemanticToken a) => Options -> MultiCard a -> a -> (Bool, (MultiCard a, [String])) tokensZip opt l r     |  multiCardMatch opt l r = (True,  (l, [tkToString r]))-    |  otherwise             =  (False, ([AnyCard],[] ))+    |  otherwise              =  (False, ([AnyCard],[] ))   multiCardMatch :: (SemanticToken t) => Options ->  MultiCard t -> t -> Bool
src/CGrep/Strategy/Cpp/Semantic.hs view
@@ -55,10 +55,8 @@     -- pre-process patterns          patterns   = map (Cpp.tokenizer . contextFilter (Just Cpp) filt) ps  -- [ [t1,t2,..], [t1,t2...] ]--        patterns'  = map (map mkWildCard) patterns                 -- [ [w1,w2,..], [w1,w2,..] ]--        patterns'' = map (combineMultiCard . map (:[])) patterns'  -- [ [m1,m2,..], [m1,m2,..] ] == [ [ [w1], [w2],..], [[w1],[w2],..]]+        patterns'  = map (map mkWildCard) patterns                           -- [ [w1,w2,..], [w1,w2,..] ]+        patterns'' = map (combineMultiCard . map (:[])) patterns'            -- [ [m1,m2,..], [m1,m2,..] ] == [ [ [w1], [w2],..], [[w1],[w2],..]]      -- quick Search... @@ -130,14 +128,12 @@                 ("LIT", LiteralCard )             ] - mkWildCard :: Cpp.Token -> WildCard Cpp.Token-mkWildCard t@(Cpp.TokenIdentifier s _) =+mkWildCard t@(Cpp.TokenIdentifier s off) =     case () of         _  |  Just wc <-  M.lookup str wildCardMap -> wc-           | ('$':_)  <- s             -> IdentifCard str-           | ('_':_)  <- s             -> IdentifCard str-           | otherwise                 -> TokenCard t+           | isWildCardPattern s -> IdentifCard str+           | otherwise           -> TokenCard $ Cpp.TokenIdentifier (rmWildCardEscape s) off     where str = tkToString t mkWildCard t = TokenCard t @@ -145,9 +141,9 @@ combineMultiCard :: [MultiCard Cpp.Token] -> [MultiCard Cpp.Token] combineMultiCard (m1:r@(m2:m3:ms))     | [TokenCard (Cpp.TokenIdentifier {Cpp.toString = "OR"})] <- m2 =  combineMultiCard $ (m1++m3):ms-    | otherwise             =  m1 : combineMultiCard r-combineMultiCard [m1,m2]    =  [m1,m2]-combineMultiCard [m1]       =  [m1]-combineMultiCard []         =  []+    | otherwise          =  m1 : combineMultiCard r+combineMultiCard [m1,m2] =  [m1,m2]+combineMultiCard [m1]    =  [m1]+combineMultiCard []      =  []  
src/CGrep/Strategy/Generic/Semantic.hs view
@@ -120,12 +120,11 @@   mkWildCard :: Generic.Token -> WildCard Generic.Token-mkWildCard t@(Generic.TokenAlpha s _) =+mkWildCard t@(Generic.TokenAlpha s off) =     case () of         _  |  Just wc <-  M.lookup str wildCardMap -> wc-           | ('$':_)  <- s             -> IdentifCard str-           | ('_':_)  <- s             -> IdentifCard str-           | otherwise                 -> TokenCard t+           | isWildCardPattern s -> IdentifCard str+           | otherwise           -> TokenCard $ Generic.TokenAlpha (rmWildCardEscape s) off     where str = tkToString t mkWildCard t = TokenCard t @@ -133,9 +132,9 @@ combineMultiCard :: [MultiCard Generic.Token] -> [MultiCard Generic.Token] combineMultiCard (m1:r@(m2:m3:ms))     | [TokenCard (Generic.TokenAlpha {Generic.toString = "OR"})] <- m2 =  combineMultiCard $ (m1++m3):ms-    | otherwise             =  m1 : combineMultiCard r-combineMultiCard [m1,m2]    =  [m1,m2]-combineMultiCard [m1]       =  [m1]-combineMultiCard []         =  []+    | otherwise          =  m1 : combineMultiCard r+combineMultiCard [m1,m2] =  [m1,m2]+combineMultiCard [m1]    =  [m1]+combineMultiCard []      =  []  
src/Config.hs view
@@ -31,7 +31,7 @@ cgreprc = "cgreprc"  version :: String-version = "6.4.16"+version = "6.4.17"   data Config = Config