{- copyright (c) sreservoir. license bsd three-clause. -} module Text.Regex.Less.RECtOpts (reCtOpts,RECtOpt(..)) where import qualified Text.Regex.PCRE.Light as R -- compile options. data RECtOpt = CtAnchored | CtAutoCallout | CtCaseless | CtDollarEndOnly | CtDotAll | CtDupNames | CtExtended | CtFirstLine | CtMultiLine | CtNoAutoCapture | CtReverseGreedy | CtUtf8 | CtNoUtf8Check | CtNlAnyCrLf | CtNlAnyUnicode | CtNlCr | CtNlLf | CtNlCrLf | CtRAnyCrLf | CtRAnyUnicode | CtExtra deriving (Eq,Show) -- translates lists of compile option constructors. reCtOpts :: [RECtOpt] -> [R.PCREOption] reCtOpts = map reCtOpt1 -- translates a compile option constructor. reCtOpt1 :: RECtOpt -> R.PCREOption reCtOpt1 CtAnchored = R.anchored reCtOpt1 CtAutoCallout = R.auto_callout reCtOpt1 CtCaseless = R.caseless reCtOpt1 CtDollarEndOnly = R.dollar_endonly reCtOpt1 CtDotAll = R.dotall reCtOpt1 CtDupNames = R.dupnames reCtOpt1 CtExtended = R.extended reCtOpt1 CtFirstLine = R.firstline reCtOpt1 CtMultiLine = R.multiline reCtOpt1 CtNoAutoCapture = R.no_auto_capture reCtOpt1 CtReverseGreedy = R.ungreedy reCtOpt1 CtUtf8 = R.utf8 reCtOpt1 CtNoUtf8Check = R.no_utf8_check reCtOpt1 CtNlCr = R.newline_cr reCtOpt1 CtNlLf = R.newline_lf reCtOpt1 CtNlCrLf = R.newline_crlf --reCtOpt1 CtNAnyCrLf = R.newline_anycrlf --reCtOpt1 CtNAnyUnicode = R.newline_any --reCtOpt1 CtNAnyCrLf = R.bsr_anycrlf --reCtOpt1 CtNAnyUnicode = R.bsr_unicode reCtOpt1 _ = undefined