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

◆ FinalOptimize()

RegexNode System.Text.RegularExpressions.RegexNode.FinalOptimize ( )
inlinepackage

Definition at line 95 of file RegexNode.cs.

96 {
97 if ((Options & RegexOptions.RightToLeft) == 0)
98 {
101 while (true)
102 {
103 RegexNode next;
104 switch (regexNode.Type)
105 {
106 case 25:
107 case 32:
108 goto IL_006f;
109 case 3:
110 if (regexNode.N != int.MaxValue)
111 {
112 break;
113 }
114 goto IL_00d4;
115 case 43:
116 if (regexNode.N != int.MaxValue)
117 {
118 break;
119 }
120 goto IL_00d4;
121 case 4:
122 if (regexNode.N != int.MaxValue)
123 {
124 break;
125 }
126 goto IL_00d4;
127 case 44:
128 if (regexNode.N != int.MaxValue)
129 {
130 break;
131 }
132 goto IL_00d4;
133 case 5:
134 if (regexNode.N != int.MaxValue)
135 {
136 break;
137 }
138 goto IL_00d4;
139 case 45:
140 {
141 if (regexNode.N != int.MaxValue)
142 {
143 break;
144 }
145 goto IL_00d4;
146 }
147 IL_00d4:
148 next = regexNode.Next;
149 if (next != null && next.Type == 25)
150 {
151 next.InsertChild(1, new RegexNode(46, regexNode.Options));
152 }
153 break;
154 }
155 break;
156 IL_006f:
157 regexNode = regexNode.Child(0);
158 }
159 }
160 while (Child(0).Type == 32)
161 {
162 ReplaceChild(0, Child(0).Child(0));
163 }
164 return this;
165 }
void ReplaceChild(int index, RegexNode newChild)
static void EliminateEndingBacktracking(RegexNode node, uint maxDepth)
Definition RegexNode.cs:167
RegexNode(int type, RegexOptions options)
Definition RegexNode.cs:23

References System.Text.RegularExpressions.RegexNode.RegexNode(), System.Text.RegularExpressions.RegexNode.Child(), System.Text.RegularExpressions.RegexNode.EliminateEndingBacktracking(), System.Text.RegularExpressions.RegexNode.InsertChild(), System.Text.RegularExpressions.RegexNode.Options, System.Text.RegularExpressions.RegexNode.ReplaceChild(), and System.Text.RegularExpressions.RegexNode.Type.

Referenced by System.Text.RegularExpressions.RegexParser.ScanRegex().