regex-tdfa-1.3.2.2: Pure Haskell Tagged DFA Backend for "Text.Regex" (regex-base)

Safe Haskell | Safe-Inferred
Language | Haskell2010

Text.Regex.TDFA.Common

Description

Common provides simple functions to the backend. It defines most of the data types. All modules should call `error` via the `common_error` function below.

Synopsis

- look :: Int -> IntMap a -> a
- common_error :: String -> String -> a
- on :: (t1 -> t1 -> t2) -> (t -> t1) -> t -> t -> t2
- norep :: Eq a => [a] -> [a]
- norepBy :: (a -> a -> Bool) -> [a] -> [a]
- mapFst :: Functor f => (t -> t2) -> f (t, t1) -> f (t2, t1)
- mapSnd :: Functor f => (t1 -> t2) -> f (t, t1) -> f (t, t2)
- fst3 :: (a, b, c) -> a
- snd3 :: (a, b, c) -> b
- thd3 :: (a, b, c) -> c
- flipOrder :: Ordering -> Ordering
- noWin :: WinTags -> Bool
- newtype DoPa = DoPa {
  - dopaIndex :: Int
  }
- data CompOption = CompOption {
  - caseSensitive :: Bool
  - multiline :: Bool
  - rightAssoc :: Bool
  - newSyntax :: Bool
  - lastStarGreedy :: Bool
  }
- data ExecOption = ExecOption {
  - captureGroups :: Bool
  }
- type Tag = Int
- data OP
  - = Maximize
  - | Minimize
  - | Orbit
  - | Ignore
- type Index = Int
- type SetIndex = IntSet
- type Position = Int
- type GroupIndex = Int
- data GroupInfo = GroupInfo {
  - thisIndex, parentIndex :: GroupIndex
  - startTag, stopTag, flagTag :: Tag
  }
- data Regex = Regex {
  - regex_dfa :: DFA
  - regex_init :: Index
  - regex_b_index :: (Index, Index)
  - regex_b_tags :: (Tag, Tag)
  - regex_trie :: TrieSet DFA
  - regex_tags :: Array Tag OP
  - regex_groups :: Array GroupIndex [GroupInfo]
  - regex_isFrontAnchored :: Bool
  - regex_compOptions :: CompOption
  - regex_execOptions :: ExecOption
  }
- data WinEmpty
  - = WinEmpty Instructions
  - | WinTest WhichTest (Maybe WinEmpty) (Maybe WinEmpty)
- data QNFA = QNFA {
  - q_id :: Index
  - q_qt :: QT
  }
- data QT
  - = Simple {
    - qt_win :: WinTags
    - qt_trans :: CharMap QTrans
    - qt_other :: QTrans
    }
  - | Testing {
    - qt_test :: WhichTest
    - qt_dopas :: EnumSet DoPa
    - qt_a, qt_b :: QT
    }
- type QTrans = IntMap [TagCommand]
- data WhichTest
  - = Test_BOL
  - | Test_EOL
  - | Test_BOB
  - | Test_EOB
  - | Test_BOW
  - | Test_EOW
  - | Test_EdgeWord
  - | Test_NotEdgeWord
- data TagTask
  - = TagTask
  - | ResetGroupStopTask
  - | SetGroupStopTask
  - | ResetOrbitTask
  - | EnterOrbitTask
  - | LeaveOrbitTask
- type TagTasks = [(Tag, TagTask)]
- data TagUpdate
  - = PreUpdate TagTask
  - | PostUpdate TagTask
- type TagList = [(Tag, TagUpdate)]
- type TagCommand = (DoPa, TagList)
- type WinTags = TagList
- data DFA = DFA {
  - d_id :: SetIndex
  - d_dt :: DT
  }
- data Transition = Transition {
  - trans_many :: DFA
  - trans_single :: DFA
  - trans_how :: DTrans
  }
