//---------------------------------------------------------------------------------
//
// Generated Header File.  Do not edit by hand.
//    This file contains the state table for the ICU Regular Expression Pattern Parser
//    It is generated by the Perl script "regexcst.pl" from
//    the rule parser state definitions file "regexcst.txt".
//
//   Copyright (C) 2002-2003 International Business Machines Corporation 
//   and others. All rights reserved.  
//
//---------------------------------------------------------------------------------
#ifndef RBBIRPT_H
#define RBBIRPT_H

U_NAMESPACE_BEGIN
//
// Character classes for regex pattern scanning.
//
    static const uint8_t kRuleSet_digit_char = 128;
    static const uint8_t kRuleSet_white_space = 129;
    static const uint8_t kRuleSet_rule_char = 130;


enum Regex_PatternParseAction {
    doPossessivePlus,
    doCloseParen,
    doProperty,
    doBeginMatchMode,
    doOrOperator,
    doOpenCaptureParen,
    doBadOpenParenType,
    doRuleError,
    doIntevalLowerDigit,
    doBackslashs,
    doNGOpt,
    doBackslashw,
    doMismatchedParenErr,
    doOpenLookBehind,
    doBackslashz,
    doIntervalError,
    doStar,
    doCaret,
    doEnterQuoteMode,
    doNGStar,
    doMatchMode,
    doIntervalUpperDigit,
    doOpenLookAheadNeg,
    doPlus,
    doOpenNonCaptureParen,
    doBackslashA,
    doBackslashB,
    doNGPlus,
    doSetMatchMode,
    doPatFinish,
    doBackslashD,
    doPossessiveInterval,
    doEscapeError,
    doBackslashG,
    doSuppressComments,
    doMatchModeParen,
    doOpt,
    doInterval,
    doLiteralChar,
    doIntervalInit,
    doOpenAtomicParen,
    doBackslashS,
    doOpenLookAhead,
    doBackRef,
    doDollar,
    doDotAny,
    doBackslashW,
    doBackslashX,
    doScanUnicodeSet,
    doBackslashZ,
    doPerlInline,
    doPossessiveOpt,
    doNOP,
    doConditionalExpr,
    doExit,
    doNGInterval,
    doPatStart,
    doBadModeFlag,
    doBackslashb,
    doPossessiveStar,
    doBackslashd,
    doIntervalSame,
    doOpenLookBehindNeg,
    rbbiLastAction};

//-------------------------------------------------------------------------------
//
//  RegexTableEl       represents the structure of a row in the transition table
//                     for the pattern parser state machine.
//-------------------------------------------------------------------------------
struct RegexTableEl {
    Regex_PatternParseAction      fAction;
    uint8_t                       fCharClass;       // 0-127:    an individual ASCII character
                                                    // 128-255:  character class index
    uint8_t                       fNextState;       // 0-250:    normal next-state numbers
                                                    // 255:      pop next-state from stack.
    uint8_t                       fPushState;
    UBool                         fNextChar;
};

