All Downloads are FREE. Search and download functionalities are using the official Maven repository.

opu.lljvm-python.0.2.0-EXPERIMENTAL.source-code.parser Maven / Gradle / Ivy

The newest version!

//----------------------------------------------------
// The following code was generated by Java(tm) CUP v0.9d
// Fri May 07 07:55:04 MSD 2010
//----------------------------------------------------

package jasmin;

import java_cup.runtime.*;
import jas.*;
import java.io.*;
import java.util.Hashtable;

public class parser extends java_cup.runtime.lr_parser {

  /** constructor */
  public parser() {super();}

  /** production table */
  protected static final short _production_table[][] = {
        {25, 4},     {0, 2},     {56, 11},     {54, 3},     {54, 0}, 
        {55, 1},     {59, 3},     {59, 0},     {60, 0},     {51, 3}, 
        {51, 0},     {38, 3},     {38, 3},     {38, 0},     {13, 4}, 
        {13, 4},     {1, 1},     {105, 0},     {104, 2},     {11, 1}, 
        {11, 0},     {10, 2},     {10, 1},     {9, 1},     {9, 1}, 
        {9, 1},     {9, 1},     {9, 1},     {9, 1},     {9, 1}, 
        {9, 1},     {9, 1},     {9, 1},     {9, 1},     {9, 1}, 
        {9, 1},     {9, 1},     {9, 1},     {9, 1},     {9, 1}, 
        {42, 3},     {22, 1},     {22, 0},     {23, 2},     {23, 1}, 
        {24, 3},     {73, 1},     {73, 0},     {74, 2},     {74, 1}, 
        {75, 3},     {90, 2},     {76, 2},     {77, 2},     {78, 3}, 
        {78, 3},     {79, 3},     {79, 3},     {79, 4},     {79, 4}, 
        {80, 1},     {80, 0},     {81, 2},     {81, 1},     {82, 3}, 
        {88, 2},     {88, 3},     {83, 2},     {93, 2},     {93, 1}, 
        {85, 2},     {85, 1},     {86, 1},     {92, 2},     {92, 1}, 
        {91, 4},     {89, 1},     {84, 3},     {87, 1},     {87, 2}, 
        {52, 1},     {52, 0},     {57, 2},     {57, 1},     {58, 3}, 
        {53, 4},     {53, 0},     {61, 1},     {61, 0},     {62, 2}, 
        {62, 1},     {63, 3},     {64, 2},     {20, 1},     {20, 0}, 
        {18, 2},     {18, 1},     {19, 8},     {19, 6},     {19, 4}, 
        {6, 2},     {6, 0},     {65, 5},     {66, 3},     {67, 1}, 
        {67, 0},     {68, 2},     {68, 1},     {69, 3},     {69, 3}, 
        {69, 3},     {69, 4},     {7, 1},     {7, 1},     {7, 1}, 
        {8, 1},     {8, 1},     {70, 1},     {70, 0},     {71, 2}, 
        {71, 1},     {72, 7},     {72, 7},     {2, 1},     {2, 0}, 
        {3, 2},     {3, 0},     {4, 2},     {4, 0},     {35, 1}, 
        {35, 0},     {33, 2},     {33, 1},     {34, 3},     {34, 2}, 
        {15, 4},     {17, 3},     {40, 2},     {40, 1},     {106, 0}, 
        {39, 3},     {41, 1},     {41, 1},     {41, 1},     {41, 1}, 
        {41, 0},     {26, 2},     {26, 3},     {16, 2},     {16, 2}, 
        {16, 2},     {16, 2},     {16, 2},     {16, 2},     {16, 2}, 
        {16, 2},     {16, 2},     {16, 4},     {16, 4},     {16, 2}, 
        {101, 3},     {101, 4},     {102, 3},     {103, 1},     {103, 0}, 
        {94, 1},     {95, 2},     {97, 3},     {97, 3},     {97, 0}, 
        {98, 2},     {98, 0},     {99, 2},     {100, 2},     {100, 3}, 
        {100, 3},     {100, 2},     {100, 3},     {100, 3},     {96, 2}, 
        {50, 9},     {50, 5},     {50, 9},     {5, 2},     {5, 0}, 
        {27, 2},     {27, 2},     {27, 2},     {45, 1},     {49, 1}, 
        {12, 7},     {12, 7},     {36, 2},     {21, 1},     {21, 1}, 
        {37, 1},     {37, 3},     {37, 2},     {37, 2},     {37, 2}, 
        {37, 3},     {37, 3},     {37, 2},     {37, 2},     {14, 2}, 
        {14, 2},     {28, 3},     {29, 1},     {32, 2},     {32, 1}, 
        {31, 4},     {31, 4},     {30, 3},     {30, 3},     {43, 3}, 
        {44, 2},     {44, 3},     {48, 2},     {48, 1},     {47, 2}, 
        {47, 2},     {46, 3},     {46, 3}  };

  /** access to production table */
  public short[][] production_table() {return _production_table;}