- data DT
  - = Simple' {
    - dt_win :: IntMap Instructions
    - dt_trans :: CharMap Transition
    - dt_other :: Transition
    }
  - | Testing' {
    - dt_test :: WhichTest
    - dt_dopas :: EnumSet DoPa
    - dt_a, dt_b :: DT
    }
- type DTrans = IntMap (IntMap (DoPa, Instructions))
- type DTrans' = [(Index, [(Index, (DoPa, ([(Tag, (Position, Bool))], [String])))])]
- data Orbits = Orbits {
  - inOrbit :: !Bool
  - basePos :: Position
  - ordinal :: Maybe Int
  - getOrbits :: !(Seq Position)
  }
- data Instructions = Instructions {
  - newPos :: ![(Tag, Action)]
  - newOrbits :: !(Maybe (Position -> OrbitTransformer))
  }
- data Action
  - = SetPre
  - | SetPost
  - | SetVal Int
- type OrbitTransformer = OrbitLog -> OrbitLog
- type OrbitLog = IntMap Orbits
- showQT :: QT -> String
- indent :: [String] -> String
- showDT :: DT -> String
- seeDTrans :: DTrans -> String

# Documentation

look :: Int -> IntMap a -> a #

common_error :: String -> String -> a #

on :: (t1 -> t1 -> t2) -> (t -> t1) -> t -> t -> t2 #

norep :: Eq a => [a] -> [a] #

After `sort` or `sortBy` the use of `nub` or `nubBy` can be replaced by `norep` or `norepBy`.

norepBy :: (a -> a -> Bool) -> [a] -> [a] #

After `sort` or `sortBy` the use of `nub` or `nubBy` can be replaced by `norep` or `norepBy`.

mapFst :: Functor f => (t -> t2) -> f (t, t1) -> f (t2, t1) #

mapSnd :: Functor f => (t1 -> t2) -> f (t, t1) -> f (t, t2) #

fst3 :: (a, b, c) -> a #

snd3 :: (a, b, c) -> b #

thd3 :: (a, b, c) -> c #

flipOrder :: Ordering -> Ordering #

noWin :: WinTags -> Bool #

newtype DoPa #

Used to track elements of the pattern that accept characters or are anchors.

Constructors

DoPa |
Fields dopaIndex :: Int

#### Instances

Instances details

Enum DoPa # |
Instance details Defined in Text.Regex.TDFA.Common Methods succ :: DoPa -> DoPa pred :: DoPa -> DoPa toEnum :: Int -> DoPa fromEnum :: DoPa -> Int enumFrom :: DoPa -> [DoPa] enumFromThen :: DoPa -> DoPa -> [DoPa] enumFromTo :: DoPa -> DoPa -> [DoPa] enumFromThenTo :: DoPa -> DoPa -> DoPa -> [DoPa]
Show DoPa # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> DoPa -> ShowS show :: DoPa -> String showList :: [DoPa] -> ShowS
Eq DoPa # |
Instance details Defined in Text.Regex.TDFA.Common Methods (==) :: DoPa -> DoPa -> Bool (/=) :: DoPa -> DoPa -> Bool
Ord DoPa # |
Instance details Defined in Text.Regex.TDFA.Common Methods compare :: DoPa -> DoPa -> Ordering (<) :: DoPa -> DoPa -> Bool (<=) :: DoPa -> DoPa -> Bool (>) :: DoPa -> DoPa -> Bool (>=) :: DoPa -> DoPa -> Bool max :: DoPa -> DoPa -> DoPa min :: DoPa -> DoPa -> DoPa

data CompOption #

Control whether the pattern is multiline or case-sensitive like Text.Regex and whether to capture the subgroups (\1, \2, etc). Controls enabling extra anchor syntax.

Constructors

