RBBIRuleParseTable.java

// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
 *******************************************************************************
 * Copyright (c) 2003-2016, 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 doNoChain = 14;
    static final short doOptionEnd = 15;
    static final short doOptionStart = 16;
    static final short doReverseDir = 17;
    static final short doRuleChar = 18;
    static final short doRuleError = 19;
    static final short doRuleErrorAssignExpr = 20;
    static final short doScanUnicodeSet = 21;
    static final short doSlash = 22;
    static final short doStartAssign = 23;
    static final short doStartTagValue = 24;
    static final short doStartVariableName = 25;
    static final short doTagDigit = 26;
    static final short doTagExpectedError = 27;
    static final short doTagValue = 28;
    static final short doUnaryOpPlus = 29;
    static final short doUnaryOpQuestion = 30;
    static final short doUnaryOpStar = 31;
    static final short doVariableNameExpectedErr = 32;

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