/*
 *******************************************************************************
 * Copyright (C) 2003-2006,
 * International Business Machines Corporation and others. All Rights Reserved.
 *******************************************************************************
 */
 
package com.ibm.icu.text;
 
/**
 * Generated Java File.  Do not edit by hand.
 * This file contains the state table for the ICU Rule Based Break Iterator
 * rule parser.
 * It is generated by the Perl script "rbbicst.pl" from
 * the rule parser state definitions file "rbbirpt.txt".
 * @internal 
 *
 */
class RBBIRuleParseTable
{
     static final short doCheckVarDef = 1;
     static final short doDotAny = 2;
     static final short doEndAssign = 3;
     static final short doEndOfRule = 4;
     static final short doEndVariableName = 5;
     static final short doExit = 6;
     static final short doExprCatOperator = 7;
     static final short doExprFinished = 8;
     static final short doExprOrOperator = 9;
     static final short doExprRParen = 10;
     static final short doExprStart = 11;
     static final short doLParen = 12;
     static final short doNOP = 13;
     static final short doOptionEnd = 14;
     static final short doOptionStart = 15;
     static final short doReverseDir = 16;
     static final short doRuleChar = 17;
     static final short doRuleError = 18;
     static final short doRuleErrorAssignExpr = 19;
     static final short doScanUnicodeSet = 20;
     static final short doSlash = 21;
     static final short doStartAssign = 22;
     static final short doStartTagValue = 23;
     static final short doStartVariableName = 24;
     static final short doTagDigit = 25;
     static final short doTagExpectedError = 26;
     static final short doTagValue = 27;
     static final short doUnaryOpPlus = 28;
     static final short doUnaryOpQuestion = 29;
     static final short doUnaryOpStar = 30;
     static final short doVariableNameExpectedErr = 31;
 
     static final short kRuleSet_default = 255;
     static final short kRuleSet_digit_char = 128;
     static final short kRuleSet_eof = 252;
     static final short kRuleSet_escaped = 254;
     static final short kRuleSet_name_char = 129;
     static final short kRuleSet_name_start_char = 130;
     static final short kRuleSet_rule_char = 131;
     static final short kRuleSet_white_space = 132;


   static class RBBIRuleTableElement { 
      short      fAction; 
      short      fCharClass; 
      short      fNextState; 
      short      fPushState; 
      boolean    fNextChar;  
      String     fStateName; 
      RBBIRuleTableElement(short a, int cc, int ns, int ps, boolean nc, String sn) {  
      fAction = a; 
      fCharClass = (short)cc; 
      fNextState = (short)ns; 
      fPushState = (short)ps; 
      fNextChar  = nc; 
      fStateName = sn; 
   } 
   } 
  