CompOption |
Fields caseSensitive :: Bool True in `blankCompOpt` and `defaultCompOpt`. multiline :: Bool False in `blankCompOpt`, True in `defaultCompOpt`. Compile for newline-sensitive matching. From regexp man page: "By default, newline is a completely ordinary character with no special meaning in either REs or strings. With this flag, inverted bracket expressions `[^` and `.` never match newline, a `^` anchor matches the null string after any newline in the string in addition to its normal function, and the `$` anchor matches the null string before any newline in the string in addition to its normal function." rightAssoc :: Bool True (and therefore right associative) in `blankCompOpt` and `defaultCompOpt`. newSyntax :: Bool False in `blankCompOpt`, True in `defaultCompOpt`. Enables the extended non-POSIX syntax described in Text.Regex.TDFA haddock documentation. lastStarGreedy :: Bool False by default. This is POSIX correct but it takes space and is slower. Setting this to True will improve performance, and should be done if you plan to set the `captureGroups` `ExecOption` to False.

#### Instances

Instances details

Read CompOption # |
Instance details Defined in Text.Regex.TDFA.Common Methods readsPrec :: Int -> ReadS CompOption readList :: ReadS [CompOption] readPrec :: ReadPrec CompOption readListPrec :: ReadPrec [CompOption]
Show CompOption # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> CompOption -> ShowS show :: CompOption -> String showList :: [CompOption] -> ShowS
RegexOptions Regex CompOption ExecOption # |
Instance details Defined in Text.Regex.TDFA.Common Methods blankCompOpt :: CompOption # blankExecOpt :: ExecOption # defaultCompOpt :: CompOption # defaultExecOpt :: ExecOption # setExecOpts :: ExecOption -> Regex -> Regex # getExecOpts :: Regex -> ExecOption #
RegexMaker Regex CompOption ExecOption ByteString # |
Instance details Defined in Text.Regex.TDFA.ByteString Methods makeRegex :: ByteString -> Regex # makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex # makeRegexM :: MonadFail m => ByteString -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> ByteString -> m Regex #
RegexMaker Regex CompOption ExecOption ByteString # |
Instance details Defined in Text.Regex.TDFA.ByteString.Lazy Methods makeRegex :: ByteString -> Regex # makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex # makeRegexM :: MonadFail m => ByteString -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> ByteString -> m Regex #
RegexMaker Regex CompOption ExecOption Text # | Since: 1.3.1
Instance details Defined in Text.Regex.TDFA.Text Methods makeRegex :: Text -> Regex # makeRegexOpts :: CompOption -> ExecOption -> Text -> Regex # makeRegexM :: MonadFail m => Text -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> Text -> m Regex #
RegexMaker Regex CompOption ExecOption Text # | Since: 1.3.1
Instance details Defined in Text.Regex.TDFA.Text.Lazy Methods makeRegex :: Text -> Regex # makeRegexOpts :: CompOption -> ExecOption -> Text -> Regex # makeRegexM :: MonadFail m => Text -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> Text -> m Regex #
RegexMaker Regex CompOption ExecOption String # |
Instance details Defined in Text.Regex.TDFA.String Methods makeRegex :: String -> Regex # makeRegexOpts :: CompOption -> ExecOption -> String -> Regex # makeRegexM :: MonadFail m => String -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> String -> m Regex #
RegexMaker Regex CompOption ExecOption (Seq Char) # |
Instance details Defined in Text.Regex.TDFA.Sequence Methods makeRegex :: Seq Char -> Regex # makeRegexOpts :: CompOption -> ExecOption -> Seq Char -> Regex # makeRegexM :: MonadFail m => Seq Char -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> Seq Char -> m Regex #

data ExecOption #

Constructors

ExecOption |
Fields captureGroups :: Bool True by default. Set to False to improve speed (and space).

#### Instances

Instances details

