1
- class RegexTree :
1
+ class Group :
2
2
pass
3
3
4
4
@@ -46,11 +46,11 @@ def next(self) -> list[str]:
46
46
47
47
48
48
class BackReference :
49
- def __init__ (self , reference : RegexTree , min_len : int , max_len : int | None ):
49
+ def __init__ (self , reference : Group , min_len : int , max_len : int | None ):
50
50
self ._min_len = min_len
51
51
self ._max_len = max_len
52
52
self ._index = 0
53
- self .reference : RegexTree = reference
53
+ self .reference : Group = reference
54
54
self .done = max_len == 0 or (
55
55
reference .done and len (reference .current ) == 0 )
56
56
self .current = self ._first ()
@@ -91,7 +91,7 @@ def next(self) -> dict[str, list[str]]:
91
91
92
92
93
93
class Alternative :
94
- def __init__ (self , elements : list [CharClass | RegexTree | BackReference ]):
94
+ def __init__ (self , elements : list [CharClass | Group | BackReference ]):
95
95
self ._index = 0
96
96
self ._elements = [e for e in elements if not e .done or len (e .current )]
97
97
self ._noBackreference = not any (isinstance (
@@ -116,9 +116,9 @@ def next(self) -> set[str]:
116
116
index = 0
117
117
118
118
self ._index = index
119
- result : list [tuple [str , dict [RegexTree , str ]]] = []
119
+ result : list [tuple [str , dict [Group , str ]]] = []
120
120
121
- if isinstance (self ._elements [0 ], RegexTree ) and len (self ._elements [0 ].references ):
121
+ if isinstance (self ._elements [0 ], Group ) and len (self ._elements [0 ].references ):
122
122
for string in self ._elements [0 ].next () if index == 0 else self ._elements [0 ].current :
123
123
result .append ((string , {self ._elements [0 ]: string }))
124
124
else :
@@ -138,7 +138,7 @@ def next(self) -> set[str]:
138
138
for sfx in element .current [reference ]:
139
139
temp .append (
140
140
(pfx [0 ] + sfx , pfx [1 ]))
141
- elif isinstance (element , RegexTree ) and len (element .references ):
141
+ elif isinstance (element , Group ) and len (element .references ):
142
142
for sfx in element .next () if i == index else element .current :
143
143
for pfx in result :
144
144
temp .append ((pfx [0 ] + sfx , {** pfx [1 ], element : sfx }))
@@ -202,9 +202,9 @@ def _first(self) -> set[str]:
202
202
203
203
assert not isinstance (self ._elements [0 ], BackReference )
204
204
205
- result : list [tuple [str , dict [RegexTree , str ]]] = []
205
+ result : list [tuple [str , dict [Group , str ]]] = []
206
206
207
- if isinstance (self ._elements [0 ], RegexTree ) and len (self ._elements [0 ].references ):
207
+ if isinstance (self ._elements [0 ], Group ) and len (self ._elements [0 ].references ):
208
208
for char in self ._elements [0 ].current :
209
209
result .append ((char , {self ._elements [0 ]: char }))
210
210
else :
@@ -214,7 +214,7 @@ def _first(self) -> set[str]:
214
214
done = self ._elements [0 ].done
215
215
216
216
for element in self ._elements [1 :]:
217
- temp : list [tuple [str , dict [RegexTree , str ]]] = []
217
+ temp : list [tuple [str , dict [Group , str ]]] = []
218
218
done = done and element .done
219
219
if isinstance (element , BackReference ):
220
220
for pfx in result :
@@ -223,7 +223,7 @@ def _first(self) -> set[str]:
223
223
for sfx in element .current [reference ]:
224
224
temp .append (
225
225
(pfx [0 ] + sfx , pfx [1 ]))
226
- elif isinstance (element , RegexTree ) and len (element .references ):
226
+ elif isinstance (element , Group ) and len (element .references ):
227
227
for pfx in result :
228
228
for sfx in element .current :
229
229
temp .append ((pfx [0 ] + sfx , {** pfx [1 ], element : sfx }))
@@ -238,7 +238,7 @@ def _first(self) -> set[str]:
238
238
return {struct [0 ] for struct in result }
239
239
240
240
241
- class RegexTree :
241
+ class Group :
242
242
def __init__ (self , alternatives : list [Alternative ], min_len : int , max_len : int | None ):
243
243
self .references : list [BackReference ] = []
244
244
self ._alternatives : list [Alternative ] = alternatives
0 commit comments