{- copyright (c) sreservoir.
   license bsd three-clause. -}

module Text.Regex.Less.RERtOpts (reRtOpts,RERtOpts(..)) where

import qualified Text.Regex.PCRE as R

-- runtime options.
data RERtOpts = RtAnchored | RtBlank | RtNoUtf8Check | RtNotBol | RtNotEol
              | RtNotEmpty | RtPartial
  deriving (Eq,Show)

-- translates lists of runtime option constructors.
reRtOpts :: [RERtOpts] -> R.ExecOption
reRtOpts = sum . map reRtOpt1

-- translates a runtime option constructor.
reRtOpt1 :: RERtOpts -> R.ExecOption
reRtOpt1 RtAnchored       = R.execAnchored
reRtOpt1 RtBlank          = R.execBlank
reRtOpt1 RtNoUtf8Check    = R.execNoUTF8Check
reRtOpt1 RtNotBol         = R.execNotBOL
reRtOpt1 RtNotEol         = R.execNotEOL
reRtOpt1 RtNotEmpty       = R.execNotEmpty
reRtOpt1 RtPartial        = R.execPartial