Read ExecOption # |
Instance details Defined in Text.Regex.TDFA.Common Methods readsPrec :: Int -> ReadS ExecOption readList :: ReadS [ExecOption] readPrec :: ReadPrec ExecOption readListPrec :: ReadPrec [ExecOption]
Show ExecOption # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> ExecOption -> ShowS show :: ExecOption -> String showList :: [ExecOption] -> ShowS
RegexOptions Regex CompOption ExecOption # |
Instance details Defined in Text.Regex.TDFA.Common Methods blankCompOpt :: CompOption # blankExecOpt :: ExecOption # defaultCompOpt :: CompOption # defaultExecOpt :: ExecOption # setExecOpts :: ExecOption -> Regex -> Regex # getExecOpts :: Regex -> ExecOption #
RegexMaker Regex CompOption ExecOption ByteString # |
Instance details Defined in Text.Regex.TDFA.ByteString Methods makeRegex :: ByteString -> Regex # makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex # makeRegexM :: MonadFail m => ByteString -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> ByteString -> m Regex #
RegexMaker Regex CompOption ExecOption ByteString # |
Instance details Defined in Text.Regex.TDFA.ByteString.Lazy Methods makeRegex :: ByteString -> Regex # makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex # makeRegexM :: MonadFail m => ByteString -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> ByteString -> m Regex #
RegexMaker Regex CompOption ExecOption Text # | Since: 1.3.1
Instance details Defined in Text.Regex.TDFA.Text Methods makeRegex :: Text -> Regex # makeRegexOpts :: CompOption -> ExecOption -> Text -> Regex # makeRegexM :: MonadFail m => Text -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> Text -> m Regex #
RegexMaker Regex CompOption ExecOption Text # | Since: 1.3.1
Instance details Defined in Text.Regex.TDFA.Text.Lazy Methods makeRegex :: Text -> Regex # makeRegexOpts :: CompOption -> ExecOption -> Text -> Regex # makeRegexM :: MonadFail m => Text -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> Text -> m Regex #
RegexMaker Regex CompOption ExecOption String # |
Instance details Defined in Text.Regex.TDFA.String Methods makeRegex :: String -> Regex # makeRegexOpts :: CompOption -> ExecOption -> String -> Regex # makeRegexM :: MonadFail m => String -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> String -> m Regex #
RegexMaker Regex CompOption ExecOption (Seq Char) # |
Instance details Defined in Text.Regex.TDFA.Sequence Methods makeRegex :: Seq Char -> Regex # makeRegexOpts :: CompOption -> ExecOption -> Seq Char -> Regex # makeRegexM :: MonadFail m => Seq Char -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> Seq Char -> m Regex #

type Tag = Int #

Used by implementation to name certain `Postion`s during matching. Identity of `Position` tag to set during a transition.

data OP #

Internal use to indicate type of tag and preference for larger or smaller `Position`s.

Constructors

Maximize |
Minimize |
Orbit |
Ignore |

#### Instances

Instances details

Show OP # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> OP -> ShowS show :: OP -> String showList :: [OP] -> ShowS
Eq OP # |
Instance details Defined in Text.Regex.TDFA.Common Methods (==) :: OP -> OP -> Bool (/=) :: OP -> OP -> Bool

type Index = Int #

Internal NFA node identity number.

type SetIndex = IntSet #

Internal DFA identity is this `Set` of NFA `Index`.

type Position = Int #

Index into the text being searched.

type GroupIndex = Int #

`GroupIndex` is for indexing submatches from capturing parenthesized groups (`PGroup` or `Group`).

data GroupInfo #

`GroupInfo` collects the parent and tag information for an instance of a group.

Constructors

GroupInfo |
Fields thisIndex, parentIndex :: GroupIndex startTag, stopTag, flagTag :: Tag

#### Instances

Instances details

Show GroupInfo # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> GroupInfo -> ShowS show :: GroupInfo -> String showList :: [GroupInfo] -> ShowS

data Regex #

The TDFA backend specific `Regex` type, used by this module's `RegexOptions` and `RegexMaker`.

Constructors

Regex |
Fields regex_dfa :: DFA starting DFA state regex_init :: Index index of starting state regex_b_index :: (Index, Index) indexes of smallest and largest states regex_b_tags :: (Tag, Tag) indexes of smallest and largest tags regex_trie :: TrieSet DFA All DFA states regex_tags :: Array Tag OP information about each tag regex_groups :: Array GroupIndex [GroupInfo] information about each group regex_isFrontAnchored :: Bool used for optimizing execution regex_compOptions :: CompOption regex_execOptions :: ExecOption

