
//----------------------------------------------------
// The following code was generated by Java(tm) CUP v0.9d
// Thu Dec 11 17:10:00 CET 2008
//----------------------------------------------------

package dasm;

import java_cup.runtime.*;
import dasm.tokens.number_token;
import dasm.tokens.relative_number_token;
import dasm.tokens.variant_token;

public class parser extends java_cup.runtime.lr_parser {

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

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

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

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

    }

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

    return scanner.next_token();

    }



    public boolean isInterface;
    public Scanner scanner;
    public DAsm dAsm;

    public void report_error(String message, Object info) {
            if(info != null)
                dAsm.report_error("Warning: " + message + "(" + info.toString() + ")");
            else
                dAsm.report_error("Warning: " + message);
    }

    public void report_fatal_error(String message, Object info)  {
            if(info != null)
                dAsm.report_error("Error: " + message + "(" + info.toString() + ")");
            else
                dAsm.report_error("Error: " + message); 
    }

    parser(DAsm dAsm, Scanner scanner) {
        super();

        this.scanner = scanner;
        this.dAsm = dAsm;
    }

};

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


    int access_val;
    public DAsm dAsm;
    public Scanner scanner;
    public boolean isInterface;


  /** 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 208: // ss_table_end ::= SPARSE_SWITCH_END 
            {
              CUP$result = new symbol(/*ss_table_end*/76);
               dAsm.endSwitch(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 207: // ss_table_entry ::= Int COLON Relative SEP 
            {
              CUP$result = new symbol(/*ss_table_entry*/75);
               dAsm.addSparseSwitchData((/*i*/(int_token)CUP$stack.elementAt(CUP$top-3)).int_val, (/*off*/(relative_number_token)CUP$stack.elementAt(CUP$top-1)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 206: // ss_table_entry ::= Int COLON Word SEP 
            {
              CUP$result = new symbol(/*ss_table_entry*/75);
               dAsm.addSparseSwitchData((/*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 205: // ss_table_list ::= ss_table_entry 
            {
              CUP$result = new symbol(/*ss_table_list*/74);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 204: // ss_table_list ::= ss_table_list ss_table_entry 
            {
              CUP$result = new symbol(/*ss_table_list*/74);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 203: // ss_table_args ::= Word SEP 
            {
              CUP$result = new symbol(/*ss_table_args*/73);
               dAsm.newSparseSwitch((/*r*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 202: // ss_table ::= ss_table_args ss_table_list ss_table_end 
            {
              CUP$result = new symbol(/*ss_table*/72);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 201: // ps_table_end ::= PACKED_SWITCH_END 
            {
              CUP$result = new symbol(/*ps_table_end*/71);
               dAsm.endSwitch(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 200: // ps_table_entry ::= Relative SEP 
            {
              CUP$result = new symbol(/*ps_table_entry*/70);
               dAsm.addPackedSwitchData((/*target*/(relative_number_token)CUP$stack.elementAt(CUP$top-1)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 199: // ps_table_entry ::= Word SEP 
            {
              CUP$result = new symbol(/*ps_table_entry*/70);
               dAsm.addPackedSwitchData((/*target*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 198: // ps_table_list ::= ps_table_entry 
            {
              CUP$result = new symbol(/*ps_table_list*/69);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 197: // ps_table_list ::= ps_table_list ps_table_entry 
            {
              CUP$result = new symbol(/*ps_table_list*/69);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 196: // ps_table_args ::= Word Int SEP 
            {
              CUP$result = new symbol(/*ps_table_args*/68);
               dAsm.newPackedSwitch((/*r*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*k*/(int_token)CUP$stack.elementAt(CUP$top-1)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 195: // ps_table ::= ps_table_args ps_table_list ps_table_end 
            {
              CUP$result = new symbol(/*ps_table*/67);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 194: // fa_data_end ::= FILL_ARRAY_DATA_END 
            {
              CUP$result = new symbol(/*fa_data_end*/66);
               dAsm.endFillArrayData(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 193: // fa_data_entry ::= Int SEP 
            {
              CUP$result = new symbol(/*fa_data_entry*/65);
               dAsm.addFillArrayData(new Integer((/*data*/(int_token)CUP$stack.elementAt(CUP$top-1)).int_val)); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 192: // fa_data_entry ::= Num SEP 
            {
              CUP$result = new symbol(/*fa_data_entry*/65);
               dAsm.addFillArrayData((/*data*/(number_token)CUP$stack.elementAt(CUP$top-1)).number_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 191: // fa_data_list ::= fa_data_entry 
            {
              CUP$result = new symbol(/*fa_data_list*/64);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 190: // fa_data_list ::= fa_data_list fa_data_entry 
            {
              CUP$result = new symbol(/*fa_data_list*/64);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 189: // fa_data_args ::= Word Word SEP 
            {
              CUP$result = new symbol(/*fa_data_args*/63);
               dAsm.newFillArrayData((/*r*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*t*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 188: // fa_data ::= fa_data_args fa_data_list fa_data_end 
            {
              CUP$result = new symbol(/*fa_data*/62);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 187: // complex_instruction ::= SPARSE_SWITCH ss_table 
            {
              CUP$result = new symbol(/*complex_instruction*/14);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 186: // complex_instruction ::= PACKED_SWITCH ps_table 
            {
              CUP$result = new symbol(/*complex_instruction*/14);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 185: // complex_instruction ::= FILL_ARRAY_DATA fa_data 
            {
              CUP$result = new symbol(/*complex_instruction*/14);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 184: // simple_instruction ::= Insn Word Word Word Word 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addOpcode((/*i*/(str_token)CUP$stack.elementAt(CUP$top-4)).str_val, (/*n1*/(str_token)CUP$stack.elementAt(CUP$top-3)).str_val, (/*n2*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*n3*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n4*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 183: // simple_instruction ::= Insn Word Str 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addOpcode((/*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 182: // simple_instruction ::= Insn Word Word Int 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addOpcode((/*i*/(str_token)CUP$stack.elementAt(CUP$top-3)).str_val, (/*n1*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*n2*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n3*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 181: // simple_instruction ::= Insn Word Word Relative 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addRelativeGoto((/*i*/(str_token)CUP$stack.elementAt(CUP$top-3)).str_val, (/*n1*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*n2*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n3*/(relative_number_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 180: // simple_instruction ::= Insn Word Word Word 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addOpcode((/*i*/(str_token)CUP$stack.elementAt(CUP$top-3)).str_val, (/*n1*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*n2*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n3*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 179: // simple_instruction ::= Insn Word Relative 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addRelativeGoto((/*i*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*n1*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n2*/(relative_number_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 178: // simple_instruction ::= Insn Word Word 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addOpcode((/*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 177: // simple_instruction ::= Insn Word Int 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addOpcode((/*i*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*n1*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, new Integer((/*n2*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val)); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 176: // simple_instruction ::= Insn Word Num 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addOpcode((/*i*/(str_token)CUP$stack.elementAt(CUP$top-2)).str_val, (/*n1*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n2*/(number_token)CUP$stack.elementAt(CUP$top-0)).number_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 175: // simple_instruction ::= Insn Relative 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addRelativeGoto((/*i*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n*/(relative_number_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 174: // simple_instruction ::= Insn Word 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addOpcode((/*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 173: // simple_instruction ::= Insn 
            {
              CUP$result = new symbol(/*simple_instruction*/34);
               dAsm.addOpcode((/*i*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 169: // catch_expr ::= classname FROM Int TO Int USING Int 
            {
              CUP$result = new symbol(/*catch_expr*/12);
               dAsm.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 168: // catch_expr ::= classname FROM Word TO Word USING Word 
            {
              CUP$result = new symbol(/*catch_expr*/12);
               dAsm.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 167: // throws_expr ::= classname 
            {
              CUP$result = new symbol(/*throws_expr*/41);
               dAsm.addThrow((/*s*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val); 
            }
          return CUP$result;

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 164: // limit_expr ::= REGS Int 
            {
              CUP$result = new symbol(/*limit_expr*/29);
               dAsm.setRegsSize((/*v*/(int_token)CUP$stack.elementAt(CUP$top-0)).int_val); 
            }
          return CUP$result;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 162: // 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 161: // var_expr ::= Int IS Word Word optional_signature FROM Int TO Int 
            {
              CUP$result = new symbol(/*var_expr*/42);
               dAsm.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 160: // var_expr ::= Int IS Word Word optional_signature 
            {
              CUP$result = new symbol(/*var_expr*/42);
               dAsm.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 159: // var_expr ::= Int IS Word Word optional_signature FROM Word TO Word 
            {
              CUP$result = new symbol(/*var_expr*/42);
               dAsm.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 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*/28);
               dAsm.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*/28);
               dAsm.plantLabel((/*label*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val); 
            }
          return CUP$result;

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

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

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

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

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

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

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 135: // defmethod ::= DMETHOD access Word SEP 
            {
              CUP$result = new symbol(/*defmethod*/15);
               String split[] = Utils.getMethodSignatureFromString((/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val);
           dAsm.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*/31);
              
            }
          return CUP$result;

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 129: // methods ::= method_list 
            {
              CUP$result = new symbol(/*methods*/32);
              
            }
          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*/61);
               dAsm.addInner((short)((/*a*/(int_token)CUP$stack.elementAt(CUP$top-4)).int_val |
                              com.android.dx.rop.code.AccessFlags.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*/61);
               dAsm.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*/60);
              
            }
          return CUP$result;

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

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

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 113: // item ::= Num 
            {
              CUP$result = new variant_token(/*item*/7);
               ((variant_token)CUP$result).variant_val = (/*n*/(number_token)CUP$stack.elementAt(CUP$top-0)).number_val; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 112: // item ::= Int 
            {
              CUP$result = new variant_token(/*item*/7);
               ((variant_token)CUP$result).variant_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*/58);
              
            }
          return CUP$result;

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

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

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

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

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 102: // field_start ::= access Word Word optional_default SEP 
            {
              CUP$result = new symbol(/*field_start*/54);
               dAsm.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*/(variant_token)CUP$stack.elementAt(CUP$top-1)).variant_val); 
            }
          return CUP$result;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 100: // optional_default ::= EQ item 
            {
              CUP$result = new variant_token(/*optional_default*/6);
               ((variant_token)CUP$result).variant_val = (/*v*/(variant_token)CUP$stack.elementAt(CUP$top-0)).variant_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);
               dAsm.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*/(variant_token)CUP$stack.elementAt(CUP$top-1)).variant_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 97: // field_spec ::= DFIELD access Word Word SIGNATURE Str optional_default SEP 
            {
              CUP$result = new symbol(/*field_spec*/19);
               dAsm.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*/(variant_token)CUP$stack.elementAt(CUP$top-1)).variant_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*/53);
               dAsm.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*/52);
              
            }
          return CUP$result;

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 86: // ann_def_expr ::= Word Word 
            {
              CUP$result = new symbol(/*ann_def_expr*/91);
               //TODO: NOT SUPPORTED dAsm.addAnnotationField(null, (/*dsc*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*sub*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 85: // ann_def_expr ::= Word 
            {
              CUP$result = new symbol(/*ann_def_expr*/91);
               //TODO: NOT SUPPORTED dAsm.addAnnotationField(null, (/*dsc*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val, null);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 83: // ann_nest ::= SEP 
            {
              CUP$result = new symbol(/*ann_nest*/93);
               //TODO: NOT SUPPORTED dAsm.nestAnnotation();
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 79: // ann_value ::= any_item 
            {
              CUP$result = new symbol(/*ann_value*/90);
               //TODO: NOT SUPPORTED dAsm.addAnnotationValue((/*v*/(variant_token)CUP$stack.elementAt(CUP$top-0)).variant_val);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 74: // ann_def_spec ::= DEFAULT SEP 
            {
              CUP$result = new symbol(/*ann_def_spec*/87);
               //TODO: NOT SUPPORTED dAsm.addAnnotation();
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 73: // ann_arg_expr ::= Word Word Word 
            {
              CUP$result = new symbol(/*ann_arg_expr*/92);
               //TODO: NOT SUPPORTED dAsm.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);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 72: // ann_arg_expr ::= Word Word 
            {
              CUP$result = new symbol(/*ann_arg_expr*/92);
               //TODO: NOT SUPPORTED dAsm.addAnnotationField((/*n*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*dsc*/(str_token)CUP$stack.elementAt(CUP$top-0)).str_val, null);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

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

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // ann_met_expr ::= INVISIBLEPARAM Int classname SEP 
            {
              CUP$result = new symbol(/*ann_met_expr*/83);
               //TODO: NOT SUPPORTED dAsm.addAnnotation(false, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // ann_met_expr ::= VISIBLEPARAM Int classname SEP 
            {
              CUP$result = new symbol(/*ann_met_expr*/83);
               //TODO: NOT SUPPORTED dAsm.addAnnotation(true, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val, (/*n*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // ann_met_expr ::= INVISIBLE classname SEP 
            {
              CUP$result = new symbol(/*ann_met_expr*/83);
               //TODO: NOT SUPPORTED dAsm.addAnnotation(false, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // ann_met_expr ::= VISIBLE classname SEP 
            {
              CUP$result = new symbol(/*ann_met_expr*/83);
               //TODO: NOT SUPPORTED dAsm.addAnnotation(true, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // ann_clf_expr ::= INVISIBLE classname SEP 
            {
              CUP$result = new symbol(/*ann_clf_expr*/82);
               //TODO: NOT SUPPORTED dAsm.addAnnotation(false, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // ann_clf_expr ::= VISIBLE classname SEP 
            {
              CUP$result = new symbol(/*ann_clf_expr*/82);
               //TODO: NOT SUPPORTED dAsm.addAnnotation(true, (/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val);
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // endannotation ::= DEND ANNOTATION 
            {
              CUP$result = new symbol(/*endannotation*/80);
               //TODO: NOT SUPPORTED dAsm.endAnnotation(); 
            dAsm.report_error("WARNING: Annotations are not supported"); 
            }
          return CUP$result;

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

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

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // deprecated_expr ::= 
            {
              CUP$result = new symbol(/*deprecated_expr*/49);
               /*dAsm.setDeprecated();*/dAsm.report_error("WARNING: @deprecated is not supported"); 
            }
          return CUP$result;

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

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

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

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

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

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

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

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

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // super_spec ::= 
            {
              CUP$result = new symbol(/*super_spec*/39);
               if(isInterface == false) 
               dAsm.setSuperClass("java/lang/Object"); 
           else 
           // Dalvik requires interfaces to have superclass
               dAsm.setSuperClass("java/lang/Object"); 
            }
          return CUP$result;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // access_item ::= DECLARED_SYNCHRONIZED 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_DECLARED_SYNCHRONIZED; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // access_item ::= SYNTHETIC 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_SYNTHETIC; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // access_item ::= STRICT 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_STRICT; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // access_item ::= VARARGS 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_VARARGS; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // access_item ::= BRIDGE 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_BRIDGE; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // access_item ::= ENUM 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_ENUM; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // access_item ::= ANNOTATION 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_ANNOTATION; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // access_item ::= ABSTRACT 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_ABSTRACT; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // access_item ::= INTERFACE 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_INTERFACE; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // access_item ::= NATIVE 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_NATIVE; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // access_item ::= TRANSIENT 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_TRANSIENT; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // access_item ::= VOLATILE 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_VOLATILE; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // access_item ::= SYNCHRONIZED 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_SYNCHRONIZED; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // access_item ::= FINAL 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_FINAL; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // access_item ::= STATIC 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_STATIC; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // access_item ::= PROTECTED 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_PROTECTED; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // access_item ::= PRIVATE 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_PRIVATE; 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // access_item ::= PUBLIC 
            {
              CUP$result = new symbol(/*access_item*/9);
               access_val |= com.android.dx.rop.code.AccessFlags.ACC_PUBLIC; 
            }
          return CUP$result;

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

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

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

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // class_spec ::= DINTERFACE access classname SEP 
            {
              CUP$result = new symbol(/*class_spec*/13);
               isInterface = true;
           dAsm.setClass((/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val,
                ((/*a*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val |
                        com.android.dx.rop.code.AccessFlags.ACC_INTERFACE)); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // class_spec ::= DCLASS access classname SEP 
            {
              CUP$result = new symbol(/*class_spec*/13);
               isInterface = false;
           dAsm.setClass((/*name*/(str_token)CUP$stack.elementAt(CUP$top-1)).str_val,
                ((/*a*/(int_token)CUP$stack.elementAt(CUP$top-2)).int_val)); 
            }
          return CUP$result;

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // dex_version_spec ::= DBYTECODE Num SEP 
            {
              CUP$result = new symbol(/*dex_version_spec*/43);
               dAsm.setVersion((/*n*/(number_token)CUP$stack.elementAt(CUP$top-1)).number_val); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // dasm_header ::= dex_version_spec source_spec class_spec super_spec implements signature_spec enclosing_spec deprecated_spec annotations generic_attributes 
            {
              CUP$result = new symbol(/*dasm_header*/47);
               dAsm.endHeader(); 
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // dasm_file_class ::= dasm_header inners fields methods 
            {
              CUP$result = new symbol(/*dasm_file_class*/27);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // dasm_file_classes ::= dasm_file_class 
            {
              CUP$result = new symbol(/*dasm_file_classes*/26);
              
            }
          return CUP$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // dasm_file_classes ::= dasm_file_classes dasm_file_class 
            {
              CUP$result = new symbol(/*dasm_file_classes*/26);
              
            }
          return CUP$result;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // dasm_file ::= dasm_file_classes 
            {
              CUP$result = new symbol(/*dasm_file*/25);
              
            }
          return CUP$result;

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

        }
    }
};