static const struct RegexTableEl gRuleParseStateTable[] = {
    {doNOP, 0, 0, 0, TRUE}
    , {doPatStart, 255, 2,0,  FALSE}     //  1      start
    , {doLiteralChar, 254, 14,0,  TRUE}     //  2      term
    , {doLiteralChar, 130, 14,0,  TRUE}     //  3 
    , {doScanUnicodeSet, 91 /* [ */, 14,0,  TRUE}     //  4 
    , {doNOP, 40 /* ( */, 27,0,  TRUE}     //  5 
    , {doDotAny, 46 /* . */, 14,0,  TRUE}     //  6 
    , {doCaret, 94 /* ^ */, 2,0,  TRUE}     //  7 
    , {doDollar, 36 /* $ */, 2,0,  TRUE}     //  8 
    , {doNOP, 92 /* \ */, 81,0,  TRUE}     //  9 
    , {doOrOperator, 124 /* | */, 2,0,  TRUE}     //  10 
    , {doCloseParen, 41 /* ) */, 255,0,  TRUE}     //  11 
    , {doPatFinish, 253, 2,0,  FALSE}     //  12 
    , {doRuleError, 255, 101,0,  FALSE}     //  13 
    , {doNOP, 42 /* * */, 59,0,  TRUE}     //  14      expr-quant
    , {doNOP, 43 /* + */, 62,0,  TRUE}     //  15 
    , {doNOP, 63 /* ? */, 65,0,  TRUE}     //  16 
    , {doIntervalInit, 123 /* { */, 68,0,  TRUE}     //  17 
    , {doNOP, 40 /* ( */, 23,0,  TRUE}     //  18 
    , {doNOP, 255, 20,0,  FALSE}     //  19 
    , {doOrOperator, 124 /* | */, 2,0,  TRUE}     //  20      expr-cont
    , {doCloseParen, 41 /* ) */, 255,0,  TRUE}     //  21 
    , {doNOP, 255, 2,0,  FALSE}     //  22 
    , {doSuppressComments, 63 /* ? */, 25,0,  TRUE}     //  23      open-paren-quant
    , {doNOP, 255, 27,0,  FALSE}     //  24 
    , {doNOP, 35 /* # */, 47, 14, TRUE}     //  25      open-paren-quant2
    , {doNOP, 255, 29,0,  FALSE}     //  26 
    , {doSuppressComments, 63 /* ? */, 29,0,  TRUE}     //  27      open-paren
    , {doOpenCaptureParen, 255, 2, 14, FALSE}     //  28 
    , {doOpenNonCaptureParen, 58 /* : */, 2, 14, TRUE}     //  29      open-paren-extended
    , {doOpenAtomicParen, 62 /* > */, 2, 14, TRUE}     //  30 
    , {doOpenLookAhead, 61 /* = */, 2, 20, TRUE}     //  31 
    , {doOpenLookAheadNeg, 33 /* ! */, 2, 20, TRUE}     //  32 
    , {doNOP, 60 /* < */, 44,0,  TRUE}     //  33 
    , {doNOP, 35 /* # */, 47, 2, TRUE}     //  34 
    , {doBeginMatchMode, 105 /* i */, 50,0,  FALSE}     //  35 
    , {doBeginMatchMode, 109 /* m */, 50,0,  FALSE}     //  36 
    , {doBeginMatchMode, 115 /* s */, 50,0,  FALSE}     //  37 
    , {doBeginMatchMode, 119 /* w */, 50,0,  FALSE}     //  38 
    , {doBeginMatchMode, 120 /* x */, 50,0,  FALSE}     //  39 
    , {doBeginMatchMode, 45 /* - */, 50,0,  FALSE}     //  40 
    , {doConditionalExpr, 40 /* ( */, 101,0,  TRUE}     //  41 
    , {doPerlInline, 123 /* { */, 101,0,  TRUE}     //  42 
    , {doBadOpenParenType, 255, 101,0,  FALSE}     //  43 
    , {doOpenLookBehind, 61 /* = */, 2, 20, TRUE}     //  44      open-paren-lookbehind
    , {doOpenLookBehindNeg, 33 /* ! */, 2, 20, TRUE}     //  45 
    , {doBadOpenParenType, 255, 101,0,  FALSE}     //  46 
    , {doNOP, 41 /* ) */, 255,0,  TRUE}     //  47      paren-comment
    , {doMismatchedParenErr, 253, 101,0,  FALSE}     //  48 
    , {doNOP, 255, 47,0,  TRUE}     //  49 
    , {doMatchMode, 105 /* i */, 50,0,  TRUE}     //  50      paren-flag
    , {doMatchMode, 109 /* m */, 50,0,  TRUE}     //  51 
    , {doMatchMode, 115 /* s */, 50,0,  TRUE}     //  52 
    , {doMatchMode, 119 /* w */, 50,0,  TRUE}     //  53 
    , {doMatchMode, 120 /* x */, 50,0,  TRUE}     //  54 
    , {doMatchMode, 45 /* - */, 50,0,  TRUE}     //  55 
    , {doSetMatchMode, 41 /* ) */, 2,0,  TRUE}     //  56 
    , {doMatchModeParen, 58 /* : */, 2, 14, TRUE}     //  57 
    , {doBadModeFlag, 255, 101,0,  FALSE}     //  58 
    , {doNGStar, 63 /* ? */, 20,0,  TRUE}     //  59      quant-star
    , {doPossessiveStar, 43 /* + */, 20,0,  TRUE}     //  60 
    , {doStar, 255, 20,0,  FALSE}     //  61 
    , {doNGPlus, 63 /* ? */, 20,0,  TRUE}     //  62      quant-plus
    , {doPossessivePlus, 43 /* + */, 20,0,  TRUE}     //  63 
    , {doPlus, 255, 20,0,  FALSE}     //  64 
    , {doNGOpt, 63 /* ? */, 20,0,  TRUE}     //  65      quant-opt
    , {doPossessiveOpt, 43 /* + */, 20,0,  TRUE}     //  66 
    , {doOpt, 255, 20,0,  FALSE}     //  67 
    , {doNOP, 129, 68,0,  TRUE}     //  68      interval-open
    , {doNOP, 128, 71,0,  FALSE}     //  69 
    , {doIntervalError, 255, 101,0,  FALSE}     //  70 
    , {doIntevalLowerDigit, 128, 71,0,  TRUE}     //  71      interval-lower
    , {doNOP, 44 /* , */, 75,0,  TRUE}     //  72 
    , {doIntervalSame, 125 /* } */, 78,0,  TRUE}     //  73 
    , {doIntervalError, 255, 101,0,  FALSE}     //  74 
    , {doIntervalUpperDigit, 128, 75,0,  TRUE}     //  75      interval-upper
    , {doNOP, 125 /* } */, 78,0,  TRUE}     //  76 
    , {doIntervalError, 255, 101,0,  FALSE}     //  77 
    , {doNGInterval, 63 /* ? */, 20,0,  TRUE}     //  78      interval-type
    , {doPossessiveInterval, 43 /* + */, 20,0,  TRUE}     //  79 
    , {doInterval, 255, 20,0,  FALSE}     //  80 
    , {doBackslashA, 65 /* A */, 2,0,  TRUE}     //  81      backslash
    , {doBackslashB, 66 /* B */, 2,0,  TRUE}     //  82 
    , {doBackslashb, 98 /* b */, 2,0,  TRUE}     //  83 
    , {doBackslashd, 100 /* d */, 14,0,  TRUE}     //  84 
    , {doBackslashD, 68 /* D */, 14,0,  TRUE}     //  85 
    , {doBackslashG, 71 /* G */, 2,0,  TRUE}     //  86 
    , {doProperty, 78 /* N */, 14,0,  FALSE}     //  87 
    , {doProperty, 112 /* p */, 14,0,  FALSE}     //  88 
    , {doProperty, 80 /* P */, 14,0,  FALSE}     //  89 
    , {doEnterQuoteMode, 81 /* Q */, 2,0,  TRUE}     //  90 
    , {doBackslashS, 83 /* S */, 14,0,  TRUE}     //  91 
    , {doBackslashs, 115 /* s */, 14,0,  TRUE}     //  92 
    , {doBackslashW, 87 /* W */, 14,0,  TRUE}     //  93 
    , {doBackslashw, 119 /* w */, 14,0,  TRUE}     //  94 
    , {doBackslashX, 88 /* X */, 14,0,  TRUE}     //  95 
    , {doBackslashZ, 90 /* Z */, 2,0,  TRUE}     //  96 
    , {doBackslashz, 122 /* z */, 2,0,  TRUE}     //  97 
    , {doBackRef, 128, 14,0,  TRUE}     //  98 
    , {doEscapeError, 253, 101,0,  FALSE}     //  99 
    , {doLiteralChar, 255, 14,0,  TRUE}     //  100 
    , {doExit, 255, 101,0,  TRUE}     //  101      errorDeath
 };
static const char * const RegexStateNames[] = {    0,
     "start",
     "term",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
     "expr-quant",
    0,
    0,
    0,
    0,
    0,
     "expr-cont",
    0,
    0,
     "open-paren-quant",
    0,
     "open-paren-quant2",
    0,
     "open-paren",
    0,
     "open-paren-extended",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
     "open-paren-lookbehind",
    0,
    0,
     "paren-comment",
    0,
    0,
     "paren-flag",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
     "quant-star",
    0,
    0,
     "quant-plus",
    0,
    0,
     "quant-opt",
    0,
    0,
     "interval-open",
    0,
    0,
     "interval-lower",
    0,
    0,
    0,
     "interval-upper",
    0,
    0,
     "interval-type",
    0,
    0,
     "backslash",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
     "errorDeath",
    0};

U_NAMESPACE_END
#endif