#### Instances

Instances details

RegexLike Regex ByteString # |
Instance details Defined in Text.Regex.TDFA.ByteString Methods matchOnce :: Regex -> ByteString -> Maybe MatchArray # matchAll :: Regex -> ByteString -> [MatchArray] # matchCount :: Regex -> ByteString -> Int # matchTest :: Regex -> ByteString -> Bool # matchAllText :: Regex -> ByteString -> [MatchText ByteString] # matchOnceText :: Regex -> ByteString -> Maybe (ByteString, MatchText ByteString, ByteString) #
RegexLike Regex ByteString # |
Instance details Defined in Text.Regex.TDFA.ByteString.Lazy Methods matchOnce :: Regex -> ByteString -> Maybe MatchArray # matchAll :: Regex -> ByteString -> [MatchArray] # matchCount :: Regex -> ByteString -> Int # matchTest :: Regex -> ByteString -> Bool # matchAllText :: Regex -> ByteString -> [MatchText ByteString] # matchOnceText :: Regex -> ByteString -> Maybe (ByteString, MatchText ByteString, ByteString) #
RegexLike Regex Text # | Since: 1.3.1
Instance details Defined in Text.Regex.TDFA.Text Methods matchOnce :: Regex -> Text -> Maybe MatchArray # matchAll :: Regex -> Text -> [MatchArray] # matchCount :: Regex -> Text -> Int # matchTest :: Regex -> Text -> Bool # matchAllText :: Regex -> Text -> [MatchText Text] # matchOnceText :: Regex -> Text -> Maybe (Text, MatchText Text, Text) #
RegexLike Regex Text # | Since: 1.3.1
Instance details Defined in Text.Regex.TDFA.Text.Lazy Methods matchOnce :: Regex -> Text -> Maybe MatchArray # matchAll :: Regex -> Text -> [MatchArray] # matchCount :: Regex -> Text -> Int # matchTest :: Regex -> Text -> Bool # matchAllText :: Regex -> Text -> [MatchText Text] # matchOnceText :: Regex -> Text -> Maybe (Text, MatchText Text, Text) #
RegexLike Regex String # |
Instance details Defined in Text.Regex.TDFA.String Methods matchOnce :: Regex -> String -> Maybe MatchArray # matchAll :: Regex -> String -> [MatchArray] # matchCount :: Regex -> String -> Int # matchTest :: Regex -> String -> Bool # matchAllText :: Regex -> String -> [MatchText String] # matchOnceText :: Regex -> String -> Maybe (String, MatchText String, String) #
RegexContext Regex ByteString ByteString # |
Instance details Defined in Text.Regex.TDFA.ByteString Methods match :: Regex -> ByteString -> ByteString # matchM :: MonadFail m => Regex -> ByteString -> m ByteString #
RegexContext Regex ByteString ByteString # |
Instance details Defined in Text.Regex.TDFA.ByteString.Lazy Methods match :: Regex -> ByteString -> ByteString # matchM :: MonadFail m => Regex -> ByteString -> m ByteString #
RegexContext Regex Text Text # | Since: 1.3.1
Instance details Defined in Text.Regex.TDFA.Text Methods match :: Regex -> Text -> Text # matchM :: MonadFail m => Regex -> Text -> m Text #
RegexContext Regex Text Text # | Since: 1.3.1
Instance details Defined in Text.Regex.TDFA.Text.Lazy Methods match :: Regex -> Text -> Text # matchM :: MonadFail m => Regex -> Text -> m Text #
RegexContext Regex String String # |
Instance details Defined in Text.Regex.TDFA.String Methods match :: Regex -> String -> String # matchM :: MonadFail m => Regex -> String -> m String #
RegexOptions Regex CompOption ExecOption # |
Instance details Defined in Text.Regex.TDFA.Common Methods blankCompOpt :: CompOption # blankExecOpt :: ExecOption # defaultCompOpt :: CompOption # defaultExecOpt :: ExecOption # setExecOpts :: ExecOption -> Regex -> Regex # getExecOpts :: Regex -> ExecOption #
RegexMaker Regex CompOption ExecOption ByteString # |
Instance details Defined in Text.Regex.TDFA.ByteString Methods makeRegex :: ByteString -> Regex # makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex # makeRegexM :: MonadFail m => ByteString -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> ByteString -> m Regex #
RegexMaker Regex CompOption ExecOption ByteString # |
Instance details Defined in Text.Regex.TDFA.ByteString.Lazy Methods makeRegex :: ByteString -> Regex # makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex # makeRegexM :: MonadFail m => ByteString -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> ByteString -> m Regex #
RegexMaker Regex CompOption ExecOption Text # | Since: 1.3.1
Instance details Defined in Text.Regex.TDFA.Text Methods makeRegex :: Text -> Regex # makeRegexOpts :: CompOption -> ExecOption -> Text -> Regex # makeRegexM :: MonadFail m => Text -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> Text -> m Regex #
RegexMaker Regex CompOption ExecOption Text # | Since: 1.3.1
Instance details Defined in Text.Regex.TDFA.Text.Lazy Methods makeRegex :: Text -> Regex # makeRegexOpts :: CompOption -> ExecOption -> Text -> Regex # makeRegexM :: MonadFail m => Text -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> Text -> m Regex #
RegexMaker Regex CompOption ExecOption String # |
Instance details Defined in Text.Regex.TDFA.String Methods makeRegex :: String -> Regex # makeRegexOpts :: CompOption -> ExecOption -> String -> Regex # makeRegexM :: MonadFail m => String -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> String -> m Regex #
RegexMaker Regex CompOption ExecOption (Seq Char) # |
Instance details Defined in Text.Regex.TDFA.Sequence Methods makeRegex :: Seq Char -> Regex # makeRegexOpts :: CompOption -> ExecOption -> Seq Char -> Regex # makeRegexM :: MonadFail m => Seq Char -> m Regex # makeRegexOptsM :: MonadFail m => CompOption -> ExecOption -> Seq Char -> m Regex #
RegexLike Regex (Seq Char) # |
Instance details Defined in Text.Regex.TDFA.Sequence Methods matchOnce :: Regex -> Seq Char -> Maybe MatchArray # matchAll :: Regex -> Seq Char -> [MatchArray] # matchCount :: Regex -> Seq Char -> Int # matchTest :: Regex -> Seq Char -> Bool # matchAllText :: Regex -> Seq Char -> [MatchText (Seq Char)] # matchOnceText :: Regex -> Seq Char -> Maybe (Seq Char, MatchText (Seq Char), Seq Char) #
RegexContext Regex (Seq Char) (Seq Char) # |
Instance details Defined in Text.Regex.TDFA.Sequence Methods match :: Regex -> Seq Char -> Seq Char # matchM :: MonadFail m => Regex -> Seq Char -> m (Seq Char) #

