• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
276