  /** parse action table */
  protected static final short[][] _action_table = {
    /*0*/{3,-11,11,-11,15,-11,16,4,-1,0},
    /*1*/{0,-119,5,-119,8,-119,23,134,-1,0},
    /*2*/{0,133,-1,0},
    /*3*/{70,131,-1,0},
    /*4*/{3,-14,11,6,15,-14,-1,0},
    /*5*/{66,127,67,128,-1,0},
    /*6*/{3,9,15,8,-1,0},
    /*7*/{43,-18,44,-18,45,-18,46,-18,47,-18,48,-18,49,-18,50,-18,51,-18,52,-18,53,-18,54,-18,55,-18,56,-18,57,-18,58,-18,59,-18,67,-18,-1,0},
    /*8*/{43,-18,44,-18,45,-18,46,-18,47,-18,48,-18,49,-18,50,-18,51,-18,52,-18,53,-18,54,-18,55,-18,56,-18,57,-18,58,-18,59,-18,67,-18,-1,0},
    /*9*/{10,12,-1,0},
    /*10*/{0,-43,5,-43,8,-43,14,17,17,-43,18,-43,19,-43,21,-43,22,-43,23,-43,24,-43,-1,0},
    /*11*/{67,13,-1,0},
    /*12*/{27,-17,37,-17,64,-17,-1,0},
    /*13*/{64,15,-1,0},
    /*14*/{0,-41,5,-41,8,-41,14,-41,17,-41,18,-41,19,-41,21,-41,22,-41,23,-41,24,-41,-1,0},
    /*15*/{0,-45,5,-45,8,-45,14,-45,17,-45,18,-45,19,-45,21,-45,22,-45,23,-45,24,-45,-1,0},
    /*16*/{67,13,-1,0},
    /*17*/{0,-5,5,-5,8,-5,17,-5,18,-5,19,22,21,-5,22,-5,23,-5,24,-5,-1,0},
    /*18*/{0,-42,5,-42,8,-42,14,17,17,-42,18,-42,19,-42,21,-42,22,-42,23,-42,24,-42,-1,0},
    /*19*/{0,-44,5,-44,8,-44,14,-44,17,-44,18,-44,19,-44,21,-44,22,-44,23,-44,24,-44,-1,0},
    /*20*/{0,-87,5,-87,8,-87,17,-87,18,26,21,-87,22,-87,23,-87,24,-87,-1,0},
    /*21*/{66,23,-1,0},
    /*22*/{64,-6,-1,0},
    /*23*/{64,25,-1,0},
    /*24*/{0,-4,5,-4,8,-4,17,-4,18,-4,21,-4,22,-4,23,-4,24,-4,-1,0},
    /*25*/{28,94,-1,0},
    /*26*/{0,-8,5,-8,8,-8,17,-8,21,-8,22,28,23,-8,24,-8,-1,0},
    /*27*/{64,-9,-1,0},
    /*28*/{0,-48,5,-48,8,-48,17,-48,21,-48,23,-48,24,34,-1,0},
    /*29*/{0,-50,5,-50,8,-50,17,-50,21,-50,23,-50,24,-50,-1,0},
    /*30*/{0,-47,5,-47,8,-47,17,-47,21,-47,23,-47,24,34,-1,0},
    /*31*/{4,-62,67,60,-1,0},
    /*32*/{0,-89,5,-89,8,-89,17,-89,21,43,23,-89,-1,0},
    /*33*/{38,36,39,35,-1,0},
    /*34*/{67,13,-1,0},
    /*35*/{67,13,-1,0},
    /*36*/{4,-54,67,-54,-1,0},
    /*37*/{64,39,-1,0},
    /*38*/{4,-55,67,-55,-1,0},
    /*39*/{64,41,-1,0},
    /*40*/{4,-56,67,-56,-1,0},
    /*41*/{0,-91,5,-91,8,-91,17,-91,21,-91,23,-91,-1,0},
    /*42*/{67,54,-1,0},
    /*43*/{0,-82,5,-82,8,-82,17,47,23,-82,-1,0},
    /*44*/{0,-88,5,-88,8,-88,17,-88,21,43,23,-88,-1,0},
    /*45*/{0,-90,5,-90,8,-90,17,-90,21,-90,23,-90,-1,0},
    /*46*/{66,52,-1,0},
    /*47*/{0,-81,5,-81,8,-81,17,47,23,-81,-1,0},
    /*48*/{0,-84,5,-84,8,-84,17,-84,23,-84,-1,0},
    /*49*/{0,-3,5,-3,8,-3,23,-3,-1,0},
    /*50*/{0,-83,5,-83,8,-83,17,-83,23,-83,-1,0},
    /*51*/{64,53,-1,0},
    /*52*/{0,-85,5,-85,8,-85,17,-85,23,-85,-1,0},
    /*53*/{66,57,-1,0},
    /*54*/{64,56,-1,0},
    /*55*/{0,-92,5,-92,8,-92,17,-92,21,-92,23,-92,-1,0},
    /*56*/{64,-93,-1,0},
    /*57*/{4,-61,67,60,-1,0},
    /*58*/{63,70,-1,0},
    /*59*/{67,68,-1,0},
    /*60*/{4,-64,67,-64,-1,0},
    /*61*/{4,65,-1,0},
    /*62*/{0,-51,5,-51,8,-51,17,-51,21,-51,23,-51,24,-51,-1,0},
    /*63*/{64,67,-1,0},
    /*64*/{54,66,-1,0},
    /*65*/{64,-53,-1,0},
    /*66*/{0,-52,4,-52,5,-52,8,-52,17,-52,19,-52,21,-52,22,-52,23,-52,24,-52,67,-52,-1,0},
    /*67*/{63,-66,67,69,-1,0},
    /*68*/{63,-67,-1,0},
    /*69*/{24,77,66,78,67,73,69,76,70,74,-1,0},
    /*70*/{64,88,66,78,67,73,69,76,70,74,-1,0},
    /*71*/{4,-65,67,-65,-1,0},
    /*72*/{64,-116,66,-116,67,-116,69,-116,70,-116,-1,0},
    /*73*/{64,-114,66,-114,67,-114,69,-114,70,-114,-1,0},
    /*74*/{4,-75,24,-75,67,-75,-1,0},
    /*75*/{64,-113,66,-113,67,-113,69,-113,70,-113,-1,0},
    /*76*/{64,84,-1,0},
    /*77*/{64,-115,66,-115,67,-115,69,-115,70,-115,-1,0},
    /*78*/{4,-70,24,77,67,-70,-1,0},
    /*79*/{64,-72,66,-72,67,-72,69,-72,70,-72,-1,0},
    /*80*/{64,-117,66,-117,67,-117,69,-117,70,-117,-1,0},
    /*81*/{64,-73,66,-73,67,-73,69,-73,70,-73,-1,0},
    /*82*/{4,-74,24,-74,67,-74,-1,0},
    /*83*/{4,-77,67,-77,-1,0},
    /*84*/{4,-62,67,60,-1,0},
    /*85*/{4,65,-1,0},
    /*86*/{4,-76,24,-76,67,-76,-1,0},
    /*87*/{4,-69,67,-69,-1,0},
    /*88*/{64,-71,66,-71,67,-71,69,-71,70,-71,-1,0},
    /*89*/{4,-63,67,-63,-1,0},
    /*90*/{0,-49,5,-49,8,-49,17,-49,21,-49,23,-49,24,-49,-1,0},
    /*91*/{64,93,-1,0},
    /*92*/{0,-7,5,-7,8,-7,17,-7,21,-7,23,-7,24,-7,-1,0},
    /*93*/{67,95,-1,0},
    /*94*/{64,96,-1,0},
    /*95*/{0,-86,5,-86,8,-86,17,-86,21,-86,22,-86,23,-86,24,-86,-1,0},
    /*96*/{64,98,-1,0},
    /*97*/{0,-46,5,-46,8,-46,14,-46,17,-46,18,-46,19,-46,21,-46,22,-46,23,-46,24,-46,-1,0},
    /*98*/{67,13,-1,0},
    /*99*/{36,-21,37,-21,43,117,44,113,45,115,46,105,47,103,48,111,49,107,50,109,51,118,52,112,53,108,54,106,55,114,56,104,57,116,58,110,59,102,64,-21,67,-21,-1,0},
    /*100*/{36,-20,37,-20,43,117,44,113,45,115,46,105,47,103,48,111,49,107,50,109,51,118,52,112,53,108,54,106,55,114,56,104,57,116,58,110,59,102,64,-20,67,-20,-1,0},
    /*101*/{36,-40,37,-40,43,-40,44,-40,45,-40,46,-40,47,-40,48,-40,49,-40,50,-40,51,-40,52,-40,53,-40,54,-40,55,-40,56,-40,57,-40,58,-40,59,-40,64,-40,67,-40,-1,0},
    /*102*/{36,-25,37,-25,43,-25,44,-25,45,-25,46,-25,47,-25,48,-25,49,-25,50,-25,51,-25,52,-25,53,-25,54,-25,55,-25,56,-25,57,-25,58,-25,59,-25,64,-25,67,-25,-1,0},
    /*103*/{36,-37,37,-37,43,-37,44,-37,45,-37,46,-37,47,-37,48,-37,49,-37,50,-37,51,-37,52,-37,53,-37,54,-37,55,-37,56,-37,57,-37,58,-37,59,-37,64,-37,67,-37,-1,0},
    /*104*/{36,-32,37,-32,43,-32,44,-32,45,-32,46,-32,47,-32,48,-32,49,-32,50,-32,51,-32,52,-32,53,-32,54,-32,55,-32,56,-32,57,-32,58,-32,59,-32,64,-32,67,-32,-1,0},
    /*105*/{36,-35,37,-35,43,-35,44,-35,45,-35,46,-35,47,-35,48,-35,49,-35,50,-35,51,-35,52,-35,53,-35,54,-35,55,-35,56,-35,57,-35,58,-35,59,-35,64,-35,67,-35,-1,0},
    /*106*/{36,-24,37,-24,43,-24,44,-24,45,-24,46,-24,47,-24,48,-24,49,-24,50,-24,51,-24,52,-24,53,-24,54,-24,55,-24,56,-24,57,-24,58,-24,59,-24,64,-24,67,-24,-1,0},
    /*107*/{36,-30,37,-30,43,-30,44,-30,45,-30,46,-30,47,-30,48,-30,49,-30,50,-30,51,-30,52,-30,53,-30,54,-30,55,-30,56,-30,57,-30,58,-30,59,-30,64,-30,67,-30,-1,0},
    /*108*/{36,-27,37,-27,43,-27,44,-27,45,-27,46,-27,47,-27,48,-27,49,-27,50,-27,51,-27,52,-27,53,-27,54,-27,55,-27,56,-27,57,-27,58,-27,59,-27,64,-27,67,-27,-1,0},
    /*109*/{36,-39,37,-39,43,-39,44,-39,45,-39,46,-39,47,-39,48,-39,49,-39,50,-39,51,-39,52,-39,53,-39,54,-39,55,-39,56,-39,57,-39,58,-39,59,-39,64,-39,67,-39,-1,0},
    /*110*/{36,-26,37,-26,43,-26,44,-26,45,-26,46,-26,47,-26,48,-26,49,-26,50,-26,51,-26,52,-26,53,-26,54,-26,55,-26,56,-26,57,-26,58,-26,59,-26,64,-26,67,-26,-1,0},
    /*111*/{36,-31,37,-31,43,-31,44,-31,45,-31,46,-31,47,-31,48,-31,49,-31,50,-31,51,-31,52,-31,53,-31,54,-31,55,-31,56,-31,57,-31,58,-31,59,-31,64,-31,67,-31,-1,0},
    /*112*/{36,-28,37,-28,43,-28,44,-28,45,-28,46,-28,47,-28,48,-28,49,-28,50,-28,51,-28,52,-28,53,-28,54,-28,55,-28,56,-28,57,-28,58,-28,59,-28,64,-28,67,-28,-1,0},
    /*113*/{36,-36,37,-36,43,-36,44,-36,45,-36,46,-36,47,-36,48,-36,49,-36,50,-36,51,-36,52,-36,53,-36,54,-36,55,-36,56,-36,57,-36,58,-36,59,-36,64,-36,67,-36,-1,0},
    /*114*/{36,-33,37,-33,43,-33,44,-33,45,-33,46,-33,47,-33,48,-33,49,-33,50,-33,51,-33,52,-33,53,-33,54,-33,55,-33,56,-33,57,-33,58,-33,59,-33,64,-33,67,-33,-1,0},
    /*115*/{36,-38,37,-38,43,-38,44,-38,45,-38,46,-38,47,-38,48,-38,49,-38,50,-38,51,-38,52,-38,53,-38,54,-38,55,-38,56,-38,57,-38,58,-38,59,-38,64,-38,67,-38,-1,0},
    /*116*/{36,-34,37,-34,43,-34,44,-34,45,-34,46,-34,47,-34,48,-34,49,-34,50,-34,51,-34,52,-34,53,-34,54,-34,55,-34,56,-34,57,-34,58,-34,59,-34,64,-34,67,-34,-1,0},
    /*117*/{36,-29,37,-29,43,-29,44,-29,45,-29,46,-29,47,-29,48,-29,49,-29,50,-29,51,-29,52,-29,53,-29,54,-29,55,-29,56,-29,57,-29,58,-29,59,-29,64,-29,67,-29,-1,0},
    /*118*/{36,-19,37,-19,64,-19,67,-19,-1,0},
    /*119*/{36,-23,37,-23,43,-23,44,-23,45,-23,46,-23,47,-23,48,-23,49,-23,50,-23,51,-23,52,-23,53,-23,54,-23,55,-23,56,-23,57,-23,58,-23,59,-23,64,-23,67,-23,-1,0},
    /*120*/{36,-22,37,-22,43,-22,44,-22,45,-22,46,-22,47,-22,48,-22,49,-22,50,-22,51,-22,52,-22,53,-22,54,-22,55,-22,56,-22,57,-22,58,-22,59,-22,64,-22,67,-22,-1,0},
    /*121*/{64,123,-1,0},
    /*122*/{10,-15,-1,0},
    /*123*/{67,13,-1,0},
    /*124*/{64,126,-1,0},
    /*125*/{10,-16,-1,0},
    /*126*/{64,130,-1,0},
    /*127*/{64,129,-1,0},
    /*128*/{3,-13,15,-13,-1,0},
    /*129*/{3,-12,15,-12,-1,0},
    /*130*/{64,132,-1,0},
    /*131*/{3,-10,11,-10,15,-10,-1,0},
    /*132*/{0,-2,-1,0},
    /*133*/{34,371,45,370,-1,0},
    /*134*/{0,-121,5,-121,8,-121,23,-121,-1,0},
    /*135*/{0,-95,5,141,8,-95,-1,0},
    /*136*/{0,-118,5,-118,8,-118,23,134,-1,0},
    /*137*/{0,-120,5,-120,8,-120,23,-120,-1,0},
    /*138*/{0,-131,8,179,-1,0},
    /*139*/{0,-97,5,-97,8,-97,-1,0},
    /*140*/{43,-18,44,-18,45,-18,46,-18,47,-18,48,-18,49,-18,50,-18,51,-18,52,-18,53,-18,54,-18,55,-18,56,-18,57,-18,58,-18,59,-18,67,-18,-1,0},
    /*141*/{0,-94,5,141,8,-94,-1,0},
    /*142*/{0,-96,5,-96,8,-96,-1,0},
    /*143*/{67,167,-1,0},
    /*144*/{4,-106,19,151,21,147,22,146,24,152,-1,0},
    /*145*/{64,-9,-1,0},
    /*146*/{67,54,-1,0},
    /*147*/{4,-105,19,151,21,147,22,146,24,152,-1,0},
    /*148*/{4,-108,19,-108,21,-108,22,-108,24,-108,-1,0},
    /*149*/{4,158,-1,0},
    /*150*/{66,23,-1,0},
    /*151*/{38,36,39,35,-1,0},
    /*152*/{4,-62,67,60,-1,0},
    /*153*/{4,65,-1,0},
    /*154*/{4,-112,19,-112,21,-112,22,-112,24,-112,-1,0},
    /*155*/{64,157,-1,0},
    /*156*/{4,-109,19,-109,21,-109,22,-109,24,-109,-1,0},
    /*157*/{33,160,-1,0},
    /*158*/{0,-100,5,-100,8,-100,-1,0},
    /*159*/{64,161,-1,0},
    /*160*/{0,-104,5,-104,8,-104,-1,0},
    /*161*/{4,-107,19,-107,21,-107,22,-107,24,-107,-1,0},
    /*162*/{64,164,-1,0},
    /*163*/{4,-110,19,-110,21,-110,22,-110,24,-110,-1,0},
    /*164*/{64,166,-1,0},
    /*165*/{4,-111,19,-111,21,-111,22,-111,24,-111,-1,0},
    /*166*/{67,168,-1,0},
    /*167*/{29,171,63,169,64,-102,-1,0},
    /*168*/{66,78,69,76,70,74,-1,0},
    /*169*/{64,175,-1,0},
    /*170*/{66,172,-1,0},
    /*171*/{63,169,64,-102,-1,0},
    /*172*/{64,174,-1,0},
    /*173*/{0,-98,5,-98,8,-98,-1,0},
    /*174*/{0,-99,4,-103,5,-99,8,-99,19,-103,21,-103,22,-103,24,-103,-1,0},
    /*175*/{64,-101,-1,0},
    /*176*/{0,-1,-1,0},
    /*177*/{0,-133,8,-133,-1,0},
    /*178*/{43,-18,44,-18,45,-18,46,-18,47,-18,48,-18,49,-18,50,-18,51,-18,52,-18,53,-18,54,-18,55,-18,56,-18,57,-18,58,-18,59,-18,67,-18,-1,0},
    /*179*/{1,-140,2,-140,4,185,6,-140,7,-140,9,-140,12,-140,13,-140,19,-140,20,-140,21,-140,22,-140,24,-140,60,-140,61,-140,64,-140,67,-140,68,-140,69,-140,-1,0},
    /*180*/{0,-130,8,179,-1,0},
    /*181*/{0,-132,8,-132,-1,0},
    /*182*/{1,-140,2,-140,4,185,6,-140,7,-140,9,-140,12,-140,13,-140,19,-140,20,-140,21,-140,22,-140,24,-140,60,-140,61,-140,64,-140,67,-140,68,-140,69,-140,-1,0},
    /*183*/{1,205,2,198,6,193,7,207,9,206,12,212,13,192,19,194,20,203,21,190,22,210,24,195,60,204,61,202,64,-146,67,191,68,201,69,196,-1,0},
    /*184*/{28,188,-1,0},
    /*185*/{1,-139,2,-139,4,-139,6,-139,7,-139,9,-139,12,-139,13,-139,19,-139,20,-139,21,-139,22,-139,24,-139,60,-139,61,-139,64,-139,67,-139,68,-139,69,-139,-1,0},
    /*186*/{0,-135,8,-135,-1,0},
    /*187*/{64,189,-1,0},
    /*188*/{0,-137,8,-137,-1,0},
    /*189*/{67,54,-1,0},
    /*190*/{65,363,-1,0},
    /*191*/{69,349,-1,0},
    /*192*/{30,342,32,344,67,343,-1,0},
    /*193*/{66,23,-1,0},
    /*194*/{38,316,39,314,40,319,41,318,62,313,-1,0},
    /*195*/{65,311,-1,0},
    /*196*/{64,-145,-1,0},
    /*197*/{67,13,-1,0},
    /*198*/{64,-143,-1,0},
    /*199*/{64,297,-1,0},
    /*200*/{64,-196,66,289,67,290,69,292,70,293,71,291,-1,0},
    /*201*/{69,273,-1,0},
    /*202*/{42,241,64,238,-1,0},
    /*203*/{64,221,-1,0},
    /*204*/{64,-144,-1,0},
    /*205*/{67,219,-1,0},
    /*206*/{69,217,-1,0},
    /*207*/{64,-142,-1,0},
    /*208*/{64,-194,-1,0},
    /*209*/{64,-9,-1,0},
    /*210*/{64,-195,-1,0},
    /*211*/{67,13,-1,0},
    /*212*/{64,-190,-1,0},
    /*213*/{64,-152,-1,0},
    /*214*/{64,-157,-1,0},
    /*215*/{64,-151,-1,0},
    /*216*/{64,-189,-1,0},
    /*217*/{64,-154,-1,0},
    /*218*/{66,78,67,73,69,76,70,74,-1,0},
    /*219*/{64,-193,-1,0},
    /*220*/{69,-208,-1,0},
    /*221*/{69,226,-1,0},
    /*222*/{64,-205,-1,0},
    /*223*/{62,-210,69,-210,-1,0},
    /*224*/{62,233,69,226,-1,0},
    /*225*/{65,227,-1,0},
    /*226*/{67,228,69,229,-1,0},
    /*227*/{64,231,-1,0},
    /*228*/{64,230,-1,0},
    /*229*/{62,-212,69,-212,-1,0},
    /*230*/{62,-211,69,-211,-1,0},
    /*231*/{64,-207,-1,0},
    /*232*/{65,235,-1,0},
    /*233*/{62,-209,69,-209,-1,0},
    /*234*/{67,236,69,237,-1,0},
    /*235*/{64,-213,-1,0},
    /*236*/{64,-214,-1,0},
    /*237*/{4,-166,30,-166,31,-166,32,-166,-1,0},
    /*238*/{4,-170,30,-170,31,246,32,-170,-1,0},
    /*239*/{64,-160,-1,0},
    /*240*/{32,-165,69,244,-1,0},
    /*241*/{32,267,-1,0},
    /*242*/{4,-170,30,-170,31,246,32,-170,-1,0},
    /*243*/{32,-164,-1,0},
    /*244*/{4,264,-1,0},
    /*245*/{67,260,69,261,-1,0},
    /*246*/{4,-172,30,-172,32,-172,-1,0},
    /*247*/{4,-167,30,249,32,252,-1,0},
    /*248*/{67,257,-1,0},
    /*249*/{4,-171,30,-171,32,-171,-1,0},
    /*250*/{64,256,-1,0},
    /*251*/{67,253,-1,0},
    /*252*/{64,-174,67,254,69,255,-1,0},
    /*253*/{64,-175,-1,0},
    /*254*/{64,-176,-1,0},
    /*255*/{4,-173,30,-173,32,-173,-1,0},
    /*256*/{64,-177,67,258,69,259,-1,0},
    /*257*/{64,-178,-1,0},
    /*258*/{64,-179,-1,0},
    /*259*/{64,263,-1,0},
    /*260*/{64,262,-1,0},
    /*261*/{4,-168,30,-168,32,-168,-1,0},
    /*262*/{4,-169,30,-169,32,-169,-1,0},
    /*263*/{30,266,-1,0},
    /*264*/{64,-162,-1,0},
    /*265*/{64,-180,-1,0},
    /*266*/{64,268,-1,0},
    /*267*/{4,-163,30,-163,31,-163,32,-163,-1,0},
    /*268*/{4,264,-1,0},
    /*269*/{64,-161,-1,0},
    /*270*/{67,277,69,280,-1,0},
    /*271*/{64,-206,-1,0},
    /*272*/{64,274,69,275,-1,0},
    /*273*/{67,-216,69,-216,-1,0},
    /*274*/{64,276,-1,0},
    /*275*/{67,-217,69,-217,-1,0},
    /*276*/{64,288,-1,0},
    /*277*/{62,282,67,277,69,280,-1,0},
    /*278*/{62,-219,67,-219,69,-219,-1,0},
    /*279*/{64,281,-1,0},
    /*280*/{62,-221,67,-221,69,-221,-1,0},
    /*281*/{65,285,-1,0},
    /*282*/{62,-218,67,-218,69,-218,-1,0},
    /*283*/{64,-215,-1,0},
    /*284*/{67,286,69,287,-1,0},
    /*285*/{64,-222,-1,0},
    /*286*/{64,-223,-1,0},
    /*287*/{62,-220,67,-220,69,-220,-1,0},
    /*288*/{64,-203,-1,0},
    /*289*/{64,-200,67,295,69,296,-1,0},
    /*290*/{64,-204,-1,0},
    /*291*/{64,-198,69,294,-1,0},
    /*292*/{64,-199,-1,0},
    /*293*/{64,-197,-1,0},
    /*294*/{64,-202,-1,0},
    /*295*/{64,-201,-1,0},
    /*296*/{1,-141,2,-141,4,-141,6,-141,7,-141,9,-141,12,-141,13,-141,19,-141,20,-141,21,-141,22,-141,24,-141,60,-141,61,-141,64,-141,67,-141,68,-141,69,-141,-1,0},
    /*297*/{64,-153,-1,0},
    /*298*/{27,300,-1,0},
    /*299*/{67,301,69,302,-1,0},
    /*300*/{35,307,-1,0},
    /*301*/{35,303,-1,0},
    /*302*/{69,304,-1,0},
    /*303*/{25,305,-1,0},
    /*304*/{69,306,-1,0},
    /*305*/{64,-192,-1,0},
    /*306*/{67,308,-1,0},
    /*307*/{25,309,-1,0},
    /*308*/{67,310,-1,0},
    /*309*/{64,-191,-1,0},
    /*310*/{60,204,61,202,68,201,-1,0},
    /*311*/{64,-148,-1,0},
    /*312*/{64,339,-1,0},
    /*313*/{67,13,-1,0},
    /*314*/{4,-62,67,60,-1,0},
    /*315*/{67,13,-1,0},
    /*316*/{67,326,-1,0},
    /*317*/{69,323,-1,0},
    /*318*/{69,320,-1,0},
    /*319*/{67,13,-1,0},
    /*320*/{64,322,-1,0},
    /*321*/{4,-59,67,-59,-1,0},
    /*322*/{67,13,-1,0},
    /*323*/{64,325,-1,0},
    /*324*/{4,-60,67,-60,-1,0},
    /*325*/{63,-79,67,332,-1,0},
    /*326*/{4,65,-1,0},
    /*327*/{63,329,-1,0},
    /*328*/{24,77,66,78,67,73,69,76,70,74,-1,0},
    /*329*/{4,-78,-1,0},
    /*330*/{64,-159,-1,0},
    /*331*/{63,-80,-1,0},
    /*332*/{64,334,-1,0},
    /*333*/{4,-57,67,-57,-1,0},
    /*334*/{4,65,-1,0},
    /*335*/{64,-158,-1,0},
    /*336*/{64,338,-1,0},
    /*337*/{4,-58,67,-58,-1,0},
    /*338*/{67,-68,-1,0},
    /*339*/{64,-155,-1,0},
    /*340*/{64,-150,-1,0},
    /*341*/{69,347,-1,0},
    /*342*/{69,346,-1,0},
    /*343*/{69,345,-1,0},
    /*344*/{64,-186,-1,0},
    /*345*/{64,-188,-1,0},
    /*346*/{64,-187,-1,0},
    /*347*/{64,-149,-1,0},
    /*348*/{26,350,-1,0},
    /*349*/{67,351,-1,0},
    /*350*/{67,352,-1,0},
    /*351*/{27,-185,29,353,64,-185,-1,0},
    /*352*/{66,362,-1,0},
    /*353*/{27,355,64,-182,-1,0},
    /*354*/{67,356,69,357,-1,0},
    /*355*/{35,360,-1,0},
    /*356*/{35,358,-1,0},
    /*357*/{69,359,-1,0},
    /*358*/{64,-183,-1,0},
    /*359*/{67,361,-1,0},
    /*360*/{64,-181,-1,0},
    /*361*/{27,-184,64,-184,-1,0},
    /*362*/{64,-147,-1,0},
    /*363*/{64,-156,-1,0},
    /*364*/{1,-138,2,-138,4,-138,6,-138,7,-138,9,-138,12,-138,13,-138,19,-138,20,-138,21,-138,22,-138,24,-138,60,-138,61,-138,64,-138,67,-138,68,-138,69,-138,-1,0},
    /*365*/{0,-134,8,-134,-1,0},
    /*366*/{67,368,-1,0},
    /*367*/{64,369,-1,0},
    /*368*/{1,-136,2,-136,4,-136,6,-136,7,-136,9,-136,12,-136,13,-136,19,-136,20,-136,21,-136,22,-136,24,-136,60,-136,61,-136,64,-136,67,-136,68,-136,69,-136,-1,0},
    /*369*/{36,-18,37,-18,43,-18,44,-18,45,-18,46,-18,47,-18,48,-18,49,-18,50,-18,51,-18,52,-18,53,-18,54,-18,55,-18,56,-18,57,-18,58,-18,59,-18,64,-18,67,-18,-1,0},
    /*370*/{36,-18,37,-18,43,-18,44,-18,45,-18,46,-18,47,-18,48,-18,49,-18,50,-18,51,-18,52,-18,53,-18,54,-18,55,-18,56,-18,57,-18,58,-18,59,-18,64,-18,67,-18,-1,0},
    /*371*/{36,-125,37,-125,64,-125,67,374,-1,0},
    /*372*/{36,375,37,-127,64,-127,-1,0},
    /*373*/{36,-124,37,-124,64,-124,-1,0},
    /*374*/{67,13,-1,0},
    /*375*/{37,377,64,-129,-1,0},
    /*376*/{67,13,-1,0},
    /*377*/{64,379,-1,0},
    /*378*/{0,-122,5,-122,8,-122,23,-122,-1,0},
    /*379*/{64,-128,-1,0},
    /*380*/{37,-126,64,-126,-1,0},
    /*381*/{36,-125,37,-125,64,-125,67,374,-1,0},
    /*382*/{36,375,37,-127,64,-127,-1,0},
    /*383*/{37,377,64,-129,-1,0},
    /*384*/{64,386,-1,0},
    /*385*/{0,-123,5,-123,8,-123,23,-123,-1,0},
  };