data WinEmpty #

Constructors

WinEmpty Instructions |
WinTest WhichTest (Maybe WinEmpty) (Maybe WinEmpty) |

#### Instances

Instances details

Show WinEmpty # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> WinEmpty -> ShowS show :: WinEmpty -> String showList :: [WinEmpty] -> ShowS

data QNFA #

Internal NFA node type.

Constructors

QNFA |
Fields q_id :: Index q_qt :: QT

#### Instances

Instances details

Show QNFA # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> QNFA -> ShowS show :: QNFA -> String showList :: [QNFA] -> ShowS

data QT #

Internal to `QNFA` type.

Constructors

Simple |
Fields qt_win :: WinTags empty transitions to the virtual winning state qt_trans :: CharMap QTrans all ways to leave this QNFA to other or the same QNFA qt_other :: QTrans default ways to leave this QNFA to other or the same QNFA
Testing |
Fields qt_test :: WhichTest The test to perform qt_dopas :: EnumSet DoPa location(s) of the anchor(s) in the original regexp qt_a, qt_b :: QT use qt_a if test is True, else use qt_b

#### Instances

Instances details

Show QT # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> QT -> ShowS show :: QT -> String showList :: [QT] -> ShowS
Eq QT # |
Instance details Defined in Text.Regex.TDFA.Common Methods (==) :: QT -> QT -> Bool (/=) :: QT -> QT -> Bool

