Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
RegexFC.cs
Go to the documentation of this file.
2
4
5internal sealed class RegexFC
6{
7 private readonly RegexCharClass _cc;
8
9 public bool _nullable;
10
11 public bool CaseInsensitive { get; private set; }
12
13 public RegexFC(bool nullable)
14 {
15 _cc = new RegexCharClass();
16 _nullable = nullable;
17 }
18
19 public RegexFC(char ch, bool not, bool nullable, bool caseInsensitive)
20 {
21 _cc = new RegexCharClass();
22 if (not)
23 {
24 if (ch > '\0')
25 {
26 _cc.AddRange('\0', (char)(ch - 1));
27 }
28 if (ch < '\uffff')
29 {
30 _cc.AddRange((char)(ch + 1), '\uffff');
31 }
32 }
33 else
34 {
35 _cc.AddRange(ch, ch);
36 }
37 CaseInsensitive = caseInsensitive;
38 _nullable = nullable;
39 }
40
41 public RegexFC(string charClass, bool nullable, bool caseInsensitive)
42 {
43 _cc = RegexCharClass.Parse(charClass);
44 _nullable = nullable;
45 CaseInsensitive = caseInsensitive;
46 }
47
48 public bool AddFC(RegexFC fc, bool concatenate)
49 {
50 if (!_cc.CanMerge || !fc._cc.CanMerge)
51 {
52 return false;
53 }
54 if (concatenate)
55 {
56 if (!_nullable)
57 {
58 return true;
59 }
60 if (!fc._nullable)
61 {
62 _nullable = false;
63 }
64 }
65 else if (fc._nullable)
66 {
67 _nullable = true;
68 }
71 return true;
72 }
73
78
79 public string GetFirstChars()
80 {
81 return _cc.ToStringClass();
82 }
83}
static RegexCharClass Parse(string charClass)
void AddLowercase(CultureInfo culture)
Definition RegexFC.cs:74
readonly RegexCharClass _cc
Definition RegexFC.cs:7
RegexFC(string charClass, bool nullable, bool caseInsensitive)
Definition RegexFC.cs:41
bool AddFC(RegexFC fc, bool concatenate)
Definition RegexFC.cs:48
RegexFC(char ch, bool not, bool nullable, bool caseInsensitive)
Definition RegexFC.cs:19