regex-examples 0.13.0.0 → 0.14.0.0
raw patch · 10 files changed
+315/−203 lines, 10 filesdep ~regexdep ~regex-with-pcre
Dependency ranges changed: regex, regex-with-pcre
Files
- README.markdown +4/−2
- changelog +8/−0
- examples/TestKit.lhs +1/−1
- examples/re-gen-cabals.lhs +82/−33
- examples/re-prep.lhs +155/−104
- examples/re-sort-imports.lhs +3/−1
- examples/re-tests.lhs +3/−3
- lib/mega-regex.cabal +27/−27
- lib/version.txt +1/−1
- regex-examples.cabal +31/−31
README.markdown view
@@ -74,9 +74,11 @@ ☒ 2017-03-31 v0.12.0.0 [Move IsRegex into Text.RE](https://github.com/iconnect/regex/milestone/16) - ☒ 2017-04-02 v0.13.0.0 [Protect findCaptureID and add Find, re-sort-imports, tutorials](https://github.com/iconnect/regex/milestone/17)+ ☒ 2017-04-03 v0.13.0.0 [Protect findCaptureID and add Find, re-sort-imports](https://github.com/iconnect/regex/milestone/17) - ☐ 2017-04-03 v1.0.0.0 [First stable release](https://github.com/iconnect/regex/milestone/3)+ ☒ 2017-04-04 v0.14.0.0 [Move IsOption, rename Find functions](https://github.com/iconnect/regex/milestone/18)++ ☐ 2017-04-10 v1.0.0.0 [First stable release](https://github.com/iconnect/regex/milestone/3) ☐ 2017-08-31 v2.0.0.0 [Fast text replacement with benchmarks](https://github.com/iconnect/regex/milestone/4)
changelog view
@@ -1,5 +1,13 @@ -*-change-log-*- +0.14.0.0 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-04-05+ * Move IsOption into the back ends (#115)+ * Rename Find functions (#116)+ * re-gen-cabals: 'sdist' to prepare final commit message (#117)+ * re-prep: 'blog-badge' to update the blog badge (#118)+ * re-prep: include_code_pp for all .lhs files (#119)+ * re-gen-cabals: do 'gen' after 'bump-version' (#120)+ 0.13.0.0 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-04-03 * Add a Find Tool (#106) * TestBench to export Text.RE (#107)
examples/TestKit.lhs view
@@ -263,7 +263,7 @@ (hdr,bdy) = span (not . anyMatches . getLineMatches) lns lns = grepFilter rex lbs- rex = [re|^import +(qualified)? +${mod}([^ ].*)$|]+ rex = [re|^import +(qualified)? +${mod}([^ ].*)$|] \end{code}
examples/re-gen-cabals.lhs view
@@ -39,7 +39,7 @@ import Text.Printf import Text.RE.Replace import Text.RE.TDFA.ByteString.Lazy-import Text.RE.TDFA.Text as T+import qualified Text.RE.TDFA.Text as T import Text.RE.Tools.Grep import Text.RE.Tools.Sed @@ -50,15 +50,11 @@ case as of [] -> test ["test"] -> test- ["bump-version",vrn] -> bumpVersion vrn+ ["bump-version",vrn] -> bumpVersion vrn >> gen ["test-release",vrn] -> test_release $ T.pack vrn+ ["commit-message"] -> commit_message ["sdist"] -> sdist- ["gen"] -> do- gen "lib/cabal-masters/mega-regex.cabal" "lib/mega-regex.cabal"- gen "lib/cabal-masters/regex.cabal" "lib/regex.cabal"- gen "lib/cabal-masters/regex-with-pcre.cabal" "lib/regex-with-pcre.cabal"- gen "lib/cabal-masters/regex-examples.cabal" "lib/regex-examples.cabal"- establish "mega-regex" "regex"+ ["gen"] -> gen _ -> do let prg = ((" "++pn++" ")++) hPutStr stderr $ unlines@@ -67,6 +63,7 @@ , prg "[test]" , prg "bump-version <version>" , prg "test-release <version>"+ , prg "commit-message" , prg "sdist" , prg "gen" ]@@ -75,14 +72,22 @@ test :: IO () test = do createDirectoryIfMissing False "tmp"- gen "lib/cabal-masters/mega-regex.cabal" "tmp/mega-regex.cabal"+ gen1 "lib/cabal-masters/mega-regex.cabal" "tmp/mega-regex.cabal" ok <- cmp "tmp/mega-regex.cabal" "lib/mega-regex.cabal" case ok of True -> return () False -> exitWith $ ExitFailure 1 -gen :: FilePath -> FilePath -> IO ()-gen in_f out_f = do+gen :: IO ()+gen = do+ gen1 "lib/cabal-masters/mega-regex.cabal" "lib/mega-regex.cabal"+ gen1 "lib/cabal-masters/regex.cabal" "lib/regex.cabal"+ gen1 "lib/cabal-masters/regex-with-pcre.cabal" "lib/regex-with-pcre.cabal"+ gen1 "lib/cabal-masters/regex-examples.cabal" "lib/regex-examples.cabal"+ establish "mega-regex" "regex"++gen1 :: FilePath -> FilePath -> IO ()+gen1 in_f out_f = do ctx <- setup LBS.writeFile out_f =<< sed' (gc_script ctx) =<< substVersion_ =<< include =<<@@ -291,16 +296,19 @@ \begin{code} sdist :: IO () sdist = do+ createDirectoryIfMissing False "tmp" sdist' "regex" "lib/README-regex.md" sdist' "regex-with-pcre" "lib/README-regex.md" sdist' "regex-examples" "lib/README-regex-examples.md" establish "mega-regex" "regex"- vrn_t <- T.pack . presentVrn <$> readCurrentVersion+ vrn <- readCurrentVersion+ let vrn_t = T.pack $ presentVrn vrn test_release vrn_t- smy_t <- summary+ smy_t <- summary vrn+ commit_message_ "tmp/commit.txt" vrn smy_t SH.shelly $ SH.verbosely $ do SH.run_ "git" ["add","--all"]- SH.run_ "git" ["commit","-m",vrn_t<>": "<>smy_t]+ SH.run_ "git" ["commit","-F","tmp/commit.txt"] SH.run_ "git" ["tag",vrn_t,"-m",smy_t] sdist' :: T.Text -> SH.FilePath -> IO ()@@ -328,24 +336,6 @@ sf = "lib/"<>nm<>".cabal" df = nm'<>".cabal" -summary :: IO T.Text-summary = do- vrn <- SH.liftIO readCurrentVersion- let vrn_res = concat- [ show $ _vrn_a vrn- , "\\."- , show $ _vrn_b vrn- , "\\."- , show $ _vrn_c vrn- , "\\."- , show $ _vrn_d vrn- ]- rex <- compileRegex $ "- \\[[xX]\\] +@{%date} +v"++vrn_res++" +\\[?${smy}([^]]+)"- lns <- linesMatched LinesMatched <$> grepLines rex "lib/md/roadmap-incl.md"- case lns of- [Line _ (Matches _ [mtch])] -> return $ TE.decodeUtf8 $ LBS.toStrict $ mtch !$$ [cp|smy|]- _ -> error "failed to locate the summary text in the roadmap"- test_release :: T.Text -> IO () test_release vrn_t = do setCurrentDirectory "releases"@@ -368,4 +358,63 @@ \end{code} -let vrn_res = concat [ show $ _vrn_a vrn, "\\.", show $ _vrn_b vrn, "\\.", show $ _vrn_c vrn, "\\.", show $ _vrn_d vrn ]+Building the Release Commit Message from the Changelog+------------------------------------------------------++\begin{code}+commit_message :: IO ()+commit_message = do+ createDirectoryIfMissing False "tmp"+ vrn <- readCurrentVersion+ smy_t <- summary vrn+ commit_message_ "tmp/commit.txt" vrn smy_t+ LBS.readFile "tmp/commit.txt" >>= LBS.putStrLn++commit_message_ :: FilePath -> Vrn -> T.Text -> IO ()+commit_message_ fp vrn@Vrn{..} smy_t = do+ rex <- escape ("^"++) vrn_s+ parse_commit smy_ln <$> grepLines rex "changelog" >>= LBS.writeFile fp+ where+ smy_ln = vrn_s ++ ": " ++ T.unpack smy_t+ vrn_s = presentVrn vrn++parse_commit :: String -> [Line LBS.ByteString] -> LBS.ByteString+parse_commit hdr lns0 = case lns0 of+ _:_:ln:lns | anyMatches $ getLineMatches ln+ -> LBS.unlines $ LBS.pack hdr : map fixes (takeWhile is_bullet lns)+ _ -> error oops+ where+ is_bullet Line{..} =+ LBS.take 4 (matchesSource getLineMatches) == " * "++ fixes Line{..} =+ matchesSource getLineMatches *=~/ [ed|#${n}([0-9]+)///fixes #${n}|]++ oops = unlines+ [ "failed to parse changelog"+ , "(expected line 3 to start with the current version)"+ ]+\end{code}+++Extracting the summary from the Roadmap+---------------------------------------++\begin{code}+summary :: Vrn -> IO T.Text+summary vrn = do+ let vrn_res = concat+ [ show $ _vrn_a vrn+ , "\\."+ , show $ _vrn_b vrn+ , "\\."+ , show $ _vrn_c vrn+ , "\\."+ , show $ _vrn_d vrn+ ]+ rex <- compileRegex $ "- \\[[xX]\\] +@{%date} +v"++vrn_res++" +\\[?${smy}([^]]+)"+ lns <- linesMatched LinesMatched <$> grepLines rex "lib/md/roadmap-incl.md"+ case lns of+ [Line _ (Matches _ [mtch])] -> return $ TE.decodeUtf8 $ LBS.toStrict $ mtch !$$ [cp|smy|]+ _ -> error "failed to locate the summary text in the roadmap"+\end{code}
examples/re-prep.lhs view
@@ -23,8 +23,10 @@ ) where import Control.Applicative+import qualified Data.ByteString.Char8 as B import qualified Data.ByteString.Lazy.Char8 as LBS import Data.IORef+import qualified Data.List as L import Data.Maybe import Data.Monoid import qualified Data.Text as T@@ -56,15 +58,15 @@ ["doc",fn,fn'] | is_file fn -> doc fn fn' ["gen",fn,fn'] | is_file fn -> gen fn fn' ["badges"] -> badges- ["bump-version",vrn] -> bumpVersion vrn+ ["blog-badge"] -> blog_badge ["pages"] -> pages ["all"] -> gen_all _ -> usage where is_file = not . (== "--") . take 2 - doc fn fn' = prep_tut Doc fn fn'- gen fn fn' = genMode >>= \gm -> prep_tut gm fn fn'+ doc fn fn' = prepare_tutorial Doc fn fn'+ gen fn fn' = genMode >>= \gm -> prepare_tutorial gm fn fn' usage = do pnm <- getProgName@@ -74,7 +76,6 @@ , prg "--help" , prg "[test]" , prg "badges"- , prg "bump-version <version>" , prg "pages" , prg "all" , prg "doc (-|<in-file>) (-|<out-file>)"@@ -83,83 +84,6 @@ \end{code} -The Sed Script-----------------\begin{code}--- | the MODE determines whether we are generating documentation--- or a Haskell testsuite and includes any IO-accessible state--- needed by the relevant processor-data MODE- = Doc -- ^ generating mardown+lhs input for pandoc- | Gen GenState -- ^ adjusting-the-program-for-testing state-\end{code}--The `DocState` is initialised to `Outside` and flips though the different-states as it traverses a code block, so that we can wrap code-blocks in special `<div class="replcodeblock">` blocks when their-first line indicates that it contains a REPL calculation, which the-style sheet can pick up and present accordingly.--\begin{code}--- | the state is the accumulated test function identifiers for--- generating the list of them gets added to the end of the programme-type GenState = IORef [String]--genMode :: IO MODE-genMode = Gen <$> newIORef []-\end{code}---\begin{code}-prep_tut :: MODE -> FilePath -> FilePath -> IO ()-prep_tut mode =- sed $ Select- [ Function [re|^%include ${file}(@{%string}) ${rex}(@{%string})$|] TOP $ inclde mode- , LineEdit [re|^%main ${arg}(top|bottom)$|] $ main_ mode- , Function [re|^${fn}(evalme@{%id}) = checkThis ${arg}(@{%string}) \(${ans}([^)]+)\) \$ *${exp}(.*)$|]- TOP $ evalme mode- , Function [re|^.*$|] TOP $ passthru- ]-\end{code}--\begin{code}-inclde,- evalme :: MODE- -> LineNo- -> Match LBS.ByteString- -> RELocation- -> Capture LBS.ByteString- -> IO (Maybe LBS.ByteString)--main_ :: MODE- -> LineNo- -> Matches LBS.ByteString- -> IO (LineEdit LBS.ByteString)--inclde Doc = includeDoc-inclde (Gen _ ) = passthru--main_ Doc = delete-main_ (Gen gs) = mainGen gs--evalme Doc = evalmeDoc-evalme (Gen gs) = evalmeGen gs--passthru :: LineNo- -> Match LBS.ByteString- -> RELocation- -> Capture LBS.ByteString- -> IO (Maybe LBS.ByteString)-passthru _ _ _ _ = return Nothing--delete :: LineNo- -> Matches LBS.ByteString- -> IO (LineEdit LBS.ByteString)-delete _ _ = return Delete-\end{code}-- Script to Generate the Whole Web Site ------------------------------------- @@ -172,6 +96,7 @@ pd "re-include" pd "re-nginx-log-processor" pd "re-prep"+ pd "re-sort-imports" pd "re-tests" pd "TestKit" pd "RE/REOptions"@@ -200,21 +125,21 @@ (Just fdr,Just mnm) -> pandoc_lhs ("Text.RE."++fdr++"."++mnm) ("Text/" ++fnm++".lhs") ("docs/"++mnm++".html") _ -> pandoc_lhs ("examples/"++fnm++".lhs" ) ("examples/"++fnm++".lhs") ("docs/"++fnm++".html") where- mtch = fnm TS.?=~ [re|^RE/(${fdr}(Internal|PCRE|TDFA|Testbench|Tools|Types)/)?${mnm}(@{%id})|]+ mtch = fnm TS.?=~ [re|^RE/(${fdr}([a-zA-Z/]+)/)?${mnm}(@{%id})|] \end{code} \begin{code} gen_tutorial :: String -> IO () gen_tutorial nm = do- prep_tut Doc ("examples" </> mst) ("tmp" </> tgt)+ prepare_tutorial Doc ("examples" </> mst) ("tmp" </> tgt) pandoc_lhs' tgt ("examples" </> tgt) ("tmp" </> tgt) ("docs" </> htm) -- generate the tutorial-based tests gm <- genMode- prep_tut gm ("examples" </> mst) ("examples" </> tgt)+ prepare_tutorial gm ("examples" </> mst) ("examples" </> tgt) putStrLn $ ">> " ++ ("examples" </> tgt) where tgt = "re-" ++ nm ++ ".lhs"@@ -223,25 +148,80 @@ \end{code} -Generating the Tutorial------------------------+The Tutorial Preprocessor+------------------------- \begin{code}-includeDoc :: LineNo- -> Match LBS.ByteString- -> RELocation- -> Capture LBS.ByteString- -> IO (Maybe LBS.ByteString)-includeDoc _ mtch _ _ = fmap Just $- extract fp =<< compileRegex re_s+-- | the MODE determines whether we are generating documentation+-- or a Haskell testsuite and includes any IO-accessible state+-- needed by the relevant processor+data MODE+ = Doc -- ^ generating mardown+lhs input for pandoc+ | Gen GenState -- ^ adjusting-the-program-for-testing state+\end{code}++The `DocState` is initialised to `Outside` and flips though the different+states as it traverses a code block, so that we can wrap code+blocks in special `<div class="replcodeblock">` blocks when their+first line indicates that it contains a REPL calculation, which the+style sheet can pick up and present accordingly.++\begin{code}+-- | the state is the accumulated test function identifiers for+-- generating the list of them gets added to the end of the programme+type GenState = IORef [String]++genMode :: IO MODE+genMode = Gen <$> newIORef []+\end{code}++\begin{code}+prepare_tutorial :: MODE -> FilePath -> FilePath -> IO ()+prepare_tutorial mode fp_in fp_out =+ LBS.readFile fp_in >>= prep_tutorial_pp mode >>= incld >>=+ LBS.writeFile fp_out where- fp = prs_s $ captureText [cp|file|] mtch- re_s = prs_s $ captureText [cp|rex|] mtch+ incld = case mode of+ Doc -> include_code_pp+ Gen _ -> return+\end{code} - prs_s = maybe (error "includeDoc") T.unpack . parseString+\begin{code}+prep_tutorial_pp :: MODE -> LBS.ByteString -> IO LBS.ByteString+prep_tutorial_pp mode =+ sed' $ Select+ [ LineEdit [re|^%main ${arg}(top|bottom)$|] $ main_ mode+ , Function [re|^${fn}(evalme@{%id}) = checkThis ${arg}(@{%string}) \(${ans}([^)]+)\) \$ *${exp}(.*)$|]+ TOP $ evalme mode+ , Function [re|^.*$|] TOP $ passthru+ ] \end{code} \begin{code}+evalme :: MODE+ -> LineNo+ -> Match LBS.ByteString+ -> RELocation+ -> Capture LBS.ByteString+ -> IO (Maybe LBS.ByteString)+evalme Doc = evalmeDoc+evalme (Gen gs) = evalmeGen gs++main_ :: MODE+ -> LineNo+ -> Matches LBS.ByteString+ -> IO (LineEdit LBS.ByteString)+main_ Doc = delete+main_ (Gen gs) = mainGen gs+++delete :: LineNo+ -> Matches LBS.ByteString+ -> IO (LineEdit LBS.ByteString)+delete _ _ = return Delete+\end{code}++\begin{code} evalmeDoc :: LineNo -> Match LBS.ByteString -> RELocation@@ -253,10 +233,6 @@ ] \end{code} --Generating the Tests---------------------- \begin{code} evalmeGen :: GenState -> LineNo@@ -328,6 +304,47 @@ \end{code} +include_code_pp+---------------++\begin{code}+include_code_pp :: LBS.ByteString -> IO LBS.ByteString+include_code_pp =+ sed' $ Select+ [ Function [re|^%include ${file}(@{%string}) ${rex}(@{%string})$|] TOP inc_code+ , Function [re|^.*$|] TOP passthru+ ]+\end{code}++\begin{code}+inc_code :: LineNo+ -> Match LBS.ByteString+ -> RELocation+ -> Capture LBS.ByteString+ -> IO (Maybe LBS.ByteString)+inc_code _ mtch _ _ = fmap Just $+ extract fp =<< compileRegex re_s+ where+ fp = prs_s $ captureText [cp|file|] mtch+ re_s = prs_s $ captureText [cp|rex|] mtch++ prs_s = maybe (error "include_code") T.unpack . parseString+\end{code}+++passthru action+---------------++\begin{code}+passthru :: LineNo+ -> Match LBS.ByteString+ -> RELocation+ -> Capture LBS.ByteString+ -> IO (Maybe LBS.ByteString)+passthru _ _ _ _ = return Nothing+\end{code}++ Extracting a Literate Fragment from a Haskell Program Text ---------------------------------------------------------- @@ -409,6 +426,30 @@ \end{code} +blog_badge+----------++\begin{code}+blog_badge :: IO ()+blog_badge = do+ dts <- L.sortBy (flip compare) . map (take 10) <$>+ getDirectoryContents "../regex-blog/posts"+ case dts of+ [] -> error "No posts found!"+ dt:_ -> case matched $ dt_lbs ?=~ date_re of+ False -> error $ "Post date format not recognised: " ++ dt+ True -> do+ putStrLn $ "Latest blog is: " ++ dt+ lbs <- lbsReadFile badges_file+ LBS.writeFile badges_file $ replaceAll dt_lbs $ lbs *=~ date_re+ where+ dt_lbs = LBS.pack dt+ where+ date_re = [re|[0-9]{4}-[0-9]{2}-[0-9]{2}|]+ badges_file = "docs/badges/blog.svg"+\end{code}++ pages ----- @@ -448,7 +489,8 @@ page_docs_file pg = "docs/" ++ page_root pg ++ ".html" page_address :: Page -> LBS.ByteString-page_address = LBS.pack . page_root+page_address PG_reblog = "blog"+page_address pg = LBS.pack $ page_root pg page_title :: Page -> LBS.ByteString page_title pg = case pg of@@ -722,6 +764,7 @@ pandoc_lhs' :: String -> String -> String -> String -> IO () pandoc_lhs' title repo_path in_file out_file = do+ lbsReadFile in_file >>= include_code_pp >>= LBS.writeFile int_file LBS.writeFile "tmp/metadata.markdown" $ LBS.unlines [ "---"@@ -744,7 +787,7 @@ , "-c", "lib/bs.css" , "-o", T.pack out_file , "tmp/metadata.markdown"- , T.pack in_file+ , T.pack int_file ] where bc = LBS.unlines@@ -769,6 +812,8 @@ [ "https://github.com/iconnect/regex/blob/master/" , LBS.pack repo_path ]++ int_file = "tmp/pandoc-int.lhs" \end{code} @@ -827,8 +872,14 @@ \begin{code} test :: IO () test = do- test_pp "re-prep doc" (prep_tut Doc) "data/pp-test.lhs" "data/pp-result-doc.lhs"+ test_pp "re-prep doc" (prepare_tutorial Doc) "data/pp-test.lhs" "data/pp-result-doc.lhs" gm <- genMode- test_pp "re-prep gen" (prep_tut gm ) "data/pp-test.lhs" "data/pp-result-gen.lhs"+ test_pp "re-prep gen" (prepare_tutorial gm ) "data/pp-test.lhs" "data/pp-result-gen.lhs" putStrLn "tests passed"+\end{code}+++\begin{code}+lbsReadFile :: FilePath -> IO LBS.ByteString+lbsReadFile fp = LBS.fromStrict <$> B.readFile fp \end{code}
examples/re-sort-imports.lhs view
@@ -75,7 +75,7 @@ \begin{code} sort_r :: Mode -> FilePath -> IO ()-sort_r md root = findMatches fm [re|\.l?hs|] root >>= sort_these md root+sort_r md root = findMatches_ fm [re|\.l?hs|] root >>= sort_these md root where fm = FindMethods { doesDirectoryExistDM = doesDirectoryExist@@ -128,3 +128,5 @@ The function for sorting a Haskell script, `sortImports` has been placed in `TestKit` so that it can be shared with re-gen-modules`.++%include "examples/TestKit.lhs" "sortImports ::"
examples/re-tests.lhs view
@@ -688,7 +688,7 @@ find_tests :: TestTree find_tests = testGroup "Find Tests" [ testCase "examples/" $ do- fps <- findMatches findMethods [re|^re-.*\.lhs|] "examples/"+ fps <- findMatches_ findMethods [re|^re-.*\.lhs|] "examples/" example_paths @=? filter (not . matched . (?=~ [re|master\.lhs|])) fps ] @@ -841,8 +841,8 @@ tdfa_re = fromMaybe oops $ TDFA.compileRegexWithOptions tdfa_opts ".*" pcre_re = fromMaybe oops $ PCRE.compileRegexWithOptions pcre_opts ".*" - tdfa_opts = makeREOptions no_macs_t :: REOptions_ TDFA.RE TDFA_.CompOption TDFA_.ExecOption- pcre_opts = makeREOptions no_macs_p :: REOptions_ PCRE.RE PCRE_.CompOption PCRE_.ExecOption+ tdfa_opts = TDFA.makeREOptions no_macs_t :: REOptions_ TDFA.RE TDFA_.CompOption TDFA_.ExecOption+ pcre_opts = PCRE.makeREOptions no_macs_p :: REOptions_ PCRE.RE PCRE_.CompOption PCRE_.ExecOption no_macs_t = HM.fromList [] :: Macros TDFA.RE no_macs_p = HM.fromList [] :: Macros PCRE.RE
lib/mega-regex.cabal view
@@ -1,5 +1,5 @@ Name: regex-Version: 0.13.0.0+Version: 0.14.0.0 Synopsis: Toolkit for regex-base Description: A regular expression toolkit for regex-base with compile-time checking of RE syntax, data types for@@ -63,7 +63,7 @@ Source-Repository this Type: git Location: https://github.com/iconnect/regex.git- Tag: 0.13.0.0+ Tag: 0.14.0.0 @@ -196,7 +196,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -226,7 +226,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -256,7 +256,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -285,7 +285,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -314,7 +314,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -340,7 +340,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -366,7 +366,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -400,7 +400,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -434,7 +434,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -463,7 +463,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -492,7 +492,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -519,7 +519,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -546,7 +546,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -586,7 +586,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -627,7 +627,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -671,7 +671,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -717,7 +717,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -761,7 +761,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -805,7 +805,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -849,7 +849,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -893,7 +893,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -937,7 +937,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -981,7 +981,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -1025,7 +1025,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -1070,7 +1070,7 @@ -Werror Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0
lib/version.txt view
@@ -1,1 +1,1 @@-0.13.0.0+0.14.0.0
regex-examples.cabal view
@@ -1,5 +1,5 @@ Name: regex-examples-Version: 0.13.0.0+Version: 0.14.0.0 Synopsis: Tutorial, tests and example programs for regex Description: Tutorial, tests and example programs for regex, a Regular Expression Toolkit for regex-base with@@ -63,7 +63,7 @@ Source-Repository this Type: git Location: https://github.com/iconnect/regex.git- Tag: 0.13.0.0+ Tag: 0.14.0.0 Executable re-gen-cabals@@ -82,7 +82,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -112,7 +112,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -142,7 +142,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -171,7 +171,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -200,7 +200,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -226,7 +226,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -252,8 +252,8 @@ -Wwarn Build-depends:- regex == 0.13.0.0- , regex-with-pcre == 0.13.0.0+ regex == 0.14.0.0+ , regex-with-pcre == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -287,8 +287,8 @@ -Wwarn Build-depends:- regex == 0.13.0.0- , regex-with-pcre == 0.13.0.0+ regex == 0.14.0.0+ , regex-with-pcre == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -322,7 +322,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -351,7 +351,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -380,7 +380,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -407,7 +407,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0@@ -434,8 +434,8 @@ -Wwarn Build-depends:- regex == 0.13.0.0- , regex-with-pcre == 0.13.0.0+ regex == 0.14.0.0+ , regex-with-pcre == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -475,8 +475,8 @@ -Wwarn Build-depends:- regex == 0.13.0.0- , regex-with-pcre == 0.13.0.0+ regex == 0.14.0.0+ , regex-with-pcre == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -517,7 +517,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -561,7 +561,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -607,7 +607,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -651,7 +651,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -695,7 +695,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -739,7 +739,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -783,7 +783,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -827,7 +827,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -871,7 +871,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -915,7 +915,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0@@ -960,7 +960,7 @@ -Wwarn Build-depends:- regex == 0.13.0.0+ regex == 0.14.0.0 , array >= 0.4 , base >= 4 && < 5 , base-compat >= 0.6.0