blob: c17ecc9cfe3b69cac2321ac7c61872ca982a8d0e [file] [log] [blame]
/**
* Essential OCL Grammar
* <copyright>
*
* Copyright (c) 2005, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* IBM - Initial API and implementation
* E.D.Willink - Elimination of some shift-reduce conflicts
* E.D.Willink - Remove unnecessary warning suppression
* E.D.Willink - Bugs 184048, 225493, 243976, 259818, 282882, 287993, 288040, 292112, 295166
* Borland - Bug 242880
* Adolfo Sanchez-Barbudo Herrera (Open Canarias):
* - 242153: LPG v 2.0.17 adoption.
* - 299396: Introducing new LPG templates
* - 300534: Removing the use of deprecated macros.
*******************************************************************************/
package org.eclipse.ocl.parser.backtracking;
/**
* The backtracking variant of the OCL parser parse table.
*
* @noextend This class is not intended to be subclassed by clients.
*
* @since 1.3
*/
@SuppressWarnings("nls")
public class OCLBacktrackingParserprs implements lpg.runtime.ParseTable, OCLBacktrackingParsersym {
public final static int ERROR_SYMBOL = 1;
public final int getErrorSymbol() { return ERROR_SYMBOL; }
public final static int SCOPE_UBOUND = 53;
public final int getScopeUbound() { return SCOPE_UBOUND; }
public final static int SCOPE_SIZE = 54;
public final int getScopeSize() { return SCOPE_SIZE; }
public final static int MAX_NAME_LENGTH = 29;
public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
public final static int NUM_STATES = 263;
public final int getNumStates() { return NUM_STATES; }
public final static int NT_OFFSET = 80;
public final int getNtOffset() { return NT_OFFSET; }
public final static int LA_STATE_OFFSET = 4841;
public final int getLaStateOffset() { return LA_STATE_OFFSET; }
public final static int MAX_LA = 1;
public final int getMaxLa() { return MAX_LA; }
public final static int NUM_RULES = 345;
public final int getNumRules() { return NUM_RULES; }
public final static int NUM_NONTERMINALS = 127;
public final int getNumNonterminals() { return NUM_NONTERMINALS; }
public final static int NUM_SYMBOLS = 207;
public final int getNumSymbols() { return NUM_SYMBOLS; }
public final static int SEGMENT_SIZE = 8192;
public final int getSegmentSize() { return SEGMENT_SIZE; }
public final static int START_STATE = 4044;
public final int getStartState() { return START_STATE; }
public final static int IDENTIFIER_SYMBOL = 7;
public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; }
public final static int EOFT_SYMBOL = 71;
public final int getEoftSymbol() { return EOFT_SYMBOL; }
public final static int EOLT_SYMBOL = 71;
public final int getEoltSymbol() { return EOLT_SYMBOL; }
public final static int ACCEPT_ACTION = 4495;
public final int getAcceptAction() { return ACCEPT_ACTION; }
public final static int ERROR_ACTION = 4496;
public final int getErrorAction() { return ERROR_ACTION; }
public final static boolean BACKTRACK = true;
public final boolean getBacktrack() { return BACKTRACK; }
public final int getStartSymbol() { return lhs(0); }
public final boolean isValidForParser() { return OCLBacktrackingParsersym.isValidForParser; }
public interface IsNullable {
public final static byte isNullable[] = {0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,1,0,0,0,1,1,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,1,0,1,1,0,0,
0,0,0,1,0,1,0,0,1,0,
0,0,0,0,0,0,1,0,0,0,
0,0,0,0,0,0,0
};
};
public final static byte isNullable[] = IsNullable.isNullable;
public final boolean isNullable(int index) { return isNullable[index] != 0; }
public interface ProsthesesIndex {
public final static byte prosthesesIndex[] = {0,
12,13,127,9,10,15,17,18,11,29,
30,31,32,33,38,39,40,41,42,43,
44,46,47,48,49,50,51,52,53,54,
59,60,61,86,88,89,90,91,100,83,
84,85,80,81,82,77,78,79,74,75,
76,71,72,73,68,69,70,65,66,67,
24,55,62,63,64,21,125,6,8,14,
25,56,99,57,16,22,23,58,97,94,
28,87,113,114,115,116,27,36,37,95,
96,103,105,26,34,35,98,101,102,109,
118,119,120,123,124,2,3,4,19,20,
45,92,93,104,106,107,108,110,111,112,
117,121,122,126,1,5,7
};
};
public final static byte prosthesesIndex[] = ProsthesesIndex.prosthesesIndex;
public final int prosthesesIndex(int index) { return prosthesesIndex[index]; }
public interface IsKeyword {
public final static byte isKeyword[] = {0,
0,0,0,0,0,1,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,0,0,0,1,0,0,
1,1,1,1,1,1,1,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,1,0,1,1,1,1,1,1,1,
1,0,1,1,0,0,1,1,1,1,
0,0,0,1,0,1,1,1,0,0
};
};
public final static byte isKeyword[] = IsKeyword.isKeyword;
public final boolean isKeyword(int index) { return isKeyword[index] != 0; }
public interface BaseCheck {
public final static short baseCheck[] = {0,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,2,1,1,1,
3,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,4,4,
0,1,1,3,1,3,3,5,1,1,
1,1,1,1,1,1,1,1,1,1,
4,4,0,1,1,3,1,1,3,1,
1,1,1,1,1,1,4,1,3,1,
1,1,2,1,1,1,1,1,1,1,
1,1,1,1,1,8,10,10,8,10,
1,1,1,5,6,8,8,7,7,5,
6,9,1,4,6,4,7,5,0,0,
1,1,3,1,1,1,1,1,1,1,
1,1,3,1,3,1,1,1,3,1,
3,1,1,1,3,1,3,1,1,1,
3,1,3,1,1,1,3,3,1,3,
3,1,1,1,3,3,3,3,1,3,
3,3,3,1,1,1,3,3,1,3,
3,1,1,1,3,3,1,3,3,1,
1,1,2,2,1,2,2,1,1,1,
1,1,1,3,7,4,1,3,1,1,
1,1,1,0,1,1,1,1,1,1,
1,1,1,1,1,1,0,1,1,1,
0,1,7,2,2,1,6,6,0,1,
1,3,1,3,1,1,1,2,2,1,
1,4,1,1,1,3,2,1,3,0,
1,1,2,1,1,1,7,1,2,3,
3,3,5,1,2,4,4,5,3,3,
3,1,2,4,4,4,6,8,0,1,
1,3,1,1,1,1,4,2,1,4,
7,5,3,3,3,4,4,3,2,2,
3,3,4,5,2,1,7,3,3,3,
3,2,2,5,4,-98,1,2,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,
35,36,37,38,39,40,41,42,43,44,
45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,64,
65,-105,1,2,3,-2,-3,6,-15,1,
2,3,-84,-4,6,-14,-85,1,2,3,
-90,-10,6,88,89,-17,1,2,3,-16,
95,96,-99,1,2,3,4,5,6,7,
8,9,10,11,12,13,14,15,16,17,
18,19,20,21,22,23,24,25,26,27,
28,29,30,31,32,33,34,35,36,37,
38,39,40,41,42,43,44,45,46,47,
48,49,50,51,52,53,54,55,56,57,
58,59,60,61,62,63,64,65,83,84,
85,86,90,83,84,85,86,-18,107,108,
-103,1,2,3,-104,1,2,3,-87,-20,
88,89,-106,1,2,3,-156,95,96,-204,
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60,
61,62,63,64,65,66,-19,-21,80,73,
71,-230,-26,-28,-30,76,-33,-35,-184,-38,
-41,-45,93,-136,-42,-43,87,-244,1,2,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31,32,
33,34,35,36,37,38,39,40,41,42,
43,44,45,46,47,48,49,50,51,52,
53,54,55,56,57,58,59,60,61,62,
63,64,65,66,73,74,73,74,80,72,
93,-44,91,76,-46,-47,-48,-49,-51,-39,
-192,1,2,3,87,-197,1,2,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,
35,36,37,38,39,40,41,42,43,44,
45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,64,
65,71,-13,1,2,3,-53,77,6,80,
-54,-55,-56,-57,-58,-59,-60,-61,-62,-63,
-64,-131,-68,-69,94,-70,-71,92,-72,-153,
101,-155,-73,98,99,-198,1,2,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,
35,36,37,38,39,40,41,42,43,44,
45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,64,
65,80,73,74,73,74,-74,-75,-76,-80,
-93,-94,-95,-101,-102,-107,-114,-115,-116,-127,
-128,-129,101,-132,122,-133,-134,92,-189,-135,
-217,-137,-226,98,99,-138,1,2,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,
35,36,37,38,39,40,41,42,43,44,
45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,64,
65,73,74,73,74,73,74,72,-236,-167,
1,2,3,78,-187,1,2,3,4,5,
6,7,8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,25,
26,27,28,29,30,31,32,33,34,35,
36,37,38,39,40,41,42,43,44,45,
46,47,48,49,50,51,52,53,54,55,
56,57,58,59,60,61,62,63,64,65,
71,73,74,-139,-140,-141,72,-256,-240,1,
2,3,78,-195,1,2,3,4,5,6,
7,8,9,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,25,26,
27,28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,46,
47,48,49,50,51,52,53,54,55,56,
57,58,59,60,61,62,63,64,65,71,
73,74,-142,-143,-144,-145,-146,-147,-148,-149,
-151,-152,-154,-157,-158,-159,-160,-161,-162,-163,
-164,88,89,-216,1,2,3,4,5,6,
7,8,9,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,25,26,
27,28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,46,
47,48,49,50,51,52,53,54,55,56,
57,58,59,60,61,62,63,64,65,-165,
-166,-170,-171,-172,-173,72,-174,-175,-176,-177,
-178,78,-219,1,2,3,4,5,6,7,
8,9,10,11,12,13,14,15,16,17,
18,19,20,21,22,23,24,25,26,27,
28,29,30,31,32,33,34,35,36,37,
38,39,40,41,42,43,44,45,46,47,
48,49,50,51,52,53,54,55,56,57,
58,59,60,61,62,63,64,65,-183,-190,
-191,-196,-199,-202,72,-203,-205,-206,-207,-208,
78,-220,1,2,3,4,5,6,7,8,
9,10,11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,26,27,28,
29,30,31,32,33,34,35,36,37,38,
39,40,41,42,43,44,45,46,47,48,
49,50,51,52,53,54,55,56,57,58,
59,60,61,62,63,64,65,-210,-212,-213,
-214,-215,-218,72,-221,-222,-223,-224,-225,78,
-247,1,2,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26,27,28,29,
30,31,32,33,34,35,36,37,38,39,
40,41,42,43,44,45,46,47,48,49,
50,51,52,53,54,55,56,57,58,59,
60,61,62,63,64,65,-231,-234,-235,-237,
-238,-248,72,-249,-250,-251,-252,-253,78,-92,
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60,
61,62,63,64,65,-254,-255,-257,-261,-262,
-263,72,-201,1,2,3,4,5,6,7,
8,9,10,11,12,13,14,15,16,17,
18,19,20,21,22,23,24,25,26,27,
28,29,30,31,32,33,34,35,36,37,
38,39,40,41,42,43,44,45,46,47,
48,49,50,51,52,53,54,55,56,57,
58,59,60,61,62,63,64,65,0,0,
0,0,0,0,72,-233,1,2,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,
35,36,37,38,39,40,41,42,43,44,
45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,64,
65,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,92,-243,1,
2,3,4,5,6,7,8,9,10,11,
12,13,14,15,16,17,18,19,20,21,
22,23,24,25,26,27,28,29,30,31,
32,33,34,35,36,37,38,39,40,41,
42,43,44,45,46,47,48,49,50,51,
52,53,54,55,56,57,58,59,60,61,
62,63,64,65,0,0,0,0,0,0,
72,-22,1,2,3,4,5,6,7,8,
9,10,11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,26,27,28,
29,30,31,32,33,34,35,36,37,38,
39,40,41,42,43,44,45,46,47,48,
49,50,51,52,53,54,55,56,57,58,
59,60,61,62,63,64,65,-24,1,2,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31,32,
33,34,35,36,37,38,39,40,41,42,
43,44,45,46,47,48,49,50,51,52,
53,54,55,56,57,58,59,60,61,62,
63,64,65,-25,1,2,3,4,5,6,
7,8,9,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,25,26,
27,28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,46,
47,48,49,50,51,52,53,54,55,56,
57,58,59,60,61,62,63,64,65,-50,
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60,
61,62,63,64,65,-52,1,2,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,
35,36,37,38,39,40,41,42,43,44,
45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,64,
65,-77,1,2,3,4,5,6,7,8,
9,10,11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,26,27,28,
29,30,31,32,33,34,35,36,37,38,
39,40,41,42,43,44,45,46,47,48,
49,50,51,52,53,54,55,56,57,58,
59,60,61,62,63,64,65,-78,1,2,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31,32,
33,34,35,36,37,38,39,40,41,42,
43,44,45,46,47,48,49,50,51,52,
53,54,55,56,57,58,59,60,61,62,
63,64,65,-79,1,2,3,4,5,6,
7,8,9,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,25,26,
27,28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,46,
47,48,49,50,51,52,53,54,55,56,
57,58,59,60,61,62,63,64,65,-83,
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60,
61,62,63,64,65,-125,1,2,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,
35,36,37,38,39,40,41,42,43,44,
45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,64,
65,-150,1,2,3,4,5,6,7,8,
9,10,11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,26,27,28,
29,30,31,32,33,34,35,36,37,38,
39,40,41,42,43,44,45,46,47,48,
49,50,51,52,53,54,55,56,57,58,
59,60,61,62,63,64,65,-168,1,2,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31,32,
33,34,35,36,37,38,39,40,41,42,
43,44,45,46,47,48,49,50,51,52,
53,54,55,56,57,58,59,60,61,62,
63,64,65,-179,1,2,3,4,5,6,
7,8,9,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,25,26,
27,28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,46,
47,48,49,50,51,52,53,54,55,56,
57,58,59,60,61,62,63,64,65,-180,
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60,
61,62,63,64,65,-188,1,2,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,
35,36,37,38,39,40,41,42,43,44,
45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,64,
65,-194,1,2,3,4,5,6,7,8,
9,10,11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,26,27,28,
29,30,31,32,33,34,35,36,37,38,
39,40,41,42,43,44,45,46,47,48,
49,50,51,52,53,54,55,56,57,58,
59,60,61,62,63,64,65,-211,1,2,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31,32,
33,34,35,36,37,38,39,40,41,42,
43,44,45,46,47,48,49,50,51,52,
53,54,55,56,57,58,59,60,61,62,
63,64,65,-239,1,2,3,4,5,6,
7,8,9,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,25,26,
27,28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,46,
47,48,49,50,51,52,53,54,55,56,
57,58,59,60,61,62,63,64,65,-241,
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60,
61,62,63,64,65,-258,1,2,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,
35,36,37,38,39,40,41,42,43,44,
45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,64,
65,-259,1,2,3,4,5,6,7,8,
9,10,11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,26,27,28,
29,30,31,32,33,34,35,36,37,38,
39,40,41,42,43,44,45,46,47,48,
49,50,51,52,53,54,55,56,57,58,
59,60,61,62,63,64,65,-260,1,2,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31,32,
33,34,35,36,37,38,39,40,41,42,
43,44,45,46,47,48,49,50,51,52,
53,54,55,56,57,58,59,60,61,62,
63,64,65,-108,1,2,3,4,5,6,
7,8,9,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,25,26,
27,28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,46,
47,48,49,50,51,52,53,54,55,56,
57,58,59,60,-124,1,2,3,4,5,
6,7,8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,25,
26,27,28,29,30,31,32,33,34,35,
36,37,38,39,40,41,42,43,44,45,
46,47,48,49,50,51,52,53,54,55,
56,57,-109,1,2,3,4,5,6,7,
8,9,10,11,12,13,14,15,16,17,
18,19,20,21,22,23,24,25,26,27,
28,29,30,31,32,33,34,35,36,37,
38,39,40,41,42,43,44,45,46,47,
48,49,50,51,52,53,54,-123,1,2,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31,32,
33,34,35,36,37,38,39,40,41,42,
43,44,45,46,47,48,49,50,51,-110,
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,-111,1,
2,3,4,5,6,7,8,9,10,11,
12,13,14,15,16,17,18,19,20,21,
22,23,24,25,26,27,28,29,30,31,
32,33,34,35,36,37,38,39,40,41,
42,43,44,45,46,47,48,-119,1,2,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31,32,
33,34,35,36,37,38,39,40,41,42,
43,44,45,-120,1,2,3,4,5,6,
7,8,9,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,25,26,
27,28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,-121,
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,-122,1,2,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,
35,36,37,38,39,40,41,42,43,44,
45,-112,1,2,3,4,5,6,7,8,
9,10,11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,26,27,28,
29,30,31,32,33,34,35,36,37,38,
39,40,41,42,-113,1,2,3,4,5,
6,7,8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,25,
26,27,28,29,30,31,32,33,34,35,
36,37,38,39,40,41,42,-65,1,2,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31,32,
33,34,35,36,37,38,39,-66,1,2,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31,32,
33,34,35,36,37,38,39,0,0,82,
0,0,0,0,0,0,0,0,0,0,
0,0,0,-88,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,-209,
0,0,0,0,0,0,0,0,0,82,
-117,1,2,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26,27,28,29,
30,31,32,33,34,35,36,37,38,39,
-118,1,2,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26,27,28,29,
30,31,32,33,34,35,36,37,38,39,
91,-5,82,-1,1,2,3,-245,1,2,
3,4,5,6,7,8,-37,124,0,-193,
1,2,3,0,-181,1,2,3,0,0,
121,-185,1,2,3,0,0,0,0,0,
0,0,82,-6,-27,-246,1,2,3,4,
5,6,7,8,0,0,-86,1,2,3,
4,5,-7,1,2,3,4,5,67,66,
-29,-31,0,-34,71,0,0,0,0,76,
77,0,75,80,81,66,83,84,85,86,
66,0,0,90,91,71,93,66,0,0,
76,77,71,100,97,81,90,76,77,106,
67,67,81,0,0,0,113,114,115,116,
75,118,119,120,68,69,70,0,104,105,
68,69,70,0,0,104,105,67,67,123,
67,79,97,-8,1,2,3,4,5,-9,
1,2,3,4,5,-11,1,2,3,4,
5,-12,1,2,3,4,5,-23,1,2,
3,4,5,6,7,8,-32,1,2,3,
4,5,-100,1,2,3,4,5,6,7,
8,-169,1,2,3,4,5,6,7,8,
-182,1,2,3,4,5,6,7,8,0,
0,68,69,70,0,0,0,68,69,70,
0,0,79,68,69,70,0,-36,79,68,
69,70,0,0,79,-96,1,2,3,-40,
79,0,75,0,68,69,70,-89,1,2,
3,4,5,0,0,79,0,75,-91,1,
2,3,4,5,0,0,75,-200,1,2,
3,4,5,0,0,75,-186,1,2,3,
4,5,6,7,8,-232,1,2,3,4,
5,6,7,8,67,-228,1,2,3,-82,
1,2,3,-81,0,0,71,-97,1,2,
3,-130,77,-227,-229,68,69,70,-126,1,
2,3,83,84,85,86,68,69,70,94,
0,-242,1,2,3,68,69,70,0,100,
-67,1,2,3,0,0,111,0,0,0,
0,75,0,0,0,0,117,0,0,0,
75,66,0,0,0,66,71,0,0,0,
67,76,77,66,0,0,81,0,67,0,
67,67,0,0,66,0,0,0,0,0,
0,0,0,0,0,0,0,66,0,0,
0,102,103,0,0,0,0,76,0,0,
0,71,0,0,0,0,109,110,87,0,
102,103,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,112,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0
};
};
public final static short baseCheck[] = BaseCheck.baseCheck;
public final int baseCheck(int index) { return baseCheck[index]; }
public final static short rhs[] = baseCheck;
public final int rhs(int index) { return rhs[index]; };
public interface BaseAction {
public final static char baseAction[] = {
106,107,107,107,107,107,107,107,107,107,
107,107,107,107,107,107,108,126,126,126,
126,126,126,126,126,126,126,126,68,127,
69,69,69,9,1,1,2,2,70,70,
6,6,5,5,5,5,5,5,5,5,
4,4,4,4,4,75,75,75,75,7,
8,109,109,110,110,76,66,77,71,94,
94,87,87,81,81,81,81,10,10,10,
10,11,11,95,95,96,96,88,88,89,
13,13,13,13,13,13,13,12,111,111,
15,16,17,17,18,18,19,20,21,14,
14,14,22,22,24,24,25,25,25,26,
26,23,23,23,28,28,28,28,28,28,
28,28,28,30,29,29,31,31,31,74,
78,78,72,72,61,61,33,32,62,62,
65,65,63,63,64,64,59,59,58,58,
60,60,56,56,55,55,57,57,53,53,
52,52,54,54,50,50,49,49,49,51,
51,51,47,47,46,46,46,46,46,48,
48,48,48,48,44,44,43,43,43,45,
45,45,41,41,40,40,40,42,42,42,
82,82,34,34,34,35,35,35,27,27,
36,36,36,36,36,38,37,112,112,106,
106,106,106,106,106,126,126,126,126,126,
126,126,126,126,126,126,126,79,79,1,
5,97,97,28,31,73,74,39,39,98,
98,99,99,92,92,92,36,113,113,113,
114,114,93,116,118,119,119,120,115,115,
117,117,100,100,83,83,83,84,121,121,
91,91,85,85,101,101,80,80,80,102,
102,86,123,123,90,90,90,103,122,104,
104,105,105,67,124,3,1,7,12,111,
31,38,38,38,38,27,39,39,85,102,
102,80,80,80,103,103,103,122,122,90,
90,90,91,91,93,93,79,622,417,316,
708,109,702,707,111,146,222,77,78,79,
80,90,91,705,93,94,95,96,220,112,
113,114,115,709,121,122,123,133,795,221,
204,207,626,215,223,266,787,803,199,792,
801,189,791,804,179,794,800,172,793,806,
166,797,799,160,796,807,154,1147,144,809,
149,798,812,812,417,316,743,3,1153,972,
40,417,316,609,839,4280,105,972,40,417,
316,1210,432,802,85,87,822,625,417,316,
39,1146,1148,127,622,417,316,708,109,702,
707,111,146,222,77,78,79,80,90,91,
705,93,94,95,96,220,112,113,114,115,
709,121,122,123,133,795,221,204,207,626,
215,223,266,787,803,199,792,801,189,791,
804,179,794,800,172,793,806,166,797,799,
160,796,807,154,1147,144,809,149,798,283,
284,285,286,303,283,284,285,286,1071,16,
810,972,1151,417,316,972,1152,417,316,1016,
526,85,87,972,537,417,316,1167,1149,1148,
254,913,417,316,708,109,702,707,111,146,
222,77,78,79,80,90,91,705,93,94,
95,96,220,112,113,114,115,709,121,122,
123,133,795,221,204,207,626,215,223,266,
787,803,199,792,801,189,791,804,179,794,
800,172,793,806,166,797,799,160,796,807,
154,1395,1399,809,149,798,1398,256,693,295,
1316,1396,1130,835,914,1195,71,1201,1211,1079,
1219,1198,1020,269,1081,1222,789,1397,483,1068,
417,316,708,109,702,707,111,146,222,77,
78,79,80,90,91,705,93,94,95,96,
220,112,113,114,115,709,121,122,123,133,
795,221,204,207,626,215,223,266,787,803,
199,792,801,189,791,804,179,794,800,172,
793,806,166,797,799,160,796,807,154,142,
144,809,149,798,72,892,891,256,134,295,
1547,268,42,289,71,332,963,956,1139,996,
795,972,1066,417,316,1546,1,622,417,316,
708,109,702,707,111,146,222,77,78,79,
80,90,91,705,93,94,95,96,220,112,
113,114,115,709,121,122,123,133,795,221,
204,207,626,215,223,266,787,803,199,792,
801,189,791,804,179,794,800,172,793,806,
166,797,799,160,796,807,154,265,144,809,
149,798,70,972,620,417,316,846,69,710,
294,129,816,318,718,836,510,119,408,640,
1119,1141,1022,1146,873,99,395,714,261,1153,
1245,529,1076,842,1389,1391,40,622,417,316,
708,109,702,707,111,146,222,77,78,79,
80,90,91,705,93,94,95,96,220,112,
113,114,115,709,121,122,123,133,795,221,
204,207,626,215,223,266,787,803,199,792,
801,189,791,804,179,794,800,172,793,806,
166,797,799,160,796,807,154,265,144,809,
149,798,294,256,1313,256,1314,1202,1223,902,
1226,1225,1230,356,204,1034,563,1025,561,1231,
1232,689,1235,619,1154,4057,1051,1236,261,1245,
1237,394,1035,980,1392,1391,178,622,417,316,
708,109,702,707,111,146,222,77,78,79,
80,90,91,705,93,94,95,96,220,112,
113,114,115,709,121,122,123,133,795,221,
204,207,626,215,223,266,787,803,199,792,
801,189,791,804,179,794,800,172,793,806,
166,797,799,160,796,807,154,142,144,809,
149,798,256,138,256,1469,892,891,1311,1245,
972,899,417,316,1310,216,622,417,316,708,
109,702,707,111,146,222,77,78,79,80,
90,91,705,93,94,95,96,220,112,113,
114,115,709,121,122,123,133,795,221,204,
207,626,215,223,266,787,803,199,792,801,
189,791,804,179,794,800,172,793,806,166,
797,799,160,796,807,154,142,144,809,149,
798,228,256,137,739,764,1157,1311,1013,972,
899,417,316,1388,483,622,417,316,708,109,
702,707,111,146,222,77,78,79,80,90,
91,705,93,94,95,96,220,112,113,114,
115,709,121,122,123,133,795,221,204,207,
626,215,223,266,787,803,199,792,801,189,
791,804,179,794,800,172,793,806,166,797,
799,160,796,807,154,1147,144,809,149,798,
1474,892,891,1238,1239,1109,1240,644,1242,1244,
969,1160,1162,1246,863,1249,945,1247,968,1041,
1045,1060,86,87,292,622,417,316,708,109,
702,707,111,146,222,77,78,79,80,90,
91,705,93,94,95,96,220,112,113,114,
115,709,121,122,123,133,795,221,204,207,
626,215,223,266,787,803,199,792,801,189,
791,804,179,794,800,172,793,806,166,797,
799,160,796,807,154,142,144,809,149,798,
1165,1172,1014,1170,1176,1177,1311,1180,957,1147,
887,1248,1468,330,622,417,316,708,109,702,
707,111,146,222,77,78,79,80,90,91,
705,93,94,95,96,220,112,113,114,115,
709,121,122,123,133,795,221,204,207,626,
215,223,266,787,803,199,792,801,189,791,
804,179,794,800,172,793,806,166,797,799,
160,796,807,154,142,144,809,149,798,1250,
1251,1252,242,1253,1255,1311,1260,1254,1262,1263,
1265,1470,368,622,417,316,708,109,702,707,
111,146,222,77,78,79,80,90,91,705,
93,94,95,96,220,112,113,114,115,709,
121,122,123,133,795,221,204,207,626,215,
223,266,787,803,199,792,801,189,791,804,
179,794,800,172,793,806,166,797,799,160,
796,807,154,142,144,809,149,798,1266,1268,
1275,1281,1278,1148,1311,1282,167,592,1284,1286,
1471,445,622,417,316,708,109,702,707,111,
146,222,77,78,79,80,90,91,705,93,
94,95,96,220,112,113,114,115,709,121,
122,123,133,795,221,204,207,626,215,223,
266,787,803,199,792,801,189,791,804,179,
794,800,172,793,806,166,797,799,160,796,
807,154,142,144,809,149,798,826,1289,1288,
1291,1298,1307,1311,1272,1309,1300,1315,843,1548,
483,622,417,316,708,109,702,707,111,146,
222,77,78,79,80,90,91,705,93,94,
95,96,220,112,113,114,115,709,121,122,
123,133,795,221,204,207,626,215,223,266,
787,803,199,792,801,189,791,804,179,794,
800,172,793,806,166,797,799,160,796,807,
154,142,144,809,149,798,1301,1182,1316,1319,
1320,1322,912,483,622,417,316,708,109,702,
707,111,146,222,77,78,79,80,90,91,
705,93,94,95,96,220,112,113,114,115,
709,121,122,123,133,795,221,204,207,626,
215,223,266,787,803,199,792,801,189,791,
804,179,794,800,172,793,806,166,797,799,
160,796,807,154,142,144,809,149,798,4496,
4496,4496,4496,4496,4496,1393,406,622,417,316,
708,109,702,707,111,146,222,77,78,79,
80,90,91,705,93,94,95,96,220,112,
113,114,115,709,121,122,123,133,795,221,
204,207,626,215,223,266,787,803,199,792,
801,189,791,804,179,794,800,172,793,806,
166,797,799,160,796,807,154,265,144,809,
149,798,4496,4496,4496,4496,4496,4496,4496,4496,
4496,4496,4496,4496,4496,4496,4496,4496,4496,4496,
4496,4496,4496,4496,4496,4496,4496,4496,262,483,
622,417,316,708,109,702,707,111,146,222,
77,78,79,80,90,91,705,93,94,95,
96,220,112,113,114,115,709,121,122,123,
133,795,221,204,207,626,215,223,266,787,
803,199,792,801,189,791,804,179,794,800,
172,793,806,166,797,799,160,796,807,154,
142,144,809,149,798,4496,4496,4496,4496,4496,
4496,1478,483,622,417,316,708,109,702,707,
111,146,222,77,78,79,80,90,91,705,
93,94,95,96,220,112,113,114,115,709,
121,122,123,133,795,221,204,207,626,215,
223,266,787,803,199,792,801,189,791,804,
179,794,800,172,793,806,166,797,799,160,
796,807,154,67,144,809,149,798,483,622,
417,316,708,109,702,707,111,146,222,77,
78,79,80,90,91,705,93,94,95,96,
220,112,113,114,115,709,121,122,123,133,
795,221,204,207,626,215,223,266,787,803,
199,792,801,189,791,804,179,794,800,172,
793,806,166,797,799,160,796,807,154,291,
144,809,149,798,483,622,417,316,708,109,
702,707,111,146,222,77,78,79,80,90,
91,705,93,94,95,96,220,112,113,114,
115,709,121,122,123,133,795,221,204,207,
626,215,223,266,787,803,199,792,801,189,
791,804,179,794,800,172,793,806,166,797,
799,160,796,807,154,290,144,809,149,798,
521,622,417,316,708,109,702,707,111,146,
222,77,78,79,80,90,91,705,93,94,
95,96,220,112,113,114,115,709,121,122,
123,133,795,221,204,207,626,215,223,266,
787,803,199,792,801,189,791,804,179,794,
800,172,793,806,166,797,799,160,796,807,
154,894,144,809,149,798,483,622,417,316,
708,109,702,707,111,146,222,77,78,79,
80,90,91,705,93,94,95,96,220,112,
113,114,115,709,121,122,123,133,795,221,
204,207,626,215,223,266,787,803,199,792,
801,189,791,804,179,794,800,172,793,806,
166,797,799,160,796,807,154,896,144,809,
149,798,483,622,417,316,708,109,702,707,
111,146,222,77,78,79,80,90,91,705,
93,94,95,96,220,112,113,114,115,709,
121,122,123,133,795,221,204,207,626,215,
223,266,787,803,199,792,801,189,791,804,
179,794,800,172,793,806,166,797,799,160,
796,807,154,306,144,809,149,798,483,622,
417,316,708,109,702,707,111,146,222,77,
78,79,80,90,91,705,93,94,95,96,
220,112,113,114,115,709,121,122,123,133,
795,221,204,207,626,215,223,266,787,803,
199,792,801,189,791,804,179,794,800,172,
793,806,166,797,799,160,796,807,154,305,
144,809,149,798,483,622,417,316,708,109,
702,707,111,146,222,77,78,79,80,90,
91,705,93,94,95,96,220,112,113,114,
115,709,121,122,123,133,795,221,204,207,
626,215,223,266,787,803,199,792,801,189,
791,804,179,794,800,172,793,806,166,797,
799,160,796,807,154,304,144,809,149,798,
483,622,417,316,708,109,702,707,111,146,
222,77,78,79,80,90,91,705,93,94,
95,96,220,112,113,114,115,709,121,122,
123,133,795,221,204,207,626,215,223,266,
787,803,199,792,801,189,791,804,179,794,
800,172,793,806,166,797,799,160,796,807,
154,296,144,809,149,798,483,622,417,316,
708,109,702,707,111,146,222,77,78,79,
80,90,91,705,93,94,95,96,220,112,
113,114,115,709,121,122,123,133,795,221,
204,207,626,215,223,266,787,803,199,792,
801,189,791,804,179,794,800,172,793,806,
166,797,799,160,796,807,154,68,144,809,
149,798,483,622,417,316,708,109,702,707,
111,146,222,77,78,79,80,90,91,705,
93,94,95,96,220,112,113,114,115,709,
121,122,123,133,795,221,204,207,626,215,
223,266,787,803,199,792,801,189,791,804,
179,794,800,172,793,806,166,797,799,160,
796,807,154,1312,144,809,149,798,483,622,
417,316,708,109,702,707,111,146,222,77,
78,79,80,90,91,705,93,94,95,96,
220,112,113,114,115,709,121,122,123,133,
795,221,204,207,626,215,223,266,787,803,
199,792,801,189,791,804,179,794,800,172,
793,806,166,797,799,160,796,807,154,226,
144,809,149,798,483,622,417,316,708,109,
702,707,111,146,222,77,78,79,80,90,
91,705,93,94,95,96,220,112,113,114,
115,709,121,122,123,133,795,221,204,207,
626,215,223,266,787,803,199,792,801,189,
791,804,179,794,800,172,793,806,166,797,
799,160,796,807,154,300,144,809,149,798,
483,622,417,316,708,109,702,707,111,146,
222,77,78,79,80,90,91,705,93,94,
95,96,220,112,113,114,115,709,121,122,
123,133,795,221,204,207,626,215,223,266,
787,803,199,792,801,189,791,804,179,794,
800,172,793,806,166,797,799,160,796,807,
154,299,144,809,149,798,483,622,417,316,
708,109,702,707,111,146,222,77,78,79,
80,90,91,705,93,94,95,96,220,112,
113,114,115,709,121,122,123,133,795,221,
204,207,626,215,223,266,787,803,199,792,
801,189,791,804,179,794,800,172,793,806,
166,797,799,160,796,807,154,143,144,809,
149,798,483,622,417,316,708,109,702,707,
111,146,222,77,78,79,80,90,91,705,
93,94,95,96,220,112,113,114,115,709,
121,122,123,133,795,221,204,207,626,215,
223,266,787,803,199,792,801,189,791,804,
179,794,800,172,793,806,166,797,799,160,
796,807,154,89,144,809,149,798,483,622,
417,316,708,109,702,707,111,146,222,77,
78,79,80,90,91,705,93,94,95,96,
220,112,113,114,115,709,121,122,123,133,
795,221,204,207,626,215,223,266,787,803,
199,792,801,189,791,804,179,794,800,172,
793,806,166,797,799,160,796,807,154,1467,
144,809,149,798,483,622,417,316,708,109,
702,707,111,146,222,77,78,79,80,90,
91,705,93,94,95,96,220,112,113,114,
115,709,121,122,123,133,795,221,204,207,
626,215,223,266,787,803,199,792,801,189,
791,804,179,794,800,172,793,806,166,797,
799,160,796,807,154,1472,144,809,149,798,
483,622,417,316,708,109,702,707,111,146,
222,77,78,79,80,90,91,705,93,94,
95,96,220,112,113,114,115,709,121,122,
123,133,795,221,204,207,626,215,223,266,
787,803,199,792,801,189,791,804,179,794,
800,172,793,806,166,797,799,160,796,807,
154,1475,144,809,149,798,483,622,417,316,
708,109,702,707,111,146,222,77,78,79,
80,90,91,705,93,94,95,96,220,112,
113,114,115,709,121,122,123,133,795,221,
204,207,626,215,223,266,787,803,199,792,
801,189,791,804,179,794,800,172,793,806,
166,797,799,160,796,807,154,1549,144,809,
149,798,483,622,417,316,708,109,702,707,
111,146,222,77,78,79,80,90,91,705,
93,94,95,96,220,112,113,114,115,709,
121,122,123,133,795,221,204,207,626,215,
223,266,787,803,199,792,801,189,791,804,
179,794,800,172,793,806,166,797,799,160,
796,807,154,1550,144,809,149,798,483,622,
417,316,708,109,702,707,111,146,222,77,
78,79,80,90,91,705,93,94,95,96,
220,112,113,114,115,709,121,122,123,133,
795,221,204,207,626,215,223,266,787,803,
199,792,801,189,791,804,179,794,800,172,
793,806,166,797,799,160,796,807,154,1551,
144,809,149,798,483,622,417,316,708,109,
702,707,111,146,222,77,78,79,80,90,
91,705,93,94,95,96,220,112,113,114,
115,709,121,122,123,133,1154,221,204,207,
626,215,223,266,787,803,199,792,801,189,
791,804,179,794,800,172,793,806,166,797,
799,160,156,1155,155,483,622,417,316,708,
109,702,707,111,146,222,77,78,79,80,
90,91,705,93,94,95,96,220,112,113,
114,115,709,121,122,123,133,1240,221,204,
207,626,215,223,266,787,803,199,792,801,
189,791,804,179,794,800,172,793,806,166,
162,1241,161,483,622,417,316,708,109,702,
707,111,146,222,77,78,79,80,90,91,
705,93,94,95,96,220,112,113,114,115,
709,121,122,123,133,1156,221,204,207,626,
215,223,266,787,803,199,792,801,189,791,
804,179,794,800,172,168,1157,167,483,622,
417,316,708,109,702,707,111,146,222,77,
78,79,80,90,91,705,93,94,95,96,
220,112,113,114,115,709,121,122,123,133,
1238,221,204,207,626,215,223,266,787,803,
199,792,801,189,791,804,179,174,1239,173,
483,622,417,316,708,109,702,707,111,146,
222,77,78,79,80,90,91,705,93,94,
95,96,220,112,113,114,115,709,121,122,
123,133,1158,221,204,207,626,215,223,266,
787,803,199,792,801,189,182,1159,181,483,
622,417,316,708,109,702,707,111,146,222,
77,78,79,80,90,91,705,93,94,95,
96,220,112,113,114,115,709,121,122,123,
133,1158,221,204,207,626,215,223,266,787,
803,199,792,801,189,182,1160,180,483,622,
417,316,708,109,702,707,111,146,222,77,
78,79,80,90,91,705,93,94,95,96,
220,112,113,114,115,709,121,122,123,133,
1232,221,204,207,626,215,223,266,787,803,
199,194,1233,193,483,622,417,316,708,109,
702,707,111,146,222,77,78,79,80,90,
91,705,93,94,95,96,220,112,113,114,
115,709,121,122,123,133,1232,221,204,207,
626,215,223,266,787,803,199,194,1234,192,
483,622,417,316,708,109,702,707,111,146,
222,77,78,79,80,90,91,705,93,94,
95,96,220,112,113,114,115,709,121,122,
123,133,1232,221,204,207,626,215,223,266,
787,803,199,194,1235,191,483,622,417,316,
708,109,702,707,111,146,222,77,78,79,
80,90,91,705,93,94,95,96,220,112,
113,114,115,709,121,122,123,133,1232,221,
204,207,626,215,223,266,787,803,199,194,
1237,190,483,622,417,316,708,109,702,707,
111,146,222,77,78,79,80,90,91,705,
93,94,95,96,220,112,113,114,115,709,
121,122,123,133,1161,221,204,207,626,215,
223,266,202,1230,201,483,622,417,316,708,
109,702,707,111,146,222,77,78,79,80,
90,91,705,93,94,95,96,220,112,113,
114,115,709,121,122,123,133,1161,221,204,
207,626,215,223,266,202,1231,200,483,622,
417,316,708,109,702,707,111,146,222,77,
78,79,80,90,91,705,93,94,95,96,
220,112,113,114,115,709,121,122,123,133,
897,221,210,217,626,215,223,266,483,622,
417,316,708,109,702,707,111,146,222,77,
78,79,80,90,91,705,93,94,95,96,
220,112,113,114,115,709,121,122,123,133,
897,221,210,216,626,215,223,266,4496,4496,
214,4496,4496,4496,4496,4496,4496,4496,4496,4496,
4496,4496,4496,4496,547,4496,4496,4496,4496,4496,
4496,4496,4496,4496,4496,4496,4496,4496,4496,4496,
84,4496,4496,4496,4496,4496,4496,4496,4496,4496,
213,483,622,417,316,708,109,702,707,111,
146,222,77,78,79,80,90,91,705,93,
94,95,96,220,112,113,114,115,709,121,
122,123,133,897,221,210,209,626,215,223,
266,483,622,417,316,708,109,702,707,111,
146,222,77,78,79,80,90,91,705,93,
94,95,96,220,112,113,114,115,709,121,
122,123,133,897,221,210,208,626,215,223,
266,288,1094,206,891,424,417,316,735,40,
417,316,888,55,889,57,58,66,907,4496,
972,1144,417,316,4496,165,424,417,316,4496,
4496,612,937,424,417,316,4496,4496,4496,4496,
4496,4496,4496,205,1098,1112,559,40,417,316,
888,55,889,57,58,4496,4496,787,38,417,
906,30,31,584,38,417,316,30,31,343,
75,1116,1121,4496,1127,76,4496,4496,4496,4496,
73,74,4496,252,230,233,64,282,284,285,
286,75,4496,4496,231,232,76,270,75,4496,
4496,73,74,76,426,307,311,302,73,74,
416,342,341,311,4496,4496,4496,608,267,530,
271,252,436,607,440,32,39,904,4496,1318,
1319,32,39,4085,4496,4496,1320,1319,340,339,
423,332,613,308,610,38,417,316,30,31,
635,38,417,316,30,31,660,38,417,316,
30,31,685,38,417,316,30,31,762,40,
417,316,888,55,889,57,58,710,38,417,
316,30,31,762,40,417,316,888,55,889,
57,58,762,40,417,316,888,55,889,57,
58,762,40,417,316,888,55,889,57,58,
4496,4496,32,39,4111,4496,4496,4496,32,39,
4112,4496,4496,614,32,39,4114,4496,1132,615,
32,39,4268,4496,4496,617,1043,1066,417,316,
1105,618,4496,813,4496,32,39,4344,787,38,
417,316,30,31,4496,4496,890,4496,1150,787,
38,417,316,30,31,4496,4496,1317,787,38,
417,316,30,31,4496,4496,66,762,40,417,
316,888,55,889,57,58,762,40,417,316,
888,55,889,57,58,331,972,424,417,316,
1026,4352,417,316,1150,4496,4496,70,117,1144,
417,316,922,69,1189,1192,32,39,41,1026,
4352,417,316,282,284,285,286,32,39,624,
98,4496,972,1477,417,316,32,39,911,4496,
431,972,899,417,316,4496,4496,1064,4496,4496,
4496,4496,3950,4496,4496,4496,4496,3934,4496,4496,
4496,264,75,4496,4496,4496,901,76,4496,4496,
4496,333,73,74,63,4496,4496,312,4496,330,
4496,334,337,4496,4496,901,4496,4496,4496,4496,
4496,4496,4496,4496,4496,4496,4496,4496,72,4496,
4496,4496,297,900,4496,4496,4496,4496,71,4496,
4496,4496,227,4496,4496,4496,4496,1143,1145,1476,
4496,298,900,4496,4496,4496,4496,4496,4496,4496,
4496,4496,4496,4496,4496,4496,4496,4496,4496,4496,
4496,4496,4496,4496,4496,4496,4496,4496,4496,4496,
4496,4496,4496,898,4496,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
public final int baseAction(int index) { return baseAction[index]; }
public final static char lhs[] = baseAction;
public final int lhs(int index) { return lhs[index]; };
public interface TermCheck {
public final static byte termCheck[] = {0,
0,1,0,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,0,25,28,29,
30,31,32,33,34,35,36,37,0,0,
1,0,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,0,66,28,29,30,
31,32,33,34,35,36,37,39,0,1,
39,3,4,0,6,7,8,9,10,11,
12,13,14,15,16,17,18,19,20,21,
22,23,24,25,0,66,28,29,30,31,
32,33,34,35,36,37,0,1,0,3,
55,5,6,7,59,60,0,1,0,3,
4,53,6,7,8,9,10,11,12,13,
14,15,16,17,18,19,20,21,22,23,
24,25,69,70,28,29,30,31,32,33,
34,35,36,37,0,1,0,3,64,5,
6,7,54,45,46,47,48,0,1,53,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,0,1,28,29,30,31,32,
33,34,35,36,37,0,1,51,3,4,
5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,0,1,28,29,30,31,32,33,34,
35,36,37,0,1,0,3,4,5,6,
7,8,9,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,25,76,
25,28,29,30,31,32,33,34,35,36,
37,0,1,0,3,4,5,6,7,8,
9,10,11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,0,77,28,
29,30,31,32,33,34,35,36,37,0,
1,0,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,0,25,28,29,30,
31,32,33,34,35,36,37,0,1,52,
3,4,5,6,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,22,
23,24,25,0,0,28,29,30,31,32,
33,34,35,36,37,0,1,0,3,4,
55,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
25,0,39,28,29,30,31,32,33,34,
35,36,37,50,0,1,52,3,4,5,
6,7,8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,25,
63,66,28,29,30,31,32,33,34,35,
36,37,0,1,0,3,4,56,6,7,
8,9,10,11,12,13,14,15,16,17,
18,19,20,21,22,23,24,25,0,0,
28,29,30,31,32,33,34,35,36,37,
0,1,0,3,4,0,6,7,8,9,
10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,0,1,28,29,
30,31,32,33,34,35,36,37,0,1,
0,3,0,1,6,7,57,5,10,11,
12,13,14,15,16,17,18,19,20,21,
22,23,24,0,1,2,3,27,0,6,
7,0,67,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,0,0,
1,2,3,55,68,6,7,59,60,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,0,1,2,3,78,0,
6,7,51,0,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,0,
1,2,3,55,73,6,7,59,60,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,0,1,2,3,0,1,
6,7,0,54,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,0,
1,2,3,0,26,6,7,0,75,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,0,1,0,3,0,0,
6,7,0,26,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,67,
26,0,1,0,3,27,49,6,7,0,
57,10,11,12,13,14,15,16,17,18,
19,20,21,22,23,24,0,1,0,3,
27,53,6,7,0,1,10,11,12,13,
14,15,16,17,18,19,20,21,22,23,
24,0,1,71,3,0,53,6,7,8,
9,0,1,8,3,0,1,6,7,41,
42,43,44,39,0,0,2,26,0,28,
2,0,0,8,9,0,25,5,0,38,
56,40,58,38,9,61,45,46,47,48,
49,26,0,52,26,54,0,26,57,27,
8,9,0,38,63,40,41,42,43,44,
45,46,47,48,49,40,0,52,26,54,
0,1,57,3,8,9,6,7,63,74,
38,0,40,41,42,43,44,45,46,47,
48,49,26,0,52,2,54,45,46,47,
48,0,1,2,38,4,40,41,42,43,
44,45,46,47,48,49,0,1,52,3,
39,5,6,7,0,55,56,0,58,59,
60,61,8,9,64,0,0,67,0,69,
70,71,0,1,8,9,4,0,0,1,
26,0,1,5,3,8,9,6,7,0,
0,2,38,4,40,41,42,43,44,45,
46,47,48,49,38,0,40,41,42,43,
44,45,46,47,48,38,27,40,41,42,
43,44,0,0,2,0,4,0,39,0,
65,0,9,4,0,0,1,65,3,50,
51,6,7,0,0,1,41,42,43,44,
0,62,0,1,0,3,0,0,6,7,
0,39,73,40,41,42,43,44,39,0,
39,27,50,51,0,41,42,43,44,50,
0,56,2,58,62,0,61,56,0,58,
0,62,61,0,4,45,46,47,48,45,
46,47,48,0,1,2,26,0,1,2,
41,42,43,44,0,55,72,74,0,59,
60,0,1,2,39,0,1,2,0,39,
0,1,2,0,0,50,0,1,2,0,
50,0,1,2,56,27,58,62,0,61,
0,71,4,39,26,0,0,0,8,0,
1,2,0,0,9,2,0,4,2,0,
1,0,1,4,0,4,0,49,64,0,
4,0,26,9,27,0,0,8,38,0,
9,0,26,8,8,40,5,8,0,1,
2,0,1,2,0,49,2,0,69,70,
0,0,2,65,40,4,9,38,27,0,
0,40,2,38,38,63,50,38,0,72,
2,0,0,2,0,0,4,2,4,0,
0,0,2,4,0,0,0,0,0,0,
2,0,5,0,0,0,0,0,0,0,
0,0,0,0,0,5,4,26,4,0,
26,0,0,4,0,0,5,0,27,5,
5,0,5,64,0,26,2,0,27,26,
0,0,5,0,39,0,5,0,0,27,
0,4,53,5,50,5,53,0,52,0,
0,54,5,68,68,57,0,27,0,0,
27,5,27,5,0,0,2,0,0,0,
5,0,51,5,5,0,5,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
51,51,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0
};
};
public final static byte termCheck[] = TermCheck.termCheck;
public final int termCheck(int index) { return termCheck[index]; }
public interface TermAction {
public final static char termAction[] = {0,
4496,4811,35,4532,2056,259,4745,4530,3878,4602,
4546,4547,4548,4549,4550,4541,4539,4542,4540,4538,
706,4543,4545,4544,4746,4598,4496,4533,3838,4596,
4597,4529,1990,4381,4600,4601,4604,4603,278,4496,
4811,4496,4532,2056,259,4745,4530,3878,4602,4546,
4547,4548,4549,4550,4541,4539,4542,4540,4538,706,
4543,4545,4544,4746,4598,4496,1390,3838,4596,4597,
4529,1990,4381,4600,4601,4604,4603,621,4496,4811,
4299,4532,2056,4496,4745,4530,3878,4602,4546,4547,
4548,4549,4550,4541,4539,4542,4540,4538,706,4543,
4545,4544,4746,4598,273,1390,3838,4596,4597,4529,
1990,4381,4600,4601,4604,4603,4496,4811,158,4532,
4190,61,4745,4530,4184,4103,4496,4811,176,4532,
2056,83,4745,4530,3878,4602,4546,4547,4548,4549,
4550,4541,4539,4542,4540,4538,706,4543,4545,4544,
4746,4598,4042,4084,3838,4596,4597,4529,1990,4381,
4600,4601,4604,4603,4496,4811,4496,4532,783,309,
4745,4530,162,182,182,182,182,4496,4811,83,
4532,2056,140,4745,4530,3878,4602,4546,4547,4548,
4549,4550,4541,4539,4542,4540,4538,706,4543,4545,
4544,4746,4598,4496,4819,3838,4596,4597,4529,1990,
4381,4600,4601,4604,4603,4496,4811,2914,4532,2056,
140,4745,4530,3878,4602,4546,4547,4548,4549,4550,
4541,4539,4542,4540,4538,706,4543,4545,4544,4746,
4598,4496,4818,3838,4596,4597,4529,1990,4381,4600,
4601,4604,4603,4496,4811,4496,4532,2056,4620,4745,
4530,3878,4602,4546,4547,4548,4549,4550,4541,4539,
4542,4540,4538,706,4543,4545,4544,4746,4598,2452,
4773,3838,4596,4597,4529,1990,4381,4600,4601,4604,
4603,4496,4811,4496,4532,2056,140,4745,4530,3878,
4602,4546,4547,4548,4549,4550,4541,4539,4542,4540,
4538,706,4543,4545,4544,4746,4598,164,2848,3838,
4596,4597,4529,1990,4381,4600,4601,4604,4603,4496,
4811,92,4532,2056,140,4745,4530,3878,4602,4546,
4547,4548,4549,4550,4541,4539,4542,4540,4538,706,
4543,4545,4544,4746,4598,4496,4599,3838,4596,4597,
4529,1990,4381,4600,4601,4604,4603,4496,4811,168,
4532,2056,140,4745,4530,3878,4602,4546,4547,4548,
4549,4550,4541,4539,4542,4540,4538,706,4543,4545,
4544,4746,4598,139,4496,3838,4596,4597,4529,1990,
4381,4600,4601,4604,4603,4496,4811,4496,4532,2056,
4751,4745,4530,3878,4602,4546,4547,4548,4549,4550,
4541,4539,4542,4540,4538,706,4543,4545,4544,4746,
4598,4496,41,3838,4596,4597,4529,1990,4381,4600,
4601,4604,4603,893,4496,4811,3418,4532,2056,140,
4745,4530,3878,4602,4546,4547,4548,4549,4550,4541,
4539,4542,4540,4538,706,4543,4545,4544,4746,4598,
3244,1390,3838,4596,4597,4529,1990,4381,4600,4601,
4604,4603,4496,4811,4496,4532,2056,4217,4745,4530,
3878,4602,4546,4547,4548,4549,4550,4541,4539,4542,
4540,4538,706,4543,4545,4544,4746,4598,4496,152,
3838,4596,4597,4529,1990,4381,4600,4601,4604,4603,
4496,895,4496,4532,2056,4496,4745,4530,3878,4602,
4546,4547,4548,4549,4550,4541,4539,4542,4540,4538,
706,4543,4545,4544,4746,4598,4496,910,3838,4596,
4597,4529,1990,4381,4600,4601,4604,4603,4496,4811,
4496,4532,4496,4821,4745,4530,156,4720,4546,4547,
4548,4549,4550,4541,4539,4542,4540,4538,887,4543,
4545,4544,4746,4496,4811,247,4532,990,4496,4745,
4530,4496,419,4546,4547,4548,4549,4550,4541,4539,
4542,4540,4538,4524,4543,4545,4544,4746,301,4496,
4811,247,4532,251,4768,4745,4530,251,251,4546,
4547,4548,4549,4550,4541,4539,4542,4540,4538,4524,
4543,4545,4544,4746,4496,4811,247,4532,2518,4496,
4745,4530,2980,88,4546,4547,4548,4549,4550,4541,
4539,4542,4540,4538,4524,4543,4545,4544,4746,4496,
4811,247,4532,4190,1069,4745,4530,4184,4103,4546,
4547,4548,4549,4550,4541,4539,4542,4540,4538,4524,
4543,4545,4544,4746,4496,4811,247,4532,4496,4825,
4745,4530,229,3363,4546,4547,4548,4549,4550,4541,
4539,4542,4540,4538,4524,4543,4545,4544,4746,4496,
4811,247,4532,4496,2650,4745,4530,170,2782,4546,
4547,4548,4549,4550,4541,4539,4542,4540,4538,4524,
4543,4545,4544,4746,4496,4811,4496,4532,4496,4496,
4745,4530,4496,174,4546,4547,4548,4549,4550,4541,
4539,4542,4540,4538,887,4543,4545,4544,4746,419,
251,4496,4811,315,4532,711,174,4745,4530,4496,
3305,4546,4547,4548,4549,4550,4541,4539,4542,4540,
4538,887,4543,4545,4544,4746,4496,4811,212,4532,
319,4593,4745,4530,4496,4824,4546,4547,4548,4549,
4550,4541,4539,4542,4540,4538,4524,4543,4545,4544,
4746,4496,4811,4495,4532,184,319,4745,4530,4509,
4510,4496,4811,194,4532,4496,4817,4745,4530,218,
218,218,218,4097,4496,145,2122,4506,65,4499,
4208,66,4496,195,203,196,275,4622,4496,4508,
4196,4511,4202,194,202,432,4505,4502,4504,4503,
4507,175,157,4497,1792,4500,4496,2386,4501,2716,
195,203,4496,195,4498,203,219,219,219,219,
183,183,183,183,175,202,163,169,175,163,
4496,4811,157,4532,195,203,518,4530,151,4721,
195,56,203,219,219,219,219,183,183,183,
183,175,175,4496,169,2188,163,3706,3660,3614,
3568,4496,1309,4241,195,4065,203,219,219,219,
219,183,183,183,183,175,4496,4811,169,4532,
4288,309,4745,4530,169,4190,4196,4496,4202,4184,
4103,432,195,203,783,110,175,419,4496,4042,
4084,234,4496,4814,195,203,4348,183,4496,4813,
175,4496,4811,4555,4532,195,203,4745,4530,147,
4496,4208,195,139,203,219,219,219,219,183,
183,183,183,175,195,4496,203,219,219,219,
219,183,183,183,183,195,628,203,219,219,
219,219,147,195,4241,292,139,4496,40,147,
346,4496,203,139,211,4496,902,4276,4532,893,
65,4745,4530,315,4496,4816,533,412,521,525,
178,1480,4496,1065,177,4532,4496,4496,4745,4530,
316,40,65,203,219,219,219,219,40,203,
4288,2716,893,65,4496,219,219,219,219,893,
274,4196,249,4202,1480,139,432,4196,293,4202,
139,1480,432,4496,995,3706,3660,3614,3568,3706,
3660,3614,3568,4496,4809,1858,249,4496,4809,1924,
219,219,219,219,280,338,909,4820,62,338,
338,4496,4809,248,40,4496,4809,248,4496,41,
4496,4809,248,4496,4496,893,4496,4809,248,287,
893,4496,4809,248,4196,4060,4202,1553,4496,432,
4496,249,4223,4288,3519,4496,171,4496,3752,4496,
4809,248,148,41,4001,4317,4496,4072,4232,4496,
4823,4496,4822,716,198,816,4496,3470,783,188,
540,197,3519,4001,2716,187,186,3752,3795,185,
4001,4496,1792,3752,3752,3961,4623,3752,4496,4809,
4048,4496,4809,4086,4496,3470,2254,4496,4042,4084,
4496,4496,4340,443,3961,4348,4775,3795,2716,281,
4496,3961,2320,3795,3795,150,893,3795,40,989,
427,4496,4496,4772,4496,4496,4223,4359,916,254,
4496,4496,4232,256,315,4496,345,4496,4496,4496,
4241,84,4556,4496,139,4496,165,159,153,313,
4496,141,4496,4496,136,4626,1164,2584,1243,4496,
336,4496,310,1322,4496,4496,4354,4496,1074,4355,
4627,4496,4754,783,263,335,4326,4496,2716,2386,
260,4496,4753,72,4308,144,4621,135,4496,4336,
4496,1401,4578,4624,893,4625,4577,4496,3418,4496,
4496,3363,4749,4840,314,3305,4496,1626,4496,4496,
4372,4615,1719,4612,65,4496,4241,4496,4496,4496,
4628,4496,3046,4616,4614,4496,4613,4496,4496,4496,
4496,4496,4496,4496,4496,4496,4496,4496,4496,4496,
4496,4496,4496,4496,4496,4496,4496,4496,4496,4496,
3112,3178
};
};
public final static char termAction[] = TermAction.termAction;
public final int termAction(int index) { return termAction[index]; }
public interface Asb {
public final static char asb[] = {0,
458,166,56,105,536,536,518,518,518,111,
518,518,246,164,246,113,30,116,34,103,
102,217,231,217,217,537,536,537,536,537,
536,518,537,536,537,536,211,366,367,539,
54,537,63,371,59,125,168,172,169,217,
349,217,67,71,69,77,75,63,79,78,
251,253,255,258,217,217,246,53,400,261,
263,80,275,360,360,268,217,217,217,537,
536,246,217,206,246,231,96,322,231,321,
231,217,360,282,213,246,434,1,1,231,
325,328,246,246,36,246,437,217,217,217,
217,217,217,63,354,537,217,217,217,217,
217,217,217,217,217,246,493,492,357,358,
368,365,362,323,101,60,373,405,442,440,
122,438,537,108,443,445,442,443,437,217,
359,359,265,371,59,265,63,79,63,77,
63,71,71,63,67,67,246,217,231,63,
69,69,69,69,63,75,63,78,217,217,
434,231,315,96,434,231,405,217,62,438,
108,246,246,217,217,449,215,215,360,231,
217,282,360,405,493,438,108,438,471,438,
217,438,107,108,438,405,60,374,405,405,
438,280,279,278,108,377,536,246,536,160,
452,231,216,438,282,62,438,438,217,246,
217,246,217,217,474,495,405,438,280,438,
280,455,108,280,108,378,438,217,217,217,
438,438,438
};
};
public final static char asb[] = Asb.asb;
public final int asb(int index) { return asb[index]; }
public interface Asr {
public final static byte asr[] = {0,
53,33,8,28,4,32,10,11,12,13,
14,20,36,37,9,34,35,30,29,19,
16,18,15,17,21,23,22,24,31,7,
6,1,3,25,0,3,1,7,6,52,
63,28,54,57,46,48,47,45,26,49,
38,8,40,9,0,2,73,25,62,39,
4,50,41,42,43,44,9,40,38,8,
45,46,47,48,26,49,52,54,57,63,
5,53,72,51,27,75,76,77,74,78,
55,59,60,69,70,64,1,58,56,61,
68,71,67,0,71,26,2,5,27,0,
56,0,67,39,0,3,25,6,7,1,
71,26,2,0,38,8,9,40,45,46,
26,47,48,49,5,53,72,41,51,27,
42,75,43,44,76,77,74,52,54,57,
63,78,58,55,59,56,60,61,25,68,
1,70,69,67,64,71,0,1,4,65,
0,38,8,9,40,45,46,26,47,48,
49,5,53,72,41,51,27,42,75,43,
44,76,77,74,52,54,57,63,78,58,
56,69,70,61,65,64,67,68,71,1,
59,60,55,0,5,66,33,8,28,4,
32,36,37,9,34,35,25,30,29,31,
19,16,18,15,17,21,23,22,24,10,
11,12,13,14,20,7,6,1,3,0,
63,0,54,0,26,49,0,38,8,0,
52,0,57,0,4,50,0,55,59,60,
69,70,1,39,5,71,26,27,73,51,
0,4,38,8,9,40,45,46,47,48,
49,5,53,72,41,51,27,42,75,43,
44,76,77,74,52,54,57,63,78,55,
59,60,69,70,26,58,67,56,61,71,
64,1,68,0,76,1,0,38,8,9,
40,45,46,26,47,48,49,4,62,39,
50,76,52,54,57,63,1,74,41,42,
44,43,0,78,27,0,26,2,1,4,
0,55,59,60,4,2,1,58,56,61,
39,0,1,72,27,0,73,38,8,9,
40,26,49,5,41,27,42,43,44,52,
54,57,63,51,39,4,50,2,62,45,
46,47,48,0,33,8,28,4,32,10,
11,12,13,14,20,36,37,9,34,35,
25,30,29,19,16,18,15,17,21,23,
22,24,31,7,6,3,1,5,0,26,
2,27,53,0,53,27,75,0,77,1,
0,74,1,0,51,2,0,71,6,67,
64,58,56,61,55,59,60,7,1,3,
70,69,0,19,16,18,15,17,21,23,
22,24,3,7,6,10,11,12,13,14,
20,1,26,0,55,59,60,19,16,18,
15,17,21,23,22,24,3,1,7,6,
10,11,12,13,14,20,0,10,11,12,
13,14,19,16,18,15,17,21,23,22,
24,20,3,7,6,1,2,0,68,1,
64,39,0
};
};
public final static byte asr[] = Asr.asr;
public final int asr(int index) { return asr[index]; }
public interface Nasb {
public final static byte nasb[] = {0,
90,18,18,18,88,88,17,17,17,18,
17,17,30,6,17,18,17,18,18,10,
10,14,16,14,14,18,88,18,88,18,
88,17,18,88,18,88,95,18,25,93,
18,18,18,18,21,18,18,18,18,14,
18,14,18,18,18,18,18,18,18,18,
18,18,18,18,78,78,111,18,18,18,
18,18,18,18,18,18,14,14,14,18,
88,103,14,4,17,97,8,84,17,6,
17,14,18,18,18,100,108,14,14,16,
18,18,17,17,1,17,18,36,48,60,
60,72,72,18,18,18,78,78,66,66,
66,66,54,42,14,103,18,18,18,88,
25,18,18,18,18,23,18,14,18,18,
18,18,18,18,18,18,18,18,18,14,
18,18,23,18,23,21,18,18,18,18,
18,18,18,18,18,18,33,14,16,18,
18,18,18,18,18,18,18,18,14,14,
17,16,18,8,17,16,14,14,23,18,
18,27,105,14,14,18,14,14,18,17,
14,18,18,12,18,18,18,18,86,18,
14,18,18,18,18,14,23,18,14,14,
18,18,18,18,18,21,88,17,88,19,
18,16,14,18,18,23,18,18,14,33,
14,17,14,14,16,16,14,18,18,18,
18,18,18,18,18,21,18,14,14,14,
18,18,18
};
};
public final static byte nasb[] = Nasb.nasb;
public final int nasb(int index) { return nasb[index]; }
public interface Nasr {
public final static char nasr[] = {0,
2,108,0,90,0,83,0,80,0,93,
0,66,71,7,17,4,2,0,91,0,
73,0,74,0,101,0,2,94,0,2,
122,0,2,71,0,7,17,4,2,60,
0,4,7,17,2,57,0,7,17,4,
2,54,0,4,7,17,2,51,0,7,
17,4,2,48,0,4,7,17,2,45,
0,7,17,4,2,42,0,2,7,17,
4,35,0,124,0,121,0,67,0,118,
120,2,100,0,123,0,2,3,0,2,
111,0,103,102,2,66,0,110,2,0,
2,112,0
};
};
public final static char nasr[] = Nasr.nasr;
public final int nasr(int index) { return nasr[index]; }
public interface TerminalIndex {
public final static char terminalIndex[] = {0,
81,20,30,11,12,75,78,2,3,50,
51,52,53,54,55,56,57,58,59,60,
61,62,63,76,33,7,19,42,31,32,
34,35,44,46,47,48,49,1,21,4,
17,23,26,27,5,6,8,9,10,25,
18,39,14,40,65,70,41,64,66,71,
74,15,43,67,13,28,68,69,72,73,
77,16,22,38,24,36,37,45,79,80
};
};
public final static char terminalIndex[] = TerminalIndex.terminalIndex;
public final int terminalIndex(int index) { return terminalIndex[index]; }
public interface NonterminalIndex {
public final static char nonterminalIndex[] = {0,
84,85,155,83,0,87,89,0,0,0,
0,0,0,0,0,0,99,0,0,0,
0,0,0,0,0,0,101,0,0,0,
0,104,0,0,129,130,0,0,0,125,
126,127,122,123,124,119,120,121,116,117,
118,113,114,115,110,111,112,107,108,109,
92,102,105,0,106,91,153,0,0,86,
93,103,136,0,88,0,0,0,0,133,
96,128,145,0,0,0,95,98,0,134,
135,138,139,94,0,97,0,0,137,141,
147,148,149,0,152,0,0,82,0,90,
100,131,132,0,140,0,0,142,143,144,
146,150,151,154,0,0,0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }
public interface ScopePrefix {
public final static char scopePrefix[] = {
215,251,261,149,183,191,237,271,225,18,
57,18,169,176,43,51,158,209,143,199,
245,9,164,9,9,35,39,279,285,289,
293,39,35,1,6,1,64,6,6,6,
82,82,90,90,98,98,98,98,112,112,
120,125,130,135
};
};
public final static char scopePrefix[] = ScopePrefix.scopePrefix;
public final int scopePrefix(int index) { return scopePrefix[index]; }
public interface ScopeSuffix {
public final static char scopeSuffix[] = {
49,49,49,49,49,49,49,49,233,4,
49,70,49,49,49,49,49,49,140,205,
233,4,49,25,72,4,4,283,283,283,
49,49,140,4,4,49,67,14,29,76,
84,87,92,95,100,103,106,109,114,117,
122,127,132,137
};
};
public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
public final int scopeSuffix(int index) { return scopeSuffix[index]; }
public interface ScopeLhs {
public final static char scopeLhs[] = {
26,25,25,28,28,28,26,25,26,38,
28,38,28,28,39,39,28,28,31,28,
26,38,28,38,38,31,7,12,11,11,
8,7,31,27,38,36,37,38,38,38,
42,42,45,45,48,48,48,48,51,51,
54,57,60,64
};
};
public final static char scopeLhs[] = ScopeLhs.scopeLhs;
public final int scopeLhs(int index) { return scopeLhs[index]; }
public interface ScopeLa {
public final static byte scopeLa[] = {
5,5,5,5,5,5,5,5,51,1,
5,74,5,5,5,5,5,5,72,27,
51,1,5,77,77,1,1,53,53,53,
5,5,72,1,1,5,78,76,76,76,
40,9,8,38,48,47,46,45,49,26,
52,54,57,63
};
};
public final static byte scopeLa[] = ScopeLa.scopeLa;
public final int scopeLa(int index) { return scopeLa[index]; }
public interface ScopeStateSet {
public final static byte scopeStateSet[] = {
9,9,9,9,9,9,9,9,9,9,
9,9,9,9,9,9,9,9,9,9,
9,9,9,9,9,9,1,9,9,9,
1,1,9,9,9,9,9,9,9,9,
13,13,15,15,19,19,19,19,21,21,
22,23,24,25
};
};
public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
public final int scopeStateSet(int index) { return scopeStateSet[index]; }
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
141,4,0,1,0,141,32,0,141,76,
141,32,0,76,141,1,0,141,77,141,
76,141,32,0,77,141,1,0,76,141,
77,141,1,0,152,62,81,0,155,4,
84,0,178,4,81,43,107,0,5,0,
178,4,81,44,107,0,158,4,153,81,
41,107,0,192,33,0,78,141,0,74,
0,77,141,74,0,76,141,77,141,74,
0,121,0,40,115,0,9,115,0,124,
0,8,122,0,38,122,0,127,0,48,
125,0,47,125,0,46,125,0,45,125,
0,130,0,49,128,0,26,128,0,133,
0,52,131,0,136,0,54,134,0,139,
0,57,137,0,145,0,63,140,0,72,
154,0,152,62,81,42,107,0,158,4,
154,150,39,86,42,107,0,158,4,150,
39,86,0,158,4,154,81,0,158,4,
154,81,42,107,0,158,4,154,188,42,
107,0,152,27,81,4,81,41,107,0,
152,27,142,4,81,41,107,0,142,4,
81,41,107,0,27,152,5,0,141,4,
81,41,107,0,141,51,151,73,167,4,
81,41,107,0,151,73,167,4,81,41,
107,0,51,141,5,0,141,51,151,4,
81,41,107,0,151,4,81,41,107,0,
141,51,167,27,146,4,81,41,107,0,
141,51,167,27,81,4,81,41,107,0,
141,51,167,4,81,41,107,0,191,65,
20,0,53,0,175,65,87,0,175,65,
84,0,189,4,20,0
};
};
public final static char scopeRhs[] = ScopeRhs.scopeRhs;
public final int scopeRhs(int index) { return scopeRhs[index]; }
public interface ScopeState {
public final static char scopeState[] = {0,
4086,4048,4326,4317,4241,4232,4223,4208,4001,3961,
3878,3838,3795,3752,3706,3660,3614,3568,3519,3470,
3418,3363,3305,3244,3178,3112,3046,1401,628,1719,
2980,2914,1626,1322,1243,1164,2848,540,1553,816,
716,1074,2782,2716,995,2650,2584,2518,2452,916,
2386,443,346,1480,2320,2254,2188,2122,2056,1990,
1924,1858,1792,0
};
};
public final static char scopeState[] = ScopeState.scopeState;
public final int scopeState(int index) { return scopeState[index]; }
public interface InSymb {
public final static char inSymb[] = {0,
0,186,82,81,69,70,60,59,55,61,
56,58,64,180,67,200,198,6,199,195,
193,26,2,2,2,159,150,159,150,159,
150,56,159,150,159,150,202,81,86,86,
39,81,116,86,81,97,20,87,84,32,
107,4,120,126,123,132,129,112,138,135,
145,136,130,124,28,8,33,121,127,133,
139,143,155,20,84,86,2,2,2,159,
150,2,2,203,2,39,181,197,39,180,
39,62,154,153,50,65,4,65,65,4,
141,1,43,44,42,41,141,63,54,49,
26,8,38,112,192,81,40,9,48,47,
46,45,52,57,26,2,183,146,1,81,
86,150,83,204,1,150,152,4,191,1,
81,189,81,190,175,141,176,175,155,76,
81,81,188,86,81,81,112,139,112,133,
112,127,127,112,121,121,27,78,2,112,
124,124,124,124,112,130,112,136,26,26,
4,2,1,181,4,2,4,27,72,158,
152,27,27,75,27,141,4,4,154,39,
62,154,153,4,155,184,185,184,155,158,
77,178,66,179,178,4,150,152,4,4,
141,151,167,146,142,81,5,27,5,201,
141,2,27,158,154,72,158,158,51,73,
51,27,27,27,2,2,4,141,151,141,
167,81,152,167,152,81,158,51,51,51,
141,141,141
};
};
public final static char inSymb[] = InSymb.inSymb;
public final int inSymb(int index) { return inSymb[index]; }
public interface Name {
public final static String name[] = {
"",
"+",
"-",
"*",
"/",
">",
"<",
"=",
">=",
"<=",
"<>",
"(",
")",
"{",
"}",
"[",
"]",
"->",
"|",
",",
":",
"::",
";",
".",
"..",
"@",
"^",
"^^",
"?",
"$empty",
"QUOTED_IDENTIFIER",
"INTEGER_LITERAL",
"REAL_LITERAL",
"STRING_LITERAL",
"self",
"if",
"then",
"else",
"endif",
"and",
"or",
"xor",
"not",
"implies",
"let",
"in",
"true",
"false",
"null",
"invalid",
"Set",
"Bag",
"Sequence",
"Collection",
"OrderedSet",
"String",
"Integer",
"UnlimitedNatural",
"Real",
"Boolean",
"Tuple",
"OclAny",
"OclVoid",
"OclInvalid",
"inv",
"pre",
"post",
"context",
"package",
"endpackage",
"def",
"body",
"derive",
"init",
"static",
"import",
"OclMessage",
"EOF_TOKEN",
"IDENTIFIER",
"SINGLE_LINE_COMMENT",
"MULTI_LINE_COMMENT",
"ERROR_TOKEN",
"conceptualOperationNameCS",
"CollectionTypeIdentifierCS",
"simpleNameCS",
"QuotedSimpleNameCS",
"unreservedSimpleNameCS",
"pathNameCS",
"typeCS",
"collectionTypeCS",
"tupleTypePartsCS",
"typedUninitializedVariableCS",
"OclExpressionCS",
"typedInitializedVariableCS",
"initializedVariableCS",
"uninitializedVariableCS",
"VariableDeclarationCS",
"CollectionLiteralPartsCS",
"CollectionLiteralPartCS",
"StringLiteralExpCS",
"TupleLiteralPartsCS",
"primaryExpCS",
"notNameExpressionCS",
"argumentsCS",
"SimpleNameExpCS",
"impliesNotNameNotLetCS",
"impliesNotLetCS",
"xorNotNameNotLetCS",
"xorNotLetCS",
"xorWithLetCS",
"orNotNameNotLetCS",
"orNotLetCS",
"orWithLetCS",
"andNotNameNotLetCS",
"andNotLetCS",
"andWithLetCS",
"equalityNotNameNotLetCS",
"equalityNotLetCS",
"equalityWithLetCS",
"relationalNotNameNotLetCS",
"relationalNotLetCS",
"relationalWithLetCS",
"additiveNotNameNotLetCS",
"additiveNotLetCS",
"additiveWithLetCS",
"multiplicativeNotNameNotLetCS",
"multiplicativeNotLetCS",
"multiplicativeWithLetCS",
"unaryNotLetCS",
"unaryWithLetCS",
"primaryNotNameCS",
"letVariablesCS",
"packageDeclarationsCS",
"invOrDefCS",
"prePostOrBodyDeclCS",
"initOrDerValueCS",
"isMarkedPreCS",
"OclMessageArgumentsCS",
"OclMessageArgCS",
"packageDeclarationCS_A",
"importCS",
"contextDeclsCS",
"importCS_0",
"importCS_1",
"importCS_2",
"contextDeclCS",
"initOrDerValuesCS",
"invOrDefsCS",
"defExpressionCS",
"operationCS1",
"operationCS2",
"prePostOrBodyDeclsCS",
"parametersCS",
"ERROR_Colon",
"ERROR_Empty",
"ERROR_SimpleNameCS"
};
};
public final static String name[] = Name.name;
public final String name(int index) { return name[index]; }
public final int originalState(int state) {
return -baseCheck[state];
}
public final int asi(int state) {
return asb[originalState(state)];
}
public final int nasi(int state) {
return nasb[originalState(state)];
}
public final int inSymbol(int state) {
return inSymb[originalState(state)];
}
/**
* assert(! goto_default);
*/
public final int ntAction(int state, int sym) {
return baseAction[state + sym];
}
/**
* assert(! shift_default);
*/
public final int tAction(int state, int sym) {
int i = baseAction[state],
k = i + sym;
return termAction[termCheck[k] == sym ? k : i];
}
public final int lookAhead(int la_state, int sym) {
int k = la_state + sym;
return termAction[termCheck[k] == sym ? k : la_state];
}
}