!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq r s t u v w x y z { | } ~                               Safe-Inferred 23468:;CJKM Safe-Inferred 23468:;CJKMFThis is the accessor for the Trie. The list of keys should be sorted. 8This is a Trie constructor for a complete range of keys. This is a Trie constructor for a complete range of keys that uses a function from single values and a merge operation on values to fill the Trie. This is a Trie constructor for a complete range of keys that uses a function from single values and a sum operation of values to fill the Trie. )(lower,upper) range of keys, lower<=upperVFunction from list of keys to its value. It must work for distinct ascending lists.The constructed Trie value for (lookupAsc trie [])merge operation on values)(lower,upper) range of keys, lower<=upper'Function from a single key to its valueThe constructed Trie summation operation for values+(lower,upper) range of keys, lower <= upper'Function from a single key to its valueThe constructed Trie    Safe-Inferred 23468:;CJKM   Safe-Inferred 23468:;CJKM!  !"#$%&'()*+,  !"#$%&'()*+! , !"#$%&'()*+   !"#$%&'()*+, Safe-Inferred 23468:;CJKMH-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstE-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqH-./tsr0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqF-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstNone 23468:;CJKMHuvwxyz{|}~Fuvwxyz{|}~Hvwxuyz{|}~Fuvwxyz{|}~None 23468:;CJKM;The  and newFlagsC lists in Instructions are sorted by, and unique in, the Tag values@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).9The orderinal code is being written XXX TODO document it.3Internal convenience type for the text display code Internal type to repesent 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/DFA. This instructs the matching engine to spawn a new entry starting at the post-update position.Internal to the DFA nodeThe test to perform3location(s) of the anchor(s) in the original regexp&use dt_a if test is True else use dt_b&use dt_a if test is True else use dt_bActions to perform to winTransition to accept Chardefault accepting transition+where to go (maximal), including respawning%where to go, not including respawninghow to go, including respawningUInternal DFA node, identified by the Set of indices of the QNFA nodes it represents.{Ordered list of tags and their associated update operation to perform on an empty transition to the virtual winning state.WA TagList and the location of the item in the original pattern that is being accepted.;Ordered list of tags and their associated update operation.[When attached to a QTrans the TagTask can be done before or after accepting the character..Ordered list of tags and their associated TaskThe 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.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.Internal type to represent the tagged transition from one QNFA to another (or itself). The key is the Index of the destination QNFA.Internal to QNFA type.The test to perform3location(s) of the anchor(s) in the original regexp'use qt_a if test is True, else use qt_b'use qt_a if test is True, else use qt_b.empty transitions to the virtual winning state5all ways to leave this QNFA to other or the same QNFA9default ways to leave this QNFA to other or the same QNFAInternal NFA node type The TDFA backend specific  8 type, used by this module's RegexOptions and RegexMaker starting DFA stateindex of starting state&indexes of smallest and largest states$indexes of smallest and largest tagsAll DFA statesinformation about each taginformation about each groupused for optimizing executionNGroupInfo collects the parent and tag information for an instance of a groupYGroupIndex is for indexing submatches from capturing parenthesized groups (PGroup/Group)"Index into the text being searched .Internal DFA identity is this Set of NFA Index!!Internal NFA node identity number"SInternal use to indicate type of tag and preference for larger or smaller Positions'uUsed by implementation to name certain Postions during matching. Identity of Position tag to set during a transition*<True by default. Set to False to improve speed (and space).+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.-'True in blankCompOpt and defaultCompOpt.eFalse in blankCompOpt, True in defaultCompOpt. Compile for newline-sensitive matching. "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." /ITrue (and therefore Right associative) in blankCompOpt and defaultCompOpt0^False in blankCompOpt, True in defaultCompOpt. Add the extended non-POSIX syntax described in Text.Regex.TDFA haddock documentation.1False 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.2MUsed to track elements of the pattern that accept characters or are anchors8#after sort or sortBy the use of nubnubBy can be replaced by norepnorepBy9#after sort or sortBy the use of nubnubBy can be replaced by norepnorepBy      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK      !"#$%&'()*+,-./0123456789:;<=>?@ABCD56789:;<=>?@234KJ+,-./01()*'"&%$#!    I  HGAFBCDE7        !"&%$#'()*+,-./0123456789:;<=>?@ABCDEFGHIJKNone 23468:;CJKMWPattern is the type returned by the regular expression parser. This is consumed by the CorePattern module and the tender leaves are nibbled by the TNFA module.l7I have not been checking, but this should have the property that parsing the resulting string should result in an identical Pattern. This is not true if starTrans has created PNonCapture and PNonEmpty values or a (PStar False). The contents of a "[ ]" grouping are always shown in a sorted canonical order.mbDo the transformation and simplification in a single traversal. This removes the PPlus, PQuest, and PBound values, changing to POr and PEmpty and PStar True/False. For some PBound values it adds PNonEmpty and PNonCapture semantic marker. It also simplifies to flatten out nested POr and PConcat instances and eliminate some unneeded PEmpty values.n2Apply a Pattern transfomation function depth firstpVFunction to transform a pattern into an equivalent, but less redundant form. Nested i and h& are flattened. PEmpty is propagated.?Function to flatten nested POr or nested PConcat applicataions.lDetermines if pIn will fail or accept [] and never accept any characters. Treat PCarat and PDollar as True..LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnThe transformation functionThe Pattern to transformThe transformed Patternop)234LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop1Wkjihgfedba`^][ZYXcccc_c_c\c\UVRSTOPQLMN234lmopnLMNOPQRSTUVWkjihgfedba`^][ZYXcccc_c_c\c\lmnop None 23468:;CJKM)BracketElement is internal to this moduleqReturn either an error message or a tuple of the Pattern and the largest group index and the largest DoPa index (both have smallest index of 1). Since the regular expression is supplied as [Char] it automatically supports unicode and '\NUL' characters.qqqq None 23468:;CJKMCrstuvwxyz{|}~4"#$%&rstuvwxyz{|}~4|}~rvuts{"&%$#xyzw$rvutswxyz{| }~  None 23468:;CJKM None 23468:;CJKM  None 23468:;CJKM+     !"#$%&'()*+,-./0123     !"#$%&'()*+,-./0123None 23468:;CJKM456789:;<=>?@ABCDEFGHIJKLM456789:;<=>?@ABCDEFGHIJKLMNone 23468:;CJKMNNNone 23468:;CJKM0OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}None 23468:;CJKM~{decodePatternSet cannot handle collating element and treats equivalence classes as just their definition and nothing more.This returns the disctince ascending list of characters represented by [: :] values in legalCharacterClasses; unrecognized class names return an empty string3~3~None 23468:;CJKM None 23468:;CJKMFlags (summed together)Flags (summed together)=The regular expression to compile (ASCII only, no null bytes)(Returns: the compiled regular expressionCompiled regular expressionString to match againstCompiled regular expressionString to match against (+ +(None 23468:;CJKMFlags (summed together)Flags (summed together)!The regular expression to compile(Returns: the compiled regular expressionCompiled regular expressionByteString to match againstCompiled regular expressionByteString to match against (+ +(None 23468:;CJKMFlags (summed together)Flags (summed together)!The regular expression to compile(Returns: the compiled regular expressionCompiled regular expressionByteString to match againstCompiled regular expressionByteString to match against (+ +(None 23468:;CJKMFlags (summed together)Flags (summed together)!The regular expression to compile(Returns: the compiled regular expressionCompiled regular expressionByteString to match againstCompiled regular expressionByteString to match against (+ +(None 23468:;CJKMThis is the pure functional matching operator. If the target cannot be produced then some empty result will be returned. If there is an error in processing, then  will be called.GThis is the monadic matching operator. If a single match fails, then  will be called.A      ()*+,-./01 !"#$%%&'()*+,-./0123456789:;<=>?@ABCDEEFG'()*+HI./0JKL1MNOPQ2RS3T4UV5WX:YZ[;\<]^_=>`a?@bcA6d7efghi8jklmnBCopqrsstG'()*+HI./0JKL1MNOPQ2RS3T4UV5WX:YZ[;\<]^_=>`a?@bcA6d7efghi8jklmnBCuvwxyz{|}}~            ! " " # $ % % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B CCCCDEFGHIJKIJKIJKIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh i j k l m n o p q r s t u v w x y z { | } ~                                                              b                   bbb     b !b"#$%&'()&'(*+,-./-0123456789:;<=>?@ABCDEFGHIJBKLMNOPQR.STUVWWXYYZ[[\]]^regex-tdfa-1.2.1Text.Regex.TDFA.StringText.Regex.TDFA.NewDFA.UnconsText.Regex.TDFA.IntArrTrieSetData.IntSet.EnumSet2Data.IntMap.EnumMap2Data.IntMap.CharMap2Text.Regex.TDFA.CommonText.Regex.TDFA.PatternText.Regex.TDFA.ReadRegexText.Regex.TDFA.CorePatternText.Regex.TDFA.NewDFA.MakeTestText.Regex.TDFA.NewDFA.Tester Text.Regex.TDFA.NewDFA.Engine_FA Text.Regex.TDFA.NewDFA.Engine_NC#Text.Regex.TDFA.NewDFA.Engine_NC_FAText.Regex.TDFA.NewDFA.EngineText.Regex.TDFA.TNFAText.Regex.TDFA.TDFAText.Regex.TDFA.ByteStringText.Regex.TDFA.ByteString.LazyText.Regex.TDFA.SequenceText.Regex.TDFAPaths_regex_tdfaregex-base-0.93.2Text.Regex.Base.RegexLike MatchOffset MatchLengthUnconsunconsTrieSetvaluenext lookupAsc fromBoundsfromSinglesMergefromSinglesSumEnumSet unEnumSet\\nullsizemember notMember isSubsetOfisProperSubsetOfempty singletoninsertdeleteunionunions difference intersectionfilter partitionsplit splitMembermapfoldelemstoListfromList toAscList fromAscListfromDistinctAscListshowTree showTreeWith$fMonoidEnumSetEnumMap unEnumMap!lookupfindWithDefault insertWith insertWithKeyinsertLookupWithKeyadjust adjustWithKeyupdate updateWithKeyupdateLookupWithKey unionWith unionWithKey unionsWithdifferenceWithdifferenceWithKeyintersectionWithintersectionWithKey mapWithKeymapAccummapAccumWithKey foldWithKeykeyskeysSetassocs fromListWithfromListWithKeyfromAscListWithfromAscListWithKey filterWithKeypartitionWithKeymapMaybemapMaybeWithKey mapEithermapEitherWithKey splitLookup isSubmapOf isSubmapOfByisProperSubmapOfisProperSubmapOfBy$fFoldableEnumMap$fFunctorEnumMap$fMonoidEnumMapKeyCharMap unCharMap$fFunctorCharMap$fMonoidCharMapOrbitLogOrbitTransformerActionSetValSetPostSetPre InstructionsnewPos newOrbitsOrbitsinOrbitbasePosordinal getOrbitsDTrans'DTransDTTesting'dt_testdt_dopasdt_adt_bSimple'dt_windt_transdt_other Transition trans_many trans_single trans_howDFAd_idd_dtWinTags TagCommandTagList TagUpdate PostUpdate PreUpdateTagTasksTagTaskLeaveOrbitTaskEnterOrbitTaskResetOrbitTaskSetGroupStopTaskResetGroupStopTask WhichTestTest_NotEdgeWord Test_EdgeWordTest_EOWTest_BOWTest_EOBTest_BOBTest_EOLTest_BOLQTransQTTestingqt_testqt_dopasqt_aqt_bSimpleqt_winqt_transqt_otherQNFAq_idq_qtWinEmptyWinTestRegex regex_dfa regex_init regex_b_index regex_b_tags regex_trie regex_tags regex_groupsregex_isFrontAnchoredregex_compOptionsregex_execOptions GroupInfo thisIndex parentIndexstartTagstopTagflagTag GroupIndexPositionSetIndexIndexOPIgnoreOrbitMinimizeMaximizeTag ExecOption captureGroups CompOption caseSensitive multiline rightAssoc newSyntaxlastStarGreedyDoPa dopaIndexlook common_erroronnorepnorepBymapFstmapSndfst3snd3thd3 flipOrdernoWinshowQTindentshowDT seeDTrans$fEqQT$fShowDT$fShowQT $fShowQNFA'$fRegexOptionsRegexCompOptionExecOption $fShowDoPa $fEnumDoPaPatternSetEquivalenceClassunSECPatternSetCollatingElementunSCEPatternSetCharacterClassunSCC PatternSetPattern PNonEmpty PNonCapturePCharPEscapegetPatternCharPAnyNotPAny getPatternSetPDotPDollarPCaratgetDoPaPBoundPStarPPlusPQuestPConcatPOrPGroupPEmpty showPattern starTrans dfsPattern starTrans' simplify' parseRegexWanted WantsEither WantsBothWantsQT WantsQNFANullView SetTestInfogetTestsTestInfoQnullQtakespreResetpostSetpreTagpostTagtagged childGroupswantsunQPNonEmptyOneCharTestStargetOrbit resetOrbits firstNullunStarSeqOrEmpty cleanNullView mustAccept cannotAccept patternToQtest_multilinetest_singleline matchTest execMatch patternToNFAnfaToDFApatternToRegexdfaMap examineDFAcompileexecuteregexecgetVersion_Text_Regex_TDFA=~=~~$fUnconsByteString$fUnconsByteString0 $fUnconsSeq $fUncons[]catchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameflattencanOnlyMatchNullerrreGroup notPEmpty $fShowPatternSetEquivalenceClass $fShowPatternSetCollatingElement$fShowPatternSetCharacterClass$fShowPatternSetBracketElementBEClassBEEquivBECollBECharsBECharp_regexp_branchp_piecep_atom group_indexp_group p_post_atomp_bound p_bound_specp_anchor char_indexp_char p_bracketp_set p_set_elemp_set_elem_classp_set_elem_equivp_set_elem_collp_set_elem_rangep_set_elem_charHHQPM HandleTagApplyAdviceNoTagshowQnotNull promotePreTagmakeEmptyNullViewmakeTestNullViewtagWrapNullViewaddGroupResetsToNullVieworbitWrapNullViewmergeNullViewsseqTakeorTakesapplytoAdvicenoTag fromHandleTagvaries canAcceptmakeGroupArray fromRightpartitionEither$fShowQ$fShowSetTestInfo$fMonoidSetTestInfo test_commonisWordtestFA0testFAtest0testCFWScratchw_pos BlankScratch _blank_posMScratchm_posm_orbitSScratch_s_1_s_2_s_restMQmq_mWinmemcpy!!setnoSource doActionsmkTestnewMQresetMQputMQnewAnewA_ newScratch newMScratchorderOf ditzyComp'3 comparePostagsToGroupsSTspawnAt updateCopycopySTUws_start_ws_stop_s_mq mq_earliestmq_listgetMQ wsToGroup makeGroup blank_posMQA mqa_startmqa_ws spawnStartdecodePatternSetdecodeCharacterClassActContESecartdebugqtwinqtlosenullable notNullablemaybeOnlyEmptyusesQNFAmkQNFA mkTestingnullQT listTestInfoapplyNullViewspreferNullViewsdominate applyTest mergeQT_2nd mergeAltQTmergeQT mergeQTWith prependPreTagprependGroupResets prependTags'newQNFAfromQNFAfromQTasQNFAgetQNFAgetQTaddTest promoteTasks demoteTags addWinTagsaddTag'addTagaddGroupResets addGroupSetsgetE addTestACaddTagACaddGroupResetsACaddGroupSetsAC addWinTagsACqToNFA AlterOrbit AlterModify newInOrbit freshOrbit AlterLeave AlterResetCompileInstructionsdlosemakeDFA flattenDT pickQTranscleanWin bestTransisDFAFrontAnchoredtoInstructionsassemble setPreTag setPostTag resetGroupTag setGroupTag resetOrbit enterOrbit leaveOrbit modifyPos modifyOrbit alterOrbits alterOrbitunwrap$fRegexContextRegex[][]$fRegexLikeRegex[]'$fRegexMakerRegexCompOptionExecOption[]$fRegexLikeRegexByteString/$fRegexMakerRegexCompOptionExecOptionByteString'$fRegexContextRegexByteStringByteStringfi$fRegexLikeRegexSeq($fRegexMakerRegexCompOptionExecOptionSeq$fRegexContextRegexSeqSeqbaseGHC.ErrerrorGHC.BasefailText.Regex.BasegetVersion_Text_Regex_Base MatchArray MatchTextmrSubs mrSubListmrAftermrMatchmrBeforeMR MatchResult getExecOpts setExecOptsdefaultExecOptdefaultCompOpt blankExecOpt blankCompOpt RegexOptionsmakeRegexOptsM makeRegexM makeRegexOpts makeRegex RegexMaker matchOnceText matchAllText matchCountmatchAll matchOnce RegexLikematchMmatch RegexContextextractafterbeforeExtractgetAllSubmatches AllSubmatchesgetAllTextSubmatchesAllTextSubmatches getAllMatches AllMatchesgetAllTextMatchesAllTextMatches