OLD | NEW |
1 // | 1 // |
2 // regexcmp.h | 2 // regexcmp.h |
3 // | 3 // |
4 // Copyright (C) 2002-2014, International Business Machines Corporation and oth
ers. | 4 // Copyright (C) 2002-2014, International Business Machines Corporation and oth
ers. |
5 // All Rights Reserved. | 5 // All Rights Reserved. |
6 // | 6 // |
7 // This file contains declarations for the class RegexCompile | 7 // This file contains declarations for the class RegexCompile |
8 // | 8 // |
9 // This class is internal to the regular expression implementation. | 9 // This class is internal to the regular expression implementation. |
10 // For the public Regular Expression API, see the file "unicode/regex.h" | 10 // For the public Regular Expression API, see the file "unicode/regex.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 // there is space to add a
n opcode there. | 97 // there is space to add a
n opcode there. |
98 void compileSet(UnicodeSet *theSet); // Generate the compiled pa
ttern for | 98 void compileSet(UnicodeSet *theSet); // Generate the compiled pa
ttern for |
99 // a reference to a Unico
deSet. | 99 // a reference to a Unico
deSet. |
100 void compileInterval(int32_t InitOp, // Generate the code for a
{min,max} quantifier. | 100 void compileInterval(int32_t InitOp, // Generate the code for a
{min,max} quantifier. |
101 int32_t LoopOp); | 101 int32_t LoopOp); |
102 UBool compileInlineInterval(); // Generate inline code for
a {min,max} quantifier | 102 UBool compileInlineInterval(); // Generate inline code for
a {min,max} quantifier |
103 void literalChar(UChar32 c); // Compile a literal char | 103 void literalChar(UChar32 c); // Compile a literal char |
104 void fixLiterals(UBool split=FALSE); // Generate code for pendin
g literal characters. | 104 void fixLiterals(UBool split=FALSE); // Generate code for pendin
g literal characters. |
105 void insertOp(int32_t where); // Open up a slot for a new
op in the | 105 void insertOp(int32_t where); // Open up a slot for a new
op in the |
106 // generated code at the
specified location. | 106 // generated code at the
specified location. |
| 107 void appendOp(int32_t op); // Append a new op to the c
ompiled pattern. |
| 108 void appendOp(int32_t type, int32_t val); // Build & append a new op
to the compiled pattern. |
| 109 int32_t buildOp(int32_t type, int32_t val); // Construct a new pcode in
struction. |
| 110 int32_t allocateData(int32_t size); // Allocate space in the ma
tcher data area. |
| 111 // Return index of the ne
wly allocated data. |
| 112 int32_t allocateStackData(int32_t size); // Allocate space in the ma
tch back-track stack frame. |
| 113 // Return offset index in
the frame. |
107 int32_t minMatchLength(int32_t start, | 114 int32_t minMatchLength(int32_t start, |
108 int32_t end); | 115 int32_t end); |
109 int32_t maxMatchLength(int32_t start, | 116 int32_t maxMatchLength(int32_t start, |
110 int32_t end); | 117 int32_t end); |
111 void matchStartType(); | 118 void matchStartType(); |
112 void stripNOPs(); | 119 void stripNOPs(); |
113 | 120 |
114 void setEval(int32_t op); | 121 void setEval(int32_t op); |
115 void setPushOp(int32_t op); | 122 void setPushOp(int32_t op); |
116 UChar32 scanNamedChar(); | 123 UChar32 scanNamedChar(); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 // spot reserved for use
when a quantifier | 187 // spot reserved for use
when a quantifier |
181 // needs to add a SAVE at
the start of a (block) | 188 // needs to add a SAVE at
the start of a (block) |
182 // The negative value (-1
, -2,...) indicates | 189 // The negative value (-1
, -2,...) indicates |
183 // the kind of paren that
opened the frame. Some | 190 // the kind of paren that
opened the frame. Some |
184 // need special handling
on close. | 191 // need special handling
on close. |
185 | 192 |
186 | 193 |
187 int32_t fMatchOpenParen; // The position in the comp
iled pattern | 194 int32_t fMatchOpenParen; // The position in the comp
iled pattern |
188 // of the slot reserved f
or a state save | 195 // of the slot reserved f
or a state save |
189 // at the start of the mo
st recently processed | 196 // at the start of the mo
st recently processed |
190 // parenthesized block. | 197 // parenthesized block. U
pdated when processing |
| 198 // a close to the locatio
n for the corresponding open. |
| 199 |
191 int32_t fMatchCloseParen; // The position in the patt
ern of the first | 200 int32_t fMatchCloseParen; // The position in the patt
ern of the first |
192 // location after the mos
t recently processed | 201 // location after the mos
t recently processed |
193 // parenthesized block. | 202 // parenthesized block. |
194 | 203 |
195 int32_t fIntervalLow; // {lower, upper} interval
quantifier values. | 204 int32_t fIntervalLow; // {lower, upper} interval
quantifier values. |
196 int32_t fIntervalUpper; // Placed here temporarily,
when pattern is | 205 int32_t fIntervalUpper; // Placed here temporarily,
when pattern is |
197 // initially scanned. Ea
ch new interval | 206 // initially scanned. Ea
ch new interval |
198 // encountered overwrites
these values. | 207 // encountered overwrites
these values. |
199 // -1 for the upper inter
val value means none | 208 // -1 for the upper inter
val value means none |
200 // was specified (unlimit
ed occurences.) | 209 // was specified (unlimit
ed occurences.) |
(...skipping 23 matching lines...) Expand all Loading... |
224 setDifference2 = 3 << 16 | 4, // '--' set difference operator | 233 setDifference2 = 3 << 16 | 4, // '--' set difference operator |
225 setIntersection2 = 3 << 16 | 5, // '&&' set intersection operator | 234 setIntersection2 = 3 << 16 | 5, // '&&' set intersection operator |
226 setUnion = 4 << 16 | 6, // implicit union of adjacent items | 235 setUnion = 4 << 16 | 6, // implicit union of adjacent items |
227 setDifference1 = 4 << 16 | 7, // '-', single dash difference op, for co
mpatibility with old UnicodeSet. | 236 setDifference1 = 4 << 16 | 7, // '-', single dash difference op, for co
mpatibility with old UnicodeSet. |
228 setIntersection1 = 4 << 16 | 8 // '&', single amp intersection op, for c
ompatibility with old UnicodeSet. | 237 setIntersection1 = 4 << 16 | 8 // '&', single amp intersection op, for c
ompatibility with old UnicodeSet. |
229 }; | 238 }; |
230 | 239 |
231 U_NAMESPACE_END | 240 U_NAMESPACE_END |
232 #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS | 241 #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS |
233 #endif // RBBISCAN_H | 242 #endif // RBBISCAN_H |
OLD | NEW |