-- ------------------------------------------------------------

{- |
   Module     : Text.Regex.XMLSchema.Generic
   Copyright  : Copyright (C) 2014- Uwe Schmidt
   License    : MIT

   Maintainer : Uwe Schmidt <uwe@fh-wedel.de>
   Stability  : stable
   Portability: portable

   Convenient functions for W3C XML Schema Regular Expression Matcher.
   For internals see 'Text.Regex.XMLSchema.Generic.Regex' and
   'Text.Regex.XMLSchema.Generic.Matching'

   Grammar can be found under <http://www.w3.org/TR/xmlschema11-2/#regexs>
-}

-- ------------------------------------------------------------

module Text.Regex.XMLSchema.Generic
    ( GenRegex
    , Regex
    , RegexText
    , RegexTextLazy
    , RegexByteString
    , RegexByteStringLazy
      
    , grep
    , grepExt
    , grepRE
    , grepREwithLineNum

    , match
    , matchExt
    , matchSubex

    , sed
    , sedExt

    , split
    , splitExt
    , splitSubex

    , tokenize
    , tokenizeExt
    , tokenize'
    , tokenizeExt'
    , tokenizeSubex

    , matchRE
    , matchSubexRE
    , sedRE
    , splitRE
    , splitSubexRE
    , tokenizeRE
    , tokenizeRE'
    , tokenizeSubexRE

    , mkZero
    , mkZero'
    , mkUnit
    , mkSym1
    , mkSymRng
    , mkWord
    , mkDot
    , mkStar
    , mkAll
    , mkAlt
    , mkElse
    , mkSeq
    , mkSeqs
    , mkRep
    , mkRng
    , mkOpt
    , mkDiff
    , mkIsect
    , mkExor
    , mkCompl
    , mkBr
    , mkBr'
    , isZero
    , errRegex

    , parseRegex
    , parseRegexExt
    , parseContextRegex
    )
where

import Text.Regex.XMLSchema.Generic.Matching
import Text.Regex.XMLSchema.Generic.Regex
import Text.Regex.XMLSchema.Generic.RegexParser

import qualified Data.Text                  as T
import qualified Data.Text.Lazy             as TL
import qualified Data.ByteString.Char8      as B
import qualified Data.ByteString.Lazy.Char8 as BL

type Regex               = GenRegex String
type RegexText           = GenRegex T.Text
type RegexTextLazy       = GenRegex TL.Text
type RegexByteString     = GenRegex B.ByteString
type RegexByteStringLazy = GenRegex BL.ByteString

-- ------------------------------------------------------------