    static RBBIRuleTableElement[] gRuleParseStateTable = { 
       new RBBIRuleTableElement(doNOP, 0, 0,0,  true,   null )     //  0 
     , new RBBIRuleTableElement(doExprStart, 254, 21, 8, false,   "start")     //  1 
     , new RBBIRuleTableElement(doNOP, 132, 1,0,  true,   null )     //  2 
     , new RBBIRuleTableElement(doExprStart,'$',  80, 90, false,   null )     //  3 
     , new RBBIRuleTableElement(doNOP,'!',  11,0,  true,   null )     //  4 
     , new RBBIRuleTableElement(doNOP,';',  1,0,  true,   null )     //  5 
     , new RBBIRuleTableElement(doNOP, 252, 0,0,  false,   null )     //  6 
     , new RBBIRuleTableElement(doExprStart, 255, 21, 8, false,   null )     //  7 
     , new RBBIRuleTableElement(doEndOfRule,';',  1,0,  true,   "break-rule-end")     //  8 
     , new RBBIRuleTableElement(doNOP, 132, 8,0,  true,   null )     //  9 
     , new RBBIRuleTableElement(doRuleError, 255, 95,0,  false,   null )     //  10 
     , new RBBIRuleTableElement(doNOP,'!',  13,0,  true,   "rev-option")     //  11 
     , new RBBIRuleTableElement(doReverseDir, 255, 20, 8, false,   null )     //  12 
     , new RBBIRuleTableElement(doOptionStart, 130, 15,0,  true,   "option-scan1")     //  13 
     , new RBBIRuleTableElement(doRuleError, 255, 95,0,  false,   null )     //  14 
     , new RBBIRuleTableElement(doNOP, 129, 15,0,  true,   "option-scan2")     //  15 
     , new RBBIRuleTableElement(doOptionEnd, 255, 17,0,  false,   null )     //  16 
     , new RBBIRuleTableElement(doNOP,';',  1,0,  true,   "option-scan3")     //  17 
     , new RBBIRuleTableElement(doNOP, 132, 17,0,  true,   null )     //  18 
     , new RBBIRuleTableElement(doRuleError, 255, 95,0,  false,   null )     //  19 
     , new RBBIRuleTableElement(doExprStart, 255, 21, 8, false,   "reverse-rule")     //  20 
     , new RBBIRuleTableElement(doRuleChar, 254, 30,0,  true,   "term")     //  21 
     , new RBBIRuleTableElement(doNOP, 132, 21,0,  true,   null )     //  22 
     , new RBBIRuleTableElement(doRuleChar, 131, 30,0,  true,   null )     //  23 
     , new RBBIRuleTableElement(doNOP,'[',  86, 30, false,   null )     //  24 
     , new RBBIRuleTableElement(doLParen,'(',  21, 30, true,   null )     //  25 
     , new RBBIRuleTableElement(doNOP,'$',  80, 29, false,   null )     //  26 
     , new RBBIRuleTableElement(doDotAny,'.',  30,0,  true,   null )     //  27 
     , new RBBIRuleTableElement(doRuleError, 255, 95,0,  false,   null )     //  28 
     , new RBBIRuleTableElement(doCheckVarDef, 255, 30,0,  false,   "term-var-ref")     //  29 
     , new RBBIRuleTableElement(doNOP, 132, 30,0,  true,   "expr-mod")     //  30 
     , new RBBIRuleTableElement(doUnaryOpStar,'*',  35,0,  true,   null )     //  31 
     , new RBBIRuleTableElement(doUnaryOpPlus,'+',  35,0,  true,   null )     //  32 
     , new RBBIRuleTableElement(doUnaryOpQuestion,'?',  35,0,  true,   null )     //  33 
     , new RBBIRuleTableElement(doNOP, 255, 35,0,  false,   null )     //  34 
     , new RBBIRuleTableElement(doExprCatOperator, 254, 21,0,  false,   "expr-cont")     //  35 
     , new RBBIRuleTableElement(doNOP, 132, 35,0,  true,   null )     //  36 
     , new RBBIRuleTableElement(doExprCatOperator, 131, 21,0,  false,   null )     //  37 
     , new RBBIRuleTableElement(doExprCatOperator,'[',  21,0,  false,   null )     //  38 
     , new RBBIRuleTableElement(doExprCatOperator,'(',  21,0,  false,   null )     //  39 
     , new RBBIRuleTableElement(doExprCatOperator,'$',  21,0,  false,   null )     //  40 
     , new RBBIRuleTableElement(doExprCatOperator,'.',  21,0,  false,   null )     //  41 
     , new RBBIRuleTableElement(doExprCatOperator,'/',  47,0,  false,   null )     //  42 
     , new RBBIRuleTableElement(doExprCatOperator,'{',  59,0,  true,   null )     //  43 
     , new RBBIRuleTableElement(doExprOrOperator,'|',  21,0,  true,   null )     //  44 
     , new RBBIRuleTableElement(doExprRParen,')',  255,0,  true,   null )     //  45 
     , new RBBIRuleTableElement(doExprFinished, 255, 255,0,  false,   null )     //  46 
     , new RBBIRuleTableElement(doSlash,'/',  49,0,  true,   "look-ahead")     //  47 
     , new RBBIRuleTableElement(doNOP, 255, 95,0,  false,   null )     //  48 
     , new RBBIRuleTableElement(doExprCatOperator, 254, 21,0,  false,   "expr-cont-no-slash")     //  49 
     , new RBBIRuleTableElement(doNOP, 132, 35,0,  true,   null )     //  50 
     , new RBBIRuleTableElement(doExprCatOperator, 131, 21,0,  false,   null )     //  51 
     , new RBBIRuleTableElement(doExprCatOperator,'[',  21,0,  false,   null )     //  52 
     , new RBBIRuleTableElement(doExprCatOperator,'(',  21,0,  false,   null )     //  53 
     , new RBBIRuleTableElement(doExprCatOperator,'$',  21,0,  false,   null )     //  54 
     , new RBBIRuleTableElement(doExprCatOperator,'.',  21,0,  false,   null )     //  55 
     , new RBBIRuleTableElement(doExprOrOperator,'|',  21,0,  true,   null )     //  56 
     , new RBBIRuleTableElement(doExprRParen,')',  255,0,  true,   null )     //  57 
     , new RBBIRuleTableElement(doExprFinished, 255, 255,0,  false,   null )     //  58 
     , new RBBIRuleTableElement(doNOP, 132, 59,0,  true,   "tag-open")     //  59 
     , new RBBIRuleTableElement(doStartTagValue, 128, 62,0,  false,   null )     //  60 
     , new RBBIRuleTableElement(doTagExpectedError, 255, 95,0,  false,   null )     //  61 
     , new RBBIRuleTableElement(doNOP, 132, 66,0,  true,   "tag-value")     //  62 
     , new RBBIRuleTableElement(doNOP,'}',  66,0,  false,   null )     //  63 
     , new RBBIRuleTableElement(doTagDigit, 128, 62,0,  true,   null )     //  64 
     , new RBBIRuleTableElement(doTagExpectedError, 255, 95,0,  false,   null )     //  65 
     , new RBBIRuleTableElement(doNOP, 132, 66,0,  true,   "tag-close")     //  66 
     , new RBBIRuleTableElement(doTagValue,'}',  69,0,  true,   null )     //  67 
     , new RBBIRuleTableElement(doTagExpectedError, 255, 95,0,  false,   null )     //  68 
     , new RBBIRuleTableElement(doExprCatOperator, 254, 21,0,  false,   "expr-cont-no-tag")     //  69 
     , new RBBIRuleTableElement(doNOP, 132, 69,0,  true,   null )     //  70 
     , new RBBIRuleTableElement(doExprCatOperator, 131, 21,0,  false,   null )     //  71 
     , new RBBIRuleTableElement(doExprCatOperator,'[',  21,0,  false,   null )     //  72 
     , new RBBIRuleTableElement(doExprCatOperator,'(',  21,0,  false,   null )     //  73 
     , new RBBIRuleTableElement(doExprCatOperator,'$',  21,0,  false,   null )     //  74 
     , new RBBIRuleTableElement(doExprCatOperator,'.',  21,0,  false,   null )     //  75 
     , new RBBIRuleTableElement(doExprCatOperator,'/',  47,0,  false,   null )     //  76 
     , new RBBIRuleTableElement(doExprOrOperator,'|',  21,0,  true,   null )     //  77 
     , new RBBIRuleTableElement(doExprRParen,')',  255,0,  true,   null )     //  78 
     , new RBBIRuleTableElement(doExprFinished, 255, 255,0,  false,   null )     //  79 
     , new RBBIRuleTableElement(doStartVariableName,'$',  82,0,  true,   "scan-var-name")     //  80 
     , new RBBIRuleTableElement(doNOP, 255, 95,0,  false,   null )     //  81 
     , new RBBIRuleTableElement(doNOP, 130, 84,0,  true,   "scan-var-start")     //  82 
     , new RBBIRuleTableElement(doVariableNameExpectedErr, 255, 95,0,  false,   null )     //  83 
     , new RBBIRuleTableElement(doNOP, 129, 84,0,  true,   "scan-var-body")     //  84 
     , new RBBIRuleTableElement(doEndVariableName, 255, 255,0,  false,   null )     //  85 
     , new RBBIRuleTableElement(doScanUnicodeSet,'[',  255,0,  true,   "scan-unicode-set")     //  86 
     , new RBBIRuleTableElement(doScanUnicodeSet,'p',  255,0,  true,   null )     //  87 
     , new RBBIRuleTableElement(doScanUnicodeSet,'P',  255,0,  true,   null )     //  88 
     , new RBBIRuleTableElement(doNOP, 255, 95,0,  false,   null )     //  89 
     , new RBBIRuleTableElement(doNOP, 132, 90,0,  true,   "assign-or-rule")     //  90 
     , new RBBIRuleTableElement(doStartAssign,'=',  21, 93, true,   null )     //  91 
     , new RBBIRuleTableElement(doNOP, 255, 29, 8, false,   null )     //  92 
     , new RBBIRuleTableElement(doEndAssign,';',  1,0,  true,   "assign-end")     //  93 
     , new RBBIRuleTableElement(doRuleErrorAssignExpr, 255, 95,0,  false,   null )     //  94 
     , new RBBIRuleTableElement(doExit, 255, 95,0,  true,   "errorDeath")     //  95 
 };
} 