  /** access to parse action table */
  public short[][] action_table() {return _action_table;}

  /** reduce_goto table */
  protected static final short[][] _reduce_table = {
    /*0*/{25,2,51,4,56,1,-1,-1},
    /*1*/{70,135,71,136,72,134,-1,-1},
    /*2*/{-1,-1},
    /*3*/{-1,-1},
    /*4*/{38,6,-1,-1},
    /*5*/{-1,-1},
    /*6*/{13,9,-1,-1},
    /*7*/{104,123,105,99,-1,-1},
    /*8*/{104,98,105,99,-1,-1},
    /*9*/{42,10,-1,-1},
    /*10*/{22,17,23,18,24,15,-1,-1},
    /*11*/{1,13,-1,-1},
    /*12*/{-1,-1},
    /*13*/{-1,-1},
    /*14*/{-1,-1},
    /*15*/{-1,-1},
    /*16*/{1,96,-1,-1},
    /*17*/{54,20,-1,-1},
    /*18*/{24,19,-1,-1},
    /*19*/{-1,-1},
    /*20*/{53,26,-1,-1},
    /*21*/{55,23,-1,-1},
    /*22*/{-1,-1},
    /*23*/{-1,-1},
    /*24*/{-1,-1},
    /*25*/{-1,-1},
    /*26*/{59,28,-1,-1},
    /*27*/{60,91,-1,-1},
    /*28*/{73,32,74,30,75,29,77,31,-1,-1},
    /*29*/{-1,-1},
    /*30*/{75,90,77,31,-1,-1},
    /*31*/{80,61,81,57,82,60,88,58,-1,-1},
    /*32*/{61,43,62,44,63,41,-1,-1},
    /*33*/{78,36,-1,-1},
    /*34*/{1,39,-1,-1},
    /*35*/{1,37,-1,-1},
    /*36*/{-1,-1},
    /*37*/{-1,-1},
    /*38*/{-1,-1},
    /*39*/{-1,-1},
    /*40*/{-1,-1},
    /*41*/{-1,-1},
    /*42*/{64,54,-1,-1},
    /*43*/{52,49,57,47,58,48,-1,-1},
    /*44*/{63,45,-1,-1},
    /*45*/{-1,-1},
    /*46*/{-1,-1},
    /*47*/{58,50,-1,-1},
    /*48*/{-1,-1},
    /*49*/{-1,-1},
    /*50*/{-1,-1},
    /*51*/{-1,-1},
    /*52*/{-1,-1},
    /*53*/{-1,-1},
    /*54*/{-1,-1},
    /*55*/{-1,-1},
    /*56*/{-1,-1},
    /*57*/{82,89,88,58,-1,-1},
    /*58*/{-1,-1},
    /*59*/{-1,-1},
    /*60*/{-1,-1},
    /*61*/{76,63,90,62,-1,-1},
    /*62*/{-1,-1},
    /*63*/{-1,-1},
    /*64*/{-1,-1},
    /*65*/{-1,-1},
    /*66*/{-1,-1},
    /*67*/{-1,-1},
    /*68*/{-1,-1},
    /*69*/{7,80,8,81,85,70,86,79,91,74,92,78,93,71,-1,-1},
    /*70*/{7,80,8,81,86,88,-1,-1},
    /*71*/{-1,-1},
    /*72*/{-1,-1},
    /*73*/{-1,-1},
    /*74*/{-1,-1},
    /*75*/{-1,-1},
    /*76*/{89,84,-1,-1},
    /*77*/{-1,-1},
    /*78*/{91,82,-1,-1},
    /*79*/{-1,-1},
    /*80*/{-1,-1},
    /*81*/{-1,-1},
    /*82*/{-1,-1},
    /*83*/{-1,-1},
    /*84*/{80,85,81,57,82,60,88,58,-1,-1},
    /*85*/{76,63,90,86,-1,-1},
    /*86*/{-1,-1},
    /*87*/{-1,-1},
    /*88*/{-1,-1},
    /*89*/{-1,-1},
    /*90*/{-1,-1},
    /*91*/{-1,-1},
    /*92*/{-1,-1},
    /*93*/{-1,-1},
    /*94*/{-1,-1},
    /*95*/{-1,-1},
    /*96*/{-1,-1},
    /*97*/{-1,-1},
    /*98*/{1,121,-1,-1},
    /*99*/{9,119,10,100,11,118,-1,-1},
    /*100*/{9,120,-1,-1},
    /*101*/{-1,-1},
    /*102*/{-1,-1},
    /*103*/{-1,-1},
    /*104*/{-1,-1},
    /*105*/{-1,-1},
    /*106*/{-1,-1},
    /*107*/{-1,-1},
    /*108*/{-1,-1},
    /*109*/{-1,-1},
    /*110*/{-1,-1},
    /*111*/{-1,-1},
    /*112*/{-1,-1},
    /*113*/{-1,-1},
    /*114*/{-1,-1},
    /*115*/{-1,-1},
    /*116*/{-1,-1},
    /*117*/{-1,-1},
    /*118*/{-1,-1},
    /*119*/{-1,-1},
    /*120*/{-1,-1},
    /*121*/{-1,-1},
    /*122*/{-1,-1},
    /*123*/{1,124,-1,-1},
    /*124*/{-1,-1},
    /*125*/{-1,-1},
    /*126*/{-1,-1},
    /*127*/{-1,-1},
    /*128*/{-1,-1},
    /*129*/{-1,-1},
    /*130*/{-1,-1},
    /*131*/{-1,-1},
    /*132*/{-1,-1},
    /*133*/{-1,-1},
    /*134*/{-1,-1},
    /*135*/{18,141,19,139,20,138,-1,-1},
    /*136*/{72,137,-1,-1},
    /*137*/{-1,-1},
    /*138*/{15,179,33,180,34,177,35,176,-1,-1},
    /*139*/{-1,-1},
    /*140*/{65,144,104,143,105,99,-1,-1},
    /*141*/{19,142,-1,-1},
    /*142*/{-1,-1},
    /*143*/{-1,-1},
    /*144*/{67,149,68,147,69,148,-1,-1},
    /*145*/{60,164,-1,-1},
    /*146*/{64,162,-1,-1},
    /*147*/{69,161,-1,-1},
    /*148*/{-1,-1},
    /*149*/{66,158,-1,-1},
    /*150*/{55,155,-1,-1},
    /*151*/{78,152,-1,-1},
    /*152*/{80,153,81,57,82,60,88,58,-1,-1},
    /*153*/{76,63,90,154,-1,-1},
    /*154*/{-1,-1},
    /*155*/{-1,-1},
    /*156*/{-1,-1},
    /*157*/{-1,-1},
    /*158*/{-1,-1},
    /*159*/{-1,-1},
    /*160*/{-1,-1},
    /*161*/{-1,-1},
    /*162*/{-1,-1},
    /*163*/{-1,-1},
    /*164*/{-1,-1},
    /*165*/{-1,-1},
    /*166*/{-1,-1},
    /*167*/{6,169,-1,-1},
    /*168*/{7,175,-1,-1},
    /*169*/{-1,-1},
    /*170*/{-1,-1},
    /*171*/{6,172,-1,-1},
    /*172*/{-1,-1},
    /*173*/{-1,-1},
    /*174*/{-1,-1},
    /*175*/{-1,-1},
    /*176*/{-1,-1},
    /*177*/{-1,-1},
    /*178*/{104,366,105,99,-1,-1},
    /*179*/{17,186,39,185,40,182,106,183,-1,-1},
    /*180*/{15,179,34,181,-1,-1},
    /*181*/{-1,-1},
    /*182*/{17,365,39,364,106,183,-1,-1},
    /*183*/{14,210,16,198,21,207,26,196,37,208,41,199,-1,-1},
    /*184*/{-1,-1},
    /*185*/{-1,-1},
    /*186*/{-1,-1},
    /*187*/{-1,-1},
    /*188*/{-1,-1},
    /*189*/{64,363,-1,-1},
    /*190*/{-1,-1},
    /*191*/{50,347,-1,-1},
    /*192*/{27,340,-1,-1},
    /*193*/{55,339,-1,-1},
    /*194*/{79,314,83,316,-1,-1},
    /*195*/{-1,-1},
    /*196*/{-1,-1},
    /*197*/{1,298,12,297,-1,-1},
    /*198*/{-1,-1},
    /*199*/{-1,-1},
    /*200*/{-1,-1},
    /*201*/{43,271,44,270,-1,-1},
    /*202*/{94,238,101,239,-1,-1},
    /*203*/{28,222,29,221,-1,-1},
    /*204*/{-1,-1},
    /*205*/{36,217,-1,-1},
    /*206*/{45,215,-1,-1},
    /*207*/{-1,-1},
    /*208*/{-1,-1},
    /*209*/{60,214,-1,-1},
    /*210*/{-1,-1},
    /*211*/{1,212,49,213,-1,-1},
    /*212*/{-1,-1},
    /*213*/{-1,-1},
    /*214*/{-1,-1},
    /*215*/{-1,-1},
    /*216*/{-1,-1},
    /*217*/{-1,-1},
    /*218*/{7,80,8,219,-1,-1},
    /*219*/{-1,-1},
    /*220*/{-1,-1},
    /*221*/{31,223,32,224,-1,-1},
    /*222*/{-1,-1},
    /*223*/{-1,-1},
    /*224*/{30,231,31,233,-1,-1},
    /*225*/{-1,-1},
    /*226*/{-1,-1},
    /*227*/{-1,-1},
    /*228*/{-1,-1},
    /*229*/{-1,-1},
    /*230*/{-1,-1},
    /*231*/{-1,-1},
    /*232*/{-1,-1},
    /*233*/{-1,-1},
    /*234*/{-1,-1},
    /*235*/{-1,-1},
    /*236*/{-1,-1},
    /*237*/{-1,-1},
    /*238*/{95,268,97,246,-1,-1},
    /*239*/{-1,-1},
    /*240*/{102,242,103,241,-1,-1},
    /*241*/{-1,-1},
    /*242*/{95,244,97,246,-1,-1},
    /*243*/{-1,-1},
    /*244*/{96,264,-1,-1},
    /*245*/{-1,-1},
    /*246*/{98,247,-1,-1},
    /*247*/{99,249,100,250,-1,-1},
    /*248*/{-1,-1},
    /*249*/{-1,-1},
    /*250*/{-1,-1},
    /*251*/{-1,-1},
    /*252*/{-1,-1},
    /*253*/{-1,-1},
    /*254*/{-1,-1},
    /*255*/{-1,-1},
    /*256*/{-1,-1},
    /*257*/{-1,-1},
    /*258*/{-1,-1},
    /*259*/{-1,-1},
    /*260*/{-1,-1},
    /*261*/{-1,-1},
    /*262*/{-1,-1},
    /*263*/{-1,-1},
    /*264*/{-1,-1},
    /*265*/{-1,-1},
    /*266*/{-1,-1},
    /*267*/{-1,-1},
    /*268*/{96,269,-1,-1},
    /*269*/{-1,-1},
    /*270*/{47,278,48,277,-1,-1},
    /*271*/{-1,-1},
    /*272*/{-1,-1},
    /*273*/{-1,-1},
    /*274*/{-1,-1},
    /*275*/{-1,-1},
    /*276*/{-1,-1},
    /*277*/{46,283,47,282,-1,-1},
    /*278*/{-1,-1},
    /*279*/{-1,-1},
    /*280*/{-1,-1},
    /*281*/{-1,-1},
    /*282*/{-1,-1},
    /*283*/{-1,-1},
    /*284*/{-1,-1},
    /*285*/{-1,-1},
    /*286*/{-1,-1},
    /*287*/{-1,-1},
    /*288*/{-1,-1},
    /*289*/{-1,-1},
    /*290*/{-1,-1},
    /*291*/{-1,-1},
    /*292*/{-1,-1},
    /*293*/{-1,-1},
    /*294*/{-1,-1},
    /*295*/{-1,-1},
    /*296*/{-1,-1},
    /*297*/{-1,-1},
    /*298*/{-1,-1},
    /*299*/{-1,-1},
    /*300*/{-1,-1},
    /*301*/{-1,-1},
    /*302*/{-1,-1},
    /*303*/{-1,-1},
    /*304*/{-1,-1},
    /*305*/{-1,-1},
    /*306*/{-1,-1},
    /*307*/{-1,-1},
    /*308*/{-1,-1},
    /*309*/{-1,-1},
    /*310*/{14,210,21,311,37,208,-1,-1},
    /*311*/{-1,-1},
    /*312*/{-1,-1},
    /*313*/{1,336,-1,-1},
    /*314*/{80,334,81,57,82,60,88,58,-1,-1},
    /*315*/{1,332,-1,-1},
    /*316*/{84,326,87,327,-1,-1},
    /*317*/{-1,-1},
    /*318*/{-1,-1},
    /*319*/{1,320,-1,-1},
    /*320*/{-1,-1},
    /*321*/{-1,-1},
    /*322*/{1,323,-1,-1},
    /*323*/{-1,-1},
    /*324*/{-1,-1},
    /*325*/{-1,-1},
    /*326*/{76,330,-1,-1},
    /*327*/{-1,-1},
    /*328*/{7,80,8,81,85,70,86,79,91,74,92,78,93,329,-1,-1},
    /*329*/{-1,-1},
    /*330*/{-1,-1},
    /*331*/{-1,-1},
    /*332*/{-1,-1},
    /*333*/{-1,-1},
    /*334*/{76,335,-1,-1},
    /*335*/{-1,-1},
    /*336*/{-1,-1},
    /*337*/{-1,-1},
    /*338*/{-1,-1},
    /*339*/{-1,-1},
    /*340*/{-1,-1},
    /*341*/{-1,-1},
    /*342*/{-1,-1},
    /*343*/{-1,-1},
    /*344*/{-1,-1},
    /*345*/{-1,-1},
    /*346*/{-1,-1},
    /*347*/{-1,-1},
    /*348*/{-1,-1},
    /*349*/{-1,-1},
    /*350*/{-1,-1},
    /*351*/{5,353,-1,-1},
    /*352*/{-1,-1},
    /*353*/{-1,-1},
    /*354*/{-1,-1},
    /*355*/{-1,-1},
    /*356*/{-1,-1},
    /*357*/{-1,-1},
    /*358*/{-1,-1},
    /*359*/{-1,-1},
    /*360*/{-1,-1},
    /*361*/{-1,-1},
    /*362*/{-1,-1},
    /*363*/{-1,-1},
    /*364*/{-1,-1},
    /*365*/{-1,-1},
    /*366*/{-1,-1},
    /*367*/{-1,-1},
    /*368*/{-1,-1},
    /*369*/{104,381,105,99,-1,-1},
    /*370*/{104,371,105,99,-1,-1},
    /*371*/{2,372,-1,-1},
    /*372*/{3,375,-1,-1},
    /*373*/{-1,-1},
    /*374*/{1,380,-1,-1},
    /*375*/{4,377,-1,-1},
    /*376*/{1,379,-1,-1},
    /*377*/{-1,-1},
    /*378*/{-1,-1},
    /*379*/{-1,-1},
    /*380*/{-1,-1},
    /*381*/{2,382,-1,-1},
    /*382*/{3,383,-1,-1},
    /*383*/{4,384,-1,-1},
    /*384*/{-1,-1},
    /*385*/{-1,-1},
  };