type QTrans = IntMap [TagCommand] #

Internal type to represent the tagged transition from one QNFA to another (or itself). The key is the Index of the destination QNFA.

data WhichTest #

Known predicates, just Beginning of Line (^) and End of Line ($). Also support for GNU extensions is being added: \` beginning of buffer, \' end of buffer, \< and \> for begin and end of words, \b and \B for word boundary and not word boundary.

Constructors

Test_BOL | `^` (affected by multiline option)
Test_EOL | `$` (affected by multiline option)
Test_BOB | `\`` beginning of buffer
Test_EOB | `\'` end ofbuffer
Test_BOW | `\<` beginning of word
Test_EOW | `\>` end of word
Test_EdgeWord | `\b` word boundary
Test_NotEdgeWord | `\B` not word boundary

#### Instances

Instances details

Enum WhichTest # |
Instance details Defined in Text.Regex.TDFA.Common Methods succ :: WhichTest -> WhichTest pred :: WhichTest -> WhichTest toEnum :: Int -> WhichTest fromEnum :: WhichTest -> Int enumFrom :: WhichTest -> [WhichTest] enumFromThen :: WhichTest -> WhichTest -> [WhichTest] enumFromTo :: WhichTest -> WhichTest -> [WhichTest] enumFromThenTo :: WhichTest -> WhichTest -> WhichTest -> [WhichTest]
Show WhichTest # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> WhichTest -> ShowS show :: WhichTest -> String showList :: [WhichTest] -> ShowS
Eq WhichTest # |
Instance details Defined in Text.Regex.TDFA.Common Methods (==) :: WhichTest -> WhichTest -> Bool (/=) :: WhichTest -> WhichTest -> Bool
Ord WhichTest # |
Instance details Defined in Text.Regex.TDFA.Common Methods compare :: WhichTest -> WhichTest -> Ordering (<) :: WhichTest -> WhichTest -> Bool (<=) :: WhichTest -> WhichTest -> Bool (>) :: WhichTest -> WhichTest -> Bool (>=) :: WhichTest -> WhichTest -> Bool max :: WhichTest -> WhichTest -> WhichTest min :: WhichTest -> WhichTest -> WhichTest

data TagTask #

The things that can be done with a Tag. `TagTask` and `ResetGroupStopTask` are for tags with Maximize or Minimize OP values. `ResetOrbitTask` and `EnterOrbitTask` and `LeaveOrbitTask` are for tags with Orbit OP value.

Constructors

TagTask |
ResetGroupStopTask |
SetGroupStopTask |
ResetOrbitTask |
EnterOrbitTask |
LeaveOrbitTask |

#### Instances

Instances details

Show TagTask # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> TagTask -> ShowS show :: TagTask -> String showList :: [TagTask] -> ShowS
Eq TagTask # |
Instance details Defined in Text.Regex.TDFA.Common Methods (==) :: TagTask -> TagTask -> Bool (/=) :: TagTask -> TagTask -> Bool

type TagTasks = [(Tag, TagTask)] #

Ordered list of tags and their associated Task.

data TagUpdate #

When attached to a QTrans the TagTask can be done before or after accepting the character.

Constructors

PreUpdate TagTask |
PostUpdate TagTask |

#### Instances

Instances details

