OLD | NEW |
(Empty) | |
| 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 A
SCII character |
| 69 // 128-255: character class
index |
| 70 uint8_t fNextState; // 0-250: normal next-sta
t 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-na
me |
| 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 |
OLD | NEW |