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