Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ EliminateEndingBacktracking()

static void System.Text.RegularExpressions.RegexNode.EliminateEndingBacktracking ( RegexNode node,
uint maxDepth )
inlinestaticprivate

Definition at line 167 of file RegexNode.cs.

168 {
169 if (maxDepth == 0)
170 {
171 return;
172 }
173 while (true)
174 {
175 switch (node.Type)
176 {
177 case 3:
178 case 4:
179 case 5:
180 node.MakeLoopAtomic();
181 return;
182 case 25:
183 case 28:
184 {
185 RegexNode regexNode2 = node.Child(node.ChildCount() - 1);
186 if ((regexNode2.Type == 24 || regexNode2.Type == 26 || regexNode2.Type == 27) && (node.Next == null || node.Next.Type != 32))
187 {
188 RegexNode regexNode3 = new RegexNode(32, regexNode2.Options);
189 regexNode3.AddChild(regexNode2);
190 node.ReplaceChild(node.ChildCount() - 1, regexNode3);
191 }
193 break;
194 }
195 case 24:
196 {
197 int num = node.ChildCount();
198 for (int i = 1; i < num; i++)
199 {
201 }
202 node = node.Child(0);
203 break;
204 }
205 case 26:
206 {
208 if (regexNode != null)
209 {
210 node = regexNode;
211 break;
212 }
213 return;
214 }
215 default:
216 return;
217 }
218 }
219 }
static void EliminateEndingBacktracking(RegexNode node, uint maxDepth)
Definition RegexNode.cs:167
static RegexNode FindLastExpressionInLoopForAutoAtomic(RegexNode node, uint maxDepth)
RegexNode(int type, RegexOptions options)
Definition RegexNode.cs:23

References System.Text.RegularExpressions.RegexNode.RegexNode(), System.Text.RegularExpressions.RegexNode.EliminateEndingBacktracking(), System.Text.RegularExpressions.RegexNode.FindLastExpressionInLoopForAutoAtomic(), and System.Text.RegularExpressions.i.

Referenced by System.Text.RegularExpressions.RegexNode.EliminateEndingBacktracking(), System.Text.RegularExpressions.RegexNode.FinalOptimize(), and System.Text.RegularExpressions.RegexNode.ReduceAtomic().