2 namespace System.Text.RegularExpressions {
4 // for the IgnoreCase opcodes, the char data is stored lowercased
5 // two-byte integers are in little endian format
7 // followed by count, min, max integers
25 // followed by single byte length and latin1 bytes
26 // keep the order, see EmitString ()
30 StringIgnoreCaseReverse,
32 // followed by two byte length and unicode chars (two bytes per char)
33 // a better setup may be to reference the chars in the patterns string
34 // (offset, length) pairs, at least when the pattern contains them,
35 // but this means we can't lowercase before hand: consider using a separate
37 // keep the order, see EmitString ()
39 UnicodeStringIgnoreCase,
41 UnicodeStringIgnoreCaseReverse,
44 // followed by a latin1 byte
45 // keep the order, see EmitCharacter ()
52 CharIgnoreCaseReverse,
53 NoCharIgnoreCaseReverse,
55 // followed by latin1 min and max bytes
56 // keep the order, see EmitRange ()
63 RangeIgnoreCaseReverse,
64 NoRangeIgnoreCaseReverse,
66 // followed by lowbyte and length of the bitmap and by the bitmap
67 // keep the order, see EmitSet ()
74 BitmapIgnoreCaseReverse,
75 NoBitmapIgnoreCaseReverse,
78 // followed by a unicode char
79 // keep the order, see EmitCharacter ()
82 UnicodeCharIgnoreCase,
83 NoUnicodeCharIgnoreCase,
86 UnicodeCharIgnoreCaseReverse,
87 NoUnicodeCharIgnoreCaseReverse,
89 // followed by unicode char min and max chars
90 // keep the order, see EmitRange ()
93 UnicodeRangeIgnoreCase,
94 NoUnicodeRangeIgnoreCase,
96 NoUnicodeRangeReverse,
97 UnicodeRangeIgnoreCaseReverse,
98 NoUnicodeRangeIgnoreCaseReverse,
100 // followed by lowchar and length of the bitmap and by the bitmap
103 UnicodeBitmapIgnoreCase,
104 NoUnicodeBitmapIgnoreCase,
105 UnicodeBitmapReverse,
106 NoUnicodeBitmapReverse,
107 UnicodeBitmapIgnoreCaseReverse,
108 NoUnicodeBitmapIgnoreCaseReverse,
110 // add reverse and negate versions of the categories
114 NoCategoryAnyReverse,
115 CategoryAnySingleline,
116 NoCategoryAnySingleline,
117 CategoryAnySinglelineReverse,
118 NoCategoryAnySinglelineReverse,
121 CategoryDigitReverse,
122 NoCategoryDigitReverse,
126 NoCategoryWordReverse,
128 NoCategoryWhiteSpace,
129 CategoryWhiteSpaceReverse,
130 NoCategoryWhiteSpaceReverse,
133 CategoryEcmaWordReverse,
134 NoCategoryEcmaWordReverse,
135 CategoryEcmaWhiteSpace,
136 NoCategoryEcmaWhiteSpace,
137 CategoryEcmaWhiteSpaceReverse,
138 NoCategoryEcmaWhiteSpaceReverse,
140 // followed by a unicode category value (byte)
143 CategoryUnicodeReverse,
144 NoCategoryUnicodeReverse,
146 CategoryUnicodeLetter,
147 NoCategoryUnicodeLetter,
148 CategoryUnicodeLetterReverse,
149 NoCategoryUnicodeLetterReverse,
151 NoCategoryUnicodeMark,
152 CategoryUnicodeMarkReverse,
153 NoCategoryUnicodeMarkReverse,
154 CategoryUnicodeNumber,
155 NoCategoryUnicodeNumber,
156 CategoryUnicodeNumberReverse,
157 NoCategoryUnicodeNumberReverse,
158 CategoryUnicodeSeparator,
159 NoCategoryUnicodeSeparator,
160 CategoryUnicodeSeparatorReverse,
161 NoCategoryUnicodeSeparatorReverse,
162 CategoryUnicodePunctuation,
163 NoCategoryUnicodePunctuation,
164 CategoryUnicodePunctuationReverse,
165 NoCategoryUnicodePunctuationReverse,
166 CategoryUnicodeSymbol,
167 NoCategoryUnicodeSymbol,
168 CategoryUnicodeSymbolReverse,
169 NoCategoryUnicodeSymbolReverse,
170 CategoryUnicodeSpecials,
171 NoCategoryUnicodeSpecials,
172 CategoryUnicodeSpecialsReverse,
173 NoCategoryUnicodeSpecialsReverse,
174 CategoryUnicodeOther,
175 NoCategoryUnicodeOther,
176 CategoryUnicodeOtherReverse,
177 NoCategoryUnicodeOtherReverse,
178 // add more categories
180 // followed by Category value (byte)
183 CategoryGeneralReverse,
184 NoCategoryGeneralReverse,
187 // followed by two-byte reference number
188 // keep the order, see EmitReference ()
192 ReferenceIgnoreCaseReverse,
194 // group/capture support
195 // followed by two-byte group id
202 // followed by offset and two-byte group id
205 // skip ahead num bytes
206 // followed by two-byte offset
209 // followed by two-byte offset
212 // followed by true and false two-byte offsets
215 // followed by two-byte offset
218 // followed by two-byte offset
221 // anchoring expression
222 // followed by offset of tail and offset
226 // repetition support
227 // followed by min, max ints
233 // followed by min byte