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

◆ ComputeLeadingSubstring()

static string bool CaseInsensitive System.Text.RegularExpressions.RegexPrefixAnalyzer.ComputeLeadingSubstring ( RegexTree tree)
inlinestatic

Definition at line 27 of file RegexPrefixAnalyzer.cs.

28 {
29 RegexNode regexNode = tree.Root;
30 RegexNode regexNode2 = null;
31 int num = 0;
32 while (true)
33 {
34 switch (regexNode.Type)
35 {
36 case 25:
37 if (regexNode.ChildCount() > 0)
38 {
40 num = 0;
41 }
42 break;
43 case 28:
44 case 32:
45 regexNode = regexNode.Child(0);
46 regexNode2 = null;
47 continue;
48 case 3:
49 case 6:
50 case 43:
51 if (regexNode.M > 0 && regexNode.M < 50000)
52 {
53 return (Prefix: new string(regexNode.Ch, regexNode.M), CaseInsensitive: (regexNode.Options & RegexOptions.IgnoreCase) != 0);
54 }
56 case 9:
57 return (Prefix: regexNode.Ch.ToString(), CaseInsensitive: (regexNode.Options & RegexOptions.IgnoreCase) != 0);
58 case 12:
59 return (Prefix: regexNode.Str, CaseInsensitive: (regexNode.Options & RegexOptions.IgnoreCase) != 0);
60 default:
62 case 14:
63 case 15:
64 case 16:
65 case 18:
66 case 19:
67 case 20:
68 case 21:
69 case 23:
70 case 30:
71 case 31:
72 case 41:
73 break;
74 }
75 if (regexNode2 == null || num >= regexNode2.ChildCount())
76 {
77 break;
78 }
79 regexNode = regexNode2.Child(num++);
80 }
82 }

References System.Text.RegularExpressions.RegexPrefixAnalyzer.Prefix.

Referenced by System.Text.RegularExpressions.RegexWriter.RegexCodeFromRegexTree().