| |
1 //--------------------------------------------------------------------------------- |
| |
2 // |
| |
3 // Generated Header File. Do not edit by hand. |
| |
4 // This file contains the state table for the ICU Rule Based Break Iterator |
| |
5 // rule parser. |
| |
6 // It is generated by the Perl script "rbbicst.pl" from |
| |
7 // the rule parser state definitions file "rbbirpt.txt". |
| |
8 // |
| |
9 // Copyright (C) 2002-2005 International Business Machines Corporation |
| |
10 // and others. All rights reserved. |
| |
11 // |
| |
12 //--------------------------------------------------------------------------------- |
| |
13 #ifndef RBBIRPT_H |
| |
14 #define RBBIRPT_H |
| |
15 |
| |
16 U_NAMESPACE_BEGIN |
| |
17 // |
| |
18 // Character classes for RBBI rule scanning. |
| |
19 // |
| |
20 static const uint8_t kRuleSet_digit_char = 128; |
| |
21 static const uint8_t kRuleSet_name_char = 129; |
| |
22 static const uint8_t kRuleSet_name_start_char = 130; |
| |
23 static const uint8_t kRuleSet_rule_char = 131; |
| |
24 static const uint8_t kRuleSet_white_space = 132; |
| |
25 |
| |
26 |
| |
27 enum RBBI_RuleParseAction { |
| |
28 doCheckVarDef, |
| |
29 doDotAny, |
| |
30 doEndAssign, |
| |
31 doEndOfRule, |
| |
32 doEndVariableName, |
| |
33 doExit, |
| |
34 doExprCatOperator, |
| |
35 doExprFinished, |
| |
36 doExprOrOperator, |
| |
37 doExprRParen, |
| |
38 doExprStart, |
| |
39 doLParen, |
| |
40 doNOP, |
| |
41 doOptionEnd, |
| |
42 doOptionStart, |
| |
43 doReverseDir, |
| |
44 doRuleChar, |
| |
45 doRuleError, |
| |
46 doRuleErrorAssignExpr, |
| |
47 doScanUnicodeSet, |
| |
48 doSlash, |
| |
49 doStartAssign, |
| |
50 doStartTagValue, |
| |
51 doStartVariableName, |
| |
52 doTagDigit, |
| |
53 doTagExpectedError, |
| |
54 doTagValue, |
| |
55 doUnaryOpPlus, |
| |
56 doUnaryOpQuestion, |
| |
57 doUnaryOpStar, |
| |
58 doVariableNameExpectedErr, |
| |
59 rbbiLastAction}; |
| |
60 |
| |
61 //------------------------------------------------------------------------------- |
| |
62 // |
| |
63 // RBBIRuleTableEl represents the structure of a row in the transition table |
| |
64 // for the rule parser state machine. |
| |
65 //------------------------------------------------------------------------------- |
| |
66 struct RBBIRuleTableEl { |
| |
67 RBBI_RuleParseAction fAction; |
| |
68 uint8_t fCharClass; // 0-127: an individual ASCII character |
| |
69 // 128-255: character class index |
| |
70 uint8_t fNextState; // 0-250: normal next-stat numbers |
| |
71 // 255: pop next-state from stack. |
| |
72 uint8_t fPushState; |
| |
73 UBool fNextChar; |
| |
74 }; |
| |
75 |
| |
76 static const struct RBBIRuleTableEl gRuleParseStateTable[] = { |
| |
77 {doNOP, 0, 0, 0, TRUE} |
| |
78 , {doExprStart, 254, 21, 8, FALSE} // 1 start |
| |
79 , {doNOP, 132, 1,0, TRUE} // 2 |
| |
80 , {doExprStart, 36 /* $ */, 80, 90, FALSE} // 3 |
| |
81 , {doNOP, 33 /* ! */, 11,0, TRUE} // 4 |
| |
82 , {doNOP, 59 /* ; */, 1,0, TRUE} // 5 |
| |
83 , {doNOP, 252, 0,0, FALSE} // 6 |
| |
84 , {doExprStart, 255, 21, 8, FALSE} // 7 |
| |
85 , {doEndOfRule, 59 /* ; */, 1,0, TRUE} // 8 break-rule-end |
| |
86 , {doNOP, 132, 8,0, TRUE} // 9 |
| |
87 , {doRuleError, 255, 95,0, FALSE} // 10 |
| |
88 , {doNOP, 33 /* ! */, 13,0, TRUE} // 11 rev-option |
| |
89 , {doReverseDir, 255, 20, 8, FALSE} // 12 |
| |
90 , {doOptionStart, 130, 15,0, TRUE} // 13 option-scan1 |
| |
91 , {doRuleError, 255, 95,0, FALSE} // 14 |
| |
92 , {doNOP, 129, 15,0, TRUE} // 15 option-scan2 |
| |
93 , {doOptionEnd, 255, 17,0, FALSE} // 16 |
| |
94 , {doNOP, 59 /* ; */, 1,0, TRUE} // 17 option-scan3 |
| |
95 , {doNOP, 132, 17,0, TRUE} // 18 |
| |
96 , {doRuleError, 255, 95,0, FALSE} // 19 |
| |
97 , {doExprStart, 255, 21, 8, FALSE} // 20 reverse-rule |
| |
98 , {doRuleChar, 254, 30,0, TRUE} // 21 term |
| |
99 , {doNOP, 132, 21,0, TRUE} // 22 |
| |
100 , {doRuleChar, 131, 30,0, TRUE} // 23 |
| |
101 , {doNOP, 91 /* [ */, 86, 30, FALSE} // 24 |
| |
102 , {doLParen, 40 /* ( */, 21, 30, TRUE} // 25 |
| |
103 , {doNOP, 36 /* $ */, 80, 29, FALSE} // 26 |
| |
104 , {doDotAny, 46 /* . */, 30,0, TRUE} // 27 |
| |
105 , {doRuleError, 255, 95,0, FALSE} // 28 |
| |
106 , {doCheckVarDef, 255, 30,0, FALSE} // 29 term-var-ref |
| |
107 , {doNOP, 132, 30,0, TRUE} // 30 expr-mod |
| |
108 , {doUnaryOpStar, 42 /* * */, 35,0, TRUE} // 31 |
| |
109 , {doUnaryOpPlus, 43 /* + */, 35,0, TRUE} // 32 |
| |
110 , {doUnaryOpQuestion, 63 /* ? */, 35,0, TRUE} // 33 |
| |
111 , {doNOP, 255, 35,0, FALSE} // 34 |
| |
112 , {doExprCatOperator, 254, 21,0, FALSE} // 35 expr-cont |
| |
113 , {doNOP, 132, 35,0, TRUE} // 36 |
| |
114 , {doExprCatOperator, 131, 21,0, FALSE} // 37 |
| |
115 , {doExprCatOperator, 91 /* [ */, 21,0, FALSE} // 38 |
| |
116 , {doExprCatOperator, 40 /* ( */, 21,0, FALSE} // 39 |
| |
117 , {doExprCatOperator, 36 /* $ */, 21,0, FALSE} // 40 |
| |
118 , {doExprCatOperator, 46 /* . */, 21,0, FALSE} // 41 |
| |
119 , {doExprCatOperator, 47 /* / */, 47,0, FALSE} // 42 |
| |
120 , {doExprCatOperator, 123 /* { */, 59,0, TRUE} // 43 |
| |
121 , {doExprOrOperator, 124 /* | */, 21,0, TRUE} // 44 |
| |
122 , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 45 |
| |
123 , {doExprFinished, 255, 255,0, FALSE} // 46 |
| |
124 , {doSlash, 47 /* / */, 49,0, TRUE} // 47 look-ahead |
| |
125 , {doNOP, 255, 95,0, FALSE} // 48 |
| |
126 , {doExprCatOperator, 254, 21,0, FALSE} // 49 expr-cont-no-slash |
| |
127 , {doNOP, 132, 35,0, TRUE} // 50 |
| |
128 , {doExprCatOperator, 131, 21,0, FALSE} // 51 |
| |
129 , {doExprCatOperator, 91 /* [ */, 21,0, FALSE} // 52 |
| |
130 , {doExprCatOperator, 40 /* ( */, 21,0, FALSE} // 53 |
| |
131 , {doExprCatOperator, 36 /* $ */, 21,0, FALSE} // 54 |
| |
132 , {doExprCatOperator, 46 /* . */, 21,0, FALSE} // 55 |
| |
133 , {doExprOrOperator, 124 /* | */, 21,0, TRUE} // 56 |
| |
134 , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 57 |
| |
135 , {doExprFinished, 255, 255,0, FALSE} // 58 |
| |
136 , {doNOP, 132, 59,0, TRUE} // 59 tag-open |
| |
137 , {doStartTagValue, 128, 62,0, FALSE} // 60 |
| |
138 , {doTagExpectedError, 255, 95,0, FALSE} // 61 |
| |
139 , {doNOP, 132, 66,0, TRUE} // 62 tag-value |
| |
140 , {doNOP, 125 /* } */, 66,0, FALSE} // 63 |
| |
141 , {doTagDigit, 128, 62,0, TRUE} // 64 |
| |
142 , {doTagExpectedError, 255, 95,0, FALSE} // 65 |
| |
143 , {doNOP, 132, 66,0, TRUE} // 66 tag-close |
| |
144 , {doTagValue, 125 /* } */, 69,0, TRUE} // 67 |
| |
145 , {doTagExpectedError, 255, 95,0, FALSE} // 68 |
| |
146 , {doExprCatOperator, 254, 21,0, FALSE} // 69 expr-cont-no-tag |
| |
147 , {doNOP, 132, 69,0, TRUE} // 70 |
| |
148 , {doExprCatOperator, 131, 21,0, FALSE} // 71 |
| |
149 , {doExprCatOperator, 91 /* [ */, 21,0, FALSE} // 72 |
| |
150 , {doExprCatOperator, 40 /* ( */, 21,0, FALSE} // 73 |
| |
151 , {doExprCatOperator, 36 /* $ */, 21,0, FALSE} // 74 |
| |
152 , {doExprCatOperator, 46 /* . */, 21,0, FALSE} // 75 |
| |
153 , {doExprCatOperator, 47 /* / */, 47,0, FALSE} // 76 |
| |
154 , {doExprOrOperator, 124 /* | */, 21,0, TRUE} // 77 |
| |
155 , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 78 |
| |
156 , {doExprFinished, 255, 255,0, FALSE} // 79 |
| |
157 , {doStartVariableName, 36 /* $ */, 82,0, TRUE} // 80 scan-var-name |
| |
158 , {doNOP, 255, 95,0, FALSE} // 81 |
| |
159 , {doNOP, 130, 84,0, TRUE} // 82 scan-var-start |
| |
160 , {doVariableNameExpectedErr, 255, 95,0, FALSE} // 83 |
| |
161 , {doNOP, 129, 84,0, TRUE} // 84 scan-var-body |
| |
162 , {doEndVariableName, 255, 255,0, FALSE} // 85 |
| |
163 , {doScanUnicodeSet, 91 /* [ */, 255,0, TRUE} // 86 scan-unicode-set |
| |
164 , {doScanUnicodeSet, 112 /* p */, 255,0, TRUE} // 87 |
| |
165 , {doScanUnicodeSet, 80 /* P */, 255,0, TRUE} // 88 |
| |
166 , {doNOP, 255, 95,0, FALSE} // 89 |
| |
167 , {doNOP, 132, 90,0, TRUE} // 90 assign-or-rule |
| |
168 , {doStartAssign, 61 /* = */, 21, 93, TRUE} // 91 |
| |
169 , {doNOP, 255, 29, 8, FALSE} // 92 |
| |
170 , {doEndAssign, 59 /* ; */, 1,0, TRUE} // 93 assign-end |
| |
171 , {doRuleErrorAssignExpr, 255, 95,0, FALSE} // 94 |
| |
172 , {doExit, 255, 95,0, TRUE} // 95 errorDeath |
| |
173 }; |
| |
174 #ifdef RBBI_DEBUG |
| |
175 static const char * const RBBIRuleStateNames[] = { 0, |
| |
176 "start", |
| |
177 0, |
| |
178 0, |
| |
179 0, |
| |
180 0, |
| |
181 0, |
| |
182 0, |
| |
183 "break-rule-end", |
| |
184 0, |
| |
185 0, |
| |
186 "rev-option", |
| |
187 0, |
| |
188 "option-scan1", |
| |
189 0, |
| |
190 "option-scan2", |
| |
191 0, |
| |
192 "option-scan3", |
| |
193 0, |
| |
194 0, |
| |
195 "reverse-rule", |
| |
196 "term", |
| |
197 0, |
| |
198 0, |
| |
199 0, |
| |
200 0, |
| |
201 0, |
| |
202 0, |
| |
203 0, |
| |
204 "term-var-ref", |
| |
205 "expr-mod", |
| |
206 0, |
| |
207 0, |
| |
208 0, |
| |
209 0, |
| |
210 "expr-cont", |
| |
211 0, |
| |
212 0, |
| |
213 0, |
| |
214 0, |
| |
215 0, |
| |
216 0, |
| |
217 0, |
| |
218 0, |
| |
219 0, |
| |
220 0, |
| |
221 0, |
| |
222 "look-ahead", |
| |
223 0, |
| |
224 "expr-cont-no-slash", |
| |
225 0, |
| |
226 0, |
| |
227 0, |
| |
228 0, |
| |
229 0, |
| |
230 0, |
| |
231 0, |
| |
232 0, |
| |
233 0, |
| |
234 "tag-open", |
| |
235 0, |
| |
236 0, |
| |
237 "tag-value", |
| |
238 0, |
| |
239 0, |
| |
240 0, |
| |
241 "tag-close", |
| |
242 0, |
| |
243 0, |
| |
244 "expr-cont-no-tag", |
| |
245 0, |
| |
246 0, |
| |
247 0, |
| |
248 0, |
| |
249 0, |
| |
250 0, |
| |
251 0, |
| |
252 0, |
| |
253 0, |
| |
254 0, |
| |
255 "scan-var-name", |
| |
256 0, |
| |
257 "scan-var-start", |
| |
258 0, |
| |
259 "scan-var-body", |
| |
260 0, |
| |
261 "scan-unicode-set", |
| |
262 0, |
| |
263 0, |
| |
264 0, |
| |
265 "assign-or-rule", |
| |
266 0, |
| |
267 0, |
| |
268 "assign-end", |
| |
269 0, |
| |
270 "errorDeath", |
| |
271 0}; |
| |
272 #endif |
| |
273 |
| |
274 U_NAMESPACE_END |
| |
275 #endif |