  /** access to reduce_goto table */
  public short[][] reduce_table() {return _reduce_table;}

  /** instance of action encapsulation class */
  protected CUP$actions action_obj;

  /** action encapsulation object initializer */
  protected void init_actions()
    {
      action_obj = new CUP$actions();
    }

  /** invoke a user supplied parse action */
  public java_cup.runtime.symbol do_action(
    int                        act_num,
    java_cup.runtime.lr_parser parser,
    java.util.Stack            stack,
    int                        top)
    throws java.lang.Exception
  {
    /* call code in generated class */
    return action_obj.CUP$do_action(act_num, parser, stack, top);
  }

  /** start state */
  public int start_state() {return 0;}
  /** start production */
  public int start_production() {return 1;}

  /** EOF symbol index */
  public int EOF_sym() {return 0;}

  /** error symbol index */
  public int error_sym() {return 1;}


  /** user initialization */
  public void user_init() throws java.lang.Exception
    {

	action_obj.scanner = scanner;
	action_obj.classFile = classFile;

    }

  /** scan to get the next token */
  public java_cup.runtime.token scan()
    throws java.lang.Exception
    {

    return scanner.next_token();

    }



	// parser code

	public Scanner scanner;
	public ClassFile classFile;

	public void report_error(String message, Object info) {
    	    classFile.report_error("Warning - " + message);
	}

