Home | History | Annotate | Download | only in common
      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