regex-tdfa-1.1.8: Replaces/Enhances Text.Regex

Safe Haskell | None

Text.Regex.TDFA.TDFA

Description

Text.Regex.TDFA.TDFA converts the QNFA from TNFA into the DFA. A DFA state corresponds to a Set of QNFA states, repesented as list of Index which are used to lookup the DFA state in a lazy Trie which holds all possible subsets of QNFA states.

Synopsis

- patternToRegex :: (Pattern, (GroupIndex, DoPa)) -> CompOption -> ExecOption -> Regex
- data DFA = DFA {
  - d_id :: SetIndex
  - d_dt :: DT
  }
- 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
    - dt_b :: DT
    }
- examineDFA :: Regex -> String
- nfaToDFA :: ((Index, Array Index QNFA), Array Tag OP, Array GroupIndex [GroupInfo]) -> CompOption -> ExecOption -> Regex
- dfaMap :: DFA -> Map SetIndex DFA

# Documentation

patternToRegex :: (Pattern, (GroupIndex, DoPa)) -> CompOption -> ExecOption -> Regex

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

Show DFA |

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

  use dt_a if test is True else use dt_b

dt_b :: DT

  use dt_a if test is True else use dt_b

Instances

Show DT |

examineDFA :: Regex -> String

nfaToDFA :: ((Index, Array Index QNFA), Array Tag OP, Array GroupIndex [GroupInfo]) -> CompOption -> ExecOption -> Regex

dfaMap :: DFA -> Map SetIndex DFA