	public void report_fatal_error(String message, Object info)  {
    	    classFile.report_error("Error - " + message);
    	    // System.exit(-1);
	}

	parser(ClassFile classFile, Scanner scanner) {
		super();

	    this.scanner = scanner;
	    this.classFile = classFile;
	}

};

/** JavaCup generated class to encapsulate user supplied action code.*/
class CUP$actions {


    short access_val;
	public ClassFile classFile;
    public Scanner scanner;


  /** Constructor */
  CUP$actions() { }

  /** Method with the actual generated action code. */
  public final java_cup.runtime.symbol CUP$do_action(
    int                        CUP$act_num,
    java_cup.runtime.lr_parser CUP$parser,
    java.util.Stack            CUP$stack,
    int                        CUP$top)
    throws java.lang.Exception
    {
      /* object for return from actions */
      java_cup.runtime.symbol CUP$result;

      /* select the action based on the action number */
      switch (CUP$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 222: // table_default ::= DEFAULT COLON Int 
            {
              CUP$result = new symbol(/*table_default*/46);
               classFile.endTableswitch((/*off*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 221: // table_default ::= DEFAULT COLON Word 
            {
              CUP$result = new symbol(/*table_default*/46);
               classFile.endTableswitch((/*w*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 220: // table_entry ::= Int SEP 
            {
              CUP$result = new symbol(/*table_entry*/47);
               classFile.addTableswitch((/*off*/(int_token)CUP$stack.elementAt(CUP$top-1)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 219: // table_entry ::= Word SEP 
            {
              CUP$result = new symbol(/*table_entry*/47);
               classFile.addTableswitch((/*w*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 218: // table_list ::= table_entry 
            {
              CUP$result = new symbol(/*table_list*/48);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 217: // table_list ::= table_list table_entry 
            {
              CUP$result = new symbol(/*table_list*/48);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 216: // table_args ::= Int Int SEP 
            {
              CUP$result = new symbol(/*table_args*/44);
               classFile.newTableswitch((/*low*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val, (/*high*/(int_token)CUP$stack.elementAt(CUP$top-1)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 215: // table_args ::= Int SEP 
            {
              CUP$result = new symbol(/*table_args*/44);
               classFile.newTableswitch((/*low*/(int_token)CUP$stack.elementAt(CUP$top-1)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 214: // table ::= table_args table_list table_default 
            {
              CUP$result = new symbol(/*table*/43);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 213: // lookup_default ::= DEFAULT COLON Int 
            {
              CUP$result = new symbol(/*lookup_default*/30);
               classFile.endLookupswitch((/*off*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 212: // lookup_default ::= DEFAULT COLON Word 
            {
              CUP$result = new symbol(/*lookup_default*/30);
               classFile.endLookupswitch((/*w*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 211: // lookup_entry ::= Int COLON Int SEP 
            {
              CUP$result = new symbol(/*lookup_entry*/31);
               classFile.addLookupswitch((/*i*/(int_token)CUP$stack.elementAt(CUP$top-3)).int_val, (/*off*/(int_token)CUP$stack.elementAt(CUP$top-1)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 210: // lookup_entry ::= Int COLON Word SEP 
            {
              CUP$result = new symbol(/*lookup_entry*/31);
               classFile.addLookupswitch((/*i*/(int_token)CUP$stack.elementAt(CUP$top-3)).int_val, (/*w*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 209: // lookup_list ::= lookup_entry 
            {
              CUP$result = new symbol(/*lookup_list*/32);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 208: // lookup_list ::= lookup_list lookup_entry 
            {
              CUP$result = new symbol(/*lookup_list*/32);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 207: // lookup_args ::= SEP 
            {
              CUP$result = new symbol(/*lookup_args*/29);
               classFile.newLookupswitch(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 206: // lookup ::= lookup_args lookup_list lookup_default 
            {
              CUP$result = new symbol(/*lookup*/28);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 205: // complex_instruction ::= TABLESWITCH table 
            {
              CUP$result = new symbol(/*complex_instruction*/14);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 204: // complex_instruction ::= LOOKUPSWITCH lookup 
            {
              CUP$result = new symbol(/*complex_instruction*/14);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 203: // simple_instruction ::= Insn Relative 
            {
              CUP$result = new symbol(/*simple_instruction*/37);
               classFile.plantRelativeGoto((/*i*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n*/(relative_num_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 202: // simple_instruction ::= Insn Str 
            {
              CUP$result = new symbol(/*simple_instruction*/37);
               classFile.plantString((/*i*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 201: // simple_instruction ::= Insn Word Word 
            {
              CUP$result = new symbol(/*simple_instruction*/37);
               classFile.plant((/*i*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*n1*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n2*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 200: // simple_instruction ::= Insn Word Int 
            {
              CUP$result = new symbol(/*simple_instruction*/37);
               classFile.plant((/*i*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*n*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n2*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 199: // simple_instruction ::= Insn Word 
            {
              CUP$result = new symbol(/*simple_instruction*/37);
               classFile.plant((/*i*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 198: // simple_instruction ::= Insn Num 
            {
              CUP$result = new symbol(/*simple_instruction*/37);
               classFile.plant((/*i*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n*/(num_token)CUP$stack.elementAt(CUP$top-0)).num_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 197: // simple_instruction ::= Insn Int 
            {
              CUP$result = new symbol(/*simple_instruction*/37);
               classFile.plant((/*i*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 196: // simple_instruction ::= Insn Int Int 
            {
              CUP$result = new symbol(/*simple_instruction*/37);
               classFile.plant((/*i*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*n1*/(int_token)CUP$stack.elementAt(CUP$top-1)).int_val, (/*n2*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 195: // simple_instruction ::= Insn 
            {
              CUP$result = new symbol(/*simple_instruction*/37);
               classFile.plant((/*i*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 194: // instruction ::= complex_instruction 
            {
              CUP$result = new symbol(/*instruction*/21);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 193: // instruction ::= simple_instruction 
            {
              CUP$result = new symbol(/*instruction*/21);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 192: // set_expr ::= Word any_item 
            {
              CUP$result = new symbol(/*set_expr*/36);
               scanner.dict.put((/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*v*/(var_token)CUP$stack.elementAt(CUP$top-0))); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 191: // catch_expr ::= classname FROM Int TO Int USING Int 
            {
              CUP$result = new symbol(/*catch_expr*/12);
               classFile.addCatch((/*aclass*/(str_token)CUP$stack.elementAt(CUP$top-6)).str_val,
                              (/*fromoff*/(int_token)CUP$stack.elementAt(CUP$top-4)).int_val,
                              (/*tooff*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val,
                              (/*branchoff*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 190: // catch_expr ::= classname FROM Word TO Word USING Word 
            {
              CUP$result = new symbol(/*catch_expr*/12);
               classFile.addCatch((/*aclass*/(str_token)CUP$stack.elementAt(CUP$top-6)).str_val,
                              (/*fromlab*/(str_token)CUP$stack.elementAt(CUP$top-4)).str_val,
                              (/*tolab*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val,
                              (/*branchlab*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 189: // throws_expr ::= classname 
            {
              CUP$result = new symbol(/*throws_expr*/49);
               classFile.addThrow((/*s*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 188: // line_expr ::= Int 
            {
              CUP$result = new symbol(/*line_expr*/45);
               classFile.addLine((/*v*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 187: // limit_expr ::= Word Int 
            {
              CUP$result = new symbol(/*limit_expr*/27);
               classFile.report_error(".limit expected \"stack\" or \"locals\", but got "
                                + (/*w*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 186: // limit_expr ::= STACK Int 
            {
              CUP$result = new symbol(/*limit_expr*/27);
               classFile.setStackSize((/*v*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 185: // limit_expr ::= LOCALS Int 
            {
              CUP$result = new symbol(/*limit_expr*/27);
               classFile.setVarSize((/*v*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 184: // optional_signature ::= 
            {
              CUP$result = new str_token(/*optional_signature*/5);
               ((str_token)CUP$result).str_val = null; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 183: // optional_signature ::= SIGNATURE Str 
            {
              CUP$result = new str_token(/*optional_signature*/5);
               ((str_token)CUP$result).str_val = (/*s*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 182: // var_expr ::= Int IS Word Word optional_signature FROM Int TO Int 
            {
              CUP$result = new symbol(/*var_expr*/50);
               classFile.addVar((/*soff*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val, (/*eoff*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-6)).str_val,
                            (/*desc*/(str_token)CUP$stack.elementAt(CUP$top-5)).str_val, (/*sign*/(str_token)CUP$stack.elementAt(CUP$top-4)).str_val, (/*reg*/(int_token)CUP$stack.elementAt(CUP$top-8)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 181: // var_expr ::= Int IS Word Word optional_signature 
            {
              CUP$result = new symbol(/*var_expr*/50);
               classFile.addVar(null, null, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*desc*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val,
                            (/*sign*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val,  (/*reg*/(int_token)CUP$stack.elementAt(CUP$top-4)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 180: // var_expr ::= Int IS Word Word optional_signature FROM Word TO Word 
            {
              CUP$result = new symbol(/*var_expr*/50);
               classFile.addVar((/*slab*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*elab*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-6)).str_val,
                            (/*desc*/(str_token)CUP$stack.elementAt(CUP$top-5)).str_val, (/*sign*/(str_token)CUP$stack.elementAt(CUP$top-4)).str_val, (/*reg*/(int_token)CUP$stack.elementAt(CUP$top-8)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 179: // endstack ::= DEND STACK 
            {
              CUP$result = new symbol(/*endstack*/96);
               classFile.endStack(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 178: // stack_item_expr ::= STACK Word Int 
            {
              CUP$result = new symbol(/*stack_item_expr*/100);
               classFile.plantStackStack((/*w*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, String.valueOf((/*n*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val)); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 177: // stack_item_expr ::= STACK Word Word 
            {
              CUP$result = new symbol(/*stack_item_expr*/100);
               classFile.plantStackStack((/*w*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*val*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 176: // stack_item_expr ::= STACK Word 
            {
              CUP$result = new symbol(/*stack_item_expr*/100);
               classFile.plantStackStack((/*w*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val, null); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 175: // stack_item_expr ::= LOCALS Word Int 
            {
              CUP$result = new symbol(/*stack_item_expr*/100);
               classFile.plantStackLocals((/*w*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, String.valueOf((/*n*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val)); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 174: // stack_item_expr ::= LOCALS Word Word 
            {
              CUP$result = new symbol(/*stack_item_expr*/100);
               classFile.plantStackLocals((/*w*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*val*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 173: // stack_item_expr ::= LOCALS Word 
            {
              CUP$result = new symbol(/*stack_item_expr*/100);
               classFile.plantStackLocals((/*w*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val, null); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 172: // stack_item ::= stack_item_expr SEP 
            {
              CUP$result = new symbol(/*stack_item*/99);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 171: // stack_items ::= 
            {
              CUP$result = new symbol(/*stack_items*/98);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 170: // stack_items ::= stack_items stack_item 
            {
              CUP$result = new symbol(/*stack_items*/98);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 169: // stack_offset_def ::= 
            {
              CUP$result = new symbol(/*stack_offset_def*/97);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 168: // stack_offset_def ::= OFFSET Word SEP 
            {
              CUP$result = new symbol(/*stack_offset_def*/97);
               classFile.plantStackOffset((/*w*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 167: // stack_offset_def ::= OFFSET Int SEP 
            {
              CUP$result = new symbol(/*stack_offset_def*/97);
               classFile.plantStackOffset((/*n*/(int_token)CUP$stack.elementAt(CUP$top-1)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 166: // stack_map_frame_desc ::= stack_offset_def stack_items 
            {
              CUP$result = new symbol(/*stack_map_frame_desc*/95);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 165: // defstack ::= SEP 
            {
              CUP$result = new symbol(/*defstack*/94);
               classFile.beginStack(false); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 164: // defstack_same_expr ::= 
            {
              CUP$result = new symbol(/*defstack_same_expr*/103);
               classFile.beginStack(true); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 163: // defstack_same_expr ::= Int 
            {
              CUP$result = new symbol(/*defstack_same_expr*/103);
               classFile.beginStack((/*n*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 162: // defstack_same ::= defstack_same_expr LOCALS SEP 
            {
              CUP$result = new symbol(/*defstack_same*/102);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 161: // stackmap ::= USE defstack_same stack_map_frame_desc endstack 
            {
              CUP$result = new symbol(/*stackmap*/101);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 160: // stackmap ::= defstack stack_map_frame_desc endstack 
            {
              CUP$result = new symbol(/*stackmap*/101);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 159: // directive ::= DSTACK stackmap 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 158: // directive ::= DANNOTATION ann_def_spec ann_def_val endannotation 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 157: // directive ::= DANNOTATION ann_met_expr ann_arglist endannotation 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 156: // directive ::= DDEPRECATED deprecated_expr 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 155: // directive ::= DATTRIBUTE generic_expr 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 154: // directive ::= DSIGNATURE signature_expr 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 153: // directive ::= DSET set_expr 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 152: // directive ::= DCATCH catch_expr 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 151: // directive ::= DTHROWS throws_expr 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 150: // directive ::= DLINE line_expr 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 149: // directive ::= DLIMIT limit_expr 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 148: // directive ::= DVAR var_expr 
            {
              CUP$result = new symbol(/*directive*/16);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 147: // label ::= Int COLON instruction 
            {
              CUP$result = new symbol(/*label*/26);
               classFile.plantLabel(String.valueOf((/*label*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val)); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 146: // label ::= Word COLON 
            {
              CUP$result = new symbol(/*label*/26);
               classFile.plantLabel((/*label*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 145: // stmnt ::= 
            {
              CUP$result = new symbol(/*stmnt*/41);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 144: // stmnt ::= label 
            {
              CUP$result = new symbol(/*stmnt*/41);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 143: // stmnt ::= error 
            {
              CUP$result = new symbol(/*stmnt*/41);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 142: // stmnt ::= directive 
            {
              CUP$result = new symbol(/*stmnt*/41);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 141: // stmnt ::= instruction 
            {
              CUP$result = new symbol(/*stmnt*/41);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 140: // statement ::= NT$1 stmnt SEP 
            {
              CUP$result = new symbol(/*statement*/39);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 139: // NT$1 ::= 
            {
              CUP$result = new java_cup.runtime.token(/*NT$1*/106);
               classFile.setLine(scanner.token_line_num); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 138: // statements ::= statement 
            {
              CUP$result = new symbol(/*statements*/40);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 137: // statements ::= statements statement 
            {
              CUP$result = new symbol(/*statements*/40);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 136: // endmethod ::= DEND METHOD SEP 
            {
              CUP$result = new symbol(/*endmethod*/17);
               classFile.endMethod(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 135: // defmethod ::= DMETHOD access Word SEP 
            {
              CUP$result = new symbol(/*defmethod*/15);
               String split[] = ScannerUtils.splitMethodSignature((/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val);
           classFile.newMethod(split[0], split[1], (/*i*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 134: // method_spec ::= defmethod endmethod 
            {
              CUP$result = new symbol(/*method_spec*/34);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 133: // method_spec ::= defmethod statements endmethod 
            {
              CUP$result = new symbol(/*method_spec*/34);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 132: // method_list ::= method_spec 
            {
              CUP$result = new symbol(/*method_list*/33);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 131: // method_list ::= method_list method_spec 
            {
              CUP$result = new symbol(/*method_list*/33);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 130: // methods ::= 
            {
              CUP$result = new symbol(/*methods*/35);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 129: // methods ::= method_list 
            {
              CUP$result = new symbol(/*methods*/35);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 128: // inner_outer ::= 
            {
              CUP$result = new str_token(/*inner_outer*/4);
               ((str_token)CUP$result).str_val = null; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 127: // inner_outer ::= OUTER classname 
            {
              CUP$result = new str_token(/*inner_outer*/4);
               ((str_token)CUP$result).str_val = (/*w*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 126: // inner_inner ::= 
            {
              CUP$result = new str_token(/*inner_inner*/3);
               ((str_token)CUP$result).str_val = null; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 125: // inner_inner ::= INNER classname 
            {
              CUP$result = new str_token(/*inner_inner*/3);
               ((str_token)CUP$result).str_val = (/*w*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 124: // inner_name ::= 
            {
              CUP$result = new str_token(/*inner_name*/2);
               ((str_token)CUP$result).str_val = null; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 123: // inner_name ::= Word 
            {
              CUP$result = new str_token(/*inner_name*/2);
               ((str_token)CUP$result).str_val = (/*w*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 122: // inner_spec ::= DINNER INTERFACE access inner_name inner_inner inner_outer SEP 
            {
              CUP$result = new symbol(/*inner_spec*/72);
               classFile.addInner((short)((/*a*/(int_token)CUP$stack.elementAt(CUP$top-4)).int_val |
                              RuntimeConstants.ACC_INTERFACE),
                                (/*n*/(str_token)CUP$stack.elementAt(CUP$top-3)).str_val, (/*i*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*o*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 121: // inner_spec ::= DINNER CLASS access inner_name inner_inner inner_outer SEP 
            {
              CUP$result = new symbol(/*inner_spec*/72);
               classFile.addInner((short)(/*a*/(int_token)CUP$stack.elementAt(CUP$top-4)).int_val,
                              (/*n*/(str_token)CUP$stack.elementAt(CUP$top-3)).str_val, (/*i*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*o*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 120: // inner_list ::= inner_spec 
            {
              CUP$result = new symbol(/*inner_list*/71);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 119: // inner_list ::= inner_list inner_spec 
            {
              CUP$result = new symbol(/*inner_list*/71);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 118: // inners ::= 
            {
              CUP$result = new symbol(/*inners*/70);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 117: // inners ::= inner_list 
            {
              CUP$result = new symbol(/*inners*/70);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 116: // any_item ::= item 
            {
              CUP$result = new var_token(/*any_item*/8);
               ((var_token)CUP$result).var_val = (/*v*/(var_token)CUP$stack.elementAt(CUP$top-0)).var_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 115: // any_item ::= Word 
            {
              CUP$result = new var_token(/*any_item*/8);
               ((var_token)CUP$result).var_val = (/*w*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 114: // item ::= Str 
            {
              CUP$result = new var_token(/*item*/7);
               ((var_token)CUP$result).var_val = (/*s*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 113: // item ::= Num 
            {
              CUP$result = new var_token(/*item*/7);
               ((var_token)CUP$result).var_val = (/*n*/(num_token)CUP$stack.elementAt(CUP$top-0)).num_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 112: // item ::= Int 
            {
              CUP$result = new var_token(/*item*/7);
               ((var_token)CUP$result).var_val = new Integer((/*i*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 111: // field_ext_expr ::= DANNOTATION ann_clf_expr ann_arglist endannotationsep 
            {
              CUP$result = new symbol(/*field_ext_expr*/69);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 110: // field_ext_expr ::= DDEPRECATED deprecated_expr SEP 
            {
              CUP$result = new symbol(/*field_ext_expr*/69);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 109: // field_ext_expr ::= DATTRIBUTE generic_expr SEP 
            {
              CUP$result = new symbol(/*field_ext_expr*/69);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 108: // field_ext_expr ::= DSIGNATURE signature_expr SEP 
            {
              CUP$result = new symbol(/*field_ext_expr*/69);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 107: // field_ext_list ::= field_ext_expr 
            {
              CUP$result = new symbol(/*field_ext_list*/68);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 106: // field_ext_list ::= field_ext_list field_ext_expr 
            {
              CUP$result = new symbol(/*field_ext_list*/68);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 105: // field_exts ::= 
            {
              CUP$result = new symbol(/*field_exts*/67);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 104: // field_exts ::= field_ext_list 
            {
              CUP$result = new symbol(/*field_exts*/67);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 103: // endfield ::= DEND FIELD SEP 
            {
              CUP$result = new symbol(/*endfield*/66);
               classFile.endField(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 102: // field_start ::= access Word Word optional_default SEP 
            {
              CUP$result = new symbol(/*field_start*/65);
               classFile.beginField((short)(/*a*/(int_token)CUP$stack.elementAt(CUP$top-4)).int_val, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-3)).str_val,
                              (/*desc*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*v*/(var_token)CUP$stack.elementAt(CUP$top-1)).var_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 101: // optional_default ::= 
            {
              CUP$result = new var_token(/*optional_default*/6);
               ((var_token)CUP$result).var_val = null; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 100: // optional_default ::= EQ item 
            {
              CUP$result = new var_token(/*optional_default*/6);
               ((var_token)CUP$result).var_val = (/*v*/(var_token)CUP$stack.elementAt(CUP$top-0)).var_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 99: // field_spec ::= DFIELD field_start field_exts endfield 
            {
              CUP$result = new symbol(/*field_spec*/19);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 98: // field_spec ::= DFIELD access Word Word optional_default SEP 
            {
              CUP$result = new symbol(/*field_spec*/19);
               classFile.addField((short)(/*a*/(int_token)CUP$stack.elementAt(CUP$top-4)).int_val, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-3)).str_val, (/*desc*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val,
                               null, (/*v*/(var_token)CUP$stack.elementAt(CUP$top-1)).var_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 97: // field_spec ::= DFIELD access Word Word SIGNATURE Str optional_default SEP 
            {
              CUP$result = new symbol(/*field_spec*/19);
               classFile.addField((short)(/*a*/(int_token)CUP$stack.elementAt(CUP$top-6)).int_val, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-5)).str_val, (/*desc*/(str_token)CUP$stack.elementAt(CUP$top-4)).str_val,
                              (/*sig*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*v*/(var_token)CUP$stack.elementAt(CUP$top-1)).var_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 96: // field_list ::= field_spec 
            {
              CUP$result = new symbol(/*field_list*/18);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 95: // field_list ::= field_list field_spec 
            {
              CUP$result = new symbol(/*field_list*/18);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 94: // fields ::= 
            {
              CUP$result = new symbol(/*fields*/20);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 93: // fields ::= field_list 
            {
              CUP$result = new symbol(/*fields*/20);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 92: // generic_expr ::= Word Str 
            {
              CUP$result = new symbol(/*generic_expr*/64);
               classFile.addGenericAttr((/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*file*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 91: // generic_spec ::= DATTRIBUTE generic_expr SEP 
            {
              CUP$result = new symbol(/*generic_spec*/63);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 90: // generic_list ::= generic_spec 
            {
              CUP$result = new symbol(/*generic_list*/62);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 89: // generic_list ::= generic_list generic_spec 
            {
              CUP$result = new symbol(/*generic_list*/62);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 88: // generic_attributes ::= 
            {
              CUP$result = new symbol(/*generic_attributes*/61);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 87: // generic_attributes ::= generic_list 
            {
              CUP$result = new symbol(/*generic_attributes*/61);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 86: // enclosing_spec ::= 
            {
              CUP$result = new symbol(/*enclosing_spec*/53);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 85: // enclosing_spec ::= DENCLOSING METHOD Word SEP 
            {
              CUP$result = new symbol(/*enclosing_spec*/53);
               classFile.setEnclosingMethod((/*w*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 84: // debug_spec ::= DDEBUG Str SEP 
            {
              CUP$result = new symbol(/*debug_spec*/58);
               classFile.setSourceDebugExtension((/*s*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 83: // debug_list ::= debug_spec 
            {
              CUP$result = new symbol(/*debug_list*/57);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 82: // debug_list ::= debug_list debug_spec 
            {
              CUP$result = new symbol(/*debug_list*/57);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 81: // debug_extension ::= 
            {
              CUP$result = new symbol(/*debug_extension*/52);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 80: // debug_extension ::= debug_list 
            {
              CUP$result = new symbol(/*debug_extension*/52);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 79: // ann_def_expr ::= Word Word 
            {
              CUP$result = new symbol(/*ann_def_expr*/87);
               classFile.addAnnotationField(null, (/*dsc*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*sub*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 78: // ann_def_expr ::= Word 
            {
              CUP$result = new symbol(/*ann_def_expr*/87);
               classFile.addAnnotationField(null, (/*dsc*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val, null); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 77: // ann_def_val ::= ann_def_expr EQ ann_value_list 
            {
              CUP$result = new symbol(/*ann_def_val*/84);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 76: // ann_nest ::= SEP 
            {
              CUP$result = new symbol(/*ann_nest*/89);
               classFile.nestAnnotation(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 75: // ann_ann_value ::= DANNOTATION ann_nest ann_arglist endannotationsep 
            {
              CUP$result = new symbol(/*ann_ann_value*/91);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 74: // ann_ann_list ::= ann_ann_value 
            {
              CUP$result = new symbol(/*ann_ann_list*/92);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 73: // ann_ann_list ::= ann_ann_list ann_ann_value 
            {
              CUP$result = new symbol(/*ann_ann_list*/92);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 72: // ann_value ::= any_item 
            {
              CUP$result = new symbol(/*ann_value*/86);
               classFile.addAnnotationValue((/*v*/(var_token)CUP$stack.elementAt(CUP$top-0)).var_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 71: // ann_value_items ::= ann_value 
            {
              CUP$result = new symbol(/*ann_value_items*/85);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 70: // ann_value_items ::= ann_value_items ann_value 
            {
              CUP$result = new symbol(/*ann_value_items*/85);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 69: // ann_value_list ::= ann_ann_list 
            {
              CUP$result = new symbol(/*ann_value_list*/93);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 68: // ann_value_list ::= ann_value_items SEP 
            {
              CUP$result = new symbol(/*ann_value_list*/93);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 67: // ann_def_spec ::= DEFAULT SEP 
            {
              CUP$result = new symbol(/*ann_def_spec*/83);
               classFile.addAnnotation(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // ann_arg_expr ::= Word Word Word 
            {
              CUP$result = new symbol(/*ann_arg_expr*/88);
               classFile.addAnnotationField((/*n*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*dsc*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*sub*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // ann_arg_expr ::= Word Word 
            {
              CUP$result = new symbol(/*ann_arg_expr*/88);
               classFile.addAnnotationField((/*n*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*dsc*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val, null); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // ann_arg_spec ::= ann_arg_expr EQ ann_value_list 
            {
              CUP$result = new symbol(/*ann_arg_spec*/82);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // ann_arg_list ::= ann_arg_spec 
            {
              CUP$result = new symbol(/*ann_arg_list*/81);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // ann_arg_list ::= ann_arg_list ann_arg_spec 
            {
              CUP$result = new symbol(/*ann_arg_list*/81);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // ann_arglist ::= 
            {
              CUP$result = new symbol(/*ann_arglist*/80);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // ann_arglist ::= ann_arg_list 
            {
              CUP$result = new symbol(/*ann_arglist*/80);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // ann_met_expr ::= INVISIBLEPARAM Int classname SEP 
            {
              CUP$result = new symbol(/*ann_met_expr*/79);
               classFile.addAnnotation(false, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // ann_met_expr ::= VISIBLEPARAM Int classname SEP 
            {
              CUP$result = new symbol(/*ann_met_expr*/79);
               classFile.addAnnotation(true, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // ann_met_expr ::= INVISIBLE classname SEP 
            {
              CUP$result = new symbol(/*ann_met_expr*/79);
               classFile.addAnnotation(false, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // ann_met_expr ::= VISIBLE classname SEP 
            {
              CUP$result = new symbol(/*ann_met_expr*/79);
               classFile.addAnnotation(true, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // ann_clf_expr ::= INVISIBLE classname SEP 
            {
              CUP$result = new symbol(/*ann_clf_expr*/78);
               classFile.addAnnotation(false, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // ann_clf_expr ::= VISIBLE classname SEP 
            {
              CUP$result = new symbol(/*ann_clf_expr*/78);
               classFile.addAnnotation(true, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // ann_cls_expr ::= DANNOTATION ann_clf_expr 
            {
              CUP$result = new symbol(/*ann_cls_expr*/77);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // endannotation ::= DEND ANNOTATION 
            {
              CUP$result = new symbol(/*endannotation*/76);
               classFile.endAnnotation(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // endannotationsep ::= endannotation SEP 
            {
              CUP$result = new symbol(/*endannotationsep*/90);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // ann_cls_spec ::= ann_cls_expr ann_arglist endannotationsep 
            {
              CUP$result = new symbol(/*ann_cls_spec*/75);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // ann_cls_list ::= ann_cls_spec 
            {
              CUP$result = new symbol(/*ann_cls_list*/74);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // ann_cls_list ::= ann_cls_list ann_cls_spec 
            {
              CUP$result = new symbol(/*ann_cls_list*/74);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // annotations ::= 
            {
              CUP$result = new symbol(/*annotations*/73);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // annotations ::= ann_cls_list 
            {
              CUP$result = new symbol(/*annotations*/73);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // implements_spec ::= DIMPLEMENTS classname SEP 
            {
              CUP$result = new symbol(/*implements_spec*/24);
               classFile.addInterface((/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // implements_list ::= implements_spec 
            {
              CUP$result = new symbol(/*implements_list*/23);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // implements_list ::= implements_list implements_spec 
            {
              CUP$result = new symbol(/*implements_list*/23);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // implements ::= 
            {
              CUP$result = new symbol(/*implements*/22);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // implements ::= implements_list 
            {
              CUP$result = new symbol(/*implements*/22);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // super_spec ::= DSUPER classname SEP 
            {
              CUP$result = new symbol(/*super_spec*/42);
               classFile.setSuperClass((/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // access_item ::= SYNTHETIC 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_SYNTHETIC; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // access_item ::= STRICT 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_STRICT; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // access_item ::= VARARGS 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_VARARGS; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // access_item ::= BRIDGE 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_BRIDGE; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // access_item ::= ENUM 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_ENUM; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // access_item ::= ANNOTATION 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_ANNOTATION; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // access_item ::= ABSTRACT 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_ABSTRACT; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // access_item ::= INTERFACE 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_INTERFACE; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // access_item ::= NATIVE 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_NATIVE; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // access_item ::= TRANSIENT 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_TRANSIENT; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // access_item ::= VOLATILE 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_VOLATILE; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // access_item ::= SYNCHRONIZED 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_SYNCHRONIZED; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // access_item ::= FINAL 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_FINAL; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // access_item ::= STATIC 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_STATIC; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // access_item ::= PROTECTED 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_PROTECTED; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // access_item ::= PRIVATE 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_PRIVATE; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // access_item ::= PUBLIC 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= RuntimeConstants.ACC_PUBLIC; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // access_items ::= access_item 
            {
              CUP$result = new symbol(/*access_items*/10);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // access_items ::= access_items access_item 
            {
              CUP$result = new symbol(/*access_items*/10);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // access_list ::= 
            {
              CUP$result = new symbol(/*access_list*/11);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // access_list ::= access_items 
            {
              CUP$result = new symbol(/*access_list*/11);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // access ::= NT$0 access_list 
            {
              CUP$result = new int_token(/*access*/104);
               ((int_token)CUP$result).int_val = access_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // NT$0 ::= 
            {
              CUP$result = new java_cup.runtime.token(/*NT$0*/105);
               access_val = 0; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // classname ::= Word 
            {
              CUP$result = new str_token(/*classname*/1);
               ((str_token)CUP$result).str_val = ScannerUtils.convertDots((/*w*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // class_spec ::= DINTERFACE access classname SEP 
            {
              CUP$result = new symbol(/*class_spec*/13);
               classFile.setClass((/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val,
                (short)((/*a*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val |
                        RuntimeConstants.ACC_SUPER |
                        RuntimeConstants.ACC_INTERFACE)); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // class_spec ::= DCLASS access classname SEP 
            {
              CUP$result = new symbol(/*class_spec*/13);
               classFile.setClass((/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val,
                (short)((/*a*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val | RuntimeConstants.ACC_SUPER)); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // source_spec ::= 
            {
              CUP$result = new symbol(/*source_spec*/38);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // source_spec ::= DSOURCE Word SEP 
            {
              CUP$result = new symbol(/*source_spec*/38);
               classFile.setSource((/*w*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // source_spec ::= DSOURCE Str SEP 
            {
              CUP$result = new symbol(/*source_spec*/38);
               classFile.setSource((/*s*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // bytecode_spec ::= 
            {
              CUP$result = new symbol(/*bytecode_spec*/51);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // bytecode_spec ::= DBYTECODE Num SEP 
            {
              CUP$result = new symbol(/*bytecode_spec*/51);
               classFile.setVersion((/*n*/(num_token)CUP$stack.elementAt(CUP$top-1)).num_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // deprecated_expr ::= 
            {
              CUP$result = new symbol(/*deprecated_expr*/60);
               classFile.setDeprecated(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // deprecated_spec ::= 
            {
              CUP$result = new symbol(/*deprecated_spec*/59);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // deprecated_spec ::= DDEPRECATED deprecated_expr SEP 
            {
              CUP$result = new symbol(/*deprecated_spec*/59);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // signature_expr ::= Str 
            {
              CUP$result = new symbol(/*signature_expr*/55);
               classFile.setSignature((/*sig*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // signature_spec ::= 
            {
              CUP$result = new symbol(/*signature_spec*/54);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // signature_spec ::= DSIGNATURE signature_expr SEP 
            {
              CUP$result = new symbol(/*signature_spec*/54);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // jasmin_header ::= bytecode_spec source_spec class_spec super_spec implements signature_spec enclosing_spec deprecated_spec annotations generic_attributes debug_extension 
            {
              CUP$result = new symbol(/*jasmin_header*/56);
               classFile.endHeader(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // $START ::= jas_file EOF 
            {
              CUP$result = new java_cup.runtime.token(/*$START*/0);
              
            }
          /* ACCEPT */
          CUP$parser.done_parsing();
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // jas_file ::= jasmin_header inners fields methods 
            {
              CUP$result = new symbol(/*jas_file*/25);
              
            }
          return CUP$result;

          /* . . . . . .*/
          default:
            throw new Exception(
               "Invalid action number found in internal parse table");

        }
    }
};





© 2015 - 2024 Weber Informatics LLC | Privacy Policy