Show TagUpdate # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> TagUpdate -> ShowS show :: TagUpdate -> String showList :: [TagUpdate] -> ShowS
Eq TagUpdate # |
Instance details Defined in Text.Regex.TDFA.Common Methods (==) :: TagUpdate -> TagUpdate -> Bool (/=) :: TagUpdate -> TagUpdate -> Bool

type TagList = [(Tag, TagUpdate)] #

Ordered list of tags and their associated update operation.

type TagCommand = (DoPa, TagList) #

A TagList and the location of the item in the original pattern that is being accepted.

type WinTags = TagList #

Ordered list of tags and their associated update operation to perform on an empty transition to the virtual winning state.

data DFA #

Internal DFA node, identified by the Set of indices of the QNFA nodes it represents.

Constructors

DFA |
Fields d_id :: SetIndex d_dt :: DT

#### Instances

Instances details

Show DFA # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> DFA -> ShowS show :: DFA -> String showList :: [DFA] -> ShowS

data Transition #

Constructors

Transition |
Fields trans_many :: DFA where to go (maximal), including respawning trans_single :: DFA where to go, not including respawning trans_how :: DTrans how to go, including respawning

data DT #

Internal to the DFA node

Constructors

Simple' |
Fields dt_win :: IntMap Instructions Actions to perform to win dt_trans :: CharMap Transition Transition to accept Char dt_other :: Transition default accepting transition
Testing' |
Fields dt_test :: WhichTest The test to perform dt_dopas :: EnumSet DoPa location(s) of the anchor(s) in the original regexp dt_a, dt_b :: DT use dt_a if test is True else use dt_b

#### Instances

Instances details

Show DT # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> DT -> ShowS show :: DT -> String showList :: [DT] -> ShowS

type DTrans = IntMap (IntMap (DoPa, Instructions)) #

Internal type to represent the commands for the tagged transition. The outer `IntMap` is for the destination Index and the inner `IntMap` is for the Source Index. This is convenient since all runtime data going to the same destination must be compared to find the best.

A Destination `IntMap` entry may have an empty Source `IntMap` if and only if the destination is the starting index and the NFA or DFA. This instructs the matching engine to spawn a new entry starting at the post-update position.

type DTrans' = [(Index, [(Index, (DoPa, ([(Tag, (Position, Bool))], [String])))])] #

Internal convenience type for the text display code.

data Orbits #

Positions for which a `*` was re-started while looping. Need to append locations at back but compare starting with front, so use `Seq` as a queue. The initial position is saved in `basePos` (and a Maximize Tag), the middle positions in the `Seq`, and the final position is NOT saved in the Orbits (only in a Maximize Tag).

Constructors

Orbits |
Fields inOrbit :: !Bool basePos :: Position ordinal :: Maybe Int getOrbits :: !(Seq Position)

#### Instances

Instances details

Show Orbits # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> Orbits -> ShowS show :: Orbits -> String showList :: [Orbits] -> ShowS

data Instructions #

The `newPos` and `newFlags` lists in Instructions are sorted by, and unique in, the Tag values

Constructors

Instructions |
Fields newPos :: ![(Tag, Action)] newOrbits :: !(Maybe (Position -> OrbitTransformer))

#### Instances

Instances details

Show Instructions # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> Instructions -> ShowS show :: Instructions -> String showList :: [Instructions] -> ShowS

data Action #

Constructors

SetPre |
SetPost |
SetVal Int |

#### Instances

Instances details

Show Action # |
Instance details Defined in Text.Regex.TDFA.Common Methods showsPrec :: Int -> Action -> ShowS show :: Action -> String showList :: [Action] -> ShowS
Eq Action # |
Instance details Defined in Text.Regex.TDFA.Common Methods (==) :: Action -> Action -> Bool (/=) :: Action -> Action -> Bool

type OrbitTransformer = OrbitLog -> OrbitLog #

type OrbitLog = IntMap Orbits #

showQT :: QT -> String #

indent :: [String] -> String #

showDT :: DT -> String #

seeDTrans :: DTrans -> String #