diff options
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java')
-rw-r--r-- | lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java | 2728 |
1 files changed, 2728 insertions, 0 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java new file mode 100644 index 00000000000..3c192f5a5b2 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java @@ -0,0 +1,2728 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl_v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.cpp; + +public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.ParseTable, CPPExpressionStatementParsersym { + + public interface IsKeyword { + public final static byte isKeyword[] = {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 + }; + }; + 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, + 0,0,0,0,0,1,1,1,1,1, + 0,1,1,1,1,1,1,1,1,1, + 3,1,1,1,1,1,1,1,1,2, + 1,1,0,1,0,4,2,2,2,3, + 2,3,2,2,1,0,1,1,1,4, + 4,4,8,8,3,3,4,4,3,3, + 2,2,7,7,7,7,4,4,6,7, + 4,1,1,1,2,2,2,2,2,2, + 2,2,2,4,7,7,3,1,0,1, + 2,2,1,2,3,4,1,0,3,1, + 0,3,5,1,4,1,3,3,1,3, + 3,3,1,3,3,1,3,3,1,3, + 3,3,3,1,3,3,1,3,1,3, + 1,3,1,3,1,3,1,5,1,2, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,1,2,1,3,1,0, + 1,0,1,1,0,1,1,1,1,1, + 1,1,1,1,3,3,2,2,1,4, + 2,1,2,5,7,5,1,4,5,7, + 9,8,2,2,3,2,3,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,2,1,0,4,2,2,2,2,2, + 1,0,1,1,1,1,1,1,2,1, + 2,2,2,1,2,2,1,2,2,1, + 2,2,1,2,2,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, + 3,4,4,5,4,5,4,1,5,6, + 1,3,1,0,1,3,1,1,1,1, + 1,1,1,1,6,6,5,1,7,6, + 1,0,6,5,6,4,1,3,1,0, + 1,2,1,3,1,1,1,1,3,9, + 2,2,3,2,3,1,5,1,2,2, + 1,0,1,1,1,3,1,2,1,1, + 2,3,1,1,1,3,1,2,2,9, + 8,2,1,3,1,3,1,0,1,0, + 2,1,1,3,1,3,2,1,5,8, + 1,2,3,1,5,4,3,1,3,1, + 1,5,4,4,5,5,1,0,1,0, + 1,1,1,2,4,2,2,1,5,1, + 1,1,1,2,1,0,1,3,1,2, + 3,2,1,2,2,1,0,1,3,3, + 6,1,0,1,1,1,1,0,2,2, + 1,2,2,1,0,1,3,4,3,1, + 1,5,2,1,1,3,3,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,2,7,1,0,1,3, + 1,1,2,4,2,4,7,9,5,1, + 1,3,1,0,1,1,1,2,4,4, + 1,2,5,5,3,3,1,4,3,1, + 0,1,3,2,1,-63,0,0,0,-2, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-12,0, + 0,0,0,0,0,0,0,0,-124,0, + 0,0,0,0,-5,0,0,-145,0,0, + 0,-6,-128,0,0,0,0,0,-83,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-140,0,0,0,0,0,-7,-327,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-23,0,0,0,-55,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-186,0, + 0,0,0,0,-148,0,0,0,0,0, + 0,0,0,0,0,0,-3,0,0,0, + 0,0,0,0,-116,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,-300,0,0,0,0,0,0,0, + 0,0,-178,0,0,0,-246,-350,0,0, + 0,0,0,0,0,0,0,-394,0,0, + -132,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,-59,0, + 0,-8,0,-9,0,0,0,0,-51,0, + 0,0,0,-195,0,0,0,-60,0,-54, + 0,-87,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,-66,-65, + 0,-223,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,-306,0,0,0,0,-182, + -358,0,0,0,0,0,0,-292,0,0, + 0,0,0,0,-234,0,0,-508,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -288,0,0,0,0,0,0,0,0,0, + -146,0,0,0,0,-242,0,0,0,-510, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-337,0,0,-352,0,0,0,0, + 0,0,0,0,0,0,0,-10,-225,-264, + -518,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,-355,0,0,0,0,0,0,-289,0, + 0,0,0,-11,0,0,0,-52,-61,0, + -13,0,0,0,0,0,-335,0,-4,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,-14,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-16,0,0,-277,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,-17,0,0,0,0,-117,0,0, + 0,0,0,0,0,0,-312,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-130, + 0,0,0,0,-431,0,0,0,0,0, + 0,0,0,0,0,-245,0,0,-151,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-313,0,0,0,-137,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-30,0,0,0,0, + 0,0,0,-31,0,0,0,0,0,0, + 0,0,0,0,-470,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-395,0,0, + 0,0,0,0,0,0,0,-416,0,0, + 0,0,-365,0,0,0,-41,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-429, + 0,0,0,0,0,0,0,-32,0,-108, + 0,0,0,0,-366,0,0,0,0,-43, + 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,-33,0,0,0,0,-109,-131,0, + 0,0,-95,0,0,0,-138,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,-34,0,-142,0,0,0,0, + -153,-35,0,0,-96,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,-199,0,0,0,0,0,0,0, + 0,0,-324,-36,0,0,-97,0,0,0, + -280,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-37, + 0,0,0,0,0,0,0,-261,0,0, + 0,0,0,0,-281,-38,0,0,-98,0, + 0,0,-39,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,-346,-40,0,0, + -99,0,0,0,-42,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-450,0, + 0,-330,0,-456,0,0,0,0,0,-56, + 0,0,-100,0,0,0,-57,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-67,0,0,0,0, + 0,0,0,-348,0,0,0,0,0,0, + -68,-70,0,0,-101,0,0,0,-71,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-110,0,0, + 0,0,0,0,0,-367,0,-490,0,0, + 0,0,-111,-112,0,0,-102,0,0,0, + -113,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-120, + 0,0,0,0,0,0,0,-404,0,-127, + 0,0,0,0,-139,-154,0,0,-103,0, + 0,0,-155,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-156,0,0,0,0,0,0,0,-412, + 0,-157,0,0,0,0,-158,0,0,0, + -104,0,0,0,-159,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,-413,0,-160,0,0,0,0,-161,-162, + 0,0,-105,0,0,0,-339,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-114,0,0,0,0, + 0,0,0,-163,0,-164,0,0,0,0, + -165,-166,0,0,-135,0,0,0,-167,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-134,0,0, + 0,0,0,0,0,-168,0,-169,0,0, + 0,0,-115,-440,-216,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-170,0,0, + 0,0,-205,0,0,0,0,-171,0,0, + 0,0,0,0,0,0,-18,0,0,0, + -172,0,0,0,-359,-147,0,-503,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,-500,0,0,0,0, + 0,0,0,0,0,0,-173,0,0,-309, + 0,0,0,-174,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-175,0,0,0,0,-152,0,0, + -176,0,-201,0,0,0,0,-323,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,-229,0, + -179,0,0,0,0,-72,0,0,0,0, + 0,0,0,0,0,0,0,-1,0,-180, + -210,0,-333,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, + -181,0,0,0,0,0,0,0,0,0, + -353,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-231,0,0,0,0,-190,0, + 0,-191,0,-196,0,0,0,0,-73,0, + 0,0,-197,0,0,0,0,0,0,0, + -75,-200,0,0,0,-354,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,-211,0,0,0, + 0,0,0,-402,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-215,0,0,0, + 0,-221,0,0,-222,0,0,0,0,0, + 0,-177,-58,0,0,-184,0,0,0,0, + -149,0,0,0,-236,-224,0,0,-107,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,-106,0,0,-237,0,-94,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,-238,0,0,0,0,0, + 0,-92,0,0,0,-244,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-251,0,0,0,0,-267, + 0,0,-240,0,-93,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,-249,0,0,-53,0,0,0,-198, + 0,-284,-310,-262,0,-185,0,0,0,0, + -304,0,0,0,0,0,0,0,0,0, + 0,0,-89,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-501,0,0,0,0, + -263,0,0,-144,-479,0,-400,0,-217,-252, + 0,-273,0,0,-243,0,0,0,0,0, + 0,0,-441,0,0,0,-209,0,0,0, + 0,0,0,0,0,-274,0,-278,0,0, + 0,0,0,-478,0,0,0,0,0,0, + 0,0,0,-279,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-250, + -469,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-90,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,-91,0,0,0,-290,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-293,0,0,0,0, + -84,0,0,0,-294,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-268,0,0,0,-85,0,0, + 0,-299,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-86,0,0,0,-247,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-303,0,0, + 0,-239,0,0,0,0,0,0,0,0, + 0,0,0,-88,0,0,0,-298,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-15,0,0,-187, + 0,0,-253,0,-283,0,0,0,0,0, + 0,0,0,0,0,0,-305,0,0,0, + 0,0,0,-321,-230,0,-326,-119,0,0, + 0,-270,-332,0,0,0,-122,0,0,0, + 0,0,0,-453,0,-259,-241,0,-334,-258, + 0,-214,0,0,0,-340,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -363,0,0,0,0,0,-364,-254,0,0, + 0,0,0,0,0,0,0,0,-275,0, + 0,0,0,0,0,0,0,0,-235,0, + -370,-372,0,0,0,0,0,0,0,0, + 0,0,-62,0,-468,-369,0,-286,0,0, + 0,0,0,-272,-376,0,0,0,0,0, + -374,0,0,0,0,0,-189,0,0,0, + 0,0,0,-269,-129,0,0,0,0,0, + 0,0,0,0,0,-380,0,0,0,-118, + 0,0,0,0,0,0,0,0,0,-192, + -45,0,0,0,0,0,-295,0,-475,0, + 0,0,0,0,0,0,0,0,0,0, + -381,0,-287,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-390,-296,0, + 0,0,0,0,-317,-297,0,-349,0,0, + -316,0,0,0,0,0,-345,0,0,0, + 0,0,0,-356,-368,-20,0,0,0,-393, + 0,0,-476,0,0,-338,0,0,0,0, + 0,-266,0,0,0,0,0,-401,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-411,0,0,0,0,-445,0,0,0, + 0,-342,0,0,-361,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-203,0, + 0,-208,0,0,0,0,-403,0,0,0, + 0,-227,0,0,-228,0,0,0,0,0, + 0,0,-405,-406,0,0,0,0,0,0, + -407,0,0,0,0,-502,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-78,0,0,0,-496,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-232,-233, + 0,-50,0,-409,0,0,-257,0,0,-410, + 0,0,0,0,0,0,0,-415,0,0, + 0,0,0,0,0,0,-417,0,0,0, + 0,-422,-21,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-424,-79,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-383,0,-360,-426,0,-265,0,0,0, + 0,0,0,0,0,0,0,0,-212,0, + 0,0,-308,0,0,-385,0,0,0,0, + -276,-302,-357,0,0,0,0,0,-418,0, + 0,-427,0,0,-314,0,-428,0,0,0, + 0,0,0,0,0,0,0,0,-430,-432, + 0,0,0,0,-433,0,0,0,0,0, + -438,0,0,0,0,0,0,0,0,0, + -80,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-81,0,0,0,-311,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-82,0,0,0, + -442,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-319, + 0,0,0,-451,0,0,0,0,0,0, + 0,-320,-384,0,0,0,-328,0,-419,-136, + 0,-458,-399,0,-378,-74,-396,0,0,0, + 0,-452,-392,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-388,0, + -473,0,0,0,-248,0,0,0,0,0, + 0,0,0,0,0,-336,0,0,0,0, + 0,0,-449,0,0,0,0,0,0,-391, + -341,0,-331,0,0,0,-121,0,0,0, + 0,0,0,0,0,-465,0,0,0,0, + 0,-377,0,0,-467,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-484,0,-498,0,0,0,0,0,0, + 0,0,0,0,0,-362,-143,-499,0,0, + 0,0,0,0,0,0,0,-375,-379,0, + -408,0,0,-464,0,-504,-382,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,-285,-414,0,0,0,0,0,0, + -420,-434,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-49,0, + 0,0,0,0,0,-315,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-446,0,0,-472,0,-491,0,0,0, + 0,0,0,0,0,0,0,0,-486,0, + 0,0,0,0,0,0,-46,-421,0,0, + 0,0,0,0,0,0,0,0,0,0, + -202,-494,-255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-448,0,-495,0, + 0,-123,-344,0,-271,0,0,0,0,0, + 0,0,0,0,0,-389,-47,0,-425,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-443,0,-125,-218,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-474,-447,-454,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-141,0,0, + 0,0,0,-455,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,-460, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-462,0, + 0,0,-483,-466,-480,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-387,0,0,0, + 0,0,-481,0,0,-482,0,0,-493,0, + 0,0,0,-485,0,0,-497,0,0,0, + -492,0,0,0,0,0,0,0,0,-183, + 0,0,0,-459,0,0,0,0,0,-506, + -509,0,-507,0,0,0,0,0,0,0, + 0,0,0,0,-489,0,0,-514,0,0, + 0,-512,0,0,0,0,0,0,-517,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,-511,0,0,-515,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-194,0,0,0,-256,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-516,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,-519,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-204,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,-22,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-24,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -25,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-26,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-27,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-28,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-29,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -64,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-76,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-77,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-126,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,-133,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,-206, + 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,-463,-487,0,0,0,0,0,0,0, + 0,0,-301,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,-423,0,0,0,0, + 0,0,0,0,0,0,0,-351,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-48,0,0,0,0,0, + 0,-471,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-219,0,0,-226,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-322,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-150,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -461,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,-325,0, + 0,0,0,0,0,0,0,0,-188,0, + 0,0,0,0,-193,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,-347,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-282,0,0, + 0,0,0,-307,0,0,0,0,0,0, + 0,0,0,0,-207,0,0,0,0,0, + 0,0,0,-329,0,0,0,0,0,-343, + 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,-371,0,0, + 0,0,0,-373,0,0,0,0,0,0, + 0,0,0,0,0,-220,0,0,0,0, + -457,0,0,0,0,0,0,0,0,-477, + 0,0,0,-318,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-397,0,0,0,0,0, + 0,0,0,0,0,0,-291,0,0,0, + 0,0,0,0,0,0,0,0,0,-213, + 0,0,0,0,0,0,0,0,-260,0, + 0,0,0,0,0,0,0,0,0,-386, + 0,0,0,0,0,0,0,0,0,0, + 0,-437,0,0,-19,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,-44,0,0, + -69,0,0,0,0,0,-435,0,0,-436, + 0,0,0,0,0,0,0,-398,-439,0, + 0,0,0,0,0,0,-444,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,-505,-513, + -488,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 + }; + }; + 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[] = { + 169,4,192,193,194,135,79,33,62,39, + 195,195,15,15,15,15,15,15,15,15, + 16,16,16,14,10,10,8,8,8,8, + 8,1,63,63,5,5,11,11,11,11, + 47,47,136,136,137,58,58,45,45,17, + 17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,138, + 138,138,18,18,18,18,18,18,18,18, + 18,18,18,18,18,19,19,173,170,170, + 171,171,174,140,140,175,175,172,172,141, + 139,139,20,20,21,21,22,22,22,24, + 24,24,24,25,25,25,26,26,26,27, + 27,27,27,27,29,29,29,30,30,32, + 32,34,34,35,35,36,36,37,37,41, + 41,40,40,40,40,40,40,40,40,40, + 40,40,40,40,38,38,28,142,142,102, + 102,106,106,97,196,196,71,71,71,71, + 71,71,71,71,71,72,72,72,73,73, + 56,56,176,176,74,74,74,117,117,75, + 75,75,75,76,76,76,76,76,77,82, + 82,82,82,82,82,82,51,51,51,51, + 51,108,108,109,109,50,23,23,23,23, + 23,46,46,93,93,93,93,93,148,148, + 143,143,143,143,144,144,144,145,145,145, + 146,146,146,147,147,147,94,94,94,94, + 94,95,95,95,87,12,13,13,13,13, + 13,13,13,13,13,13,13,80,80,80, + 121,121,121,121,121,119,119,119,88,120, + 120,150,150,149,149,123,123,124,43,43, + 42,86,86,89,89,91,92,90,44,53, + 49,151,151,54,52,85,85,178,178,177, + 177,152,152,81,81,67,67,67,59,59, + 60,68,68,69,69,64,64,64,103,103, + 105,104,104,57,57,61,61,55,55,48, + 107,107,107,98,98,98,99,100,100,100, + 101,101,110,110,110,112,112,111,111,197, + 197,96,96,180,180,180,180,180,126,65, + 65,154,179,179,127,127,127,127,181,181, + 31,31,118,128,128,128,128,198,198,113, + 113,122,122,122,156,157,157,157,157,157, + 157,157,157,184,184,182,182,183,183,158, + 158,158,158,159,185,115,114,114,186,186, + 160,160,130,130,129,129,129,199,199,9, + 187,187,188,161,153,153,162,162,163,164, + 164,6,6,7,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,66,70,70,167, + 167,131,131,132,132,132,132,132,132,2, + 3,168,168,165,165,133,133,133,83,84, + 78,155,155,116,116,189,189,189,134,134, + 125,125,190,190,169,169,1438,1569,1562,1027, + 755,3618,27,1042,24,28,23,25,1645,255, + 22,20,49,1166,104,73,74,106,1174,583, + 1303,1258,1352,1344,3469,1420,1394,267,1443,1563, + 1436,1478,1485,141,4465,1431,157,142,2583,26, + 29,1027,1217,583,27,1042,36,28,3812,3172, + 26,29,1027,225,2886,27,1042,24,28,23, + 25,991,255,22,20,49,1166,104,73,74, + 106,1174,583,1303,1258,1695,270,3894,146,2583, + 26,29,1027,269,268,27,1042,1554,28,228, + 223,224,3172,1569,1562,1027,1433,2886,27,1042, + 24,28,23,25,991,255,22,20,49,1166, + 104,73,74,81,234,237,240,243,2687,1864, + 2965,2962,1027,30,1630,2145,26,29,1027,484, + 4680,27,1042,24,28,58,25,1479,572,2810, + 2678,3347,3552,3587,4177,2103,26,29,1027,2326, + 2886,27,1042,24,28,2000,25,991,255,22, + 20,49,1166,104,73,74,106,1174,339,1303, + 1258,1352,1344,583,1420,1394,524,1443,4544,1436, + 1478,1485,141,2437,2165,505,142,239,2583,26, + 29,1027,3730,2763,27,1042,1596,28,3258,3152, + 506,2103,26,29,1027,2326,2886,27,1042,24, + 28,2000,25,991,255,22,20,49,1166,104, + 73,74,106,1174,339,1303,1258,1352,1344,2748, + 1420,1394,243,1443,1369,1436,1478,1485,141,46, + 3115,505,142,675,2564,380,381,1027,1433,2763, + 132,858,3172,26,29,1027,506,2886,27,1042, + 24,28,23,25,991,255,22,20,49,1166, + 104,73,74,106,1174,267,1303,1764,501,1509, + 674,4204,2482,26,29,1027,2326,2886,27,1042, + 24,28,2000,25,991,255,22,20,49,1166, + 104,73,74,106,1174,339,1303,1258,1352,1344, + 1981,1420,1394,2031,1443,761,1436,1478,1485,141, + 1619,583,505,142,271,3730,4604,92,2160,485, + 2763,269,268,3730,501,2437,277,506,2524,26, + 29,1027,568,2886,27,1042,24,28,23,25, + 991,255,22,20,49,1166,104,73,74,106, + 1174,2904,1303,1258,1352,1344,2083,1420,1394,2031, + 1443,2055,1436,1478,1485,141,2709,273,374,142, + 2574,26,29,1027,329,4680,27,1042,24,28, + 23,25,858,3421,498,443,891,26,29,1027, + 377,4550,27,1042,24,28,335,25,1482,2642, + 1956,2596,26,29,1027,502,2886,27,1042,24, + 28,23,25,991,255,22,20,49,1166,104, + 73,74,106,1174,3129,1303,1258,1352,1344,2843, + 1420,1394,3421,1443,1737,1436,1478,1485,141,2904, + 3397,374,142,88,1556,1435,316,318,918,1433, + 329,232,1078,314,1401,378,2700,3446,94,2919, + 26,29,1027,375,2886,27,1042,24,28,23, + 25,991,255,22,20,49,1166,104,73,74, + 106,1174,21,1303,1258,1352,1344,1575,1420,1394, + 86,1443,100,1436,1478,1485,141,40,2127,157, + 142,713,1576,325,331,2919,26,29,1027,3799, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,106,1174,379,1303, + 1258,1352,1344,1950,1420,1394,2884,1443,239,1436, + 1478,1485,141,3730,434,368,142,2919,26,29, + 1027,703,2886,27,1042,24,28,23,25,991, + 255,22,20,49,1166,104,73,74,106,1174, + 132,1303,1258,1352,1344,3524,1420,1394,85,1443, + 100,1436,1478,1485,141,2885,2842,368,142,2145, + 26,29,1027,434,4680,27,1042,24,28,57, + 25,572,328,2919,26,29,1027,2770,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,104,73,74,106,1174,3562,1303,1258,1352, + 1344,367,1420,1394,2581,1443,430,1436,1478,1485, + 141,850,410,368,142,2860,26,29,1027,447, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,106,1174,2576,1303, + 1258,1352,1344,366,1420,1394,348,1443,3389,1436, + 1478,1485,141,2999,389,374,142,2440,26,29, + 1027,512,2886,27,1042,24,28,23,25,991, + 255,22,20,49,1166,104,73,74,106,1174, + 583,1303,1258,1352,1344,4621,1420,1394,62,1443, + 1433,1436,1478,1485,141,2999,389,140,142,364, + 2919,26,29,1027,3585,2886,27,1042,24,28, + 23,25,991,255,22,20,49,1166,104,73, + 74,106,1174,68,1303,1258,1352,1344,979,1420, + 1394,2507,1443,69,1436,1478,1485,141,1433,132, + 158,142,372,2919,26,29,1027,1496,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,104,73,74,106,1174,2806,1303,1258,1352, + 1344,67,1420,1394,3285,1443,132,1436,1478,1485, + 141,132,413,153,142,2919,26,29,1027,703, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,106,1174,2841,1303, + 1258,1352,1344,132,1420,1394,349,1443,446,1436, + 1478,1485,141,132,411,152,142,2919,26,29, + 1027,3348,2886,27,1042,24,28,23,25,991, + 255,22,20,49,1166,104,73,74,106,1174, + 60,1303,1258,1352,1344,4230,1420,1394,2790,1443, + 50,1436,1478,1485,141,3254,406,151,142,2919, + 26,29,1027,578,2886,27,1042,24,28,23, + 25,991,255,22,20,49,1166,104,73,74, + 106,1174,323,1303,1258,1352,1344,397,1420,1394, + 321,1443,95,1436,1478,1485,141,132,748,150, + 142,2919,26,29,1027,1545,2886,27,1042,24, + 28,23,25,991,255,22,20,49,1166,104, + 73,74,106,1174,322,1303,1258,1352,1344,1298, + 1420,1394,2751,1443,583,1436,1478,1485,141,4630, + 1523,149,142,2919,26,29,1027,2766,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,104,73,74,106,1174,843,1303,1258,1352, + 1344,395,1420,1394,1479,1443,96,1436,1478,1485, + 141,157,1499,148,142,2919,26,29,1027,1572, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,106,1174,1021,1303, + 1258,1352,1344,399,1420,1394,1479,1443,3525,1436, + 1478,1485,141,1168,1171,147,142,2919,26,29, + 1027,1283,2886,27,1042,24,28,23,25,991, + 255,22,20,49,1166,104,73,74,106,1174, + 762,1303,1258,1352,1344,300,1420,1394,1479,1443, + 861,1436,1478,1485,141,924,325,146,142,2919, + 26,29,1027,327,2886,27,1042,24,28,23, + 25,991,255,22,20,49,1166,104,73,74, + 106,1174,2698,1303,1258,1352,1344,178,1420,1394, + 1479,1443,2699,1436,1478,1485,141,2730,312,145, + 142,2919,26,29,1027,501,2886,27,1042,24, + 28,23,25,991,255,22,20,49,1166,104, + 73,74,106,1174,512,1303,1258,1352,1344,194, + 1420,1394,1479,1443,503,1436,1478,1485,141,585, + 673,144,142,2919,26,29,1027,3439,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,104,73,74,106,1174,899,1303,1258,1352, + 1344,193,1420,1394,320,1443,836,1436,1478,1485, + 141,662,3422,143,142,3019,26,29,1027,3468, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,106,1174,239,1303, + 1258,1352,1344,3730,1420,1394,2594,1443,841,1436, + 1478,2092,163,1433,1479,2919,26,29,1027,2172, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,106,1174,1548,1303, + 1258,1352,1344,2257,1420,1394,52,1443,492,1436, + 1478,1485,141,197,324,138,142,1512,37,39, + 1027,1774,328,38,1042,3255,1433,851,3058,26, + 29,1027,1383,2886,27,1042,24,28,23,25, + 991,255,22,20,49,1166,104,73,74,106, + 1174,713,1303,1258,1352,1344,3389,1420,1394,84, + 1443,2330,1436,1478,1485,141,568,1415,188,142, + 3172,26,29,1027,1963,2886,27,1042,24,28, + 23,25,991,255,22,20,49,1166,104,73, + 74,106,1174,2150,1303,1258,1352,1344,1433,1420, + 1394,2162,1443,1433,1436,1478,2092,163,3172,26, + 29,1027,514,2886,27,1042,24,28,23,25, + 991,255,22,20,49,1166,104,73,74,106, + 1174,51,1303,1258,1352,1344,346,1420,1394,2758, + 1443,2147,1436,1478,2092,163,2656,26,29,1027, + 351,4395,27,1042,24,28,56,25,1968,520, + 1034,1433,999,3172,26,29,1027,286,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,104,73,74,106,1174,154,1303,1258,1352, + 1344,2590,1420,1394,87,1443,667,1436,1478,2092, + 163,3172,26,29,1027,1477,2886,27,1042,24, + 28,23,25,991,255,22,20,49,1166,104, + 73,74,106,1174,2758,1303,1258,1352,1344,2670, + 1420,1394,1819,1443,3288,1436,1478,2092,163,2761, + 26,29,1027,2841,4395,27,1042,24,28,55, + 25,2013,390,383,416,999,3172,26,29,1027, + 412,2886,27,1042,24,28,23,25,991,255, + 22,20,49,1166,104,73,74,106,1174,154, + 1303,1258,1352,1344,60,1420,1394,2693,1443,1351, + 1436,1478,2092,163,3211,26,29,1027,411,2886, + 27,1042,24,28,23,25,991,255,22,20, + 49,1166,104,73,74,106,1174,2768,1303,1258, + 1352,1344,2166,1420,1394,2591,1443,530,1436,1478, + 2092,163,1948,46,2162,1027,46,731,384,416, + 939,1864,380,381,1027,1948,664,272,1027,3172, + 26,29,1027,414,2886,27,1042,24,28,23, + 25,991,255,22,20,49,1166,104,73,74, + 106,1174,30,1303,1258,1352,1344,59,1420,1394, + 568,1443,2058,1436,1861,1433,999,3172,26,29, + 1027,3175,2886,27,1042,24,28,23,25,991, + 255,22,20,49,1166,104,73,74,106,1174, + 154,1303,1258,1352,1344,2579,1420,1394,3141,1443, + 1848,1838,3172,26,29,1027,1433,2886,27,1042, + 24,28,23,25,991,255,22,20,49,1166, + 104,73,74,106,1174,1433,1303,1258,1352,1344, + 2758,1420,1394,2706,1806,3172,26,29,1027,891, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,106,1174,66,1303, + 1258,1352,1344,2700,1420,1808,3250,380,381,1027, + 1514,2795,239,2826,2830,3730,46,3730,230,255, + 4359,934,26,29,1027,3343,4518,27,1042,24, + 28,335,25,3172,26,29,1027,267,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,104,73,74,106,1174,3389,1303,1258,1352, + 1344,3349,1771,225,46,2999,389,1,999,2170, + 1433,526,3310,999,329,2822,328,272,1027,347, + 1435,316,318,1479,386,416,270,1627,313,1401, + 221,717,2001,269,268,154,3252,154,3343,228, + 223,224,2865,65,3113,1638,179,2285,342,1317, + 1147,345,513,3444,3368,3260,209,206,198,207, + 208,210,195,168,234,237,240,243,2687,180, + 2822,46,2535,1027,1630,999,282,2392,183,166, + 167,169,170,171,172,173,288,3717,289,2810, + 2678,3347,3552,3587,4177,3172,26,29,1027,3721, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,106,1174,3398,1303, + 1258,1352,1772,3172,26,29,1027,3436,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,104,73,74,106,1174,2908,1303,1258,1352, + 1779,3172,26,29,1027,2910,2886,27,1042,24, + 28,23,25,991,255,22,20,49,1166,104, + 73,74,106,1174,2758,1303,1258,1724,3172,26, + 29,1027,3374,2886,27,1042,24,28,23,25, + 991,255,22,20,49,1166,104,73,74,106, + 1174,91,1303,1258,1729,3172,26,29,1027,3352, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,106,1174,2909,1303, + 1258,1730,1878,26,29,1027,2332,4518,27,1042, + 24,28,335,25,3172,26,29,1027,1509,2886, + 27,1042,24,28,23,25,991,255,22,20, + 49,1166,104,73,74,106,1174,2636,1303,1766, + 46,2326,3129,1433,1979,1951,26,29,1027,4634, + 4518,27,1042,24,28,335,25,3409,385,416, + 339,1435,316,318,2914,2347,275,2998,834,313, + 1401,347,1948,3401,276,1027,64,2663,2069,2787, + 1027,609,4459,2434,3413,988,2831,404,2326,3404, + 2642,2326,1035,380,381,1027,1864,380,381,1027, + 340,1317,1147,345,1435,316,318,221,47,2418, + 2612,1037,313,1401,347,42,2127,3467,1433,288, + 48,289,1546,267,649,225,2865,420,2682,1948, + 3293,274,1027,209,206,199,207,208,210,2347, + 273,3449,2915,340,1317,1147,345,2700,382,200, + 201,63,1943,1557,2381,3427,3425,1798,1433,2326, + 3112,236,223,224,2831,3255,211,202,203,204, + 205,3001,2323,291,292,293,294,2668,221,269, + 268,2064,361,355,3286,1561,380,381,1027,4524, + 2650,3272,3602,3311,330,331,3492,2768,2255,2293, + 2665,3293,2739,443,209,206,199,207,208,210, + 46,46,232,255,3030,2326,47,1433,181,3505, + 200,201,347,2326,429,2381,279,288,48,289, + 1546,3497,2074,1948,339,2674,1027,211,202,203, + 204,205,221,774,291,292,293,294,3098,1433, + 54,340,1317,1147,345,1433,2642,225,3393,2763, + 338,3398,2326,3602,3497,3293,1588,1433,209,206, + 199,207,208,210,3389,3389,901,380,381,1027, + 3004,2612,53,3537,200,201,3286,2326,319,2381, + 350,4524,3335,233,223,224,2326,4689,3475,520, + 99,211,202,203,204,205,221,47,291,292, + 293,294,1687,2700,845,221,999,3255,288,48, + 289,1546,404,809,568,3366,2326,3602,3532,3293, + 371,371,209,206,199,207,208,210,3117,46, + 154,400,46,2697,418,2612,1126,3479,200,201, + 2403,196,46,2381,492,46,2290,1428,401,2554, + 327,331,2381,3007,3008,211,202,203,204,205, + 2667,3011,291,292,293,294,2153,26,29,1027, + 2332,4518,27,1042,24,28,335,25,568,489, + 491,3602,3549,3172,26,29,1027,3113,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,104,73,74,106,1174,845,1646,355,46, + 2810,2334,576,3555,3012,2721,999,46,369,3417, + 3015,2866,3114,2255,2293,1435,316,318,3099,288, + 3741,289,320,313,1401,347,419,3478,402,404, + 159,520,3503,3133,26,29,1027,515,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,83,73,74,340,1317,1147,345,3101,3172, + 26,29,1027,516,2886,27,1042,24,28,23, + 25,991,255,22,20,49,1166,104,73,74, + 106,1174,87,1653,1433,3533,526,1535,26,29, + 1027,4273,4518,27,1042,24,28,335,25,1365, + 380,381,1027,2831,1813,221,1864,380,381,1027, + 154,46,3295,1166,440,3218,923,3408,4598,1433, + 1638,179,3595,281,2392,46,396,2763,3444,2932, + 47,209,206,198,207,208,210,439,168,1085, + 3102,288,48,289,44,3493,2608,3142,318,2774, + 2416,3527,438,182,166,167,169,170,171,172, + 173,3172,26,29,1027,280,2886,27,1042,24, + 28,23,25,991,255,22,20,49,1166,104, + 73,74,106,1672,3172,26,29,1027,2642,2886, + 27,1042,24,28,23,25,991,255,22,20, + 49,1166,104,73,74,106,1682,3172,26,29, + 1027,3536,2886,27,1042,24,28,23,25,991, + 255,22,20,49,1166,104,73,74,106,1687, + 1886,26,29,1027,3531,4550,27,1042,24,28, + 335,25,46,1232,440,2700,3553,46,4598,871, + 1481,2868,2101,3005,3531,3551,576,3400,2387,2326, + 999,2326,1433,1940,26,29,1027,4306,4518,27, + 1042,24,28,335,25,433,2751,2752,221,3499, + 2612,2831,518,2326,159,2564,380,381,1027,1435, + 316,318,3341,331,329,3495,46,314,1401,347, + 972,3293,339,1479,209,206,199,207,208,210, + 3381,46,519,239,2326,1865,267,1478,3730,347, + 200,201,2608,3142,318,2381,3107,2763,342,1317, + 1147,345,3393,221,522,3005,2326,486,202,203, + 204,205,215,297,291,292,293,294,340,1317, + 1147,345,3546,492,3570,2612,3293,1943,1938,209, + 206,199,207,208,210,71,46,1299,3575,511, + 2775,2326,269,268,225,200,201,328,46,46, + 2381,173,3566,3287,1479,526,3282,46,489,491, + 339,3283,508,202,203,204,205,5141,5141,291, + 292,293,294,5141,221,437,2751,2752,1115,154, + 239,223,224,2812,46,2407,926,2326,4306,1638, + 179,46,259,4263,3169,2927,526,3444,492,5141, + 209,206,198,207,208,210,2612,168,5141,1365, + 380,381,1027,5141,5141,221,2564,380,381,1027, + 154,511,3181,166,167,169,170,171,172,173, + 1638,179,3583,490,491,1479,2326,2831,3444,3279, + 47,209,206,198,207,208,210,267,168,1479, + 5141,288,48,289,1546,221,1756,46,3523,5141, + 1598,2326,3492,175,166,167,169,170,171,172, + 173,1546,2831,576,304,2326,3730,999,3293,356, + 339,209,206,199,207,208,210,3629,4809,2831, + 5141,2326,2729,2642,2612,2810,336,200,201,305, + 5141,159,2381,269,268,2763,2642,46,2952,46, + 221,2326,1603,2694,306,202,203,204,205,5141, + 5141,291,292,293,294,46,5141,2749,2215,3365, + 339,5141,999,3293,296,328,209,206,199,207, + 208,210,3459,46,46,5141,2326,2765,2829,225, + 2700,295,200,201,5141,2763,154,2381,905,380, + 381,1027,1604,2700,46,221,2390,355,2893,509, + 202,203,204,205,2330,2827,291,292,293,294, + 5141,2225,2255,2293,225,242,223,224,3293,47, + 1433,209,206,199,207,208,210,3396,331,5141, + 288,48,289,1546,5141,1843,5141,200,201,1433, + 3451,331,2381,345,1433,1433,774,526,281,2392, + 245,223,224,3673,212,202,203,204,205,5141, + 5141,291,292,293,294,5141,221,1864,380,381, + 1027,154,3714,1433,3133,2416,3520,3755,1896,46, + 2986,1638,179,868,431,5141,5141,1479,526,3444, + 5141,1433,209,206,198,207,208,210,421,168, + 1365,380,381,1027,3017,5141,2376,221,2326,5141, + 1479,1479,154,1433,186,166,167,169,170,171, + 172,173,1638,179,373,517,303,339,1479,526, + 3444,47,1433,209,206,198,207,208,210,1433, + 168,5141,288,48,289,1546,3758,2186,221,4810, + 299,5141,3706,154,5141,3416,166,167,169,170, + 171,172,173,1638,179,3837,603,190,5141,1364, + 526,3444,3878,5141,209,206,198,207,208,210, + 5141,168,1365,380,381,1027,576,5141,5141,221, + 999,5141,5141,5141,154,5141,189,166,167,169, + 170,171,172,173,1638,179,5141,689,5141,5141, + 5141,526,3444,47,159,209,206,198,207,208, + 210,5141,168,5141,288,48,289,1546,5141,2749, + 221,376,5141,5141,5141,154,5141,185,166,167, + 169,170,171,172,173,1638,179,5141,775,5141, + 5141,5141,526,3444,5141,5141,209,206,198,207, + 208,210,5141,168,1365,380,381,1027,5141,5141, + 5141,221,5141,5141,5141,5141,154,5141,192,166, + 167,169,170,171,172,173,1638,179,2859,5141, + 5141,5141,5141,3703,3444,47,5141,209,206,198, + 207,208,210,5141,168,5141,288,48,289,1546, + 5141,906,5141,5141,5141,5141,5141,5141,5141,191, + 166,167,169,170,171,172,173,3172,26,29, + 1027,5141,2886,27,1042,24,28,23,25,991, + 255,22,20,49,1166,104,73,74,82,3172, + 26,29,1027,5141,2886,27,1042,24,28,23, + 25,991,255,22,20,49,1166,104,73,74, + 80,3172,26,29,1027,5141,2886,27,1042,24, + 28,23,25,991,255,22,20,49,1166,104, + 73,74,79,3172,26,29,1027,5141,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,104,73,74,78,3172,26,29,1027,5141, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,77,3172,26,29, + 1027,5141,2886,27,1042,24,28,23,25,991, + 255,22,20,49,1166,104,73,74,76,3172, + 26,29,1027,5141,2886,27,1042,24,28,23, + 25,991,255,22,20,49,1166,104,73,74, + 75,2959,26,29,1027,5141,2886,27,1042,24, + 28,23,25,991,255,22,20,49,1166,104, + 73,74,102,3172,26,29,1027,5141,2886,27, + 1042,24,28,23,25,991,255,22,20,49, + 1166,104,73,74,108,3172,26,29,1027,5141, + 2886,27,1042,24,28,23,25,991,255,22, + 20,49,1166,104,73,74,107,3308,380,381, + 1027,5141,2795,5141,5141,5141,5141,5141,5141,231, + 255,5141,5141,5141,5141,5141,5141,5141,5141,5141, + 5141,5141,5141,5141,3172,26,29,1027,267,2886, + 27,1042,24,28,23,25,991,255,22,20, + 49,1166,104,73,74,105,5141,5141,5141,5141, + 3172,26,29,1027,225,2886,27,1042,24,28, + 23,25,991,255,22,20,49,1166,104,73, + 74,103,5141,5141,5141,5141,5141,270,5141,5141, + 5141,5141,1732,1777,269,268,999,999,5141,5141, + 229,223,224,1868,2683,29,1027,3343,4518,27, + 1042,24,28,335,25,5141,5141,5141,5141,5141, + 154,154,5141,5141,5141,235,238,241,244,2687, + 161,161,5141,5141,5141,1630,2649,26,29,1027, + 3343,4518,27,1042,24,28,335,25,2567,2683, + 29,1027,3343,4518,27,1042,24,28,335,25, + 5141,5141,1435,316,318,46,5141,5141,5141,2326, + 313,1401,1958,26,29,1027,3343,4518,27,1042, + 24,28,335,25,997,5141,2260,5141,339,3274, + 999,5141,5141,2326,4689,1435,316,318,3509,3740, + 5141,5141,576,313,1401,5141,999,1435,316,318, + 5141,5141,221,2763,154,313,1401,1509,5141,5141, + 1611,5141,5141,5141,2653,1875,380,381,1027,997, + 159,1435,316,318,5141,3117,5141,5141,400,313, + 1401,934,26,29,1027,3343,4518,27,1042,24, + 28,335,25,1509,1428,401,47,5141,5141,2381, + 5141,407,2699,5141,5141,5141,5141,288,48,289, + 1546,5141,2157,5141,5141,5141,5141,5141,5141,2564, + 380,381,1027,2702,5141,5141,1512,5141,307,1875, + 380,381,1027,5141,5141,1561,380,381,1027,5141, + 1435,316,318,5141,2877,5141,408,2699,313,1401, + 267,5141,5141,3333,3264,5141,5141,5141,2334,5141, + 47,5141,3382,5141,308,5141,47,2564,380,381, + 1027,288,48,289,1546,5141,45,288,48,289, + 1546,5141,45,5141,5141,402,403,2675,1561,380, + 381,1027,5141,865,1561,380,381,1027,267,69, + 5141,5141,5141,5141,5141,46,269,268,5141,2326, + 5141,2696,5141,2902,1875,380,381,1027,5141,47, + 1561,380,381,1027,5141,47,5141,5141,339,5141, + 288,48,289,1546,5141,2871,288,48,289,1546, + 5141,45,5141,5141,5141,47,3476,70,5141,5141, + 5141,47,2706,2763,269,268,288,48,289,1546, + 2266,45,288,48,289,1546,5141,2935,1561,380, + 381,1027,718,5141,1561,380,381,1027,3476,5141, + 5141,5141,5141,5141,5141,5141,2305,5141,5141,5141, + 999,3105,380,381,1027,5141,5141,5141,5141,47, + 3111,380,381,1027,1546,47,5141,5141,2326,3730, + 288,48,289,1546,154,45,288,48,289,1546, + 5141,45,47,5141,2728,46,3136,2612,5141,2326, + 5141,47,3697,288,48,289,1546,2350,45,5141, + 5141,999,288,48,289,1546,5141,45,339,2424, + 1365,380,381,1027,5141,5141,5141,5141,3007,1365, + 380,381,1027,5141,5141,154,5141,5141,328,5141, + 576,5141,5141,2763,999,1393,5141,5141,5141,5141, + 496,47,976,5141,5141,1042,526,5141,5141,526, + 47,5141,288,48,289,1546,5141,809,159,5141, + 355,288,48,289,1546,221,2628,3260,339,5141, + 154,5141,5141,154,2225,2255,2293,5141,1108,5141, + 161,1174,526,989,5141,526,5141,1240,3444,5141, + 1306,526,4262,2763,526,5141,5141,5141,46,1372, + 778,339,2326,526,339,5141,154,46,5141,154, + 339,2326,5141,339,5141,154,1308,5141,154,989, + 5141,339,339,5141,5141,187,2763,154,187,2763, + 339,5141,3149,1260,5141,4411,1866,187,4411,1822, + 1895,2395,5141,999,999,999,2763,4411,3414,5141, + 5141,5141,5141,494,5141,2763,5141,5141,5141,5141, + 5141,5141,523,5141,5141,5141,5141,154,154,154, + 5141,5141,5141,5141,5141,5141,5141,161,161,3743, + 5141,5141,5141,5141,5141,5141,5141,5141,5141,5141, + 5141,5141,5141,5141,5141,5141,5141,5141,5141,5141, + 5141,5141,5141,5141,3650,5141,5141,3669,5141,5141, + 5141,5141,5141,5141,5141,5141,3674,5141,5141,5141, + 5141,5141,5141,5141,5141,5141,5141,5141,5141,5141, + 5141,5141,5141,5141,5141,5141,5141,5141,5141,5141, + 5141,5141,5141,5141,5141,3762,3769,5141,0,1073, + 35,0,441,2173,0,31,500,0,1073,34, + 0,2558,124,0,1,431,0,1640,35,0, + 445,1110,0,444,1309,0,2384,89,0,31, + 290,298,0,29,381,0,26,380,0,2181, + 35,0,1,549,0,1,5407,0,1,5406, + 0,1,5405,0,1,5404,0,1,5403,0, + 1,5402,0,1,5401,0,1,5400,0,1, + 5399,0,1,5398,0,1,5397,0,1,1073, + 35,0,1,1857,0,1561,35,0,31,278, + 254,0,31,500,278,254,0,1561,46,0, + 3032,230,0,41,5173,0,41,33,0,2558, + 126,0,2558,125,0,23,507,0,5467,432, + 0,2176,432,0,1,5175,0,1,35,0, + 45,33,0,1,90,0,1,5175,222,0, + 1,35,222,0,5172,33,0,5172,5,33, + 0,5641,32,0,5173,43,0,33,43,0, + 5150,398,0,1,2181,0,1,2647,0,1, + 2341,0,3155,315,0,5467,93,0,2176,93, + 0,3533,274,0,1,1223,0,1,1265,0, + 5172,35,0,488,3340,0,1,222,0,1, + 222,2957,0,5150,222,0,155,174,0,31, + 290,0,222,162,0,290,298,0,184,3796, + 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,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,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,0,62,63,64,65,0,67,0,8, + 9,71,0,5,74,75,76,77,78,79, + 80,81,82,83,84,85,0,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,0,46,47,48,49,50,51,52,53, + 54,55,56,57,58,0,60,2,62,63, + 64,65,0,67,95,96,0,89,90,3, + 74,75,76,77,78,79,80,81,82,83, + 84,85,0,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,61,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,0,60,2,62,63,64,65,0,67, + 0,3,0,5,113,7,74,75,76,77, + 78,79,80,81,82,83,84,85,0,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,61,46,47,48,49,50,51, + 52,53,54,55,56,57,58,0,60,0, + 62,63,64,65,0,67,0,8,9,5, + 0,5,74,75,76,77,78,79,80,81, + 82,83,84,85,0,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,0, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,0,60,0,62,63,64,65, + 0,67,0,89,90,89,90,7,74,75, + 76,77,78,79,80,81,82,83,84,85, + 0,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,72,46,47,48,49, + 50,51,52,53,54,55,56,57,58,100, + 60,0,62,63,64,65,93,67,86,87, + 0,112,0,98,74,75,76,77,78,79, + 80,81,82,83,84,85,0,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,70,46,47,48,49,50,51,52,53, + 54,55,56,57,58,0,60,0,62,63, + 64,65,0,67,0,3,86,87,86,87, + 74,75,76,77,78,79,80,81,82,83, + 84,85,0,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,72,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,0,60,0,62,63,64,65,5,67, + 86,87,0,0,97,2,74,75,76,77, + 78,79,80,81,82,83,84,85,0,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,0,46,47,48,49,50,51, + 52,53,54,55,56,57,58,0,60,0, + 62,63,64,65,0,67,95,96,86,87, + 0,0,74,75,76,77,78,79,80,81, + 82,83,84,85,0,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,58, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,0,60,0,62,63,64,65, + 0,67,0,8,9,3,99,7,74,75, + 76,77,78,79,80,81,82,83,84,85, + 0,1,2,3,4,5,6,7,8,9, + 0,11,12,119,0,42,116,117,118,46, + 47,48,49,50,51,52,53,54,55,56, + 0,1,2,3,4,5,6,7,0,1, + 0,1,42,43,0,1,46,47,48,49, + 50,51,52,53,54,55,56,0,1,59, + 3,61,5,0,7,2,66,0,68,69, + 70,71,72,0,1,2,3,4,68,6, + 40,41,72,45,40,41,86,87,88,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,114,0,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, + 0,46,47,48,49,50,51,52,53,54, + 55,56,57,0,0,1,0,62,4,64, + 65,0,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,0,44,66,46,47,48, + 49,50,51,52,53,54,55,56,57,66, + 0,68,66,62,68,64,65,0,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, + 66,44,68,46,47,48,49,50,51,52, + 53,54,55,56,57,0,1,0,3,62, + 0,64,65,0,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,0,44,0,46, + 47,48,49,50,51,52,53,54,55,56, + 57,0,1,66,3,62,66,64,65,0, + 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,0,44,68,46,47,48,49,50, + 51,52,53,54,55,56,57,0,0,2, + 2,62,0,64,65,0,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,66,44, + 0,46,47,48,49,50,51,52,53,54, + 55,56,57,0,0,1,69,62,0,64, + 65,0,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,0,44,2,46,47,48, + 49,50,51,52,53,54,55,56,57,61, + 0,68,0,62,71,64,65,0,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,42, + 0,0,2,46,47,48,49,50,51,52, + 53,54,55,56,57,0,0,2,0,62, + 2,64,65,5,72,7,8,9,0,11, + 12,0,1,0,1,2,3,6,5,42, + 7,43,0,46,47,48,49,50,51,52, + 53,54,55,56,0,1,2,3,4,59, + 6,43,61,0,0,0,1,0,3,119, + 5,0,7,45,59,0,0,59,2,61, + 0,1,0,1,66,3,68,69,70,71, + 72,0,59,2,0,0,5,43,7,8, + 9,59,11,12,86,87,88,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,114,69,43,59,61,72,0,1, + 58,3,66,5,68,7,0,1,72,3, + 59,5,61,7,0,61,61,66,93,68, + 69,70,71,72,100,98,102,103,104,105, + 106,107,108,109,110,111,112,86,87,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,113,114,0,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,0,43, + 44,0,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,0,43,44,0,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,0,43, + 44,0,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,0,1,44,0,0,1,2, + 3,4,99,6,0,1,58,0,1,2, + 3,4,5,6,7,0,1,2,3,4, + 5,6,7,72,0,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,59,70,44,0, + 1,2,3,4,59,6,69,0,1,0, + 0,1,2,3,4,0,6,0,1,2, + 3,4,0,6,2,10,72,0,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,59, + 61,44,0,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,0,1,44,0,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,45, + 0,44,0,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,0,1,0,3,4,0, + 6,2,0,1,2,3,4,57,6,0, + 1,0,3,2,5,0,7,2,66,0, + 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,59,66,44,0,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,0,1,44,0, + 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,45,0,44,0,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,0,1,44,0, + 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,45,0,44,0,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,0,1,44,0, + 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,0,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,0,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,1,0,0,1,2,3, + 4,0,6,0,1,0,3,4,0,6, + 0,58,0,1,0,10,4,3,6,0, + 0,0,2,0,71,0,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,70,2,63,4, + 5,0,7,8,9,61,11,12,0,1, + 2,3,4,58,6,0,1,68,3,4, + 25,6,0,1,0,3,71,0,88,0, + 3,93,3,0,94,40,41,13,14,15, + 16,17,18,19,20,21,22,23,47,48, + 97,43,0,0,59,3,61,0,0,0, + 45,66,3,68,69,0,42,45,0,1, + 46,47,48,49,50,51,52,53,54,55, + 56,86,87,88,89,90,91,92,0,0, + 95,96,97,98,99,100,101,102,103,104, + 105,106,107,108,109,110,111,0,0,2, + 0,4,5,45,7,8,9,0,11,12, + 0,1,0,3,4,0,6,0,1,0, + 42,4,25,68,46,47,48,49,50,51, + 52,53,54,55,56,88,88,40,41,0, + 42,94,94,43,46,47,48,49,50,51, + 52,53,54,55,56,45,59,0,61,0, + 1,0,45,66,0,68,69,88,68,0, + 58,0,1,94,59,0,1,70,59,0, + 0,69,43,86,87,88,89,90,91,92, + 0,0,95,96,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,0, + 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,70, + 59,71,0,0,93,2,66,0,0,0, + 2,4,3,0,0,2,2,58,0,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,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,0,0,1, + 0,4,2,0,0,2,0,0,2,2, + 0,0,2,2,0,1,0,59,0,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,0,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,1, + 0,0,0,2,0,1,0,0,2,93, + 0,1,0,1,0,0,0,0,0,115, + 0,24,0,0,24,0,24,0,0,0, + 0,113,0,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,0,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, + 0,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,0, + 1,0,3,0,0,2,0,0,1,10, + 0,0,13,14,15,16,17,18,19,20, + 21,22,23,0,1,2,3,4,5,6, + 7,0,0,0,0,0,1,0,3,0, + 0,42,0,39,0,46,47,48,49,50, + 51,52,53,54,55,56,57,0,1,0, + 3,62,59,64,65,58,43,10,45,68, + 13,14,15,16,17,18,19,20,21,22, + 23,46,45,60,0,1,2,3,4,5, + 6,7,0,70,71,61,73,0,0,42, + 66,0,1,46,47,48,49,50,51,52, + 53,54,55,56,57,0,1,0,74,62, + 5,64,65,0,0,91,92,43,69,45, + 0,1,2,3,4,5,6,7,0,116, + 117,118,0,45,60,0,45,0,1,0, + 0,120,10,0,70,71,59,73,0,10, + 45,69,0,1,2,3,4,5,6,7, + 0,0,42,43,0,45,0,1,2,3, + 4,5,6,7,61,0,69,45,0,0, + 60,61,45,63,45,0,58,67,0,57, + 116,117,118,73,42,43,57,45,0,1, + 2,3,4,5,6,7,0,0,42,43, + 70,45,60,70,0,63,68,0,0,67, + 0,0,61,71,46,73,60,66,0,63, + 70,0,0,67,59,71,0,71,0,73, + 42,43,0,45,0,1,2,3,4,5, + 6,7,91,92,69,0,68,0,60,0, + 43,63,0,0,0,67,0,61,61,71, + 0,73,0,66,0,0,0,1,2,3, + 4,5,6,7,70,0,42,43,70,45, + 0,1,2,3,4,5,6,7,91,92, + 69,0,70,2,60,69,0,63,66,0, + 72,67,11,12,0,71,61,73,42,43, + 58,45,0,1,2,3,4,5,6,7, + 58,72,42,43,0,45,60,0,68,63, + 0,75,0,67,69,0,0,71,0,73, + 60,0,43,63,69,0,0,67,0,0, + 59,0,0,73,42,43,0,45,0,1, + 2,3,4,5,6,7,0,0,115,115, + 0,0,60,69,0,63,0,0,0,67, + 0,0,58,0,0,73,0,0,58,0, + 0,0,101,0,0,0,0,0,0,0, + 42,43,0,45,0,114,0,0,0,0, + 0,0,0,0,0,0,0,0,60,0, + 0,63,0,0,0,67,0,0,0,0, + 0,73,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, + 5141,5119,5116,5116,5116,5116,5116,5116,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,5123,3057,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2766,127, + 1208,116,1,3048,1,1,5141,2890,113,3089, + 3003,5149,5141,3237,1218,3034,1722,2134,1680,2908, + 3411,2981,3040,2974,2922,2973,5141,5119,5116,5116, + 5116,5116,5116,5116,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,5123, + 3057,5141,1,1,1,1,1,1,1,1, + 1,1,1,1,2766,5141,1208,4748,1,3048, + 1,1,5141,2890,2503,2475,31,3214,3191,4949, + 1218,3034,1722,2134,1680,2908,3411,2981,3040,2974, + 2922,2973,5141,5119,5116,5116,5116,5116,5116,5116, + 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,5123,3057,500,1,1, + 1,1,1,1,1,1,1,1,1,1, + 2766,5141,1208,3032,1,3048,1,1,35,2890, + 5141,5175,5141,2176,5147,5467,1218,3034,1722,2134, + 1680,2908,3411,2981,3040,2974,2922,2973,5141,5119, + 5116,5116,5116,5116,5116,5116,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,5123,3057,2821,1,1,1,1,1,1, + 1,1,1,1,1,1,2766,5141,1208,118, + 1,3048,1,1,115,2890,114,3089,3003,3237, + 5141,3237,1218,3034,1722,2134,1680,2908,3411,2981, + 3040,2974,2922,2973,5141,5119,5116,5116,5116,5116, + 5116,5116,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,5123,3057,137, + 1,1,1,1,1,1,1,1,1,1, + 1,1,2766,1,1208,133,1,3048,1,1, + 129,2890,119,3214,3191,3214,3191,2353,1218,3034, + 1722,2134,1680,2908,3411,2981,3040,2974,2922,2973, + 5141,5119,5116,5116,5116,5116,5116,5116,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,5123,3057,358,1,1,1,1, + 1,1,1,1,1,1,1,1,2766,2189, + 1208,5141,1,3048,1,1,358,2890,782,2624, + 123,2222,122,2262,1218,3034,1722,2134,1680,2908, + 3411,2981,3040,2974,2922,2973,5141,5119,5116,5116, + 5116,5116,5116,5116,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,5123, + 3057,1815,1,1,1,1,1,1,1,1, + 1,1,1,1,2766,1,1208,131,1,3048, + 1,1,35,2890,121,5175,782,2624,782,2624, + 1218,3034,1722,2134,1680,2908,3411,2981,3040,2974, + 2922,2973,5141,5119,5116,5116,5116,5116,5116,5116, + 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,5123,3057,160,1,1, + 1,1,1,1,1,1,1,1,1,1, + 2766,128,1208,5141,1,3048,1,1,3037,2890, + 782,2624,120,89,2295,4946,1218,3034,1722,2134, + 1680,2908,3411,2981,3040,2974,2922,2973,5141,5119, + 5116,5116,5116,5116,5116,5116,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,5123,3057,5141,1,1,1,1,1,1, + 1,1,1,1,1,1,2766,135,1208,5141, + 1,3048,1,1,5141,2890,2503,2475,782,2624, + 5141,5141,1218,3034,1722,2134,1680,2908,3411,2981, + 3040,2974,2922,2973,5141,2957,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,1,1,1,1,1,5150,3057,2336, + 1,1,1,1,1,1,1,1,1,1, + 1,1,2766,217,1208,117,1,3048,1,1, + 130,2890,5141,3089,3003,901,2227,2353,1218,3034, + 1722,2134,1680,2908,3411,2981,3040,2974,2922,2973, + 5141,5008,5008,5008,5008,5008,5008,5008,5008,5008, + 5141,5008,5008,4918,5141,5390,5565,5566,5567,5393, + 5474,5475,5387,5394,5367,5392,5391,5388,5389,5368, + 5141,4919,2341,1857,2181,2176,2647,5467,5141,9182, + 5141,1561,5008,5008,5141,5017,5008,5008,5008,5008, + 5008,5008,5008,5008,5008,5008,5008,431,1,5008, + 1,5012,4934,230,4934,5020,5008,5141,5008,5008, + 5008,5008,5008,1,4998,2341,5002,2181,4777,2647, + 4111,810,5148,5173,4111,810,5008,5008,5008,5008, + 5008,5008,5008,5008,5008,5008,5008,5008,5008,5008, + 5008,5008,5008,5008,5008,5008,5008,5008,5008,5008, + 5008,5008,5008,5008,5008,5141,5116,5116,5116,5116, + 5116,5116,5116,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,5132,5296, + 5141,1,1,1,1,1,1,1,1,1, + 1,1,1,23,5141,1640,5141,1,3315,1, + 1,5141,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,1,1, + 1,1,1,1,5141,5296,1907,1,1,1, + 1,1,1,1,1,1,1,1,1,5035, + 5141,5035,3285,1,3362,1,1,5141,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,1,1,1,1,1,1, + 3282,5296,3362,1,1,1,1,1,1,1, + 1,1,1,1,1,5141,5110,5141,5175,1, + 5141,1,1,5141,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, + 1,1,1,1,1,1,156,5296,5141,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5141,5110,1914,5175,1,1933,1,1,5141, + 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,1,1,1,1, + 1,1,5141,5296,1270,1,1,1,1,1, + 1,1,1,1,1,1,1,311,1,2451, + 4535,1,5141,1,1,5141,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,1,1,1,1,1,1,1941,5296, + 5141,1,1,1,1,1,1,1,1,1, + 1,1,1,5141,5141,1561,1185,1,5141,1, + 1,5141,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,1,1, + 1,1,1,1,5141,5296,2389,1,1,1, + 1,1,1,1,1,1,1,1,1,3517, + 155,941,5141,1,5149,1,1,35,4937,4715, + 1857,622,4023,2647,4045,4001,3979,602,4089,4067, + 5399,5397,5406,5405,5401,5402,5400,5403,5404,5407, + 5398,5157,3957,762,984,5159,764,3063,938,5160, + 5158,608,5153,5155,5156,5154,1227,218,5141,5390, + 1,5141,3280,5393,5474,5475,5387,5394,5367,5392, + 5391,5388,5389,5368,5532,343,5141,2949,381,559, + 4953,5533,5534,4953,5148,4953,4953,4953,33,4953, + 4953,34,4928,341,35,3280,5175,759,2176,5390, + 5467,5150,445,5393,5474,5475,5387,5394,5367,5392, + 5391,5388,5389,5368,1,4998,5089,5002,5083,1775, + 5086,4953,3567,5141,137,1,5047,134,5044,525, + 2176,5141,5467,5173,1775,5141,1,4953,3280,4953, + 5141,5017,5141,9267,4953,5175,4953,4953,4953,4953, + 4953,380,1775,4956,5141,441,4956,5150,4956,4956, + 4956,4940,4956,4956,4953,4953,4953,4953,4953,4953, + 4953,4953,4953,4953,4953,4953,4953,4953,4953,4953, + 4953,4953,4953,4953,4953,4953,4953,4953,4953,4953, + 4953,4953,4953,1733,4956,1775,4335,358,432,35, + 2820,5175,337,5041,337,5038,90,1,337,1, + 4956,5053,4956,5053,5141,769,4922,4956,358,4956, + 4956,4956,4956,4956,2189,2262,1691,1649,1607,1565, + 1523,1481,1439,1397,1355,1313,2222,4956,4956,4956, + 4956,4956,4956,4956,4956,4956,4956,4956,4956,4956, + 4956,4956,4956,4956,4956,4956,4956,4956,4956,4956, + 4956,4956,4956,4956,4956,4956,5141,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,1,1,1,1,1,5141,5150, + 5296,5141,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,1,1, + 1,1,1,136,162,5296,5141,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,1,1,1,1,1,5141,162, + 5296,5141,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,1,1, + 1,1,1,5141,1073,5296,5141,1,4998,2341, + 5002,2181,2227,2647,46,5017,3029,362,4998,2655, + 5002,2181,1,2647,1,341,4919,2655,1857,2181, + 2176,2647,5467,162,5141,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,1,1,1,1,1,1775,2003,5296,1, + 4998,5089,5002,5083,1775,5086,1045,5141,5641,31, + 1,4998,2655,5002,2181,302,2647,1,4998,2341, + 5002,2181,5141,2647,3588,5442,162,5141,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,1,1,1,1,1,1775, + 4925,565,5141,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,1, + 1,1,1,1,41,5026,5296,5141,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,1,1,1,1,1,5023, + 5141,5296,1,4998,4715,5002,622,4023,2647,4045, + 4001,3979,4962,4089,4067,4989,4995,4968,4971,4983, + 4980,4986,4977,4974,4965,4992,5157,3957,762,984, + 5159,764,3063,938,5160,5158,608,5153,5155,5156, + 5154,1227,35,35,5141,4919,5141,1857,2181,5141, + 2647,4356,1,4998,2655,5002,2181,2385,2647,93, + 35,5141,5175,4616,5098,5141,5095,3533,504,5141, + 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,1,1,1,1, + 1,1775,5640,5296,5141,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,1,1,1,1,1,33,5050,5296,5141, + 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,1,1,1,1, + 1,2395,5141,5296,5141,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,1,1,1,1,1,5141,5064,5296,5141, + 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,1,1,1,1, + 1,5173,5141,5296,5141,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,1,1,1,1,1,5141,5172,5296,139, + 4919,4715,1857,622,4023,2647,4045,4001,3979,549, + 4089,4067,5399,5397,5406,5405,5401,5402,5400,5403, + 5404,5407,5398,5157,3957,762,984,5159,764,3063, + 938,5160,5158,608,5153,5155,5156,5154,1227,35, + 35,1,4998,4715,5002,622,4023,2647,4045,4001, + 3979,4962,4089,4067,4989,4995,4968,4971,4983,4980, + 4986,4977,4974,4965,4992,5157,3957,762,984,5159, + 764,3063,938,5160,5158,608,5153,5155,5156,5154, + 1227,35,35,35,4919,4715,1857,622,4023,2647, + 4045,4001,3979,549,4089,4067,5399,5397,5406,5405, + 5401,5402,5400,5403,5404,5407,5398,5157,3957,762, + 984,5159,764,3063,938,5160,5158,608,5153,5155, + 5156,5154,1227,5141,1640,5141,1,4998,2341,5002, + 2181,5141,2647,5141,4919,302,1857,2181,353,2647, + 109,3709,5141,1073,46,5442,2181,1561,2647,503, + 5141,5141,3816,132,5149,35,4919,4715,1857,622, + 4023,2647,4045,4001,3979,549,4089,4067,5399,5397, + 5406,5405,5401,5402,5400,5403,5404,5407,5398,5157, + 3957,762,984,5159,764,3063,938,5160,5158,608, + 5153,5155,5156,5154,1227,1,2003,626,1250,5597, + 5591,332,5595,5589,5590,1561,5620,5621,1,4998, + 2341,5002,2181,3709,2647,5141,4919,812,1857,4959, + 5598,2647,390,5005,216,5175,5149,1,4133,389, + 381,5493,380,5141,4155,1520,1527,5399,5397,5406, + 5405,5401,5402,5400,5403,5404,5407,5398,5474,5475, + 2295,310,5141,5141,780,2589,5600,112,111,5141, + 655,5601,2526,5622,5599,357,5390,35,5141,5067, + 5393,5474,5475,5387,5394,5367,5392,5391,5388,5389, + 5368,5611,5610,5623,5592,5593,5616,5617,219,110, + 5614,5615,5594,5596,5618,5619,5624,5604,5605,5606, + 5602,5603,5612,5613,5608,5607,5609,5141,220,626, + 5141,5597,5591,5173,5595,5589,5590,417,5620,5621, + 5141,4919,5141,1857,4959,444,2647,33,5050,344, + 5390,5050,5598,3443,5393,5474,5475,5387,5394,5367, + 5392,5391,5388,5389,5368,4133,4133,1520,1527,398, + 5390,4155,4155,5150,5393,5474,5475,5387,5394,5367, + 5392,5391,5388,5389,5368,1129,780,5141,5600,284, + 5428,1,2450,5601,5141,5622,5599,4133,4318,5141, + 5129,32,5071,4155,4943,5141,5428,2794,1775,5141, + 5141,1514,5080,5611,5610,5623,5592,5593,5616,5617, + 5141,98,5614,5615,5594,5596,5618,5619,5624,5604, + 5605,5606,5602,5603,5612,5613,5608,5607,5609,35, + 4919,4715,1857,622,4023,2647,4045,4001,3979,549, + 4089,4067,5399,5397,5406,5405,5401,5402,5400,5403, + 5404,5407,5398,5157,3957,762,984,5159,764,3063, + 938,5160,5158,608,5153,5155,5156,5154,1227,5535, + 4667,5149,5141,101,5495,4372,5583,5141,5141,5141, + 3155,4449,2677,274,5141,5101,4700,3709,35,4919, + 4715,1857,622,4023,2647,4045,4001,3979,549,4089, + 4067,5399,5397,5406,5405,5401,5402,5400,5403,5404, + 5407,5398,5157,3957,762,984,5159,764,3063,938, + 5160,5158,608,5153,5155,5156,5154,1227,35,4919, + 4715,1857,622,4023,2647,4045,4001,3979,549,4089, + 4067,5399,5397,5406,5405,5401,5402,5400,5403,5404, + 5407,5398,5157,3957,762,984,5159,764,3063,938, + 5160,5158,608,5153,5155,5156,5154,5141,390,5172, + 5141,4497,3309,5141,5141,3088,5141,5141,4757,4760, + 5141,5141,4712,4769,5141,1814,1,1346,35,4919, + 4715,1857,622,4023,2647,4045,4001,3979,549,4089, + 4067,5399,5397,5406,5405,5401,5402,5400,5403,5404, + 5407,5398,5157,3957,762,984,5159,764,3063,938, + 5160,5158,608,5153,5155,5156,5154,35,4919,4715, + 1857,622,4023,2647,4045,4001,3979,549,4089,4067, + 5399,5397,5406,5405,5401,5402,5400,5403,5404,5407, + 5398,5157,3957,762,984,5159,764,3063,938,5160, + 5158,608,5153,5155,5156,5154,1227,5141,5141,3241, + 5141,5141,1,3734,5141,8251,5141,5141,4811,3675, + 5141,8251,5141,3384,5141,5141,5141,5141,5141,3170, + 5141,3518,5141,5141,3292,5141,2858,5141,5141,5141, + 5141,5147,35,4919,4751,1857,622,4023,2647,4045, + 4001,3979,549,4089,4067,5399,5397,5406,5405,5401, + 5402,5400,5403,5404,5407,5398,5157,3957,762,984, + 5159,764,3063,938,5160,5158,608,5153,5155,5156, + 5154,35,4919,4715,1857,622,4023,2647,4045,4001, + 3979,549,4089,4067,5399,5397,5406,5405,5401,5402, + 5400,5403,5404,5407,5398,5157,3957,762,984,5159, + 764,3063,938,5160,5158,608,5153,5155,5156,5154, + 35,4919,4715,1857,622,4023,2647,4045,4001,3979, + 549,4089,4067,5399,5397,5406,5405,5401,5402,5400, + 5403,5404,5407,5398,5157,3957,762,984,5159,764, + 3063,938,5160,5158,608,5153,5155,5156,5154,5141, + 4937,283,5175,315,521,5092,5141,5141,3157,573, + 5141,5141,5399,5397,5406,5405,5401,5402,5400,5403, + 5404,5407,5398,1,5060,222,5056,222,222,222, + 222,184,5141,5141,124,423,35,45,5175,5141, + 5141,5390,5141,2781,1,5393,5474,5475,5387,5394, + 5367,5392,5391,5388,5389,5368,5532,5141,4937,285, + 5175,559,1775,5533,5534,3569,222,573,488,2333, + 5399,5397,5406,5405,5401,5402,5400,5403,5404,5407, + 5398,5563,2185,940,1,5060,222,5056,222,222, + 222,222,365,222,406,2585,5628,317,5141,5390, + 4931,43,5077,5393,5474,5475,5387,5394,5367,5392, + 5391,5388,5389,5368,5532,33,5050,363,3326,559, + 3037,5533,5534,5141,5141,2531,579,222,1910,488, + 1,5116,222,5116,222,222,222,222,5141,5565, + 5566,5567,1,2562,940,5141,5074,33,5050,1, + 26,5138,5104,5141,222,405,1775,5628,415,5104, + 5173,1087,1,5116,222,5116,222,222,222,222, + 435,126,8769,222,1,5113,1,5116,222,5116, + 222,222,222,222,3277,97,1143,2727,423,5141, + 1208,3062,5173,728,2727,409,2766,2890,436,5107, + 5565,5566,5567,5628,8769,222,5107,5113,1,5116, + 222,5116,222,222,222,222,5141,125,8769,222, + 413,5113,1208,2041,5141,728,2896,174,5141,2890, + 5141,5141,2585,214,5563,5628,1208,5029,5141,728, + 3143,495,5141,2890,1948,5149,493,214,1,5628, + 8769,222,5141,5113,1,5116,222,5116,222,222, + 222,222,2531,579,2096,5,3273,5141,1208,1, + 5126,728,1,370,510,2890,5141,3409,2585,213, + 309,5628,5141,5032,5141,5141,1,5116,222,5116, + 222,222,222,222,5318,5141,8769,222,3452,5113, + 1,5116,222,5116,222,222,222,222,2531,579, + 4655,72,5317,3286,1208,4768,5141,728,3547,5141, + 5148,2890,5202,5203,497,214,33,5628,8769,222, + 3603,5113,1,5116,222,5116,222,222,222,222, + 3604,517,8769,222,5141,5113,1208,5141,4342,728, + 35,3356,5141,2890,1514,5141,5141,214,5141,5628, + 1208,5141,5135,728,1868,5141,5141,2890,5141,5141, + 2091,5141,5141,5628,8769,222,5141,5113,1,5116, + 222,5116,222,222,222,222,5141,5141,3170,3170, + 5141,5141,1208,910,5141,728,5141,5141,5141,2890, + 5141,5141,3624,5141,5141,5628,5141,5141,2072,5141, + 5141,5141,1986,5141,5141,5141,5141,5141,5141,5141, + 8769,222,5141,5113,5141,2079,5141,5141,5141,5141, + 5141,5141,5141,5141,5141,5141,5141,5141,1208,5141, + 5141,728,5141,5141,5141,2890,5141,5141,5141,5141, + 5141,5628 + }; + }; + 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, + 1007,6,666,227,5,8,713,188,188,188, + 188,70,713,188,407,622,541,1044,210,1046, + 228,228,228,228,228,228,228,228,228,622, + 628,633,630,637,635,642,640,644,643,645, + 126,646,227,210,42,42,42,42,174,133, + 14,620,42,12,391,622,622,14,437,391, + 391,383,211,964,41,872,71,185,210,606, + 606,780,780,133,1007,228,228,228,228,228, + 228,228,228,228,228,228,228,228,228,228, + 228,228,228,228,227,227,227,227,227,227, + 227,227,227,227,227,1007,228,391,391,476, + 476,476,476,118,391,14,959,595,606,531, + 606,527,606,1,606,42,606,70,174,12, + 12,14,228,959,303,480,400,399,269,70, + 1046,12,41,227,265,871,391,264,174,266, + 264,391,12,630,630,628,628,628,635,635, + 635,635,633,633,640,637,637,643,642,644, + 723,645,713,713,713,713,174,174,476,548, + 475,620,174,616,76,174,530,118,529,529, + 531,668,174,174,174,118,476,383,12,660, + 391,482,484,174,872,228,42,626,349,391, + 71,174,174,266,872,227,1007,1007,1007,1007, + 713,713,211,962,616,76,530,530,530,118, + 530,668,668,174,118,174,391,797,393,796, + 484,118,265,391,626,959,871,174,71,265, + 391,391,391,391,133,133,616,533,347,174, + 76,723,119,170,715,76,530,530,588,174, + 668,347,345,346,174,725,227,794,794,176, + 176,174,478,959,802,391,174,627,627,626, + 1007,349,267,71,391,391,616,872,188,264, + 716,734,713,261,517,591,174,347,228,174, + 725,227,227,484,174,872,391,482,393,725, + 280,133,228,12,174,267,265,89,265,665, + 959,520,228,723,181,530,530,588,69,174, + 793,484,174,725,391,12,174,666,89,265, + 716,261,228,228,530,531,70,70,793,391, + 871,793,475,188,121,121,666,531,192,517, + 174,713,174,713,786,793,89,878,89,474, + 474,800,193,70,174,133,174,485,786,343, + 743,706,713,2,913,89,42,42,800,192, + 723,228,723,666,713,713,713,193,713,174, + 671,666,666,706,174,531,191,391,390,788, + 834,476,706,343,877,531,531,738,70,475, + 73,713,723,193,210,210,209,741,210,666, + 666,586,800,42,788,878,877,878,666,180, + 665,391,877,877,877,70,174,515,802,391, + 261,391,671,666,713,391,800,877,227,921, + 261,666,347,877,877,877,174,174,121,391, + 391,293,193,586,193,666,671,1007,193,190, + 347,391,920,347,347,174,666,666,474,531, + 531,997,227,191,1006,666,391,920,666,264, + 193,391,1006,666,346,193,391,920,193 + }; + }; + 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, + 3,1,58,0,43,119,0,70,72,43, + 68,113,0,26,40,27,28,41,6,29, + 30,31,32,39,33,34,35,36,37,24, + 11,12,7,5,8,9,4,25,66,38, + 2,49,13,14,57,47,15,62,50,42, + 16,51,52,17,18,53,54,19,20,55, + 64,56,10,65,21,22,48,23,46,1, + 3,0,67,63,115,73,6,116,117,118, + 60,2,7,5,4,70,71,43,49,13, + 14,57,47,15,62,50,42,16,51,52, + 17,18,53,54,19,20,55,64,56,10, + 65,21,46,22,48,23,3,1,45,0, + 66,69,68,1,0,66,70,93,68,113, + 71,43,72,13,14,26,40,15,27,28, + 16,17,18,41,29,19,20,30,31,32, + 39,33,34,21,22,23,35,36,37,24, + 2,11,12,7,5,8,9,25,38,6, + 4,3,10,1,0,66,93,72,59,2, + 68,43,69,0,58,70,3,61,0,115, + 120,71,74,60,63,67,76,78,84,82, + 75,80,81,83,85,58,77,79,43,44, + 62,57,64,65,49,54,55,42,53,52, + 46,50,47,48,51,56,39,40,41,10, + 27,31,29,26,34,14,23,13,19,17, + 18,20,21,16,15,22,35,38,36,37, + 24,33,28,32,11,12,8,9,25,30, + 7,5,2,3,6,1,4,0,13,14, + 15,16,17,18,19,20,21,22,23,49, + 47,50,42,51,52,53,54,55,56,46, + 48,43,72,6,1,59,2,7,5,4, + 3,0,40,41,113,2,10,27,31,29, + 26,34,14,23,13,19,17,18,20,21, + 16,15,22,35,38,36,37,33,28,32, + 4,6,3,11,12,7,5,8,9,25, + 30,1,24,0,69,68,71,0,94,88, + 8,9,89,90,86,87,61,91,92,95, + 96,97,98,99,100,112,70,93,69,102, + 103,104,105,106,107,108,109,110,111,113, + 71,43,66,1,7,5,3,2,59,68, + 72,0,7,5,6,4,3,1,2,66, + 93,69,68,72,59,0,49,13,14,57, + 47,15,62,50,42,16,51,52,17,18, + 53,54,19,20,55,64,56,10,65,21, + 46,22,48,23,1,3,41,40,8,9, + 5,89,90,97,7,98,4,25,61,105, + 106,102,103,104,110,109,111,87,86,107, + 108,95,96,91,92,99,100,11,12,88, + 101,2,59,69,68,66,0,4,6,2, + 59,5,7,93,49,13,14,47,15,62, + 50,42,16,51,52,17,18,53,54,19, + 20,55,64,56,10,65,21,46,22,48, + 23,1,3,72,57,0,58,68,0,70, + 59,2,69,68,43,0,45,1,3,70, + 58,0,6,39,74,1,4,3,47,48, + 58,70,93,113,72,71,43,59,2,114, + 94,101,88,11,12,7,5,8,9,89, + 90,86,87,61,91,92,95,96,97,98, + 99,100,112,102,103,104,105,106,107,108, + 109,110,111,66,68,69,0,1,46,3, + 116,117,118,0,14,23,13,19,17,18, + 20,21,16,15,22,46,56,55,54,53, + 52,51,42,50,49,47,6,48,4,1, + 3,114,101,11,12,59,2,94,88,5, + 89,90,8,9,87,86,61,91,92,95, + 96,7,97,98,99,66,93,72,69,102, + 103,104,105,106,107,108,109,110,111,70, + 113,71,100,112,68,43,0,1,71,0, + 13,14,26,40,15,27,28,16,17,18, + 41,29,19,20,30,31,32,39,33,34, + 10,21,22,23,35,36,37,24,11,12, + 8,9,25,38,44,7,5,43,4,1, + 6,3,2,0,43,7,5,4,6,2, + 1,3,70,0,47,39,48,66,93,69, + 68,72,0,58,70,74,0,69,58,0, + 75,0,14,57,47,15,62,50,16,51, + 52,17,18,53,54,19,20,55,64,56, + 10,65,21,46,22,48,23,13,49,2, + 7,5,43,60,63,67,73,42,61,6, + 3,45,4,1,0,47,48,74,2,58, + 70,43,39,66,69,68,72,93,0,115, + 0,49,13,14,57,47,15,62,50,42, + 16,51,52,17,18,53,54,19,20,55, + 64,56,10,65,21,46,22,48,23,1, + 3,93,0,67,49,13,14,57,47,15, + 62,50,73,42,16,51,52,17,18,53, + 63,54,19,20,55,64,56,10,65,21, + 60,46,22,48,23,2,7,3,43,58, + 5,6,1,4,45,0,71,14,57,47, + 15,62,50,16,51,52,17,18,53,54, + 19,20,55,64,56,65,21,46,22,48, + 23,13,49,2,7,5,43,60,67,73, + 42,45,6,1,4,3,10,63,0,71, + 40,41,39,11,12,8,9,4,25,30, + 2,6,35,38,36,37,24,33,28,32, + 14,23,13,19,17,18,20,21,16,15, + 22,10,27,31,29,26,34,58,1,7, + 3,5,0,40,41,11,12,8,9,25, + 30,35,38,36,37,24,33,28,32,14, + 23,13,19,17,18,20,21,16,15,22, + 10,27,31,29,26,34,7,5,2,59, + 4,6,1,3,0,72,13,14,26,15, + 27,28,16,17,18,29,19,20,30,31, + 32,39,33,34,10,21,22,23,35,36, + 37,24,2,11,12,7,5,8,9,25, + 3,38,44,4,6,1,41,40,0 + }; + }; + public final static byte asr[] = Asr.asr; + public final int asr(int index) { return asr[index]; } + + public interface Nasb { + public final static char nasb[] = {0, + 88,12,170,15,12,12,12,12,12,12, + 12,103,12,12,132,12,12,8,250,160, + 15,15,6,15,15,15,15,15,15,12, + 12,12,12,12,12,12,12,12,12,12, + 15,12,15,250,255,255,255,255,160,174, + 130,50,95,77,210,12,12,130,134,210, + 210,147,1,15,26,42,12,12,250,12, + 12,83,83,174,116,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,116,15,210,210,12, + 12,12,12,70,210,13,55,224,225,12, + 225,136,225,103,225,217,12,103,160,77, + 77,13,15,55,73,147,62,62,12,103, + 160,77,255,110,198,36,210,197,92,160, + 197,210,77,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,10,232,12,12, + 12,107,160,130,130,9,130,241,130,12, + 12,130,241,160,23,12,12,105,77,12, + 210,212,130,160,42,15,255,130,119,210, + 12,242,160,23,42,15,116,116,116,116, + 12,12,13,12,46,234,130,130,81,41, + 81,130,172,232,41,10,210,12,124,12, + 214,40,10,210,60,107,36,23,12,10, + 210,210,210,210,174,174,130,46,32,160, + 170,12,12,48,182,234,81,81,154,10, + 172,32,12,12,10,130,15,12,12,62, + 62,160,124,55,214,210,10,34,34,12, + 116,107,12,12,210,210,46,42,12,103, + 227,130,12,126,12,239,241,32,15,172, + 46,15,15,130,23,42,210,212,193,130, + 12,174,15,77,23,12,198,130,241,170, + 55,12,15,12,53,130,44,164,166,92, + 130,214,160,46,210,77,23,170,214,198, + 227,195,15,15,44,158,189,103,79,210, + 42,130,12,12,66,66,170,158,151,12, + 241,12,241,12,130,79,214,203,130,12, + 12,130,177,189,92,174,92,208,46,12, + 203,183,12,20,48,214,255,255,201,113, + 12,15,12,170,12,12,12,114,12,12, + 168,170,170,130,12,64,12,210,210,130, + 130,12,126,12,130,12,12,12,103,12, + 58,12,12,114,254,254,245,12,254,170, + 170,12,130,255,79,203,130,203,170,68, + 12,210,142,130,130,103,241,12,255,210, + 126,210,247,170,12,210,201,142,110,15, + 126,170,32,203,142,142,241,122,66,210, + 210,130,114,12,114,170,247,116,114,58, + 32,210,130,32,32,122,170,12,12,64, + 64,124,15,12,247,170,210,28,170,197, + 114,210,247,170,32,114,210,28,114 + }; + }; + public final static char nasb[] = Nasb.nasb; + public final int nasb(int index) { return nasb[index]; } + + public interface Nasr { + public final static char nasr[] = {0, + 148,146,122,145,144,5,12,7,1,3, + 2,0,48,4,5,7,3,12,0,1, + 42,0,3,80,0,170,0,12,3,7, + 5,62,0,139,0,63,137,136,0,135, + 1,63,0,153,0,57,0,151,0,4, + 188,0,185,0,5,103,0,116,0,175, + 0,69,0,56,0,113,0,179,0,135, + 63,0,12,3,7,5,79,0,125,0, + 114,0,5,3,7,138,0,4,38,169, + 0,3,31,0,3,148,147,146,122,145, + 144,143,5,0,100,99,5,64,0,4, + 28,0,62,46,71,4,38,0,4,174, + 0,43,0,100,99,68,5,3,7,4, + 0,4,48,166,0,1,2,3,5,47, + 0,108,4,46,70,0,99,100,4,0, + 4,62,0,5,130,186,0,154,0,3, + 45,47,0,5,160,130,0,4,38,39, + 0,124,0,4,102,0,4,46,38,176, + 0,39,5,7,3,4,60,0,164,5, + 163,0,100,99,68,64,5,7,3,0, + 155,0,4,46,70,82,0,48,4,33, + 0,5,103,23,4,0,3,5,122,118, + 119,120,121,12,93,0,68,5,3,7, + 4,1,0,4,46,70,65,5,129,0, + 58,3,45,0,46,50,4,106,0,4, + 48,38,0,117,4,48,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, + 115,2,32,14,11,81,10,12,13,102, + 8,9,50,54,62,70,76,77,88,89, + 104,107,109,114,15,57,63,69,86,90, + 92,96,99,101,111,112,113,46,97,60, + 80,68,122,123,95,106,56,108,49,66, + 72,75,78,85,91,100,55,3,1,105, + 20,65,79,93,103,21,48,45,34,31, + 121,120,67,98,110,51,52,58,59,61, + 71,73,74,87,94,18,19,7,16,17, + 22,23,33,5,24,25,26,27,28,29, + 6,35,36,37,38,39,40,41,42,43, + 44,30,119,4,53,82,83,84,124,64, + 116,117,118 + }; + }; + 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, + 135,137,238,0,0,136,234,134,0,133, + 0,145,0,132,0,0,144,149,0,0, + 150,159,180,160,161,162,163,152,164,165, + 138,166,127,167,168,169,0,131,129,170, + 0,197,143,0,140,0,139,153,0,177, + 0,0,0,0,147,173,187,0,203,204, + 0,128,0,156,179,0,201,205,206,0, + 172,0,0,0,0,0,0,0,126,148, + 176,178,0,0,0,0,0,0,0,0, + 0,0,186,0,0,212,158,208,209,210, + 0,0,202,0,0,0,207,130,0,0, + 0,211,0,0,0,241,175,189,190,191, + 192,193,195,196,0,214,217,219,220,0, + 237,0,240,0,0,141,142,146,0,155, + 0,171,181,182,183,184,185,188,0,194, + 0,199,0,215,216,0,221,224,226,228, + 0,231,232,233,0,235,236,239,125,0, + 151,0,0,154,157,174,0,198,200,213, + 218,0,222,223,225,227,229,230,242,243, + 0,0,0,0,0,0,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[] = { + 138,580,599,359,531,547,558,569,339,71, + 244,258,280,286,292,42,269,384,422,474, + 146,588,367,20,51,77,114,174,275,298, + 309,320,250,264,27,499,349,320,607,27, + 196,223,1,14,61,93,128,303,316,325, + 332,440,467,492,523,527,617,621,625,84, + 7,84,128,402,418,431,451,514,431,483, + 538,554,565,576,186,373,56,56,135,201, + 204,56,218,239,204,56,336,446,464,471, + 135,640,97,211,406,458,56,103,103,211, + 56,393,211,156,91,444,629,636,629,636, + 65,412,121,91,91,228 + }; + }; + public final static char scopePrefix[] = ScopePrefix.scopePrefix; + public final int scopePrefix(int index) { return scopePrefix[index]; } + + public interface ScopeSuffix { + public final static char scopeSuffix[] = { + 18,5,5,346,5,5,5,5,346,59, + 119,82,119,119,119,48,255,390,428,480, + 152,67,354,25,25,82,119,179,119,119, + 314,314,255,88,38,504,354,594,612,32, + 190,190,5,18,5,82,119,307,307,307, + 82,119,221,5,5,5,5,5,221,638, + 11,88,132,346,346,346,455,504,435,487, + 542,542,542,542,190,377,59,59,5,5, + 207,209,221,5,242,209,82,449,5,221, + 5,5,100,329,409,461,496,106,110,214, + 518,396,508,159,82,82,631,631,633,633, + 67,414,123,181,166,230 + }; + }; + public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; + public final int scopeSuffix(int index) { return scopeSuffix[index]; } + + public interface ScopeLhs { + public final static char scopeLhs[] = { + 65,17,17,75,17,17,17,17,75,160, + 85,49,92,91,120,66,53,75,74,19, + 65,17,75,2,6,157,118,65,90,120, + 119,121,54,49,132,138,75,17,17,132, + 101,60,134,78,163,157,127,119,119,121, + 50,56,175,18,17,17,17,17,17,11, + 116,157,127,75,74,74,37,138,74,19, + 17,17,17,17,101,75,164,160,179,99, + 107,61,69,59,81,121,76,72,141,175, + 173,16,157,121,117,21,138,128,128,64, + 138,75,138,65,157,73,136,47,136,47, + 163,117,118,65,65,60 + }; + }; + public final static char scopeLhs[] = ScopeLhs.scopeLhs; + public final int scopeLhs(int index) { return scopeLhs[index]; } + + public interface ScopeLa { + public final static byte scopeLa[] = { + 115,72,72,72,72,72,72,72,72,1, + 71,43,71,71,71,66,1,72,120,72, + 58,2,43,66,66,43,71,58,71,71, + 1,1,1,1,66,3,43,1,1,66, + 72,72,72,115,72,43,71,1,1,1, + 43,71,113,72,72,72,72,72,113,1, + 72,1,68,72,72,72,70,3,72,2, + 66,66,66,66,72,43,1,1,72,72, + 2,1,113,72,1,1,43,70,72,113, + 72,72,1,45,69,72,4,1,1,5, + 1,75,45,74,43,43,3,3,3,3, + 2,1,58,1,1,2 + }; + }; + public final static byte scopeLa[] = ScopeLa.scopeLa; + public final int scopeLa(int index) { return scopeLa[index]; } + + public interface ScopeStateSet { + public final static char scopeStateSet[] = { + 82,239,239,105,239,239,239,239,105,63, + 23,94,23,23,149,82,96,105,105,239, + 82,239,105,175,217,91,149,82,23,149, + 149,149,96,94,56,132,105,239,239,56, + 141,68,33,105,37,91,301,149,149,149, + 12,40,66,239,239,239,239,239,239,221, + 7,91,301,105,105,105,271,132,105,239, + 239,239,239,239,141,105,37,63,1,141, + 143,68,137,68,72,149,105,105,60,66, + 135,239,91,149,3,240,132,149,149,119, + 132,105,132,82,91,105,116,153,116,153, + 37,3,149,82,82,68 + }; + }; + public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; + public final int scopeStateSet(int index) { return scopeStateSet[index]; } + + public interface ScopeRhs { + public final static char scopeRhs[] = {0, + 313,2,39,0,127,0,312,2,115,0, + 127,173,0,127,179,74,0,216,0,288, + 127,61,126,0,21,0,290,127,61,45, + 0,21,55,0,34,132,0,21,55,0, + 0,290,127,61,45,193,0,21,178,0, + 288,127,61,130,0,181,128,0,138,0, + 225,2,287,0,287,0,2,0,127,0, + 181,128,253,252,253,0,131,186,170,128, + 0,129,0,186,170,128,0,134,129,0, + 169,0,306,127,169,0,127,169,0,222, + 129,0,170,245,0,137,0,0,0,135, + 0,0,0,305,127,58,251,0,128,0, + 251,0,3,0,0,128,0,304,127,58, + 0,45,128,0,151,2,0,127,277,276, + 127,74,183,169,0,276,127,74,183,169, + 0,215,0,216,0,183,169,0,98,0, + 0,215,0,216,0,204,98,0,0,215, + 0,216,0,276,127,183,169,0,215,0, + 204,0,0,215,0,233,127,2,0,127, + 0,0,0,0,0,233,127,2,222,0, + 230,2,0,226,127,0,208,0,148,0, + 170,128,0,11,0,0,0,220,59,0, + 126,0,233,127,2,182,0,182,0,2, + 0,0,127,0,0,0,0,0,204,2, + 0,201,0,232,127,58,24,42,0,181, + 128,63,60,0,143,129,0,131,181,128, + 274,60,0,181,128,274,60,0,181,128, + 69,1,63,0,232,127,58,63,0,232, + 127,58,165,63,0,232,127,58,124,63, + 0,272,127,58,1,62,0,272,127,58, + 62,0,181,128,62,0,135,0,186,181, + 128,245,0,137,0,181,128,245,0,186, + 170,128,10,0,170,128,10,0,95,137, + 0,300,127,169,0,161,84,0,229,162, + 229,173,2,81,0,127,172,0,229,173, + 2,81,0,129,0,127,172,0,229,162, + 229,162,229,2,81,0,229,162,229,2, + 81,0,229,2,81,0,129,0,129,0, + 127,172,0,161,2,75,194,80,0,127, + 129,0,194,80,0,110,2,131,127,129, + 0,240,2,75,0,204,171,0,34,170, + 0,171,0,176,34,170,0,240,2,85, + 0,194,156,240,2,83,0,64,172,0, + 240,2,83,0,127,172,64,172,0,299, + 127,58,0,161,0,220,77,0,31,0, + 161,112,159,0,31,170,0,178,2,0, + 127,150,0,225,2,0,220,59,298,0, + 161,59,0,178,2,293,41,128,0,127, + 0,0,293,41,128,0,2,147,127,0, + 0,178,2,30,0,14,148,0,125,45, + 170,128,0,32,14,148,0,95,137,32, + 14,148,0,203,181,128,0,148,32,14, + 148,0,178,2,34,0,161,2,34,0, + 161,2,66,178,61,26,0,178,61,26, + 0,21,2,131,127,0,161,2,66,178, + 61,29,0,178,61,29,0,161,2,66, + 178,61,31,0,178,61,31,0,161,2, + 66,178,61,27,0,178,61,27,0,225, + 2,125,186,170,128,10,0,125,186,170, + 128,10,0,137,2,0,127,0,225,2, + 124,258,170,128,10,0,258,170,128,10, + 0,135,2,0,127,0,225,2,135,0, + 225,2,140,0,161,59,140,0,260,0, + 32,0,32,141,0,168,0,134,0,161, + 2,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, + 1509,0,4769,4760,4757,0,1598,3365,1115,3283, + 0,3878,3837,3796,3755,3714,3673,4712,3452,3411, + 2387,3112,2893,2829,3602,2765,2694,3547,3492,3340, + 3285,0,2927,2775,1865,0,3273,3143,0,3878, + 3837,3796,2376,1896,3755,3714,3673,3452,1218,3411, + 2387,3112,2885,2884,0,3287,3362,2868,0,979, + 891,0,2896,2794,0,1126,0,3293,926,3260, + 3117,2986,4342,4411,4306,4318,2341,4273,2655,2612, + 0,2893,2829,3602,2765,2694,3547,3492,3340,3285, + 2902,4359,0,2902,4359,2893,2829,3602,2765,2694, + 3547,3492,3340,3285,3878,3837,3796,3755,3714,3673, + 3452,3411,2387,3112,0,2589,901,0,926,3343, + 3260,4634,858,2332,717,3531,2330,850,1798,1078, + 0,2079,1986,0,810,0,1435,1401,1317,1147, + 3260,2330,2986,2655,2612,3280,2763,0,4177,526, + 2326,0,4630,4621,4604,4598,4550,4544,4524,4518, + 4689,4680,3894,3812,4465,4459,3730,4395,3618,2795, + 2687,3469,2886,0,4630,4621,3697,3136,4604,4598, + 4497,4550,2706,4544,4449,3476,4524,2843,4518,2739, + 2682,4689,2450,3315,2395,2185,2702,4680,3129,3894, + 774,3812,4465,4459,649,3730,2172,4395,2181,3618, + 2795,4177,2687,2326,3469,2886,718,609,568,1857, + 910,2986,4342,4411,4306,3293,926,4318,3260,2341, + 4273,2655,3117,2612,1129,655,2079,1986,3063,4230, + 4204,2189,2227,2295,2262,2503,2475,2353,2624,782, + 2585,2558,2531,579,3237,3214,3191,3089,3003,4155, + 4133,4111,4089,4067,4045,4023,4001,3979,622,3957, + 1868,2134,2096,2041,2003,1948,1143,1087,1910,1045, + 812,1815,1775,731,675,1733,1691,1649,1607,1565, + 1523,1481,1439,1397,1355,1313,526,1270,1227,999, + 941,868,1185,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,292,161,127,44,265,34,26,29,31, + 27,10,135,126,6,130,1,3,2,128, + 30,25,4,9,8,5,7,12,11,140, + 145,148,147,150,149,153,152,157,155,158, + 39,159,68,2,61,61,61,61,128,2, + 61,171,127,59,2,40,41,61,6,178, + 161,171,127,40,41,170,168,1,2,125, + 124,101,114,2,59,88,94,9,8,90, + 89,5,92,91,66,61,86,87,7,96, + 95,98,97,99,111,110,109,108,107,106, + 105,104,103,102,69,112,100,178,161,178, + 178,178,178,170,225,127,127,266,267,251, + 268,245,269,62,270,271,1,10,128,59, + 59,127,156,127,59,2,223,222,135,10, + 128,59,293,2,186,3,178,45,4,128, + 45,225,161,147,147,145,145,145,149,149, + 149,149,148,148,152,150,150,155,153,157, + 161,158,66,66,66,66,186,258,288,133, + 291,226,128,5,58,170,236,128,125,124, + 1,58,128,128,181,170,288,226,220,159, + 230,127,2,128,170,202,2,294,171,151, + 260,186,128,181,170,70,2,2,2,2, + 125,124,68,170,127,127,125,124,127,181, + 127,58,127,181,170,45,233,234,146,235, + 127,170,45,178,127,127,3,4,203,45, + 161,161,161,161,2,2,5,180,305,128, + 188,252,193,60,169,307,127,127,70,186, + 127,272,247,273,186,156,69,230,204,191, + 182,128,2,127,68,233,186,156,295,298, + 59,187,3,125,225,225,127,170,45,274, + 127,183,182,2,309,253,128,272,69,68, + 127,69,69,2,181,170,204,127,226,156, + 125,2,59,161,4,3,186,61,128,306, + 127,124,70,282,204,74,127,68,252,181, + 227,127,128,127,225,220,4,131,127,181, + 68,226,70,69,127,276,70,253,127,233, + 170,227,290,45,10,57,131,276,58,286, + 128,287,128,39,156,127,68,66,61,236, + 236,277,127,68,181,2,181,2,127,42, + 45,169,67,63,60,127,69,69,127,299, + 79,77,1,161,85,83,81,80,75,82, + 84,78,76,169,63,74,44,225,313,227, + 24,61,127,2,58,165,124,1,63,290, + 278,115,220,70,2,2,2,194,2,1, + 161,1,179,68,127,127,58,66,300,204, + 301,24,127,58,58,69,128,66,2,240, + 171,240,173,229,75,240,127,127,2,69, + 68,156,232,231,127,127,128,181,57,93, + 312,171,156,204,156,229,162,2,156,278, + 232,151,58,232,232,181,166,1,236,156, + 156,127,69,194,162,229,161,127,166,69, + 120,229,162,156,304,156,229,68,156 + }; + }; + public final static char inSymb[] = InSymb.inSymb; + public final int inSymb(int index) { return inSymb[index]; } + + public interface Name { + public final static String name[] = { + "", + "[", + "(", + "{", + ".", + ".*", + "->", + "->*", + "++", + "--", + "&", + "*", + "+", + "-", + "~", + "!", + "/", + "%", + ">>", + "<<", + "<", + ">", + "<=", + ">=", + "==", + "!=", + "^", + "|", + "&&", + "||", + "?", + ":", + "::", + "...", + "=", + "*=", + "/=", + "%=", + "+=", + "-=", + ">>=", + "<<=", + "&=", + "^=", + "|=", + ",", + "0", + "$empty", + "asm", + "auto", + "bool", + "break", + "case", + "catch", + "char", + "class", + "const", + "const_cast", + "continue", + "default", + "delete", + "do", + "double", + "dynamic_cast", + "else", + "enum", + "explicit", + "export", + "extern", + "false", + "float", + "for", + "friend", + "goto", + "if", + "inline", + "int", + "long", + "mutable", + "namespace", + "new", + "operator", + "private", + "protected", + "public", + "register", + "reinterpret_cast", + "return", + "short", + "signed", + "sizeof", + "static", + "static_cast", + "struct", + "switch", + "template", + "this", + "throw", + "try", + "true", + "typedef", + "typeid", + "typename", + "union", + "unsigned", + "using", + "virtual", + "void", + "volatile", + "wchar_t", + "while", + "integer", + "floating", + "charconst", + "stringlit", + "identifier", + "Completion", + "EndOfCompletion", + "Invalid", + "RightBracket", + "RightParen", + "RightBrace", + "SemiColon", + "ERROR_TOKEN", + "EOF_TOKEN", + "expression_parser_start", + "]", + ")", + "}", + ";", + "declaration_seq", + "expression", + "id_expression", + "qualified_or_unqualified_name", + "unqualified_id_name", + "identifier_name", + "operator_function_id_name", + "template_id_name", + "class_name", + "nested_name_specifier", + "class_or_namespace_name", + "nested_name_specifier_with_tem" + + "plate", + "class_or_namespace_name_with_t" + + "emplate", + "namespace_name", + "postfix_expression", + "simple_type_specifier", + "pseudo_destructor_name", + "type_id", + "type_name", + "unary_expression", + "cast_expression", + "new_type_id", + "expression_list", + "type_specifier_seq", + "new_declarator", + "new_pointer_operators", + "ptr_operator", + "new_array_expressions", + "constant_expression", + "pm_expression", + "multiplicative_expression", + "additive_expression", + "shift_expression", + "relational_expression", + "equality_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", + "assignment_expression", + "expression_list_actual", + "statement", + "compound_statement", + "statement_seq", + "condition", + "declarator", + "simple_declaration", + "declaration", + "function_definition", + "declaration_specifiers", + "simple_declaration_specifiers", + "class_declaration_specifiers", + "elaborated_declaration_specifi" + + "ers", + "enum_declaration_specifiers", + "type_name_declaration_specifie" + + "rs", + "no_type_declaration_specifier", + "cv_qualifier", + "no_type_declaration_specifiers", + "class_specifier", + "elaborated_type_specifier", + "enum_specifier", + "type_name_specifier", + "class_keyword", + "enumerator_list", + "enumerator_definition", + "enumerator", + "original_namespace_name", + "init_declarator_list", + "init_declarator", + "initializer", + "direct_declarator", + "ptr_operator_seq", + "basic_direct_declarator", + "function_direct_declarator", + "array_direct_declarator", + "array_modifier", + "abstract_declarator", + "direct_abstract_declarator", + "basic_direct_abstract_declarat" + + "or", + "array_direct_abstract_declarat" + + "or", + "parameter_declaration_list", + "parameter_declaration", + "parameter_init_declarator", + "parameter_initializer", + "function_body", + "handler_seq", + "initializer_clause", + "initializer_list", + "class_head", + "access_specifier_keyword", + "member_declaration", + "member_declarator_list", + "member_declaration_list", + "member_declarator", + "constant_initializer", + "bit_field_declarator", + "base_specifier_list", + "base_specifier", + "conversion_type_id", + "conversion_declarator", + "mem_initializer_list", + "mem_initializer", + "mem_initializer_name", + "operator_id_name", + "overloadable_operator", + "template_parameter_list", + "template_parameter", + "template_identifier", + "template_argument_list", + "template_argument", + "handler", + "exception_declaration", + "type_id_list" + }; + }; + public final static String name[] = Name.name; + public final String name(int index) { return name[index]; } + + public final static int + ERROR_SYMBOL = 44, + SCOPE_UBOUND = 115, + SCOPE_SIZE = 116, + MAX_NAME_LENGTH = 37; + + public final int getErrorSymbol() { return ERROR_SYMBOL; } + public final int getScopeUbound() { return SCOPE_UBOUND; } + public final int getScopeSize() { return SCOPE_SIZE; } + public final int getMaxNameLength() { return MAX_NAME_LENGTH; } + + public final static int + NUM_STATES = 519, + NT_OFFSET = 123, + LA_STATE_OFFSET = 5666, + MAX_LA = 2147483647, + NUM_RULES = 525, + NUM_NONTERMINALS = 199, + NUM_SYMBOLS = 322, + SEGMENT_SIZE = 8192, + START_STATE = 1998, + IDENTIFIER_SYMBOL = 0, + EOFT_SYMBOL = 119, + EOLT_SYMBOL = 119, + ACCEPT_ACTION = 4918, + ERROR_ACTION = 5141; + + public final static boolean BACKTRACK = true; + + public final int getNumStates() { return NUM_STATES; } + public final int getNtOffset() { return NT_OFFSET; } + public final int getLaStateOffset() { return LA_STATE_OFFSET; } + public final int getMaxLa() { return MAX_LA; } + public final int getNumRules() { return NUM_RULES; } + public final int getNumNonterminals() { return NUM_NONTERMINALS; } + public final int getNumSymbols() { return NUM_SYMBOLS; } + public final int getSegmentSize() { return SEGMENT_SIZE; } + public final int getStartState() { return START_STATE; } + public final int getStartSymbol() { return lhs[0]; } + public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } + public final int getEoftSymbol() { return EOFT_SYMBOL; } + public final int getEoltSymbol() { return EOLT_SYMBOL; } + public final int getAcceptAction() { return ACCEPT_ACTION; } + public final int getErrorAction() { return ERROR_ACTION; } + public final boolean isValidForParser() { return isValidForParser; } + public final boolean getBacktrack() { return BACKTRACK; } + + 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)]; + } + + public final int ntAction(int state, int sym) { + return baseAction[state + sym]; + } + + 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]; + } +} |