Blob Blame History Raw
diff -Nru JacORB-R_2_3_2_jboss-5/src/org/jacorb/idl/parser.java JacORB-R_2_3_2_jboss-5.java_cup/src/org/jacorb/idl/parser.java
--- JacORB-R_2_3_2_jboss-5/src/org/jacorb/idl/parser.java	1970-01-01 01:00:00.000000000 +0100
+++ JacORB-R_2_3_2_jboss-5.java_cup/src/org/jacorb/idl/parser.java	2016-09-01 20:26:27.768244881 +0200
@@ -0,0 +1,4310 @@
+
+//----------------------------------------------------
+// The following code was generated by CUP v0.9e
+// Thu Sep 01 20:26:27 CEST 2016
+//----------------------------------------------------
+
+package org.jacorb.idl;
+
+import java.io.*;
+import java.util.*;
+import org.jacorb.idl.runtime.*;
+import org.apache.log.*;
+import org.apache.log.format.*;
+import org.apache.log.output.io.*;
+
+public class parser extends org.jacorb.idl.runtime.lr_parser {
+
+  /** constructor */
+  public parser() {super();}
+
+  /** production table */
+  protected static final short _production_table[][] = {
+        {0, 2},     {98, 0},     {7, 2},     {7, 1},     {9, 2}, 
+        {9, 1},     {8, 2},     {8, 2},     {8, 2},     {8, 2}, 
+        {8, 2},     {8, 2},     {10, 5},     {11, 6},     {11, 7}, 
+        {11, 7},     {11, 7},     {11, 2},     {11, 3},     {11, 3}, 
+        {11, 3},     {12, 2},     {12, 1},     {13, 2},     {13, 2}, 
+        {13, 2},     {13, 2},     {13, 2},     {95, 2},     {95, 1}, 
+        {95, 1},     {92, 3},     {92, 1},     {14, 1},     {14, 2}, 
+        {14, 3},     {14, 1},     {16, 1},     {16, 1},     {16, 1}, 
+        {17, 3},     {19, 7},     {19, 3},     {20, 2},     {20, 1}, 
+        {18, 7},     {18, 2},     {18, 6},     {21, 3},     {21, 2}, 
+        {21, 2},     {21, 5},     {21, 4},     {21, 1},     {21, 1}, 
+        {15, 1},     {22, 2},     {22, 1},     {23, 1},     {23, 1}, 
+        {23, 1},     {24, 4},     {24, 4},     {25, 7},     {25, 6}, 
+        {90, 1},     {90, 3},     {26, 3},     {27, 5},     {28, 1}, 
+        {28, 1},     {28, 1},     {28, 1},     {28, 1},     {28, 1}, 
+        {28, 1},     {28, 1},     {29, 1},     {31, 1},     {31, 3}, 
+        {32, 1},     {32, 3},     {33, 1},     {33, 3},     {34, 1}, 
+        {34, 3},     {34, 3},     {35, 1},     {35, 3},     {35, 3}, 
+        {36, 1},     {36, 3},     {36, 3},     {36, 3},     {37, 2}, 
+        {37, 1},     {6, 2},     {6, 1},     {6, 1},     {38, 1}, 
+        {38, 1},     {38, 3},     {74, 1},     {74, 2},     {74, 2}, 
+        {74, 1},     {74, 3},     {74, 1},     {74, 1},     {74, 1}, 
+        {74, 1},     {74, 1},     {75, 3},     {75, 2},     {75, 3}, 
+        {75, 2},     {30, 1},     {39, 1},     {39, 1},     {39, 1}, 
+        {39, 1},     {39, 1},     {45, 2},     {40, 2},     {41, 1}, 
+        {41, 1},     {46, 1},     {46, 1},     {46, 1},     {57, 1}, 
+        {57, 1},     {57, 1},     {57, 1},     {57, 1},     {57, 1}, 
+        {57, 1},     {47, 1},     {47, 1},     {47, 1},     {48, 1}, 
+        {48, 1},     {48, 1},     {94, 3},     {94, 1},     {77, 1}, 
+        {77, 1},     {78, 1},     {59, 1},     {59, 1},     {60, 1}, 
+        {61, 1},     {62, 1},     {62, 2},     {58, 1},     {58, 1}, 
+        {58, 2},     {58, 2},     {58, 1},     {58, 2},     {63, 1}, 
+        {64, 1},     {65, 2},     {66, 1},     {66, 1},     {67, 1}, 
+        {68, 1},     {69, 1},     {50, 5},     {50, 2},     {87, 1}, 
+        {87, 2},     {76, 3},     {52, 9},     {52, 2},     {44, 1}, 
+        {44, 1},     {44, 1},     {44, 1},     {44, 1},     {54, 1}, 
+        {54, 2},     {55, 3},     {88, 3},     {88, 2},     {88, 4}, 
+        {88, 3},     {56, 2},     {49, 5},     {96, 1},     {96, 3}, 
+        {53, 2},     {72, 6},     {72, 4},     {71, 4},     {71, 4}, 
+        {71, 1},     {71, 1},     {73, 6},     {79, 2},     {97, 1}, 
+        {97, 2},     {80, 3},     {85, 4},     {85, 5},     {85, 3}, 
+        {85, 4},     {86, 8},     {86, 8},     {86, 4},     {86, 4}, 
+        {93, 1},     {93, 3},     {51, 4},     {51, 5},     {84, 6}, 
+        {4, 1},     {4, 1},     {42, 1},     {42, 1},     {70, 1}, 
+        {91, 3},     {91, 2},     {89, 3},     {89, 1},     {81, 3}, 
+        {5, 1},     {5, 1},     {5, 1},     {82, 4},     {82, 1}, 
+        {83, 4},     {1, 4},     {1, 1},     {2, 1},     {2, 3}, 
+        {43, 1},     {43, 1},     {43, 1},     {3, 0}  };
+
+  /** access to production table */
+  public short[][] production_table() {return _production_table;}
+
+  /** parse action table */
+  protected static final short[][] _action_table = {
+    /*0*/{0,-239,2,-2,8,-2,10,-2,13,-2,14,-2,22,-2,23,-2,25,-2,26,-2,33,-2,40,-2,45,-2,47,-2,49,-2,-1,0},
+    /*1*/{2,30,8,27,10,8,13,28,14,11,22,29,23,14,25,21,26,13,33,23,40,12,45,24,47,26,49,17,-1,0},
+    /*2*/{0,5,-1,0},
+    /*3*/{0,-4,-1,0},
+    /*4*/{0,-1,-1,0},
+    /*5*/{53,429,-1,0},
+    /*6*/{53,428,-1,0},
+    /*7*/{49,422,-1,0},
+    /*8*/{53,421,-1,0},
+    /*9*/{53,-121,-1,0},
+    /*10*/{83,416,-1,0},
+    /*11*/{83,407,-1,0},
+    /*12*/{83,199,-1,0},
+    /*13*/{22,400,-1,0},
+    /*14*/{0,-6,2,30,8,27,10,8,13,28,14,11,22,29,23,14,25,21,26,13,33,23,40,12,45,24,47,26,49,17,64,-6,-1,0},
+    /*15*/{53,-38,-1,0},
+    /*16*/{83,363,-1,0},
+    /*17*/{53,-40,-1,0},
+    /*18*/{53,362,-1,0},
+    /*19*/{53,-122,-1,0},
+    /*20*/{83,358,-1,0},
+    /*21*/{53,357,-1,0},
+    /*22*/{22,351,-1,0},
+    /*23*/{3,85,5,80,7,66,12,94,13,28,17,308,18,82,24,63,27,78,28,91,37,317,38,89,39,81,40,12,46,72,47,26,48,74,51,90,52,92,78,71,83,77,-1,0},
+    /*24*/{53,344,-1,0},
+    /*25*/{83,284,-1,0},
+    /*26*/{5,80,7,66,12,94,17,279,18,82,24,63,27,78,28,91,38,89,39,81,46,72,51,90,52,92,78,71,83,77,-1,0},
+    /*27*/{83,264,-1,0},
+    /*28*/{83,259,-1,0},
+    /*29*/{22,36,49,37,-1,0},
+    /*30*/{53,-39,-1,0},
+    /*31*/{53,-120,-1,0},
+    /*32*/{53,-118,-1,0},
+    /*33*/{53,-119,-1,0},
+    /*34*/{0,-3,-1,0},
+    /*35*/{83,248,-1,0},
+    /*36*/{83,38,-1,0},
+    /*37*/{41,41,53,-43,57,39,63,-239,-1,0},
+    /*38*/{27,78,44,240,63,-54,78,71,83,77,-1,0},
+    /*39*/{63,-55,-1,0},
+    /*40*/{27,78,78,71,83,77,-1,0},
+    /*41*/{63,43,-1,0},
+    /*42*/{3,-239,4,46,5,-239,7,-239,8,27,12,-239,13,28,14,11,18,-239,24,-239,26,13,27,-239,28,-239,29,47,35,45,38,-239,39,-239,40,12,45,24,46,-239,47,26,48,-239,50,-239,51,-239,52,-239,64,-239,78,-239,83,-239,-1,0},
+    /*43*/{53,238,-1,0},
+    /*44*/{4,229,-1,0},
+    /*45*/{3,85,5,80,7,66,12,94,18,82,24,63,27,78,28,91,38,89,39,81,46,72,48,74,51,90,52,92,78,71,83,77,-1,0},
+    /*46*/{3,-216,5,-216,7,-216,12,-216,18,-216,24,-216,27,-216,28,-216,38,-216,39,-216,46,-216,48,-216,50,-216,51,-216,52,-216,78,-216,83,-216,-1,0},
+    /*47*/{53,205,-1,0},
+    /*48*/{3,85,5,80,7,66,12,94,18,82,24,63,27,78,28,91,38,89,39,81,46,72,48,74,50,93,51,90,52,92,78,71,83,77,-1,0},
+    /*49*/{3,-217,5,-217,7,-217,12,-217,18,-217,24,-217,27,-217,28,-217,38,-217,39,-217,46,-217,48,-217,50,-217,51,-217,52,-217,64,-45,78,-217,83,-217,-1,0},
+    /*50*/{53,60,-1,0},
+    /*51*/{53,59,-1,0},
+    /*52*/{53,58,-1,0},
+    /*53*/{64,57,-1,0},
+    /*54*/{3,-239,4,46,5,-239,7,-239,8,27,12,-239,13,28,14,11,18,-239,24,-239,26,13,27,-239,28,-239,29,47,35,45,38,-239,39,-239,40,12,45,24,46,-239,47,26,48,-239,50,-239,51,-239,52,-239,64,-239,78,-239,83,-239,-1,0},
+    /*55*/{64,-44,-1,0},
+    /*56*/{53,-42,-1,0},
+    /*57*/{3,-26,4,-26,5,-26,7,-26,8,-26,12,-26,13,-26,14,-26,15,-26,18,-26,24,-26,26,-26,27,-26,28,-26,29,-26,31,-26,32,-26,35,-26,38,-26,39,-26,40,-26,45,-26,46,-26,47,-26,48,-26,50,-26,51,-26,52,-26,64,-26,78,-26,83,-26,-1,0},
+    /*58*/{3,-28,4,-28,5,-28,7,-28,8,-28,12,-28,13,-28,14,-28,15,-28,18,-28,24,-28,26,-28,27,-28,28,-28,29,-28,31,-28,32,-28,35,-28,38,-28,39,-28,40,-28,45,-28,46,-28,47,-28,48,-28,50,-28,51,-28,52,-28,64,-28,78,-28,83,-28,-1,0},
+    /*59*/{3,-25,4,-25,5,-25,7,-25,8,-25,12,-25,13,-25,14,-25,15,-25,18,-25,24,-25,26,-25,27,-25,28,-25,29,-25,31,-25,32,-25,35,-25,38,-25,39,-25,40,-25,45,-25,46,-25,47,-25,48,-25,50,-25,51,-25,52,-25,64,-25,78,-25,83,-25,-1,0},
+    /*60*/{53,-134,54,-134,68,-134,83,-134,-1,0},
+    /*61*/{83,-237,-1,0},
+    /*62*/{12,204,24,168,53,-161,54,-161,68,-161,83,-161,-1,0},
+    /*63*/{53,-132,54,-132,68,-132,83,-132,-1,0},
+    /*64*/{78,159,83,-238,-1,0},
+    /*65*/{53,-163,54,-163,62,-163,68,-163,83,-163,-1,0},
+    /*66*/{83,170,-1,0},
+    /*67*/{53,-158,54,-158,62,-158,68,-158,83,-158,-1,0},
+    /*68*/{83,-218,-1,0},
+    /*69*/{83,-236,-1,0},
+    /*70*/{83,169,-1,0},
+    /*71*/{24,164,38,89,-1,0},
+    /*72*/{53,-131,54,-131,68,-131,83,-131,-1,0},
+    /*73*/{53,-136,54,-136,68,-136,83,-136,-1,0},
+    /*74*/{53,-148,54,-148,68,-148,83,-148,-1,0},
+    /*75*/{83,-219,-1,0},
+    /*76*/{41,-34,53,-34,54,-34,55,-34,57,-34,59,-34,60,-34,62,-34,63,-34,66,-34,68,-34,72,-34,73,-34,74,-34,75,-34,76,-34,78,-34,79,-34,80,-34,83,-34,-1,0},
+    /*77*/{41,-37,53,-37,54,-37,55,-37,57,-37,59,-37,60,-37,62,-37,63,-37,66,-37,68,-37,72,-37,73,-37,74,-37,75,-37,76,-37,78,-37,79,-37,80,-37,83,-37,-1,0},
+    /*78*/{53,-133,54,-133,68,-133,83,-133,-1,0},
+    /*79*/{53,-165,54,-165,62,-165,68,-165,83,-165,-1,0},
+    /*80*/{53,-196,54,-196,67,161,68,-196,83,-196,-1,0},
+    /*81*/{53,-150,54,-150,68,-150,83,-150,-1,0},
+    /*82*/{53,-135,54,-135,68,-135,83,-135,-1,0},
+    /*83*/{53,-149,54,-149,68,-149,83,-149,-1,0},
+    /*84*/{53,-167,54,-167,68,-167,83,-167,-1,0},
+    /*85*/{53,-155,54,-155,62,-155,68,-155,83,-155,-1,0},
+    /*86*/{53,-154,54,-154,62,-154,68,-154,83,-154,-1,0},
+    /*87*/{53,-130,54,-130,68,-130,83,-130,-1,0},
+    /*88*/{53,-160,54,-160,62,-160,68,-160,83,-160,-1,0},
+    /*89*/{53,-164,54,-164,62,-164,68,-164,83,-164,-1,0},
+    /*90*/{53,-166,54,-166,68,-166,83,-166,-1,0},
+    /*91*/{53,-197,54,-197,67,95,68,-197,83,-197,-1,0},
+    /*92*/{83,-220,-1,0},
+    /*93*/{53,-152,54,-152,68,-152,83,-152,-1,0},
+    /*94*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*95*/{53,-79,54,-79,57,-79,62,-79,66,-79,68,-79,72,-79,73,149,-1,0},
+    /*96*/{53,-110,54,-110,55,-110,57,-110,59,-110,60,-110,62,-110,66,-110,68,-110,72,-110,73,-110,74,-110,75,-110,76,-110,79,-110,80,-110,-1,0},
+    /*97*/{16,-98,27,-98,43,-98,60,-98,61,-98,69,-98,70,-98,78,-98,81,-98,83,-98,85,-98,86,-98,87,-98,88,-98,-1,0},
+    /*98*/{53,-109,54,-109,55,-109,57,-109,59,-109,60,-109,62,-109,66,-109,68,-109,72,-109,73,-109,74,-109,75,-109,76,-109,79,-109,80,-109,-1,0},
+    /*99*/{53,-106,54,-106,55,-106,57,-106,59,-106,60,-106,62,-106,66,-106,68,-106,72,-106,73,-106,74,-106,75,-106,76,-106,79,-106,80,-106,-1,0},
+    /*100*/{53,-100,54,-100,55,-100,57,-100,59,-100,60,-100,62,-100,66,-100,68,-100,72,-100,73,-100,74,-100,75,-100,76,-100,78,159,79,-100,80,-100,-1,0},
+    /*101*/{70,156,83,157,-1,0},
+    /*102*/{53,-111,54,-111,55,-111,57,-111,59,-111,60,-111,62,-111,66,-111,68,-111,72,-111,73,-111,74,-111,75,-111,76,-111,79,-111,80,-111,-1,0},
+    /*103*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*104*/{16,-99,27,-99,43,-99,60,-99,61,-99,69,-99,70,-99,78,-99,81,-99,83,-99,85,-99,86,-99,87,-99,88,-99,-1,0},
+    /*105*/{53,-85,54,-85,57,-85,59,130,60,131,62,-85,66,-85,68,-85,72,-85,73,-85,74,-85,79,-85,80,-85,-1,0},
+    /*106*/{53,-91,54,-91,55,-91,57,-91,59,-91,60,-91,62,-91,66,-91,68,-91,72,-91,73,-91,74,-91,75,-91,76,-91,79,-91,80,-91,-1,0},
+    /*107*/{84,152,-1,0},
+    /*108*/{68,151,-1,0},
+    /*109*/{53,-103,54,-103,55,-103,57,-103,59,-103,60,-103,62,-103,66,-103,68,-103,72,-103,73,-103,74,-103,75,-103,76,-103,79,-103,80,-103,-1,0},
+    /*110*/{53,-78,54,-78,57,-78,62,-78,66,-78,68,-78,72,147,-1,0},
+    /*111*/{53,-96,54,-96,55,-96,57,-96,59,-96,60,-96,62,-96,66,-96,68,-96,72,-96,73,-96,74,-96,75,-96,76,-96,79,-96,80,-96,-1,0},
+    /*112*/{53,-112,54,-112,55,-112,57,-112,59,-112,60,-112,62,-112,66,-112,68,-112,72,-112,73,-112,74,-112,75,-112,76,-112,79,-112,80,-112,-1,0},
+    /*113*/{82,146,85,126,86,125,-1,0},
+    /*114*/{53,-101,54,-101,55,-101,57,-101,59,-101,60,-101,62,-101,66,-101,68,-101,72,-101,73,-101,74,-101,75,-101,76,-101,79,-101,80,-101,-1,0},
+    /*115*/{53,-108,54,-108,55,-108,57,-108,59,-108,60,-108,62,-108,66,-108,68,-108,72,-108,73,-108,74,-108,75,-108,76,-108,79,-108,80,-108,-1,0},
+    /*116*/{53,-81,54,-81,57,-81,62,-81,66,-81,68,-81,72,-81,73,-81,74,144,-1,0},
+    /*117*/{53,-88,54,-88,55,133,57,-88,59,-88,60,-88,62,-88,66,-88,68,-88,72,-88,73,-88,74,-88,75,135,76,134,79,-88,80,-88,-1,0},
+    /*118*/{70,142,83,141,-1,0},
+    /*119*/{54,-117,66,-117,68,-117,-1,0},
+    /*120*/{53,-83,54,-83,57,-83,62,-83,66,-83,68,-83,72,-83,73,-83,74,-83,79,128,80,127,-1,0},
+    /*121*/{16,113,27,78,43,103,60,124,61,104,69,108,70,102,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*122*/{53,-95,54,-95,55,-95,57,-95,59,-95,60,-95,62,-95,66,-95,68,-95,72,-95,73,-95,74,-95,75,-95,76,-95,79,-95,80,-95,-1,0},
+    /*123*/{85,126,86,125,-1,0},
+    /*124*/{53,-105,54,-105,55,-105,57,-105,59,-105,60,-105,62,-105,66,-105,68,-105,72,-105,73,-105,74,-105,75,-105,76,-105,79,-105,80,-105,-1,0},
+    /*125*/{53,-104,54,-104,55,-104,57,-104,59,-104,60,-104,62,-104,66,-104,68,-104,72,-104,73,-104,74,-104,75,-104,76,-104,79,-104,80,-104,-1,0},
+    /*126*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*127*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*128*/{53,-87,54,-87,57,-87,59,130,60,131,62,-87,66,-87,68,-87,72,-87,73,-87,74,-87,79,-87,80,-87,-1,0},
+    /*129*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*130*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*131*/{53,-90,54,-90,55,133,57,-90,59,-90,60,-90,62,-90,66,-90,68,-90,72,-90,73,-90,74,-90,75,135,76,134,79,-90,80,-90,-1,0},
+    /*132*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*133*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*134*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*135*/{53,-93,54,-93,55,-93,57,-93,59,-93,60,-93,62,-93,66,-93,68,-93,72,-93,73,-93,74,-93,75,-93,76,-93,79,-93,80,-93,-1,0},
+    /*136*/{53,-94,54,-94,55,-94,57,-94,59,-94,60,-94,62,-94,66,-94,68,-94,72,-94,73,-94,74,-94,75,-94,76,-94,79,-94,80,-94,-1,0},
+    /*137*/{53,-92,54,-92,55,-92,57,-92,59,-92,60,-92,62,-92,66,-92,68,-92,72,-92,73,-92,74,-92,75,-92,76,-92,79,-92,80,-92,-1,0},
+    /*138*/{53,-89,54,-89,55,133,57,-89,59,-89,60,-89,62,-89,66,-89,68,-89,72,-89,73,-89,74,-89,75,135,76,134,79,-89,80,-89,-1,0},
+    /*139*/{53,-86,54,-86,57,-86,59,130,60,131,62,-86,66,-86,68,-86,72,-86,73,-86,74,-86,79,-86,80,-86,-1,0},
+    /*140*/{70,143,-1,0},
+    /*141*/{53,-116,54,-116,55,-116,57,-116,59,-116,60,-116,62,-116,66,-116,68,-116,72,-116,73,-116,74,-116,75,-116,76,-116,79,-116,80,-116,-1,0},
+    /*142*/{53,-115,54,-115,55,-115,57,-115,59,-115,60,-115,62,-115,66,-115,68,-115,72,-115,73,-115,74,-115,75,-115,76,-115,79,-115,80,-115,-1,0},
+    /*143*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*144*/{53,-84,54,-84,57,-84,62,-84,66,-84,68,-84,72,-84,73,-84,74,-84,79,128,80,127,-1,0},
+    /*145*/{16,-97,27,-97,43,-97,60,-97,61,-97,69,-97,70,-97,78,-97,81,-97,83,-97,85,-97,86,-97,87,-97,88,-97,-1,0},
+    /*146*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*147*/{53,-80,54,-80,57,-80,62,-80,66,-80,68,-80,72,-80,73,149,-1,0},
+    /*148*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*149*/{53,-82,54,-82,57,-82,62,-82,66,-82,68,-82,72,-82,73,-82,74,144,-1,0},
+    /*150*/{53,-195,54,-195,68,-195,83,-195,-1,0},
+    /*151*/{69,153,-1,0},
+    /*152*/{53,-107,54,-107,55,-107,57,-107,59,-107,60,-107,62,-107,66,-107,68,-107,72,-107,73,-107,74,-107,75,-107,76,-107,79,-107,80,-107,-1,0},
+    /*153*/{62,155,-1,0},
+    /*154*/{53,-102,54,-102,55,-102,57,-102,59,-102,60,-102,62,-102,66,-102,68,-102,72,-102,73,-102,74,-102,75,-102,76,-102,79,-102,80,-102,-1,0},
+    /*155*/{53,-114,54,-114,55,-114,57,-114,59,-114,60,-114,62,-114,66,-114,68,-114,72,-114,73,-114,74,-114,75,-114,76,-114,79,-114,80,-114,-1,0},
+    /*156*/{70,158,-1,0},
+    /*157*/{53,-113,54,-113,55,-113,57,-113,59,-113,60,-113,62,-113,66,-113,68,-113,72,-113,73,-113,74,-113,75,-113,76,-113,79,-113,80,-113,-1,0},
+    /*158*/{83,160,-1,0},
+    /*159*/{41,-36,53,-36,54,-36,55,-36,57,-36,59,-36,60,-36,62,-36,63,-36,66,-36,68,-36,72,-36,73,-36,74,-36,75,-36,76,-36,78,-36,79,-36,80,-36,83,-36,-1,0},
+    /*160*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*161*/{68,163,-1,0},
+    /*162*/{53,-194,54,-194,68,-194,83,-194,-1,0},
+    /*163*/{24,168,53,-161,54,-161,62,-161,68,-161,83,-161,-1,0},
+    /*164*/{53,-159,54,-159,62,-159,68,-159,83,-159,-1,0},
+    /*165*/{53,-157,54,-157,62,-157,68,-157,83,-157,-1,0},
+    /*166*/{53,-156,54,-156,62,-156,68,-156,83,-156,-1,0},
+    /*167*/{53,-162,54,-162,62,-162,68,-162,83,-162,-1,0},
+    /*168*/{41,-35,53,-35,54,-35,55,-35,57,-35,59,-35,60,-35,62,-35,63,-35,66,-35,68,-35,72,-35,73,-35,74,-35,75,-35,76,-35,78,-35,79,-35,80,-35,83,-35,-1,0},
+    /*169*/{61,171,-1,0},
+    /*170*/{20,192,21,195,30,191,62,193,-1,0},
+    /*171*/{9,-239,34,173,53,-239,-1,0},
+    /*172*/{61,185,-1,0},
+    /*173*/{9,178,53,-239,-1,0},
+    /*174*/{9,-230,53,-230,-1,0},
+    /*175*/{53,-215,-1,0},
+    /*176*/{53,-233,-1,0},
+    /*177*/{61,179,-1,0},
+    /*178*/{70,102,81,119,-1,0},
+    /*179*/{54,183,62,-234,-1,0},
+    /*180*/{62,182,-1,0},
+    /*181*/{53,-232,-1,0},
+    /*182*/{70,102,81,119,-1,0},
+    /*183*/{62,-235,-1,0},
+    /*184*/{27,78,78,71,83,77,-1,0},
+    /*185*/{41,-33,54,189,62,-33,63,-33,78,159,-1,0},
+    /*186*/{62,188,-1,0},
+    /*187*/{9,-229,53,-229,-1,0},
+    /*188*/{27,78,78,71,83,77,-1,0},
+    /*189*/{41,-32,62,-32,63,-32,-1,0},
+    /*190*/{3,-227,5,-227,7,-227,12,-227,18,-227,24,-227,27,-227,28,-227,38,-227,39,-227,46,-227,48,-227,51,-227,52,-227,78,-227,83,-227,-1,0},
+    /*191*/{3,-226,5,-226,7,-226,12,-226,18,-226,24,-226,27,-226,28,-226,38,-226,39,-226,46,-226,48,-226,51,-226,52,-226,78,-226,83,-226,-1,0},
+    /*192*/{9,-222,34,-222,53,-222,-1,0},
+    /*193*/{62,203,-1,0},
+    /*194*/{3,-228,5,-228,7,-228,12,-228,18,-228,24,-228,27,-228,28,-228,38,-228,39,-228,46,-228,48,-228,51,-228,52,-228,78,-228,83,-228,-1,0},
+    /*195*/{54,201,62,-224,-1,0},
+    /*196*/{3,85,5,80,7,66,12,94,18,82,24,63,27,78,28,91,38,89,39,81,46,72,48,74,51,90,52,92,78,71,83,77,-1,0},
+    /*197*/{83,199,-1,0},
+    /*198*/{19,-147,34,-147,36,-147,53,-147,54,-147,62,-147,-1,0},
+    /*199*/{54,-225,62,-225,-1,0},
+    /*200*/{20,192,21,195,30,191,-1,0},
+    /*201*/{62,-223,-1,0},
+    /*202*/{9,-221,34,-221,53,-221,-1,0},
+    /*203*/{53,-153,54,-153,68,-153,83,-153,-1,0},
+    /*204*/{3,-27,4,-27,5,-27,7,-27,8,-27,12,-27,13,-27,14,-27,15,-27,18,-27,24,-27,26,-27,27,-27,28,-27,29,-27,31,-27,32,-27,35,-27,38,-27,39,-27,40,-27,45,-27,46,-27,47,-27,48,-27,50,-27,51,-27,52,-27,64,-27,78,-27,83,-27,-1,0},
+    /*205*/{83,199,-1,0},
+    /*206*/{19,210,36,211,53,-211,54,209,-1,0},
+    /*207*/{53,-205,-1,0},
+    /*208*/{83,199,-1,0},
+    /*209*/{61,220,-1,0},
+    /*210*/{61,213,-1,0},
+    /*211*/{53,-206,-1,0},
+    /*212*/{27,78,78,71,83,77,-1,0},
+    /*213*/{62,215,-1,0},
+    /*214*/{19,216,53,-210,-1,0},
+    /*215*/{61,217,-1,0},
+    /*216*/{27,78,78,71,83,77,-1,0},
+    /*217*/{62,219,-1,0},
+    /*218*/{53,-208,-1,0},
+    /*219*/{27,78,78,71,83,77,-1,0},
+    /*220*/{62,222,-1,0},
+    /*221*/{36,223,53,-209,-1,0},
+    /*222*/{61,224,-1,0},
+    /*223*/{27,78,78,71,83,77,-1,0},
+    /*224*/{62,226,-1,0},
+    /*225*/{53,-207,-1,0},
+    /*226*/{53,-211,54,209,-1,0},
+    /*227*/{53,-212,-1,0},
+    /*228*/{3,85,5,80,7,66,12,94,18,82,24,63,27,78,28,91,38,89,39,81,46,72,48,74,51,90,52,92,78,71,83,77,-1,0},
+    /*229*/{83,199,-1,0},
+    /*230*/{34,233,53,-211,54,209,-1,0},
+    /*231*/{53,-203,-1,0},
+    /*232*/{61,235,-1,0},
+    /*233*/{53,-204,-1,0},
+    /*234*/{27,78,78,71,83,77,-1,0},
+    /*235*/{62,237,-1,0},
+    /*236*/{53,-231,-1,0},
+    /*237*/{3,-24,4,-24,5,-24,7,-24,8,-24,12,-24,13,-24,14,-24,15,-24,18,-24,24,-24,26,-24,27,-24,28,-24,29,-24,31,-24,32,-24,35,-24,38,-24,39,-24,40,-24,45,-24,46,-24,47,-24,48,-24,50,-24,51,-24,52,-24,64,-24,78,-24,83,-24,-1,0},
+    /*238*/{63,-51,-1,0},
+    /*239*/{27,-56,78,-56,83,-56,-1,0},
+    /*240*/{41,246,63,-50,-1,0},
+    /*241*/{27,78,78,71,83,77,-1,0},
+    /*242*/{41,244,63,-49,-1,0},
+    /*243*/{27,78,78,71,83,77,-1,0},
+    /*244*/{63,-52,-1,0},
+    /*245*/{27,78,78,71,83,77,-1,0},
+    /*246*/{63,-53,-1,0},
+    /*247*/{53,-19,57,250,63,-239,-1,0},
+    /*248*/{63,253,-1,0},
+    /*249*/{27,78,63,-30,78,71,83,77,-1,0},
+    /*250*/{63,-31,-1,0},
+    /*251*/{63,-29,-1,0},
+    /*252*/{3,-239,4,46,5,-239,7,-239,8,27,12,-239,13,28,14,11,18,-239,24,-239,26,13,27,-239,28,-239,29,47,35,45,38,-239,39,-239,40,12,45,24,46,-239,47,26,48,-239,50,-239,51,-239,52,-239,64,-239,78,-239,83,-239,-1,0},
+    /*253*/{64,258,-1,0},
+    /*254*/{3,-217,5,-217,7,-217,12,-217,18,-217,24,-217,27,-217,28,-217,38,-217,39,-217,46,-217,48,-217,50,-217,51,-217,52,-217,64,-23,78,-217,83,-217,-1,0},
+    /*255*/{3,-239,4,46,5,-239,7,-239,8,27,12,-239,13,28,14,11,18,-239,24,-239,26,13,27,-239,28,-239,29,47,35,45,38,-239,39,-239,40,12,45,24,46,-239,47,26,48,-239,50,-239,51,-239,52,-239,64,-239,78,-239,83,-239,-1,0},
+    /*256*/{64,-22,-1,0},
+    /*257*/{53,-15,-1,0},
+    /*258*/{53,-18,57,250,63,-239,-1,0},
+    /*259*/{63,261,-1,0},
+    /*260*/{3,-239,4,46,5,-239,7,-239,8,27,12,-239,13,28,14,11,18,-239,24,-239,26,13,27,-239,28,-239,29,47,35,45,38,-239,39,-239,40,12,45,24,46,-239,47,26,48,-239,50,-239,51,-239,52,-239,64,-239,78,-239,83,-239,-1,0},
+    /*261*/{64,263,-1,0},
+    /*262*/{53,-14,-1,0},
+    /*263*/{63,265,-1,0},
+    /*264*/{83,266,-1,0},
+    /*265*/{54,269,64,-189,-1,0},
+    /*266*/{64,268,-1,0},
+    /*267*/{53,-188,62,-188,83,-188,-1,0},
+    /*268*/{83,266,-1,0},
+    /*269*/{64,-190,-1,0},
+    /*270*/{83,-76,-1,0},
+    /*271*/{83,-75,-1,0},
+    /*272*/{83,-71,-1,0},
+    /*273*/{78,159,83,-77,-1,0},
+    /*274*/{83,-70,-1,0},
+    /*275*/{83,-72,-1,0},
+    /*276*/{83,-74,-1,0},
+    /*277*/{83,-73,-1,0},
+    /*278*/{83,-151,-1,0},
+    /*279*/{83,281,-1,0},
+    /*280*/{58,282,-1,0},
+    /*281*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*282*/{53,-69,-1,0},
+    /*283*/{42,285,53,-174,83,-174,-1,0},
+    /*284*/{61,286,-1,0},
+    /*285*/{5,80,7,66,13,28,24,164,27,78,38,89,46,72,51,90,78,71,83,77,-1,0},
+    /*286*/{62,-178,-1,0},
+    /*287*/{62,-176,-1,0},
+    /*288*/{62,293,-1,0},
+    /*289*/{62,-179,78,159,-1,0},
+    /*290*/{62,-175,-1,0},
+    /*291*/{62,-177,-1,0},
+    /*292*/{63,294,-1,0},
+    /*293*/{6,299,11,296,-1,0},
+    /*294*/{64,343,-1,0},
+    /*295*/{57,341,-1,0},
+    /*296*/{6,299,11,296,64,-180,-1,0},
+    /*297*/{3,85,5,80,7,66,12,94,13,28,17,308,18,82,24,63,27,78,28,91,37,317,38,89,39,81,40,12,46,72,47,26,48,74,51,90,52,92,78,71,83,77,-1,0},
+    /*298*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*299*/{57,301,-1,0},
+    /*300*/{3,-183,5,-183,6,299,7,-183,11,296,12,-183,13,-183,17,-183,18,-183,24,-183,27,-183,28,-183,37,-183,38,-183,39,-183,40,-183,46,-183,47,-183,48,-183,51,-183,52,-183,78,-183,83,-183,-1,0},
+    /*301*/{3,-185,5,-185,7,-185,12,-185,13,-185,17,-185,18,-185,24,-185,27,-185,28,-185,37,-185,38,-185,39,-185,40,-185,46,-185,47,-185,48,-185,51,-185,52,-185,78,-185,83,-185,-1,0},
+    /*302*/{53,-140,83,-140,-1,0},
+    /*303*/{53,-142,83,-142,-1,0},
+    /*304*/{53,339,-1,0},
+    /*305*/{53,-125,83,-125,-1,0},
+    /*306*/{53,-128,54,-128,68,-128,83,-128,-1,0},
+    /*307*/{67,334,-1,0},
+    /*308*/{53,-126,83,-126,-1,0},
+    /*309*/{53,-141,83,-141,-1,0},
+    /*310*/{53,-129,54,-129,68,-129,78,159,83,-129,-1,0},
+    /*311*/{53,-138,54,-138,68,-138,83,-138,-1,0},
+    /*312*/{83,324,-1,0},
+    /*313*/{53,-137,54,-137,68,-137,83,-137,-1,0},
+    /*314*/{53,-127,54,-127,68,-127,83,-127,-1,0},
+    /*315*/{53,-139,54,-139,68,-139,83,-139,-1,0},
+    /*316*/{67,318,-1,0},
+    /*317*/{3,85,5,80,7,66,12,94,17,308,18,82,24,63,27,78,28,91,37,317,38,89,39,81,46,72,48,74,51,90,52,92,78,71,83,77,-1,0},
+    /*318*/{54,320,68,321,-1,0},
+    /*319*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*320*/{53,-193,54,-193,68,-193,83,-193,-1,0},
+    /*321*/{68,323,-1,0},
+    /*322*/{53,-192,54,-192,68,-192,83,-192,-1,0},
+    /*323*/{53,-147,54,-147,65,330,-1,0},
+    /*324*/{53,-145,54,-145,-1,0},
+    /*325*/{53,-187,-1,0},
+    /*326*/{53,-146,54,-146,-1,0},
+    /*327*/{53,-200,54,-200,65,330,-1,0},
+    /*328*/{53,-199,54,-199,-1,0},
+    /*329*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*330*/{66,332,-1,0},
+    /*331*/{53,-202,54,-202,65,-202,-1,0},
+    /*332*/{53,-201,54,-201,-1,0},
+    /*333*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*334*/{54,336,-1,0},
+    /*335*/{16,113,27,78,43,103,59,98,60,114,61,104,69,108,70,102,77,105,78,71,81,119,83,77,85,110,86,100,87,97,88,99,-1,0},
+    /*336*/{68,338,-1,0},
+    /*337*/{53,-198,54,-198,68,-198,83,-198,-1,0},
+    /*338*/{6,-182,11,-182,64,-182,-1,0},
+    /*339*/{64,-181,-1,0},
+    /*340*/{3,-184,5,-184,6,299,7,-184,11,296,12,-184,13,-184,17,-184,18,-184,24,-184,27,-184,28,-184,37,-184,38,-184,39,-184,40,-184,46,-184,47,-184,48,-184,51,-184,52,-184,78,-184,83,-184,-1,0},
+    /*341*/{3,-186,5,-186,7,-186,12,-186,13,-186,17,-186,18,-186,24,-186,27,-186,28,-186,37,-186,38,-186,39,-186,40,-186,46,-186,47,-186,48,-186,51,-186,52,-186,78,-186,83,-186,-1,0},
+    /*342*/{53,-173,83,-173,-1,0},
+    /*343*/{0,-12,2,-12,8,-12,10,-12,13,-12,14,-12,22,-12,23,-12,25,-12,26,-12,33,-12,40,-12,45,-12,47,-12,49,-12,64,-12,-1,0},
+    /*344*/{53,-123,-1,0},
+    /*345*/{83,324,-1,0},
+    /*346*/{53,-144,54,349,-1,0},
+    /*347*/{53,-124,-1,0},
+    /*348*/{83,324,-1,0},
+    /*349*/{53,-143,-1,0},
+    /*350*/{83,352,-1,0},
+    /*351*/{53,-21,57,250,63,-239,-1,0},
+    /*352*/{63,354,-1,0},
+    /*353*/{3,-239,4,46,5,-239,7,-239,8,27,12,-239,13,28,14,11,18,-239,24,-239,26,13,27,-239,28,-239,29,47,35,45,38,-239,39,-239,40,12,45,24,46,-239,47,26,48,-239,50,-239,51,-239,52,-239,64,-239,78,-239,83,-239,-1,0},
+    /*354*/{64,356,-1,0},
+    /*355*/{53,-17,-1,0},
+    /*356*/{0,-9,2,-9,8,-9,10,-9,13,-9,14,-9,22,-9,23,-9,25,-9,26,-9,33,-9,40,-9,45,-9,47,-9,49,-9,64,-9,-1,0},
+    /*357*/{63,359,-1,0},
+    /*358*/{2,30,8,27,10,8,13,28,14,11,22,29,23,14,25,21,26,13,33,23,40,12,45,24,47,26,49,17,-1,0},
+    /*359*/{64,361,-1,0},
+    /*360*/{53,-13,-1,0},
+    /*361*/{0,-8,2,-8,8,-8,10,-8,13,-8,14,-8,22,-8,23,-8,25,-8,26,-8,33,-8,40,-8,45,-8,47,-8,49,-8,64,-8,-1,0},
+    /*362*/{3,85,5,80,7,66,12,94,13,28,17,308,18,82,24,63,27,78,28,91,37,317,38,89,39,81,40,12,41,41,46,72,47,26,48,74,51,90,52,92,53,-47,57,39,63,-239,78,71,83,77,-1,0},
+    /*363*/{63,366,-1,0},
+    /*364*/{53,-41,-1,0},
+    /*365*/{3,-239,4,46,5,-239,7,-239,8,27,12,-239,13,28,14,11,15,373,18,-239,24,-239,26,13,27,-239,28,-239,29,47,31,367,32,369,35,45,38,-239,39,-239,40,12,45,24,46,-239,47,26,48,-239,50,-239,51,-239,52,-239,64,-239,78,-239,83,-239,-1,0},
+    /*366*/{3,85,5,80,7,66,12,94,13,28,17,308,18,82,24,63,27,78,28,91,37,317,38,89,39,81,40,12,46,72,47,26,48,74,51,90,52,92,78,71,83,77,-1,0},
+    /*367*/{3,-60,4,-60,5,-60,7,-60,8,-60,12,-60,13,-60,14,-60,15,-60,18,-60,24,-60,26,-60,27,-60,28,-60,29,-60,31,-60,32,-60,35,-60,38,-60,39,-60,40,-60,45,-60,46,-60,47,-60,48,-60,50,-60,51,-60,52,-60,64,-60,78,-60,83,-60,-1,0},
+    /*368*/{3,85,5,80,7,66,12,94,13,28,17,308,18,82,24,63,27,78,28,91,37,317,38,89,39,81,40,12,46,72,47,26,48,74,51,90,52,92,78,71,83,77,-1,0},
+    /*369*/{3,-217,5,-217,7,-217,12,-217,18,-217,24,-217,27,-217,28,-217,38,-217,39,-217,46,-217,48,-217,50,-217,51,-217,52,-217,64,-58,78,-217,83,-217,-1,0},
+    /*370*/{3,-61,4,-61,5,-61,7,-61,8,-61,12,-61,13,-61,14,-61,15,-61,18,-61,24,-61,26,-61,27,-61,28,-61,29,-61,31,-61,32,-61,35,-61,38,-61,39,-61,40,-61,45,-61,46,-61,47,-61,48,-61,50,-61,51,-61,52,-61,64,-61,78,-61,83,-61,-1,0},
+    /*371*/{3,-59,4,-59,5,-59,7,-59,8,-59,12,-59,13,-59,14,-59,15,-59,18,-59,24,-59,26,-59,27,-59,28,-59,29,-59,31,-59,32,-59,35,-59,38,-59,39,-59,40,-59,45,-59,46,-59,47,-59,48,-59,50,-59,51,-59,52,-59,64,-59,78,-59,83,-59,-1,0},
+    /*372*/{83,378,-1,0},
+    /*373*/{64,377,-1,0},
+    /*374*/{3,-239,4,46,5,-239,7,-239,8,27,12,-239,13,28,14,11,15,373,18,-239,24,-239,26,13,27,-239,28,-239,29,47,31,367,32,369,35,45,38,-239,39,-239,40,12,45,24,46,-239,47,26,48,-239,50,-239,51,-239,52,-239,64,-239,78,-239,83,-239,-1,0},
+    /*375*/{64,-57,-1,0},
+    /*376*/{53,-48,-1,0},
+    /*377*/{61,379,-1,0},
+    /*378*/{20,380,62,382,-1,0},
+    /*379*/{3,85,5,80,7,66,12,94,18,82,24,63,27,78,28,91,38,89,39,81,46,72,48,74,51,90,52,92,78,71,83,77,-1,0},
+    /*380*/{62,388,-1,0},
+    /*381*/{34,173,53,-239,-1,0},
+    /*382*/{54,384,62,-66,-1,0},
+    /*383*/{20,380,-1,0},
+    /*384*/{62,-67,-1,0},
+    /*385*/{53,387,-1,0},
+    /*386*/{3,-65,4,-65,5,-65,7,-65,8,-65,12,-65,13,-65,14,-65,15,-65,18,-65,24,-65,26,-65,27,-65,28,-65,29,-65,31,-65,32,-65,35,-65,38,-65,39,-65,40,-65,45,-65,46,-65,47,-65,48,-65,50,-65,51,-65,52,-65,64,-65,78,-65,83,-65,-1,0},
+    /*387*/{34,173,53,-239,-1,0},
+    /*388*/{53,390,-1,0},
+    /*389*/{3,-64,4,-64,5,-64,7,-64,8,-64,12,-64,13,-64,14,-64,15,-64,18,-64,24,-64,26,-64,27,-64,28,-64,29,-64,31,-64,32,-64,35,-64,38,-64,39,-64,40,-64,45,-64,46,-64,47,-64,48,-64,50,-64,51,-64,52,-64,64,-64,78,-64,83,-64,-1,0},
+    /*390*/{83,199,-1,0},
+    /*391*/{54,-68,62,-68,-1,0},
+    /*392*/{83,324,-1,0},
+    /*393*/{53,395,-1,0},
+    /*394*/{3,-62,4,-62,5,-62,7,-62,8,-62,12,-62,13,-62,14,-62,15,-62,18,-62,24,-62,26,-62,27,-62,28,-62,29,-62,31,-62,32,-62,35,-62,38,-62,39,-62,40,-62,45,-62,46,-62,47,-62,48,-62,50,-62,51,-62,52,-62,64,-62,78,-62,83,-62,-1,0},
+    /*395*/{83,324,-1,0},
+    /*396*/{53,398,-1,0},
+    /*397*/{3,-63,4,-63,5,-63,7,-63,8,-63,12,-63,13,-63,14,-63,15,-63,18,-63,24,-63,26,-63,27,-63,28,-63,29,-63,31,-63,32,-63,35,-63,38,-63,39,-63,40,-63,45,-63,46,-63,47,-63,48,-63,50,-63,51,-63,52,-63,64,-63,78,-63,83,-63,-1,0},
+    /*398*/{0,-5,64,-5,-1,0},
+    /*399*/{83,401,-1,0},
+    /*400*/{53,-20,57,250,63,-239,-1,0},
+    /*401*/{63,403,-1,0},
+    /*402*/{3,-239,4,46,5,-239,7,-239,8,27,12,-239,13,28,14,11,18,-239,24,-239,26,13,27,-239,28,-239,29,47,35,45,38,-239,39,-239,40,12,45,24,46,-239,47,26,48,-239,50,-239,51,-239,52,-239,64,-239,78,-239,83,-239,-1,0},
+    /*403*/{64,405,-1,0},
+    /*404*/{53,-16,-1,0},
+    /*405*/{53,-191,-1,0},
+    /*406*/{53,-169,63,408,83,-169,-1,0},
+    /*407*/{3,85,5,80,7,66,12,94,13,28,17,308,18,82,24,63,27,78,28,91,37,317,38,89,39,81,40,12,46,72,47,26,48,74,51,90,52,92,78,71,83,77,-1,0},
+    /*408*/{64,415,-1,0},
+    /*409*/{83,324,-1,0},
+    /*410*/{3,85,5,80,7,66,12,94,13,28,17,308,18,82,24,63,27,78,28,91,37,317,38,89,39,81,40,12,46,72,47,26,48,74,51,90,52,92,64,-170,78,71,83,77,-1,0},
+    /*411*/{64,-171,-1,0},
+    /*412*/{53,414,-1,0},
+    /*413*/{3,-172,5,-172,7,-172,12,-172,13,-172,17,-172,18,-172,24,-172,27,-172,28,-172,37,-172,38,-172,39,-172,40,-172,46,-172,47,-172,48,-172,51,-172,52,-172,64,-172,78,-172,83,-172,-1,0},
+    /*414*/{53,-168,83,-168,-1,0},
+    /*415*/{63,417,-1,0},
+    /*416*/{3,85,5,80,7,66,12,94,13,28,17,308,18,82,24,63,27,78,28,91,37,317,38,89,39,81,40,12,46,72,47,26,48,74,51,90,52,92,64,419,78,71,83,77,-1,0},
+    /*417*/{64,420,-1,0},
+    /*418*/{53,-213,-1,0},
+    /*419*/{53,-214,-1,0},
+    /*420*/{0,-11,2,-11,8,-11,10,-11,13,-11,14,-11,22,-11,23,-11,25,-11,26,-11,33,-11,40,-11,45,-11,47,-11,49,-11,64,-11,-1,0},
+    /*421*/{83,423,-1,0},
+    /*422*/{41,41,57,39,63,-239,-1,0},
+    /*423*/{63,425,-1,0},
+    /*424*/{3,-239,4,46,5,-239,7,-239,8,27,12,-239,13,28,14,11,15,373,18,-239,24,-239,26,13,27,-239,28,-239,29,47,31,367,32,369,35,45,38,-239,39,-239,40,12,45,24,46,-239,47,26,48,-239,50,-239,51,-239,52,-239,64,-239,78,-239,83,-239,-1,0},
+    /*425*/{64,427,-1,0},
+    /*426*/{53,-46,-1,0},
+    /*427*/{0,-7,2,-7,8,-7,10,-7,13,-7,14,-7,22,-7,23,-7,25,-7,26,-7,33,-7,40,-7,45,-7,47,-7,49,-7,64,-7,-1,0},
+    /*428*/{0,-10,2,-10,8,-10,10,-10,13,-10,14,-10,22,-10,23,-10,25,-10,26,-10,33,-10,40,-10,45,-10,47,-10,49,-10,64,-10,-1,0},
+  };
+
+  /** access to parse action table */
+  public short[][] action_table() {return _action_table;}
+
+  /** reduce_goto table */
+  protected static final short[][] _reduce_table = {
+    /*0*/{3,3,7,2,98,1,-1,-1},
+    /*1*/{8,14,9,34,10,8,11,5,16,24,17,17,18,15,19,30,27,18,39,6,45,32,49,9,50,33,51,21,52,31,53,19,-1,-1},
+    /*2*/{-1,-1},
+    /*3*/{-1,-1},
+    /*4*/{-1,-1},
+    /*5*/{-1,-1},
+    /*6*/{-1,-1},
+    /*7*/{-1,-1},
+    /*8*/{-1,-1},
+    /*9*/{-1,-1},
+    /*10*/{-1,-1},
+    /*11*/{-1,-1},
+    /*12*/{78,405,-1,-1},
+    /*13*/{-1,-1},
+    /*14*/{8,14,9,398,10,8,11,5,16,24,17,17,18,15,19,30,27,18,39,6,45,32,49,9,50,33,51,21,52,31,53,19,-1,-1},
+    /*15*/{-1,-1},
+    /*16*/{-1,-1},
+    /*17*/{-1,-1},
+    /*18*/{-1,-1},
+    /*19*/{-1,-1},
+    /*20*/{-1,-1},
+    /*21*/{-1,-1},
+    /*22*/{-1,-1},
+    /*23*/{14,310,40,344,41,345,46,305,47,306,48,308,49,303,50,302,52,309,57,314,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,311,72,313,73,315,-1,-1},
+    /*24*/{-1,-1},
+    /*25*/{-1,-1},
+    /*26*/{14,273,28,279,58,274,59,277,60,74,61,276,62,83,63,67,64,86,65,85,66,272,67,275,68,270,71,271,-1,-1},
+    /*27*/{-1,-1},
+    /*28*/{-1,-1},
+    /*29*/{-1,-1},
+    /*30*/{-1,-1},
+    /*31*/{-1,-1},
+    /*32*/{-1,-1},
+    /*33*/{-1,-1},
+    /*34*/{-1,-1},
+    /*35*/{-1,-1},
+    /*36*/{-1,-1},
+    /*37*/{3,39,21,41,-1,-1},
+    /*38*/{14,185,15,241,92,240,-1,-1},
+    /*39*/{-1,-1},
+    /*40*/{14,185,92,238,-1,-1},
+    /*41*/{-1,-1},
+    /*42*/{3,49,4,48,13,54,20,53,27,50,39,43,45,32,49,9,50,33,51,52,52,31,53,19,84,51,85,47,-1,-1},
+    /*43*/{-1,-1},
+    /*44*/{-1,-1},
+    /*45*/{14,64,43,205,57,69,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,61,-1,-1},
+    /*46*/{-1,-1},
+    /*47*/{-1,-1},
+    /*48*/{14,64,42,66,43,68,57,69,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,70,75,71,61,-1,-1},
+    /*49*/{-1,-1},
+    /*50*/{-1,-1},
+    /*51*/{-1,-1},
+    /*52*/{-1,-1},
+    /*53*/{-1,-1},
+    /*54*/{3,49,4,48,13,54,20,55,27,50,39,43,45,32,49,9,50,33,51,52,52,31,53,19,84,51,85,47,-1,-1},
+    /*55*/{-1,-1},
+    /*56*/{-1,-1},
+    /*57*/{-1,-1},
+    /*58*/{-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*/{63,164,64,166,65,165,-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*/{-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*/{6,121,14,100,29,119,30,108,31,110,32,95,33,116,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-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*/{6,121,14,100,29,153,31,110,32,95,33,116,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*104*/{-1,-1},
+    /*105*/{-1,-1},
+    /*106*/{-1,-1},
+    /*107*/{-1,-1},
+    /*108*/{-1,-1},
+    /*109*/{-1,-1},
+    /*110*/{-1,-1},
+    /*111*/{-1,-1},
+    /*112*/{-1,-1},
+    /*113*/{-1,-1},
+    /*114*/{-1,-1},
+    /*115*/{-1,-1},
+    /*116*/{-1,-1},
+    /*117*/{-1,-1},
+    /*118*/{-1,-1},
+    /*119*/{-1,-1},
+    /*120*/{-1,-1},
+    /*121*/{14,100,38,122,74,114,75,115,-1,-1},
+    /*122*/{-1,-1},
+    /*123*/{-1,-1},
+    /*124*/{-1,-1},
+    /*125*/{-1,-1},
+    /*126*/{6,121,14,100,35,139,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*127*/{6,121,14,100,35,128,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*128*/{-1,-1},
+    /*129*/{6,121,14,100,36,138,37,106,38,111,74,114,75,115,-1,-1},
+    /*130*/{6,121,14,100,36,131,37,106,38,111,74,114,75,115,-1,-1},
+    /*131*/{-1,-1},
+    /*132*/{6,121,14,100,37,137,38,111,74,114,75,115,-1,-1},
+    /*133*/{6,121,14,100,37,136,38,111,74,114,75,115,-1,-1},
+    /*134*/{6,121,14,100,37,135,38,111,74,114,75,115,-1,-1},
+    /*135*/{-1,-1},
+    /*136*/{-1,-1},
+    /*137*/{-1,-1},
+    /*138*/{-1,-1},
+    /*139*/{-1,-1},
+    /*140*/{-1,-1},
+    /*141*/{-1,-1},
+    /*142*/{-1,-1},
+    /*143*/{6,121,14,100,34,144,35,105,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*144*/{-1,-1},
+    /*145*/{-1,-1},
+    /*146*/{6,121,14,100,32,147,33,116,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*147*/{-1,-1},
+    /*148*/{6,121,14,100,33,149,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*149*/{-1,-1},
+    /*150*/{-1,-1},
+    /*151*/{-1,-1},
+    /*152*/{-1,-1},
+    /*153*/{-1,-1},
+    /*154*/{-1,-1},
+    /*155*/{-1,-1},
+    /*156*/{-1,-1},
+    /*157*/{-1,-1},
+    /*158*/{-1,-1},
+    /*159*/{-1,-1},
+    /*160*/{6,121,14,100,29,119,30,161,31,110,32,95,33,116,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-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*/{91,171,-1,-1},
+    /*170*/{5,196,81,195,89,193,-1,-1},
+    /*171*/{3,174,82,173,-1,-1},
+    /*172*/{-1,-1},
+    /*173*/{1,175,3,176,-1,-1},
+    /*174*/{-1,-1},
+    /*175*/{-1,-1},
+    /*176*/{-1,-1},
+    /*177*/{-1,-1},
+    /*178*/{2,180,75,179,-1,-1},
+    /*179*/{-1,-1},
+    /*180*/{-1,-1},
+    /*181*/{-1,-1},
+    /*182*/{2,183,75,179,-1,-1},
+    /*183*/{-1,-1},
+    /*184*/{14,185,92,186,-1,-1},
+    /*185*/{-1,-1},
+    /*186*/{-1,-1},
+    /*187*/{-1,-1},
+    /*188*/{14,185,92,189,-1,-1},
+    /*189*/{-1,-1},
+    /*190*/{-1,-1},
+    /*191*/{-1,-1},
+    /*192*/{-1,-1},
+    /*193*/{-1,-1},
+    /*194*/{-1,-1},
+    /*195*/{-1,-1},
+    /*196*/{14,64,43,197,57,69,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,61,-1,-1},
+    /*197*/{78,199,-1,-1},
+    /*198*/{-1,-1},
+    /*199*/{-1,-1},
+    /*200*/{5,196,81,195,89,201,-1,-1},
+    /*201*/{-1,-1},
+    /*202*/{-1,-1},
+    /*203*/{-1,-1},
+    /*204*/{-1,-1},
+    /*205*/{78,206,93,207,-1,-1},
+    /*206*/{86,211,-1,-1},
+    /*207*/{-1,-1},
+    /*208*/{78,226,93,227,-1,-1},
+    /*209*/{-1,-1},
+    /*210*/{-1,-1},
+    /*211*/{-1,-1},
+    /*212*/{14,185,92,213,-1,-1},
+    /*213*/{-1,-1},
+    /*214*/{-1,-1},
+    /*215*/{-1,-1},
+    /*216*/{14,185,92,217,-1,-1},
+    /*217*/{-1,-1},
+    /*218*/{-1,-1},
+    /*219*/{14,185,92,220,-1,-1},
+    /*220*/{-1,-1},
+    /*221*/{-1,-1},
+    /*222*/{-1,-1},
+    /*223*/{14,185,92,224,-1,-1},
+    /*224*/{-1,-1},
+    /*225*/{-1,-1},
+    /*226*/{-1,-1},
+    /*227*/{-1,-1},
+    /*228*/{14,64,43,229,57,69,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,61,-1,-1},
+    /*229*/{78,230,93,231,-1,-1},
+    /*230*/{83,233,-1,-1},
+    /*231*/{-1,-1},
+    /*232*/{-1,-1},
+    /*233*/{-1,-1},
+    /*234*/{14,185,92,235,-1,-1},
+    /*235*/{-1,-1},
+    /*236*/{-1,-1},
+    /*237*/{-1,-1},
+    /*238*/{-1,-1},
+    /*239*/{-1,-1},
+    /*240*/{-1,-1},
+    /*241*/{14,185,92,242,-1,-1},
+    /*242*/{-1,-1},
+    /*243*/{14,185,92,244,-1,-1},
+    /*244*/{-1,-1},
+    /*245*/{14,185,92,246,-1,-1},
+    /*246*/{-1,-1},
+    /*247*/{3,250,95,248,-1,-1},
+    /*248*/{-1,-1},
+    /*249*/{14,185,92,251,-1,-1},
+    /*250*/{-1,-1},
+    /*251*/{-1,-1},
+    /*252*/{3,254,4,48,12,253,13,255,27,50,39,43,45,32,49,9,50,33,51,52,52,31,53,19,84,51,85,47,-1,-1},
+    /*253*/{-1,-1},
+    /*254*/{-1,-1},
+    /*255*/{3,254,4,48,12,256,13,255,27,50,39,43,45,32,49,9,50,33,51,52,52,31,53,19,84,51,85,47,-1,-1},
+    /*256*/{-1,-1},
+    /*257*/{-1,-1},
+    /*258*/{3,250,95,259,-1,-1},
+    /*259*/{-1,-1},
+    /*260*/{3,254,4,48,12,261,13,255,27,50,39,43,45,32,49,9,50,33,51,52,52,31,53,19,84,51,85,47,-1,-1},
+    /*261*/{-1,-1},
+    /*262*/{-1,-1},
+    /*263*/{-1,-1},
+    /*264*/{96,266,-1,-1},
+    /*265*/{-1,-1},
+    /*266*/{-1,-1},
+    /*267*/{-1,-1},
+    /*268*/{96,269,-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*/{6,121,14,100,29,282,31,110,32,95,33,116,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*282*/{-1,-1},
+    /*283*/{-1,-1},
+    /*284*/{-1,-1},
+    /*285*/{14,289,44,288,49,286,58,290,63,67,64,86,65,85,66,287,67,291,-1,-1},
+    /*286*/{-1,-1},
+    /*287*/{-1,-1},
+    /*288*/{-1,-1},
+    /*289*/{-1,-1},
+    /*290*/{-1,-1},
+    /*291*/{-1,-1},
+    /*292*/{-1,-1},
+    /*293*/{54,294,55,296,88,297,-1,-1},
+    /*294*/{-1,-1},
+    /*295*/{-1,-1},
+    /*296*/{54,339,55,296,88,297,-1,-1},
+    /*297*/{14,310,41,312,46,305,47,306,48,308,49,303,50,302,52,309,56,304,57,314,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,311,72,313,73,315,-1,-1},
+    /*298*/{6,121,14,100,29,299,31,110,32,95,33,116,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*299*/{-1,-1},
+    /*300*/{88,301,-1,-1},
+    /*301*/{-1,-1},
+    /*302*/{-1,-1},
+    /*303*/{-1,-1},
+    /*304*/{-1,-1},
+    /*305*/{-1,-1},
+    /*306*/{-1,-1},
+    /*307*/{-1,-1},
+    /*308*/{-1,-1},
+    /*309*/{-1,-1},
+    /*310*/{-1,-1},
+    /*311*/{-1,-1},
+    /*312*/{77,325,78,324,79,326,-1,-1},
+    /*313*/{-1,-1},
+    /*314*/{-1,-1},
+    /*315*/{-1,-1},
+    /*316*/{-1,-1},
+    /*317*/{14,310,46,318,47,306,57,314,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,311,72,313,73,315,-1,-1},
+    /*318*/{-1,-1},
+    /*319*/{6,121,14,100,29,119,30,321,31,110,32,95,33,116,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*320*/{-1,-1},
+    /*321*/{-1,-1},
+    /*322*/{-1,-1},
+    /*323*/{80,327,97,328,-1,-1},
+    /*324*/{-1,-1},
+    /*325*/{-1,-1},
+    /*326*/{-1,-1},
+    /*327*/{80,327,97,332,-1,-1},
+    /*328*/{-1,-1},
+    /*329*/{6,121,14,100,29,119,30,330,31,110,32,95,33,116,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*330*/{-1,-1},
+    /*331*/{-1,-1},
+    /*332*/{-1,-1},
+    /*333*/{6,121,14,100,29,119,30,334,31,110,32,95,33,116,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*334*/{-1,-1},
+    /*335*/{6,121,14,100,29,119,30,336,31,110,32,95,33,116,34,120,35,105,36,117,37,106,38,111,74,114,75,115,-1,-1},
+    /*336*/{-1,-1},
+    /*337*/{-1,-1},
+    /*338*/{-1,-1},
+    /*339*/{-1,-1},
+    /*340*/{88,341,-1,-1},
+    /*341*/{-1,-1},
+    /*342*/{-1,-1},
+    /*343*/{-1,-1},
+    /*344*/{-1,-1},
+    /*345*/{77,346,78,324,79,326,94,347,-1,-1},
+    /*346*/{-1,-1},
+    /*347*/{-1,-1},
+    /*348*/{77,346,78,324,79,326,94,349,-1,-1},
+    /*349*/{-1,-1},
+    /*350*/{-1,-1},
+    /*351*/{3,250,95,352,-1,-1},
+    /*352*/{-1,-1},
+    /*353*/{3,254,4,48,12,354,13,255,27,50,39,43,45,32,49,9,50,33,51,52,52,31,53,19,84,51,85,47,-1,-1},
+    /*354*/{-1,-1},
+    /*355*/{-1,-1},
+    /*356*/{-1,-1},
+    /*357*/{-1,-1},
+    /*358*/{8,14,9,359,10,8,11,5,16,24,17,17,18,15,19,30,27,18,39,6,45,32,49,9,50,33,51,21,52,31,53,19,-1,-1},
+    /*359*/{-1,-1},
+    /*360*/{-1,-1},
+    /*361*/{-1,-1},
+    /*362*/{3,39,14,310,21,363,41,364,46,305,47,306,48,308,49,303,50,302,52,309,57,314,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,311,72,313,73,315,-1,-1},
+    /*363*/{-1,-1},
+    /*364*/{-1,-1},
+    /*365*/{3,369,4,48,13,371,22,373,23,374,24,367,25,370,27,50,39,43,45,32,49,9,50,33,51,52,52,31,53,19,84,51,85,47,-1,-1},
+    /*366*/{14,310,41,395,46,305,47,306,48,308,49,303,50,302,52,309,57,314,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,311,72,313,73,315,-1,-1},
+    /*367*/{-1,-1},
+    /*368*/{14,310,41,392,46,305,47,306,48,308,49,303,50,302,52,309,57,314,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,311,72,313,73,315,-1,-1},
+    /*369*/{-1,-1},
+    /*370*/{-1,-1},
+    /*371*/{-1,-1},
+    /*372*/{-1,-1},
+    /*373*/{-1,-1},
+    /*374*/{3,369,4,48,13,371,22,375,23,374,24,367,25,370,27,50,39,43,45,32,49,9,50,33,51,52,52,31,53,19,84,51,85,47,-1,-1},
+    /*375*/{-1,-1},
+    /*376*/{-1,-1},
+    /*377*/{-1,-1},
+    /*378*/{26,382,90,380,-1,-1},
+    /*379*/{14,64,43,390,57,69,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,61,-1,-1},
+    /*380*/{-1,-1},
+    /*381*/{3,174,82,385,-1,-1},
+    /*382*/{-1,-1},
+    /*383*/{26,382,90,384,-1,-1},
+    /*384*/{-1,-1},
+    /*385*/{-1,-1},
+    /*386*/{-1,-1},
+    /*387*/{3,174,82,388,-1,-1},
+    /*388*/{-1,-1},
+    /*389*/{-1,-1},
+    /*390*/{78,391,-1,-1},
+    /*391*/{-1,-1},
+    /*392*/{77,346,78,324,79,326,94,393,-1,-1},
+    /*393*/{-1,-1},
+    /*394*/{-1,-1},
+    /*395*/{77,346,78,324,79,326,94,396,-1,-1},
+    /*396*/{-1,-1},
+    /*397*/{-1,-1},
+    /*398*/{-1,-1},
+    /*399*/{-1,-1},
+    /*400*/{3,250,95,401,-1,-1},
+    /*401*/{-1,-1},
+    /*402*/{3,254,4,48,12,403,13,255,27,50,39,43,45,32,49,9,50,33,51,52,52,31,53,19,84,51,85,47,-1,-1},
+    /*403*/{-1,-1},
+    /*404*/{-1,-1},
+    /*405*/{-1,-1},
+    /*406*/{-1,-1},
+    /*407*/{14,310,41,409,46,305,47,306,48,308,49,303,50,302,52,309,57,314,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,311,72,313,73,315,76,410,87,408,-1,-1},
+    /*408*/{-1,-1},
+    /*409*/{77,346,78,324,79,326,94,412,-1,-1},
+    /*410*/{14,310,41,409,46,305,47,306,48,308,49,303,50,302,52,309,57,314,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,311,72,313,73,315,76,410,87,411,-1,-1},
+    /*411*/{-1,-1},
+    /*412*/{-1,-1},
+    /*413*/{-1,-1},
+    /*414*/{-1,-1},
+    /*415*/{-1,-1},
+    /*416*/{14,310,41,409,46,305,47,306,48,308,49,303,50,302,52,309,57,314,58,72,59,87,60,74,62,83,63,67,64,86,65,85,66,63,67,78,68,60,69,82,71,311,72,313,73,315,76,410,87,417,-1,-1},
+    /*417*/{-1,-1},
+    /*418*/{-1,-1},
+    /*419*/{-1,-1},
+    /*420*/{-1,-1},
+    /*421*/{-1,-1},
+    /*422*/{3,39,21,423,-1,-1},
+    /*423*/{-1,-1},
+    /*424*/{3,369,4,48,13,371,22,425,23,374,24,367,25,370,27,50,39,43,45,32,49,9,50,33,51,52,52,31,53,19,84,51,85,47,-1,-1},
+    /*425*/{-1,-1},
+    /*426*/{-1,-1},
+    /*427*/{-1,-1},
+    /*428*/{-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 org.jacorb.idl.runtime.symbol do_action(
+    int                        act_num,
+    org.jacorb.idl.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 0;}
+
+  /** 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
+    {
+
+        lexer.init();
+
+    }
+
+  /** scan to get the next token */
+  public org.jacorb.idl.runtime.token scan()
+    throws java.lang.Exception
+    {
+
+        return lexer.next_token();
+
+    }
+
+
+    static String command_line[] = null;
+
+    public static Hashtable pack_replace = null;
+    public static Stack scopes = null;
+    private static Hashtable tmpDefines = null;
+    private static Hashtable tmpUnDefines = null;
+
+    public final static String currentVersion = "";
+
+    // Compiles out leaving no runtime dependency on Version
+    public static final String compiler_version = org.jacorb.util.Version.longVersion;
+
+    private static final String yearString = "1997-2006";
+
+    public static org.jacorb.idl.IDLTreeVisitor generator = null;
+
+    private static final String FINAL = " final";
+    private static final String NO_FINAL = "";
+
+    public static String out_dir = ".";
+    static String package_prefix = null;
+
+    static boolean parse_only = false;
+
+    /** used for internal checking that name conversion
+        to mapped Java names is done only after parsing */
+    public static boolean done_parsing = false;
+
+    /** compiler flags */
+    public static boolean include_state = false;
+    public static boolean strict_names = true;
+    /** these two are to work around buggy IDL generated by Sun's rmic in JDK 1.4 */
+    public static boolean strict_inheritance = true;
+    public static boolean strict_attributes = true;
+
+    public static boolean generateIR = false;
+    public static boolean generate_skeletons = true;
+    public static boolean generate_stubs = true;
+
+    public static boolean generate_ami_callback = false;
+    public static boolean generate_ami_polling  = false;
+
+    protected static boolean generateIncluded = false;
+    protected static boolean inhibitionState = false;
+    protected static boolean localityContraint = false;
+    protected static boolean useUncheckedNarrow = false;
+    protected static boolean cldc10 = false;
+    static boolean generateEnhanced;
+
+    public static final int HELPER_DEPRECATED = 0;
+    public static final int HELPER_PORTABLE = 1;
+    public static final int HELPER_JACORB = 2;
+
+    static int generatedHelperPortability = HELPER_PORTABLE;
+
+    protected static boolean forceOverwrite;
+    protected static boolean addbackend = false;
+
+    protected static boolean generateDiiStubs = false;
+
+    protected static String finalString = FINAL;
+
+    private static int activeParseThreads;
+
+    private static Logger logger;
+    private static Writer logStreamWriter = null;
+
+    /*  a la CORBA 2.4, allow forward declarations that remain undefined */
+    public static boolean sloppy = false;
+
+    public static String currentDate;
+
+    /**
+     *  allows reinitialization if compiler is not
+     *  run from a command-line
+     */
+
+    protected static void init()
+    {
+        currentDate = java.text.DateFormat.getDateTimeInstance().format(new java.util.Date());
+        generatedHelperPortability = HELPER_PORTABLE;
+        command_line = null;
+        pending_interfaces = new Hashtable();
+        pack_replace = new Hashtable();
+        scopes = new Stack();
+        tmpDefines = new Hashtable();
+        tmpUnDefines = new Hashtable();
+        generator = null;
+
+        activeParseThreads = 0;
+        InterfaceBody.parseThreads = new Vector();
+        pending_interfaces = new Hashtable();
+
+        out_dir = ".";
+        package_prefix = null;
+
+        parse_only = false;
+        done_parsing = false;
+
+        include_state = false;
+        generateIR = false;
+        generate_skeletons = true;
+        generate_stubs = true;
+        generate_ami_callback = false;
+        generate_ami_polling = false;
+
+        strict_names = true;
+        strict_inheritance = true;
+        strict_attributes = true;
+
+        generateIncluded = false;
+        inhibitionState = false;
+        localityContraint = false;
+        useUncheckedNarrow = false;
+        cldc10 = false;
+        generateEnhanced = false;
+        forceOverwrite = false;
+
+        generateDiiStubs = false;
+
+        finalString = FINAL;
+
+        sloppy = false;
+
+        String pattern = "[%.11{category}] %.7{priority} : %{message}\\n%{throwable}";
+        PatternFormatter formatter = new PatternFormatter( pattern );
+        logger = Hierarchy.getDefaultHierarchy().getLoggerFor("jacorb.idl");
+        logger.setPriority( Priority.ERROR );
+
+        // check if the environment's logStream has been set
+        Writer logWriter;
+        if( logStreamWriter != null )
+        {
+            logWriter = logStreamWriter;
+        }
+        else
+        {
+            OutputStream outStream = System.err;
+            logWriter = new OutputStreamWriter( outStream );
+        }
+        WriterTarget writerTarget = new WriterTarget( logWriter, formatter );
+        logger.setLogTargets( new LogTarget[] { writerTarget } );
+
+        parser.openScope();
+    }
+
+
+    public static void main( String argv[] )
+    {
+        if( compileAndHandle( argv ) == true )
+            System.exit( 0 );
+        else
+            System.exit( 1 );
+    }
+
+
+    public static boolean compileAndHandle( String argv[] )
+    {
+        try
+        {
+            return compile( argv );
+        }
+        catch( org.jacorb.idl.ParseException e )
+        {
+            logger.debug ( "Exception caught", e);
+            lexer.emit_error( e.getMessage() );
+            return false;
+        }
+        catch ( java.io.IOException io )
+        {
+            lexer.emit_error("IO Error, please check file names: " + io.getMessage());
+        }
+        catch( Exception e )
+        {
+            lexer.emit_error( "Exception: " + e.toString() );
+            usage( argv, e.getMessage() );
+        }
+        return false;
+    }
+
+    public static boolean compile( String argv[] )
+        throws Exception
+    {
+        return compile( argv, null );
+    }
+
+    public static boolean compile( String argv[], StringWriter logWriter )
+        throws Exception
+    {
+        BufferedReader in = null;
+
+        if (logWriter!= null)
+              logStreamWriter = logWriter;
+
+        init();
+
+        command_line = argv;
+        if( argv.length > 0 )
+        {
+            int i;
+            for( i = 0; i < argv.length; i++ )
+            {
+                if( argv[i].equals("-syntax"))
+                {
+                    parse_only = true;
+                    continue;
+                }
+                if( argv[i].equals("-diistub"))
+                {
+                    generateDiiStubs = true;
+                    continue;
+                }
+                if( argv[i].equals("-noskel"))
+                {
+                    generate_skeletons = false;
+                    continue;
+                }
+                if( argv[i].equals("-nostub"))
+                {
+                    generate_stubs = false;
+                    continue;
+                }
+                if( argv[i].equals("-ami_callback"))
+                {
+                    generate_ami_callback = true;
+                    continue;
+                }
+                if( argv[i].equals("-forceOverwrite"))
+                {
+                    forceOverwrite = true;
+                    continue;
+                }
+                if( argv[i].equals("-ami_polling"))
+                {
+                    throw new RuntimeException
+                      ("Sorry, the polling model is not yet implemented.");
+                    // generate_ami_polling = true;
+                    // continue;
+                }
+                if( argv[i].equals("-sloppy_forward"))
+                {
+                    sloppy = true;
+                    continue;
+                }
+                if( argv[i].equals("-sloppy_names"))
+                {
+                    strict_names = false;
+                    continue;
+                }
+                if( argv[i].equals("-permissive_rmic"))
+                {
+                    strict_names = false;
+                    strict_attributes = false;
+                    strict_inheritance = false;
+                    continue;
+                }
+                if( argv[i].equals("-unchecked_narrow"))
+                {
+                    useUncheckedNarrow = true;
+                    continue;
+                }
+                if( argv[i].equals("-backend") || argv[i].equals("-addbackend"))
+                {
+                    if (argv[i].equals("-addbackend"))
+                    {
+                        addbackend = true;
+                    }
+
+                    if( i+1 == argv.length || argv[i+1].charAt(0)=='-' )
+                        usage(argv, "-backend");
+
+                    // custom code generators
+                    Class codeGeneratorClass = null;
+
+                    try
+                    {
+                        codeGeneratorClass = Class.forName( argv[++i] );
+                    }
+                    catch( ClassNotFoundException cnfe )
+                    {
+                        throw new ParseException("Generator Class " + argv[i] + " not found! Check classpath!");
+                    }
+
+                    if( ! org.jacorb.idl.IDLTreeVisitor.class.isAssignableFrom( codeGeneratorClass ))
+                        throw new ParseException( "Not a valid code generator: " +
+                            codeGeneratorClass.getName() );
+                    setGenerator( (org.jacorb.idl.IDLTreeVisitor) codeGeneratorClass.newInstance());
+                    continue;
+                }
+                if( argv[i].equals("-d"))
+                {
+                    if( i+1 == argv.length || argv[i+1].charAt(0)=='-' )
+                        usage(argv, "-d");
+                    out_dir = argv[++i];
+                    continue;
+                }
+                if( argv[i].equals("-W"))
+                {
+                    if( i+1 == argv.length || argv[i+1].charAt(0)=='-' )
+                        usage(argv, "-W");
+
+                    int level = Integer.parseInt( argv[++i] );
+
+                    logger.setPriority(Environment.intToPriority(level));
+
+                    continue;
+                }
+                if( argv[i].startsWith("-D"))
+                {
+                    String def = argv[i].substring(2);
+                    String val;
+
+                    if( def.indexOf('=') > 0 )
+                    {
+                        val = def.substring( def.indexOf('=') + 1);
+                        def = def.substring( 0, def.indexOf('='));
+                    }
+                    else
+                        val = "1";
+                    tmpDefines.put( def, val );
+                    continue;
+                }
+                if( argv[i].startsWith("-U"))
+                {
+                        tmpUnDefines.put( argv[i].substring(2), "" );
+                        continue;
+                }
+                if( argv[i].equals("-cldc10"))
+                {
+                        cldc10 = true;
+                        continue;
+                }
+                if( argv[i].equals("-genEnhanced"))
+                {
+                    generateEnhanced = true;
+                    continue;
+                }
+                if( argv[i].equals("-generate_helper"))
+                {
+                    String level = argv[++i];
+
+                    generatedHelperPortability = parseGeneratedHelperPortability(level);
+
+                    if (generatedHelperPortability < 0)
+                    {
+                        usage(argv, "argument to -generate_helper should be one of (portable|jacorb|deprecated)");
+
+                        return false;
+                    }
+
+                    continue;
+                }
+                if( argv[i].equals("-i2jpackage"))
+                {
+                    if( i+1 == argv.length || argv[i+1].charAt(0)=='-')
+                        usage(argv, "-i2jpackage");
+                     addI2JPackage (argv[i+1]);
+                    i++;
+                    continue;
+                }
+                if (argv[i].equals ("-i2jpackagefile"))
+                {
+                   if( i+1 == argv.length || argv[i+1].charAt(0)=='-')
+                        usage(argv, "-i2jpackagefile");
+
+                       try
+                       {
+                          in = new BufferedReader (new FileReader (argv[i+1]));
+                       }
+                       catch (FileNotFoundException e)
+                       {
+                          System.out.println ("File " + argv[i+1] + " not found");
+                          throw new RuntimeException
+                             ("File for -i2jpackagefile not found");
+                       }
+                       String mapping = in.readLine ();
+                       while (mapping != null)
+                       {
+                          addI2JPackage (mapping);
+                          mapping = in.readLine ();
+                       }
+                       in.close ();
+                       i++;
+                       continue;
+                }
+                if( argv[i].equals("-ir"))
+                {
+                        generateIR = true;
+                        continue;
+                }
+                if( argv[i].startsWith("-I"))
+                {
+                    GlobalInputStream.setIncludePath(argv[i].substring(2));
+                    continue;
+                }
+                if( argv[i].equals("-h") || argv[i].equals("-help") )
+                {
+                    help();
+                    return true;
+                }
+                if( argv[i].equals("-all") )
+                {
+                        generateIncluded = true;
+                        continue;
+                }
+                if( argv[i].equals("-v") || argv[i].equals("-version") )
+                {
+                    version();
+                    return true;
+                }
+                if ( argv[i].equals("-nofinal") )
+                {
+                    setFinalString(NO_FINAL);
+                    continue;
+                }
+                if( argv[i].equals("-in") )
+                {
+                    i++;
+                    if( i < argv.length )
+                    {
+                        prepareAndParse(argv[i]);
+                    }
+                    continue;
+                }
+                if( argv[i].endsWith(".idl") )
+                {
+                    break;
+                }
+
+                // else:
+                usage(argv, "Unrecognized option: " + argv[i]);
+
+            }
+            for( int j=i; j < argv.length; j++)
+            {
+                if( argv[j].endsWith(".idl"))
+                {
+                    prepareAndParse(argv[j]);
+                }
+                else
+                {
+                    throw new ParseException("Not an IDL file:" + argv[j]);
+                }
+            }
+        }
+        return true;
+    }
+
+    public static int parseGeneratedHelperPortability(String level)
+    {
+        if (level.equals("deprecated"))
+        {
+            return HELPER_DEPRECATED;
+        }
+        else if (level.equals("portable"))
+        {
+            return HELPER_PORTABLE;
+        }
+        else if (level.equals("jacorb"))
+        {
+            return HELPER_JACORB;
+        }
+        else
+        {
+            return -1;
+        }
+    }
+
+    private static void prepareAndParse(String fileName)
+        throws Exception
+    {
+        GlobalInputStream.init();
+        GlobalInputStream.setInput( fileName );
+
+        /* reset tables everywhere */
+        lexer.reset();
+        NameTable.init();
+        ConstDecl.init();
+        TypeMap.init();
+
+        /* define/undefine symbols */
+        for( Enumeration e = tmpDefines.keys(); e.hasMoreElements(); )
+        {
+            String key = (String)e.nextElement();
+            lexer.define( key, (String)tmpDefines.get( key ));
+        }
+
+        for( Enumeration e = tmpUnDefines.keys(); e.hasMoreElements(); )
+        {
+            lexer.undefine( (String)e.nextElement() );
+        }
+
+        new parser().parse();
+
+        if( lexer.error_count > 0 )
+        {
+            throw new ParseException( "Errors in lexer" );
+        }
+    }
+
+
+
+
+    public static void usage(String [] argv, String msg)
+    {
+        // debug:
+        for( int i = 0; i < argv.length; i++)
+            System.out.print( argv[i] + " " );
+        System.out.println(" : " + msg);
+
+        System.out.println("Usage: idl [-h|-help][-v|-version][-Dsymbol[=value]][-Idir][-U<symbol>][-W debug_level ][-all][-forceOverwrite][-ami_callback][-ami_polling][-backend classname][-d <Output Dir>][-unchecked_narrow][-i2jpackage x:y][-i2jpackagefile <filename>][-cldc10][-ir][-nofinal][-noskel][-nostub][-diistub][-sloppy_forward][-sloppy_names][-permissive_rmic][-genEnhanced][-syntax][-in inputfile][-generate_helper (portable|jacorb|deprecated)] <filelist>");
+    }
+
+
+    static void addI2JPackage( String mapping )
+    {
+       int split_idx = mapping.indexOf(':');
+       if( split_idx  < 0 )
+       {
+          System.out.println ("Incorrect format for i2jpackage mapping: " + mapping);
+          System.exit (1);
+       }
+       String idlp = mapping.substring(0,split_idx);
+       String jp = mapping.substring(split_idx+1);
+
+       if( idlp.length() == 0 )
+       {
+           package_prefix = jp;
+           if( logger.isDebugEnabled() )
+           {
+               logger.debug( "Replace unnamed global package with " + jp );
+           }
+       }
+       else
+       {
+           pack_replace.put( idlp, jp );
+           if( logger.isDebugEnabled() )
+           {
+               logger.debug( "Replace pack " + idlp + " with " + jp );
+           }
+       }
+    }
+
+
+    private static void help()
+    {
+        System.out.println("\t-h|help \tthese few lines of help");
+        System.out.println("\t-v|version \tprint version information");
+        System.out.println("\t-d dir\t\troot of directory tree for output");
+        System.out.println("\t-Dx\t\tdefine preprocessor symbol x with value 1");
+        System.out.println("\t-Dx=y\t\tdefine preprocessor symbol x with value y");
+        System.out.println("\t-Idir\t\tset include path for idl files");
+        System.out.println("\t-U<symbol>\t\tundefine preprocessor symbol");
+        System.out.println("\t-W [1..4]\tdebug level");
+        System.out.println("\t-all\t\tgenerate code for all IDL files, even included ones");
+        System.out.println("\t-forceOverwrite\tgenerate code even if IDL has not changed");
+        System.out.println("\t-ami_callback\t\tgenerate AMI reply handlers and sendc methods");
+        System.out.println("\t-ami_polling\t\tgenerate AMI poller and sendp methods");
+        System.out.println("\t-backend classname\t\tuse classname as code generator");
+        System.out.println("\t-addbackend classname\t\tadd classname as code generator");
+        System.out.println("\t-i2jpackage x:a.b.c\t replace IDL package name x by a.b.c in generated Java code (e.g. CORBA:org.omg.CORBA)");
+        System.out.println("\t-i2jpackagefile <filename>\t replace IDL package names using list from <filename>. Format as above.");
+        System.out.println("\t-ir\t\tgenerate information required by the Interface Repository");
+        System.out.println("\t-nofinal\tgenerated Java code will contain no final class definitions");
+        System.out.println("\t-unchecked_narrow\t\tuse unchecked_narrow in generated code for IOR parameters in operations");
+        System.out.println("\t-noskel\t\tdisables generation of POA skeletons");
+        System.out.println("\t-nostub\t\tdisables generation of client stubs");
+        System.out.println("\t-diistub\t\tgenerate dii-based client stubs");
+        System.out.println("\t-cldc10\t\tcode generation compatible with J2ME/CLDC 1.0");
+        System.out.println("\t-sloppy_forward\tallow forward declarations wo. later definitions");
+        System.out.println("\t-sloppy_names\tless strict checking of module name scoping");
+        System.out.println("\t-permissive_rmic\ttolerate dubious IDL generated by JDK's rmic, includes -sloppy_names.");
+        System.out.println("\t-genEnhanced\tGenerate toString and equals on stubs. Only supported on Struct currently.");
+        System.out.println("\t-generate_helper (portable[default]|jacorb|deprecated). Controls the controls the compatibilty level of the generated helper code.");
+
+        System.out.println("\t-syntax\t\tsyntax check only, no code generation");
+        System.out.println("\t<filelist>\t");
+  }
+
+    private static void version()
+    {
+        System.out.println("JacORB IDL compiler V" +  compiler_version +
+                           ",\n   (C) The JacORB Project contributors, " +
+                           yearString + ".");
+    }
+
+    /* override error routines */
+
+    public void report_fatal_error( String message, Object info)
+        throws ParseException
+    {
+       done_parsing();
+       lexer.emit_error(message + "\nCan't recover from previous error(s), giving up.");
+       throw new ParseException();
+    }
+
+    public static void fatal_error(String message, str_token p_info)
+        throws ParseException
+    {
+       //done_parsing();
+       lexer.emit_error(message + "\nCan't recover from previous error(s), giving up.", p_info);
+       throw new ParseException();
+    }
+
+    public void report_error(String message, Object info)
+    {
+       lexer.emit_error(message);
+    }
+
+    public static void error(String message, str_token p_info)
+    {
+       lexer.emit_error(message, p_info);
+    }
+
+    public static void error( String message )
+    {
+       lexer.emit_error( message );
+    }
+
+    /* bookkeeping with IDL scopes */
+
+    /** called from the lexer/scanner whenever a scope opening
+        symbol is encountered */
+
+    public static void openScope()
+    {
+        scopes.push(new ScopeData());
+    }
+
+    /** called from within the parser whenever parsing a scope
+        symbol is complete */
+
+    public static void closeScope(Scope symbol)
+    {
+            ScopeData data = (ScopeData) scopes.pop();
+            symbol.setScopeData( data );
+    }
+
+    public static ScopeData currentScopeData()
+    {
+            return (ScopeData)scopes.peek();
+    }
+
+
+    // an interface inheriting from an forward declared interface
+    // needs to wait on an object until the ancestor has been parsed
+    // if get_pending returns null, the ancestor was not forward
+    // declared and thus has already been parsed
+
+    // forward declared interfaces are put into this list
+
+    static Hashtable pending_interfaces = null;
+
+    public static synchronized void set_pending( String name )
+    {
+         // name will only be marked pending if it has not already been
+         // parsed before and if is not already pending
+         String use = ScopedName.unPseudoName (name);
+
+         if( ! ( pending_interfaces.containsKey(use) ||
+                 NameTable.parsed_interfaces.containsKey(use)) )
+         {
+                 pending_interfaces.put(use, new Object());
+         }
+    }
+
+    public static void setGenerator( org.jacorb.idl.IDLTreeVisitor generatorObject )
+    {
+        generator = generatorObject;
+    }
+
+    public static org.jacorb.idl.IDLTreeVisitor getGenerator()
+    {
+        return generator;
+    }
+
+    public static synchronized void remove_pending( String name )
+    {
+         String use = ScopedName.unPseudoName (name);
+         Object o = pending_interfaces.remove(use);
+         if( o != null)
+         {
+             synchronized( o )
+             {
+                  o.notifyAll();
+             }
+         }
+         if( pending_interfaces.size() == 0 )
+         {
+             // notify the main thread that the parsing phase is complete
+             synchronized( pending_interfaces )
+             {
+                  pending_interfaces.notifyAll();
+             }
+         }
+    }
+
+    public static Object get_pending( String name )
+    {
+        return pending_interfaces.get (ScopedName.unPseudoName (name));
+    }
+
+    public static synchronized void decActiveParseThreads()
+    {
+        activeParseThreads--;
+    }
+
+    public static synchronized void incActiveParseThreads()
+    {
+        activeParseThreads++;
+    }
+
+    public static synchronized int activeParseThreads()
+    {
+        return activeParseThreads;
+    }
+
+    public static boolean generateIncluded()
+    {
+        return generateIncluded;
+    }
+
+    public static boolean getInhibitionState()
+    {
+        return inhibitionState;
+    }
+
+    public static void setInhibitionState(boolean flag)
+    {
+        inhibitionState = flag;
+    }
+
+    public static void set_included( boolean i )
+    {
+        include_state = i;
+    }
+
+    public static String getFinalString()
+    {
+        return finalString;
+    }
+
+    public static void setFinalString(String finalString)
+    {
+        parser.finalString = finalString;
+    }
+
+    public static void setGenerateFinalCode(boolean isFinal)
+    {
+        if (isFinal)
+        {
+            setFinalString(FINAL);
+        }
+        else
+        {
+            setFinalString(NO_FINAL);
+        }
+    }
+
+
+
+    /**
+     * Package replacements as requested
+     * by compiler options
+     */
+
+    public static String pack_replace(String old)
+    {
+        String n_str = (String)pack_replace.get(old);
+        if( n_str == null )
+            return old;
+        else
+            return n_str;
+    }
+
+    /**
+     * convenience access to the preconfigured loger for the
+     * IDL compiler
+     */
+
+    public static final Logger getLogger()
+    {
+        return logger;
+    }
+
+
+
+
+};
+
+/** Cup generated class to encapsulate user supplied action code.*/
+class CUP$actions {
+
+
+
+
+  /** Constructor */
+  CUP$actions() { }
+
+  /** Method with the actual generated action code. */
+  public final org.jacorb.idl.runtime.symbol CUP$do_action(
+    int                        CUP$act_num,
+    org.jacorb.idl.runtime.lr_parser CUP$parser,
+    java.util.Stack            CUP$stack,
+    int                        CUP$top)
+    throws java.lang.Exception
+    {
+      /* object for return from actions */
+      org.jacorb.idl.runtime.symbol CUP$result;
+
+      /* select the action based on the action number */
+      switch (CUP$act_num)
+        {
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 238: // empty ::= 
+            {
+              CUP$result = new org.jacorb.idl.runtime.symbol(/*empty*/3);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 237: // param_type_spec ::= scopename 
+            {
+              CUP$result = new TypeSpec(/*param_type_spec*/43);
+               ((TypeSpec)CUP$result).type_spec = (/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 236: // param_type_spec ::= string_type 
+            {
+              CUP$result = new TypeSpec(/*param_type_spec*/43);
+               ((TypeSpec)CUP$result).type_spec = (/*s*/(StringType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 235: // param_type_spec ::= base_type_spec 
+            {
+              CUP$result = new TypeSpec(/*param_type_spec*/43);
+               ((TypeSpec)CUP$result).type_spec = (/*s*/(BaseType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 234: // string_literal_list ::= string_literal COMMA string_literal_list 
+            {
+              CUP$result = new org.jacorb.idl.runtime.symbol(/*string_literal_list*/2);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 233: // string_literal_list ::= string_literal 
+            {
+              CUP$result = new org.jacorb.idl.runtime.symbol(/*string_literal_list*/2);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 232: // context_expr ::= empty 
+            {
+              CUP$result = new org.jacorb.idl.runtime.symbol(/*context_expr*/1);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 231: // context_expr ::= CONTEXT LPAREN string_literal_list RPAREN 
+            {
+              CUP$result = new org.jacorb.idl.runtime.symbol(/*context_expr*/1);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 230: // raises_expr_nonempty ::= RAISES LPAREN scopename_list RPAREN 
+            {
+              CUP$result = new RaisesExpr(/*raises_expr_nonempty*/83);
+              
+                ((RaisesExpr)CUP$result).nameList = (Vector)(/*snl*/(SymbolList)CUP$stack.elementAt(CUP$top-1)).v.clone();
+        
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 229: // raises_expr ::= empty 
+            {
+              CUP$result = new RaisesExpr(/*raises_expr*/82);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 228: // raises_expr ::= RAISES LPAREN scopename_list RPAREN 
+            {
+              CUP$result = new RaisesExpr(/*raises_expr*/82);
+              
+                ((RaisesExpr)CUP$result).nameList = (Vector)(/*snl*/(SymbolList)CUP$stack.elementAt(CUP$top-1)).v.clone();
+        
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 227: // param_attribute ::= INOUT 
+            {
+              CUP$result = new org.jacorb.idl.runtime.int_token(/*param_attribute*/5);
+               ((org.jacorb.idl.runtime.int_token)CUP$result).int_val = ParamDecl.MODE_INOUT; 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 226: // param_attribute ::= OUT 
+            {
+              CUP$result = new org.jacorb.idl.runtime.int_token(/*param_attribute*/5);
+               ((org.jacorb.idl.runtime.int_token)CUP$result).int_val = ParamDecl.MODE_OUT; 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 225: // param_attribute ::= IN 
+            {
+              CUP$result = new org.jacorb.idl.runtime.int_token(/*param_attribute*/5);
+               ((org.jacorb.idl.runtime.int_token)CUP$result).int_val = ParamDecl.MODE_IN; 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 224: // param_dcl ::= param_attribute param_type_spec simple_declarator 
+            {
+              CUP$result = new ParamDecl(/*param_dcl*/81);
+              
+                ((ParamDecl)CUP$result).paramAttribute = (/*pa*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-2)).int_val;
+                ((ParamDecl)CUP$result).paramTypeSpec = (/*pts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
+                ((ParamDecl)CUP$result).simple_declarator = (/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-0));
+          
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 223: // param_dcls ::= param_dcl 
+            {
+              CUP$result = new SymbolList(/*param_dcls*/89);
+              
+                        ((SymbolList)CUP$result).v.insertElementAt((/*pd*/(ParamDecl)CUP$stack.elementAt(CUP$top-0)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 222: // param_dcls ::= param_dcl COMMA param_dcls 
+            {
+              CUP$result = new SymbolList(/*param_dcls*/89);
+              
+                        ((SymbolList)CUP$result).v = (Vector)(/*pds*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((SymbolList)CUP$result).v.insertElementAt((/*pd*/(ParamDecl)CUP$stack.elementAt(CUP$top-2)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 221: // parameter_dcls ::= LPAREN RPAREN 
+            {
+              CUP$result = new SymbolList(/*parameter_dcls*/91);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 220: // parameter_dcls ::= LPAREN param_dcls RPAREN 
+            {
+              CUP$result = new SymbolList(/*parameter_dcls*/91);
+              
+                        ((SymbolList)CUP$result).v = (Vector)(/*pds*/(SymbolList)CUP$stack.elementAt(CUP$top-1)).v.clone();
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 219: // void_type_spec ::= VOID 
+            {
+              CUP$result = new VoidTypeSpec(/*void_type_spec*/70);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 218: // op_type_spec ::= void_type_spec 
+            {
+              CUP$result = new TypeSpec(/*op_type_spec*/42);
+               ((TypeSpec)CUP$result).type_spec = (/*s*/(VoidTypeSpec)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 217: // op_type_spec ::= param_type_spec 
+            {
+              CUP$result = new TypeSpec(/*op_type_spec*/42);
+               ((TypeSpec)CUP$result).type_spec = (/*s*/(TypeSpec)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 216: // op_attribute ::= empty 
+            {
+              CUP$result = new org.jacorb.idl.runtime.int_token(/*op_attribute*/4);
+               ((org.jacorb.idl.runtime.int_token)CUP$result).int_val = OpDecl.NO_ATTRIBUTE; 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 215: // op_attribute ::= ONEWAY 
+            {
+              CUP$result = new org.jacorb.idl.runtime.int_token(/*op_attribute*/4);
+               ((org.jacorb.idl.runtime.int_token)CUP$result).int_val = OpDecl.ONEWAY; 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 214: // op_dcl ::= op_attribute op_type_spec ID parameter_dcls raises_expr context_expr 
+            {
+              CUP$result = new OpDecl(/*op_dcl*/84);
+              
+                        ((OpDecl)CUP$result).opAttribute = (/*oa*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-5)).int_val;
+                        ((OpDecl)CUP$result).opTypeSpec = (/*ots*/(TypeSpec)CUP$stack.elementAt(CUP$top-4));
+                        ((OpDecl)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)));
+                        ((OpDecl)CUP$result).paramDecls = (Vector)(/*pds*/(SymbolList)CUP$stack.elementAt(CUP$top-2)).v.clone();
+                        ((OpDecl)CUP$result).raisesExpr = (/*re*/(RaisesExpr)CUP$stack.elementAt(CUP$top-1));
+          
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 213: // except_dcl ::= EXCEPTION ID LCBRACE member_list RCBRACE 
+            {
+              CUP$result = new StructType(/*except_dcl*/51);
+              
+                        ((StructType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)));
+                        ((StructType)CUP$result).exc = true;
+                        ((StructType)CUP$result).set_memberlist( (/*ml*/(MemberList)CUP$stack.elementAt(CUP$top-1)) );
+                        ((StructType)CUP$result).set_included( parser.include_state );
+                        parser.closeScope( (Scope)((StructType)CUP$result) );
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 212: // except_dcl ::= EXCEPTION ID LCBRACE RCBRACE 
+            {
+              CUP$result = new StructType(/*except_dcl*/51);
+              
+                        ((StructType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-2)));
+                        ((StructType)CUP$result).exc = true;
+                        ((StructType)CUP$result).set_included( parser.include_state );
+                        parser.closeScope( (Scope)((StructType)CUP$result) );
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 211: // simple_declarator_list ::= simple_declarator COMMA simple_declarator_list 
+            {
+              CUP$result = new SymbolList(/*simple_declarator_list*/93);
+              
+                        ((SymbolList)CUP$result).v = (Vector)(/*sdl*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((SymbolList)CUP$result).v.insertElementAt((/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-2)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 210: // simple_declarator_list ::= simple_declarator 
+            {
+              CUP$result = new SymbolList(/*simple_declarator_list*/93);
+              
+                        ((SymbolList)CUP$result).v.insertElementAt((/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-0)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 209: // attr_raises_expr ::= SETRAISES LPAREN scopename_list RPAREN 
+            {
+              CUP$result = new AttrRaisesExpr(/*attr_raises_expr*/86);
+              
+            ((AttrRaisesExpr)CUP$result).setNameList = (Vector)(/*set_snl*/(SymbolList)CUP$stack.elementAt(CUP$top-1)).v.clone();
+         
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 208: // attr_raises_expr ::= GETRAISES LPAREN scopename_list RPAREN 
+            {
+              CUP$result = new AttrRaisesExpr(/*attr_raises_expr*/86);
+              
+            ((AttrRaisesExpr)CUP$result).getNameList = (Vector)(/*get_snl*/(SymbolList)CUP$stack.elementAt(CUP$top-1)).v.clone();
+         
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 207: // attr_raises_expr ::= SETRAISES LPAREN scopename_list RPAREN GETRAISES LPAREN scopename_list RPAREN 
+            {
+              CUP$result = new AttrRaisesExpr(/*attr_raises_expr*/86);
+              
+            ((AttrRaisesExpr)CUP$result).getNameList = (Vector)(/*get_snl*/(SymbolList)CUP$stack.elementAt(CUP$top-1)).v.clone();
+            ((AttrRaisesExpr)CUP$result).setNameList = (Vector)(/*set_snl*/(SymbolList)CUP$stack.elementAt(CUP$top-5)).v.clone();
+         
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 206: // attr_raises_expr ::= GETRAISES LPAREN scopename_list RPAREN SETRAISES LPAREN scopename_list RPAREN 
+            {
+              CUP$result = new AttrRaisesExpr(/*attr_raises_expr*/86);
+              
+            ((AttrRaisesExpr)CUP$result).getNameList = (Vector)(/*get_snl*/(SymbolList)CUP$stack.elementAt(CUP$top-5)).v.clone();
+            ((AttrRaisesExpr)CUP$result).setNameList = (Vector)(/*set_snl*/(SymbolList)CUP$stack.elementAt(CUP$top-1)).v.clone();
+         
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 205: // attr_dcl ::= ATTRIBUTE param_type_spec simple_declarator attr_raises_expr 
+            {
+              CUP$result = new AttrDecl(/*attr_dcl*/85);
+              
+          ((AttrDecl)CUP$result).readOnly = false;
+          ((AttrDecl)CUP$result).param_type_spec = (/*pts*/(TypeSpec)CUP$stack.elementAt(CUP$top-2));
+          ((AttrDecl)CUP$result).declarators = new SymbolList ((/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-1)));
+          ((AttrDecl)CUP$result).getRaisesExpr = new RaisesExpr ((/*are*/(AttrRaisesExpr)CUP$stack.elementAt(CUP$top-0)).getNameList);
+          ((AttrDecl)CUP$result).setRaisesExpr = new RaisesExpr ((/*are*/(AttrRaisesExpr)CUP$stack.elementAt(CUP$top-0)).setNameList);
+      
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 204: // attr_dcl ::= ATTRIBUTE param_type_spec simple_declarator_list 
+            {
+              CUP$result = new AttrDecl(/*attr_dcl*/85);
+              
+          ((AttrDecl)CUP$result).readOnly = false;
+          ((AttrDecl)CUP$result).param_type_spec = (/*pts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
+          ((AttrDecl)CUP$result).declarators = (/*sdl*/(SymbolList)CUP$stack.elementAt(CUP$top-0));
+          ((AttrDecl)CUP$result).getRaisesExpr = new RaisesExpr();
+          ((AttrDecl)CUP$result).setRaisesExpr = new RaisesExpr();
+      
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 203: // attr_dcl ::= READONLY ATTRIBUTE param_type_spec simple_declarator raises_expr_nonempty 
+            {
+              CUP$result = new AttrDecl(/*attr_dcl*/85);
+              
+          ((AttrDecl)CUP$result).readOnly = true;
+          ((AttrDecl)CUP$result).param_type_spec = (/*pts*/(TypeSpec)CUP$stack.elementAt(CUP$top-2));
+          ((AttrDecl)CUP$result).declarators = new SymbolList ((/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-1)));
+          ((AttrDecl)CUP$result).getRaisesExpr = (/*re*/(RaisesExpr)CUP$stack.elementAt(CUP$top-0));
+          ((AttrDecl)CUP$result).setRaisesExpr = new RaisesExpr();
+      
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 202: // attr_dcl ::= READONLY ATTRIBUTE param_type_spec simple_declarator_list 
+            {
+              CUP$result = new AttrDecl(/*attr_dcl*/85);
+              
+          ((AttrDecl)CUP$result).readOnly = true;
+          ((AttrDecl)CUP$result).param_type_spec = (/*pts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
+          ((AttrDecl)CUP$result).declarators = (/*sdl*/(SymbolList)CUP$stack.elementAt(CUP$top-0));
+          ((AttrDecl)CUP$result).getRaisesExpr = new RaisesExpr();
+          ((AttrDecl)CUP$result).setRaisesExpr = new RaisesExpr();
+      
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 201: // fixed_array_size ::= LSBRACE positive_int_const RSBRACE 
+            {
+              CUP$result = new FixedArraySize(/*fixed_array_size*/80);
+              
+                        ((FixedArraySize)CUP$result).pos_int_const = (/*pic*/(PosIntConst)CUP$stack.elementAt(CUP$top-1));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 200: // fixed_array_size_list ::= fixed_array_size fixed_array_size_list 
+            {
+              CUP$result = new SymbolList(/*fixed_array_size_list*/97);
+              
+                        ((SymbolList)CUP$result).v = (Vector)(/*fasl*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((SymbolList)CUP$result).v.insertElementAt((/*fas*/(FixedArraySize)CUP$stack.elementAt(CUP$top-1)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 199: // fixed_array_size_list ::= fixed_array_size 
+            {
+              CUP$result = new SymbolList(/*fixed_array_size_list*/97);
+              
+                        ((SymbolList)CUP$result).v.insertElementAt((/*fas*/(FixedArraySize)CUP$stack.elementAt(CUP$top-0)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 198: // array_declarator ::= ID fixed_array_size_list 
+            {
+              CUP$result = new ArrayDeclarator(/*array_declarator*/79);
+              
+                        ((ArrayDeclarator)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-1)));
+                        ((ArrayDeclarator)CUP$result).fixed_array_size_list = (/*fasl*/(SymbolList)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 197: // fixed_point_type ::= FIXED LESSTHAN positive_int_const COMMA positive_int_const GREATERTHAN 
+            {
+              CUP$result = new FixedPointType(/*fixed_point_type*/73);
+              
+                ((FixedPointType)CUP$result).digit_expr = (/*digits*/(PosIntConst)CUP$stack.elementAt(CUP$top-3)).const_expr;
+                ((FixedPointType)CUP$result).scale_expr = (/*scale*/(PosIntConst)CUP$stack.elementAt(CUP$top-1)).const_expr;
+         
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 196: // string_type ::= WSTRING 
+            {
+              CUP$result = new StringType(/*string_type*/71);
+               ((StringType)CUP$result).setWide(); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 195: // string_type ::= STRING 
+            {
+              CUP$result = new StringType(/*string_type*/71);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 194: // string_type ::= WSTRING LESSTHAN positive_int_const GREATERTHAN 
+            {
+              CUP$result = new StringType(/*string_type*/71);
+              
+                ((StringType)CUP$result).setSize((/*pic*/(PosIntConst)CUP$stack.elementAt(CUP$top-1)).const_expr);
+                ((StringType)CUP$result).setWide();
+          
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 193: // string_type ::= STRING LESSTHAN positive_int_const GREATERTHAN 
+            {
+              CUP$result = new StringType(/*string_type*/71);
+              
+               ((StringType)CUP$result).setSize((/*pic*/(PosIntConst)CUP$stack.elementAt(CUP$top-1)).const_expr);
+          
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 192: // sequence_type ::= SEQUENCE LESSTHAN simple_type_spec GREATERTHAN 
+            {
+              CUP$result = new SequenceType(/*sequence_type*/72);
+              
+                        ((SequenceType)CUP$result).setTypeSpec( (/*sts*/(SimpleTypeSpec)CUP$stack.elementAt(CUP$top-1)) );
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 191: // sequence_type ::= SEQUENCE LESSTHAN simple_type_spec COMMA positive_int_const GREATERTHAN 
+            {
+              CUP$result = new SequenceType(/*sequence_type*/72);
+              
+                        ((SequenceType)CUP$result).max = (/*pic*/(PosIntConst)CUP$stack.elementAt(CUP$top-1)).const_expr;
+                        ((SequenceType)CUP$result).setTypeSpec( (/*sts*/(SimpleTypeSpec)CUP$stack.elementAt(CUP$top-3)) );
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 190: // native_type ::= NATIVE simple_declarator 
+            {
+              CUP$result = new NativeType(/*native_type*/53);
+              
+                        ((NativeType)CUP$result).declarator = (/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 189: // enumerator_list ::= ID COMMA enumerator_list 
+            {
+              CUP$result = new SymbolList(/*enumerator_list*/96);
+              
+                        ((SymbolList)CUP$result).v = (Vector)(/*el*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((SymbolList)CUP$result).v.insertElementAt((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-2)).str_val,0);
+                        ((SymbolList)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-2)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 188: // enumerator_list ::= ID 
+            {
+              CUP$result = new SymbolList(/*enumerator_list*/96);
+              
+                        ((SymbolList)CUP$result).v.insertElementAt((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val,0);
+                        ((SymbolList)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 187: // enum_type ::= ENUM ID LCBRACE enumerator_list RCBRACE 
+            {
+              CUP$result = new EnumType(/*enum_type*/49);
+              
+                        ((EnumType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)));
+                        ((EnumType)CUP$result).enumlist = (/*el*/(SymbolList)CUP$stack.elementAt(CUP$top-1));
+                        ((EnumType)CUP$result).set_included( parser.include_state );
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 186: // element_spec ::= type_spec declarator 
+            {
+              CUP$result = new ElementSpec(/*element_spec*/56);
+              
+                        ((ElementSpec)CUP$result).typeSpec.type_spec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
+                        ((ElementSpec)CUP$result).declarator = (/*dc*/(Declarator)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 185: // case_label_list ::= DEFAULT COLON case_label_list 
+            {
+              CUP$result = new SymbolList(/*case_label_list*/88);
+              
+                        ((SymbolList)CUP$result).v = (Vector)(/*cll*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((SymbolList)CUP$result).v.addElement(null);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 184: // case_label_list ::= CASE const_expr COLON case_label_list 
+            {
+              CUP$result = new SymbolList(/*case_label_list*/88);
+              
+                        ((SymbolList)CUP$result).v = (Vector)(/*cll*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((SymbolList)CUP$result).v.addElement((/*c*/(ConstExpr)CUP$stack.elementAt(CUP$top-2)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 183: // case_label_list ::= DEFAULT COLON 
+            {
+              CUP$result = new SymbolList(/*case_label_list*/88);
+               ((SymbolList)CUP$result).v.addElement( null ); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 182: // case_label_list ::= CASE const_expr COLON 
+            {
+              CUP$result = new SymbolList(/*case_label_list*/88);
+               ((SymbolList)CUP$result).v.addElement((/*c*/(ConstExpr)CUP$stack.elementAt(CUP$top-1))); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 181: // case ::= case_label_list element_spec SEMI 
+            {
+              CUP$result = new Case(/*case*/55);
+              
+                        ((Case)CUP$result).element_spec = (/*es*/(ElementSpec)CUP$stack.elementAt(CUP$top-1));
+                        ((Case)CUP$result).case_label_list = (/*c*/(SymbolList)CUP$stack.elementAt(CUP$top-2));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 180: // switch_body ::= case switch_body 
+            {
+              CUP$result = new SwitchBody(/*switch_body*/54);
+              
+                ((SwitchBody)CUP$result).caseListVector = (Vector)(/*sb*/(SwitchBody)CUP$stack.elementAt(CUP$top-0)).caseListVector.clone();
+                ((SwitchBody)CUP$result).caseListVector.insertElementAt((/*c*/(Case)CUP$stack.elementAt(CUP$top-1)), 0);
+        
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 179: // switch_body ::= case 
+            {
+              CUP$result = new SwitchBody(/*switch_body*/54);
+              
+                ((SwitchBody)CUP$result).caseListVector.insertElementAt((/*c*/(Case)CUP$stack.elementAt(CUP$top-0)), 0);
+        
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 178: // switch_type_spec ::= scopename 
+            {
+              CUP$result = new TypeSpec(/*switch_type_spec*/44);
+               ((TypeSpec)CUP$result).type_spec = (/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 177: // switch_type_spec ::= enum_type 
+            {
+              CUP$result = new TypeSpec(/*switch_type_spec*/44);
+               ((TypeSpec)CUP$result).set_constr((/*e*/(EnumType)CUP$stack.elementAt(CUP$top-0))); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 176: // switch_type_spec ::= bool_type 
+            {
+              CUP$result = new TypeSpec(/*switch_type_spec*/44);
+               ((TypeSpec)CUP$result).type_spec = (/*b*/(BooleanType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 175: // switch_type_spec ::= char_type 
+            {
+              CUP$result = new TypeSpec(/*switch_type_spec*/44);
+               ((TypeSpec)CUP$result).type_spec = (/*c*/(CharType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 174: // switch_type_spec ::= int_type 
+            {
+              CUP$result = new TypeSpec(/*switch_type_spec*/44);
+               ((TypeSpec)CUP$result).type_spec = (/*i*/(IntType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 173: // union_type ::= UNION ID 
+            {
+              CUP$result = new UnionType(/*union_type*/52);
+              
+                        ((UnionType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                        parser.closeScope( (Scope)((UnionType)CUP$result) );
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 172: // union_type ::= UNION ID SWITCH LPAREN switch_type_spec RPAREN LCBRACE switch_body RCBRACE 
+            {
+              CUP$result = new UnionType(/*union_type*/52);
+              
+                        ((UnionType)CUP$result).setSwitchType( (/*s*/(TypeSpec)CUP$stack.elementAt(CUP$top-4)) );
+                        ((UnionType)CUP$result).setSwitchBody( (/*sb*/(SwitchBody)CUP$stack.elementAt(CUP$top-1)) );
+                        ((UnionType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-7)));
+                        ((UnionType)CUP$result).set_included( parser.include_state );
+                        parser.closeScope( (Scope)((UnionType)CUP$result) );
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 171: // member ::= type_spec declarators SEMI 
+            {
+              CUP$result = new Member(/*member*/76);
+              
+                        ((Member)CUP$result).type_spec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-2));
+                        ((Member)CUP$result).declarators = (/*ds*/(SymbolList)CUP$stack.elementAt(CUP$top-1));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 170: // member_list ::= member member_list 
+            {
+              CUP$result = new MemberList(/*member_list*/87);
+              
+                        ((MemberList)CUP$result).v = (Vector)(/*ml*/(MemberList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((MemberList)CUP$result).v.insertElementAt((/*m*/(Member)CUP$stack.elementAt(CUP$top-1)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 169: // member_list ::= member 
+            {
+              CUP$result = new MemberList(/*member_list*/87);
+              
+                        ((MemberList)CUP$result).v.insertElementAt((/*m*/(Member)CUP$stack.elementAt(CUP$top-0)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 168: // struct_type ::= STRUCT ID 
+            {
+              CUP$result = new StructType(/*struct_type*/50);
+              
+                        ((StructType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                        parser.closeScope( (Scope)((StructType)CUP$result) );
+               
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 167: // struct_type ::= STRUCT ID LCBRACE member_list RCBRACE 
+            {
+              CUP$result = new StructType(/*struct_type*/50);
+              
+                        ((StructType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)));
+                        ((StructType)CUP$result).exc = false;
+                        ((StructType)CUP$result).set_memberlist( (/*ml*/(MemberList)CUP$stack.elementAt(CUP$top-1)) );
+                        ((StructType)CUP$result).set_included( parser.include_state );
+                        parser.closeScope( (Scope)((StructType)CUP$result) );
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 166: // any_type ::= ANY 
+            {
+              CUP$result = new AnyType(/*any_type*/69);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 165: // octet_type ::= OCTET 
+            {
+              CUP$result = new OctetType(/*octet_type*/68);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 164: // bool_type ::= BOOLEAN 
+            {
+              CUP$result = new BooleanType(/*bool_type*/67);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 163: // char_type ::= WCHAR 
+            {
+              CUP$result = new CharType(/*char_type*/66);
+               ((CharType)CUP$result).setWide(); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 162: // char_type ::= CHAR 
+            {
+              CUP$result = new CharType(/*char_type*/66);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 161: // long_long_type ::= LONG LONG 
+            {
+              CUP$result = new LongLongType(/*long_long_type*/65);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 160: // long_type ::= LONG 
+            {
+              CUP$result = new LongType(/*long_type*/64);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 159: // short_type ::= SHORT 
+            {
+              CUP$result = new ShortType(/*short_type*/63);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 158: // int_type ::= UNSIGNED short_type 
+            {
+              CUP$result = new IntType(/*int_type*/58);
+              
+                        ((IntType)CUP$result).type_spec = (/*s*/(ShortType)CUP$stack.elementAt(CUP$top-0));
+                        ((IntType)CUP$result).setUnsigned();
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 157: // int_type ::= short_type 
+            {
+              CUP$result = new IntType(/*int_type*/58);
+              
+                        ((IntType)CUP$result).type_spec = (/*s*/(ShortType)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 156: // int_type ::= UNSIGNED long_long_type 
+            {
+              CUP$result = new IntType(/*int_type*/58);
+              
+                        ((IntType)CUP$result).type_spec = (/*l*/(LongLongType)CUP$stack.elementAt(CUP$top-0));
+                        ((IntType)CUP$result).setUnsigned();
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 155: // int_type ::= UNSIGNED long_type 
+            {
+              CUP$result = new IntType(/*int_type*/58);
+              
+                        ((IntType)CUP$result).type_spec = (/*l*/(LongType)CUP$stack.elementAt(CUP$top-0));
+                        ((IntType)CUP$result).setUnsigned();
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 154: // int_type ::= long_long_type 
+            {
+              CUP$result = new IntType(/*int_type*/58);
+              
+                        ((IntType)CUP$result).type_spec = (/*ll*/(LongLongType)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 153: // int_type ::= long_type 
+            {
+              CUP$result = new IntType(/*int_type*/58);
+              
+                        ((IntType)CUP$result).type_spec = (/*l*/(LongType)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 152: // double_type ::= LONG DOUBLE 
+            {
+              CUP$result = new DoubleType(/*double_type*/62);
+              
+                ((DoubleType)CUP$result).setLongDouble();
+                lexer.emit_warn("IDL type long double not supported by standard IDL/Java mappings!");
+          
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 151: // double_type ::= DOUBLE 
+            {
+              CUP$result = new DoubleType(/*double_type*/62);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 150: // fixed_pt_const_type ::= FIXED 
+            {
+              CUP$result = new FixedPointConstType(/*fixed_pt_const_type*/61);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 149: // float_type ::= FLOAT 
+            {
+              CUP$result = new FloatType(/*float_type*/60);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 148: // float_pt_type ::= double_type 
+            {
+              CUP$result = new FloatPtType(/*float_pt_type*/59);
+               ((FloatPtType)CUP$result).type_spec = (/*d*/(DoubleType)CUP$stack.elementAt(CUP$top-0));
+                 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 147: // float_pt_type ::= float_type 
+            {
+              CUP$result = new FloatPtType(/*float_pt_type*/59);
+              ((FloatPtType)CUP$result).type_spec = (/*f*/(FloatType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 146: // simple_declarator ::= ID 
+            {
+              CUP$result = new SimpleDeclarator(/*simple_declarator*/78);
+              
+                        ((SimpleDeclarator)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 145: // declarator ::= array_declarator 
+            {
+              CUP$result = new Declarator(/*declarator*/77);
+               ((Declarator)CUP$result).d = (/*s*/(ArrayDeclarator)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 144: // declarator ::= simple_declarator 
+            {
+              CUP$result = new Declarator(/*declarator*/77);
+               ((Declarator)CUP$result).d = (/*s*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 143: // declarators ::= declarator 
+            {
+              CUP$result = new SymbolList(/*declarators*/94);
+              
+                        ((SymbolList)CUP$result).v.insertElementAt((/*d*/(Declarator)CUP$stack.elementAt(CUP$top-0)),0);
+                 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 142: // declarators ::= declarator COMMA declarators 
+            {
+              CUP$result = new SymbolList(/*declarators*/94);
+              
+                        ((SymbolList)CUP$result).v = (Vector)(/*ds*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((SymbolList)CUP$result).v.insertElementAt((/*d*/(Declarator)CUP$stack.elementAt(CUP$top-2)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 141: // constr_type_spec ::= enum_type 
+            {
+              CUP$result = new ConstrTypeSpec(/*constr_type_spec*/48);
+              
+                        ((ConstrTypeSpec)CUP$result).c_type_spec = (/*e*/(EnumType)CUP$stack.elementAt(CUP$top-0));
+                        ((ConstrTypeSpec)CUP$result).set_token((/*e*/(EnumType)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 140: // constr_type_spec ::= union_type 
+            {
+              CUP$result = new ConstrTypeSpec(/*constr_type_spec*/48);
+              
+                        ((ConstrTypeSpec)CUP$result).c_type_spec = (/*u*/(UnionType)CUP$stack.elementAt(CUP$top-0));
+                        ((ConstrTypeSpec)CUP$result).set_token((/*u*/(UnionType)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 139: // constr_type_spec ::= struct_type 
+            {
+              CUP$result = new ConstrTypeSpec(/*constr_type_spec*/48);
+              
+                        ((ConstrTypeSpec)CUP$result).c_type_spec = (/*s*/(StructType)CUP$stack.elementAt(CUP$top-0));
+                        ((ConstrTypeSpec)CUP$result).set_token((/*s*/(StructType)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 138: // template_type_spec ::= fixed_point_type 
+            {
+              CUP$result = new TemplateTypeSpec(/*template_type_spec*/47);
+              
+                        ((TemplateTypeSpec)CUP$result).type_spec = (/*f*/(FixedPointType)CUP$stack.elementAt(CUP$top-0));
+                        ((TemplateTypeSpec)CUP$result).set_token((/*f*/(FixedPointType)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 137: // template_type_spec ::= string_type 
+            {
+              CUP$result = new TemplateTypeSpec(/*template_type_spec*/47);
+              
+                        ((TemplateTypeSpec)CUP$result).type_spec = (/*s*/(StringType)CUP$stack.elementAt(CUP$top-0));
+                        ((TemplateTypeSpec)CUP$result).set_token((/*s*/(StringType)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 136: // template_type_spec ::= sequence_type 
+            {
+              CUP$result = new TemplateTypeSpec(/*template_type_spec*/47);
+              
+                        ((TemplateTypeSpec)CUP$result).type_spec = (/*s*/(SequenceType)CUP$stack.elementAt(CUP$top-0));
+                        ((TemplateTypeSpec)CUP$result).set_token((/*s*/(SequenceType)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 135: // base_type_spec ::= VALUEBASE 
+            {
+              CUP$result = new BaseType(/*base_type_spec*/57);
+               ((BaseType)CUP$result).type_spec = new ValueBase(sym.VALUEBASE); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 134: // base_type_spec ::= any_type 
+            {
+              CUP$result = new BaseType(/*base_type_spec*/57);
+               ((BaseType)CUP$result).type_spec = (/*s*/(AnyType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 133: // base_type_spec ::= octet_type 
+            {
+              CUP$result = new BaseType(/*base_type_spec*/57);
+               ((BaseType)CUP$result).type_spec = (/*s*/(OctetType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 132: // base_type_spec ::= bool_type 
+            {
+              CUP$result = new BaseType(/*base_type_spec*/57);
+               ((BaseType)CUP$result).type_spec = (/*s*/(BooleanType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 131: // base_type_spec ::= char_type 
+            {
+              CUP$result = new BaseType(/*base_type_spec*/57);
+               ((BaseType)CUP$result).type_spec = (/*s*/(CharType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 130: // base_type_spec ::= int_type 
+            {
+              CUP$result = new BaseType(/*base_type_spec*/57);
+              
+                        ((BaseType)CUP$result).type_spec = (/*s*/(IntType)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 129: // base_type_spec ::= float_pt_type 
+            {
+              CUP$result = new BaseType(/*base_type_spec*/57);
+               ((BaseType)CUP$result).type_spec = (/*s*/(FloatPtType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 128: // simple_type_spec ::= scopename 
+            {
+              CUP$result = new SimpleTypeSpec(/*simple_type_spec*/46);
+              
+                        ((SimpleTypeSpec)CUP$result).type_spec = (/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0));
+                        ((SimpleTypeSpec)CUP$result).set_token((/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 127: // simple_type_spec ::= template_type_spec 
+            {
+              CUP$result = new SimpleTypeSpec(/*simple_type_spec*/46);
+              
+                        ((SimpleTypeSpec)CUP$result).type_spec = (/*s*/(TemplateTypeSpec)CUP$stack.elementAt(CUP$top-0));
+                        ((SimpleTypeSpec)CUP$result).set_token((/*s*/(TemplateTypeSpec)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 126: // simple_type_spec ::= base_type_spec 
+            {
+              CUP$result = new SimpleTypeSpec(/*simple_type_spec*/46);
+              
+                        ((SimpleTypeSpec)CUP$result).type_spec = (/*s*/(BaseType)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 125: // type_spec ::= constr_type_spec 
+            {
+              CUP$result = new TypeSpec(/*type_spec*/41);
+              
+                        ((TypeSpec)CUP$result).type_spec = (/*s*/(ConstrTypeSpec)CUP$stack.elementAt(CUP$top-0));
+                        ((TypeSpec)CUP$result).set_token((/*s*/(ConstrTypeSpec)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 124: // type_spec ::= simple_type_spec 
+            {
+              CUP$result = new TypeSpec(/*type_spec*/41);
+              
+                        ((TypeSpec)CUP$result).type_spec = (/*s*/(SimpleTypeSpec)CUP$stack.elementAt(CUP$top-0));
+                        ((TypeSpec)CUP$result).set_token((/*s*/(SimpleTypeSpec)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 123: // type_declarator ::= type_spec declarators 
+            {
+              CUP$result = new TypeDeclarator(/*type_declarator*/40);
+              
+                        ((TypeDeclarator)CUP$result).type_spec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
+                        ((TypeDeclarator)CUP$result).declarators = (/*ds*/(SymbolList)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 122: // type_def ::= TYPEDEF type_declarator 
+            {
+              CUP$result = new TypeDef(/*type_def*/45);
+              
+                ((TypeDef)CUP$result).type_declarator = (/*t*/(TypeDeclarator)CUP$stack.elementAt(CUP$top-0));
+                ((TypeDef)CUP$result).set_included( parser.include_state );
+        
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 121: // type_dcl ::= native_type 
+            {
+              CUP$result = new TypeDeclaration(/*type_dcl*/39);
+               ((TypeDeclaration)CUP$result).type_decl = (/*n*/(NativeType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 120: // type_dcl ::= enum_type 
+            {
+              CUP$result = new TypeDeclaration(/*type_dcl*/39);
+               ((TypeDeclaration)CUP$result).type_decl = (/*e*/(EnumType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 119: // type_dcl ::= union_type 
+            {
+              CUP$result = new TypeDeclaration(/*type_dcl*/39);
+               ((TypeDeclaration)CUP$result).type_decl = (/*u*/(UnionType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 118: // type_dcl ::= struct_type 
+            {
+              CUP$result = new TypeDeclaration(/*type_dcl*/39);
+               ((TypeDeclaration)CUP$result).type_decl = (/*s*/(StructType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 117: // type_dcl ::= type_def 
+            {
+              CUP$result = new TypeDeclaration(/*type_dcl*/39);
+               ((TypeDeclaration)CUP$result).type_decl = (/*t*/(TypeDef)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 116: // positive_int_const ::= const_expr 
+            {
+              CUP$result = new PosIntConst(/*positive_int_const*/30);
+               ((PosIntConst)CUP$result).setExpression( (/*c*/(ConstExpr)CUP$stack.elementAt(CUP$top-0)) ); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 115: // string_literal ::= LDBLQUOTE DBLQUOTE 
+            {
+              CUP$result = new Literal(/*string_literal*/75);
+              
+                        ((Literal)CUP$result).string = "\"\"";
+                        ((Literal)CUP$result).wide = true;
+                  
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 114: // string_literal ::= LDBLQUOTE ID DBLQUOTE 
+            {
+              CUP$result = new Literal(/*string_literal*/75);
+              
+                        ((Literal)CUP$result).string = "\"" + (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-1)).str_val + "\"";
+                        ((Literal)CUP$result).wide = true;
+                  
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 113: // string_literal ::= DBLQUOTE DBLQUOTE 
+            {
+              CUP$result = new Literal(/*string_literal*/75);
+               ((Literal)CUP$result).string = "\"\""; 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 112: // string_literal ::= DBLQUOTE ID DBLQUOTE 
+            {
+              CUP$result = new Literal(/*string_literal*/75);
+               ((Literal)CUP$result).string = "\"" + (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-1)).str_val + "\""; 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 111: // literal ::= FALSE 
+            {
+              CUP$result = new Literal(/*literal*/74);
+              
+                        ((Literal)CUP$result).string = "false";
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 110: // literal ::= TRUE 
+            {
+              CUP$result = new Literal(/*literal*/74);
+              
+                        ((Literal)CUP$result).string = "true";
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 109: // literal ::= FLOAT_NUMBER 
+            {
+              CUP$result = new Literal(/*literal*/74);
+              
+                        ((Literal)CUP$result).string = "" + (/*n*/(org.jacorb.idl.runtime.float_token)CUP$stack.elementAt(CUP$top-0)).float_val ;
+                        ((Literal)CUP$result).token = (/*n*/(org.jacorb.idl.runtime.float_token)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 108: // literal ::= FIXED_NUMBER 
+            {
+              CUP$result = new Literal(/*literal*/74);
+              
+                        ((Literal)CUP$result).string = "" + (/*f*/(fixed_token)CUP$stack.elementAt(CUP$top-0)).fixed_val;
+                        ((Literal)CUP$result).token = (/*f*/(fixed_token)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 107: // literal ::= string_literal 
+            {
+              CUP$result = new Literal(/*literal*/74);
+              
+                        ((Literal)CUP$result).string = (/*s*/(Literal)CUP$stack.elementAt(CUP$top-0)).string;
+                        ((Literal)CUP$result).wide = (/*s*/(Literal)CUP$stack.elementAt(CUP$top-0)).wide;
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 106: // literal ::= QUOTE CH QUOTE 
+            {
+              CUP$result = new Literal(/*literal*/74);
+              
+                        ((Literal)CUP$result).string = "\'" + (/*c*/(org.jacorb.idl.runtime.char_token)CUP$stack.elementAt(CUP$top-1)).char_val + "\'";
+                        ((Literal)CUP$result).token = (/*c*/(org.jacorb.idl.runtime.char_token)CUP$stack.elementAt(CUP$top-1));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 105: // literal ::= LONG_NUMBER 
+            {
+              CUP$result = new Literal(/*literal*/74);
+              
+                        ((Literal)CUP$result).string = "" + (/*l*/(org.jacorb.idl.runtime.long_token)CUP$stack.elementAt(CUP$top-0)).long_val;
+                        ((Literal)CUP$result).token = (/*l*/(org.jacorb.idl.runtime.long_token)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 104: // literal ::= MINUS LONG_NUMBER 
+            {
+              CUP$result = new Literal(/*literal*/74);
+              
+                        ((Literal)CUP$result).string = "-" + (/*l*/(org.jacorb.idl.runtime.long_token)CUP$stack.elementAt(CUP$top-0)).long_val;
+                        ((Literal)CUP$result).token = (/*l*/(org.jacorb.idl.runtime.long_token)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 103: // literal ::= MINUS NUMBER 
+            {
+              CUP$result = new Literal(/*literal*/74);
+              
+                        ((Literal)CUP$result).string = "-" + (/*n*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-0)).int_val;
+                        ((Literal)CUP$result).token = (/*n*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 102: // literal ::= NUMBER 
+            {
+              CUP$result = new Literal(/*literal*/74);
+              
+                        ((Literal)CUP$result).string = "" + (/*n*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-0)).int_val;
+                        ((Literal)CUP$result).token = (/*n*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 101: // primary_expr ::= LPAREN const_expr RPAREN 
+            {
+              CUP$result = new PrimaryExpr(/*primary_expr*/38);
+               ((PrimaryExpr)CUP$result).symbol = (/*c*/(ConstExpr)CUP$stack.elementAt(CUP$top-1)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 100: // primary_expr ::= literal 
+            {
+              CUP$result = new PrimaryExpr(/*primary_expr*/38);
+               ((PrimaryExpr)CUP$result).symbol = (/*l*/(Literal)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 99: // primary_expr ::= scopename 
+            {
+              CUP$result = new PrimaryExpr(/*primary_expr*/38);
+               ((PrimaryExpr)CUP$result).symbol = (/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 98: // unary_op ::= TILDE 
+            {
+              CUP$result = new org.jacorb.idl.runtime.str_token(/*unary_op*/6);
+               ((org.jacorb.idl.runtime.str_token)CUP$result).str_val = "~"; 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 97: // unary_op ::= PLUS 
+            {
+              CUP$result = new org.jacorb.idl.runtime.str_token(/*unary_op*/6);
+               ((org.jacorb.idl.runtime.str_token)CUP$result).str_val = "+"; 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 96: // unary_op ::= MINUS SPACE 
+            {
+              CUP$result = new org.jacorb.idl.runtime.str_token(/*unary_op*/6);
+               ((org.jacorb.idl.runtime.str_token)CUP$result).str_val = "-"; 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 95: // unary_expr ::= primary_expr 
+            {
+              CUP$result = new UnaryExpr(/*unary_expr*/37);
+               ((UnaryExpr)CUP$result).primary_expr = (/*p*/(PrimaryExpr)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 94: // unary_expr ::= unary_op primary_expr 
+            {
+              CUP$result = new UnaryExpr(/*unary_expr*/37);
+              
+                        ((UnaryExpr)CUP$result).primary_expr = (/*p*/(PrimaryExpr)CUP$stack.elementAt(CUP$top-0));
+                        ((UnaryExpr)CUP$result).unary_op = (/*u*/(org.jacorb.idl.runtime.str_token)CUP$stack.elementAt(CUP$top-1)).str_val;
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 93: // mult_expr ::= mult_expr PERCENT unary_expr 
+            {
+              CUP$result = new MultExpr(/*mult_expr*/36);
+              
+                        ((MultExpr)CUP$result).unary_expr = (/*u*/(UnaryExpr)CUP$stack.elementAt(CUP$top-0));
+                        ((MultExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-2));
+                        ((MultExpr)CUP$result).operator = "%";
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 92: // mult_expr ::= mult_expr SLASH unary_expr 
+            {
+              CUP$result = new MultExpr(/*mult_expr*/36);
+              
+                        ((MultExpr)CUP$result).unary_expr = (/*u*/(UnaryExpr)CUP$stack.elementAt(CUP$top-0));
+                        ((MultExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-2));
+                        ((MultExpr)CUP$result).operator = "/";
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 91: // mult_expr ::= mult_expr STAR unary_expr 
+            {
+              CUP$result = new MultExpr(/*mult_expr*/36);
+              
+                        ((MultExpr)CUP$result).unary_expr = (/*u*/(UnaryExpr)CUP$stack.elementAt(CUP$top-0));
+                        ((MultExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-2));
+                        ((MultExpr)CUP$result).operator = "*";
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 90: // mult_expr ::= unary_expr 
+            {
+              CUP$result = new MultExpr(/*mult_expr*/36);
+               ((MultExpr)CUP$result).unary_expr = (/*u*/(UnaryExpr)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 89: // add_expr ::= add_expr MINUS mult_expr 
+            {
+              CUP$result = new AddExpr(/*add_expr*/35);
+              
+                        ((AddExpr)CUP$result).add_expr = (/*a*/(AddExpr)CUP$stack.elementAt(CUP$top-2));
+                        ((AddExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-0));
+                        ((AddExpr)CUP$result).operator = "-";
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 88: // add_expr ::= add_expr PLUS mult_expr 
+            {
+              CUP$result = new AddExpr(/*add_expr*/35);
+              
+                        ((AddExpr)CUP$result).add_expr = (/*a*/(AddExpr)CUP$stack.elementAt(CUP$top-2));
+                        ((AddExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-0));
+                        ((AddExpr)CUP$result).operator = "+";
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 87: // add_expr ::= mult_expr 
+            {
+              CUP$result = new AddExpr(/*add_expr*/35);
+              
+                        ((AddExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 86: // shift_expr ::= shift_expr RSHIFT add_expr 
+            {
+              CUP$result = new ShiftExpr(/*shift_expr*/34);
+              
+                        ((ShiftExpr)CUP$result).add_expr = (/*a*/(AddExpr)CUP$stack.elementAt(CUP$top-0));
+                        ((ShiftExpr)CUP$result).shift_expr = (/*s*/(ShiftExpr)CUP$stack.elementAt(CUP$top-2));
+                        ((ShiftExpr)CUP$result).operator = ">>";
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 85: // shift_expr ::= shift_expr LSHIFT add_expr 
+            {
+              CUP$result = new ShiftExpr(/*shift_expr*/34);
+              
+                        ((ShiftExpr)CUP$result).add_expr = (/*a*/(AddExpr)CUP$stack.elementAt(CUP$top-0));
+                        ((ShiftExpr)CUP$result).shift_expr = (/*s*/(ShiftExpr)CUP$stack.elementAt(CUP$top-2));
+                        ((ShiftExpr)CUP$result).operator = "<<";
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 84: // shift_expr ::= add_expr 
+            {
+              CUP$result = new ShiftExpr(/*shift_expr*/34);
+              
+                        ((ShiftExpr)CUP$result).add_expr = (/*a*/(AddExpr)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 83: // and_expr ::= and_expr AMPERSAND shift_expr 
+            {
+              CUP$result = new AndExpr(/*and_expr*/33);
+              
+                        ((AndExpr)CUP$result).and_expr = (/*a*/(AndExpr)CUP$stack.elementAt(CUP$top-2));
+                        ((AndExpr)CUP$result).shift_expr = (/*s*/(ShiftExpr)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 82: // and_expr ::= shift_expr 
+            {
+              CUP$result = new AndExpr(/*and_expr*/33);
+              
+                        ((AndExpr)CUP$result).shift_expr = (/*s*/(ShiftExpr)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 81: // xor_expr ::= xor_expr CIRCUM and_expr 
+            {
+              CUP$result = new XorExpr(/*xor_expr*/32);
+              
+                        ((XorExpr)CUP$result).and_expr = (/*a*/(AndExpr)CUP$stack.elementAt(CUP$top-0));
+                        ((XorExpr)CUP$result).xor_expr = (/*x*/(XorExpr)CUP$stack.elementAt(CUP$top-2));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 80: // xor_expr ::= and_expr 
+            {
+              CUP$result = new XorExpr(/*xor_expr*/32);
+              
+                        ((XorExpr)CUP$result).and_expr = (/*a*/(AndExpr)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 79: // or_expr ::= or_expr BAR xor_expr 
+            {
+              CUP$result = new OrExpr(/*or_expr*/31);
+              
+                        ((OrExpr)CUP$result).or_expr = (/*o*/(OrExpr)CUP$stack.elementAt(CUP$top-2));
+                        ((OrExpr)CUP$result).xor_expr = (/*x*/(XorExpr)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 78: // or_expr ::= xor_expr 
+            {
+              CUP$result = new OrExpr(/*or_expr*/31);
+              
+                        ((OrExpr)CUP$result).xor_expr = (/*x*/(XorExpr)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 77: // const_expr ::= or_expr 
+            {
+              CUP$result = new ConstExpr(/*const_expr*/29);
+              
+                        ((ConstExpr)CUP$result).or_expr = (/*o*/(OrExpr)CUP$stack.elementAt(CUP$top-0));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 76: // const_type ::= scopename 
+            {
+              CUP$result = new ConstType(/*const_type*/28);
+              
+                        ((ConstType)CUP$result).symbol = (/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0));
+                        ((ConstType)CUP$result).set_token((/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0)).get_token());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 75: // const_type ::= octet_type 
+            {
+              CUP$result = new ConstType(/*const_type*/28);
+               ((ConstType)CUP$result).symbol = (/*s*/(OctetType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 74: // const_type ::= string_type 
+            {
+              CUP$result = new ConstType(/*const_type*/28);
+               ((ConstType)CUP$result).symbol = (/*s*/(StringType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 73: // const_type ::= fixed_pt_const_type 
+            {
+              CUP$result = new ConstType(/*const_type*/28);
+               ((ConstType)CUP$result).symbol = (/*s*/(FixedPointConstType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 72: // const_type ::= float_pt_type 
+            {
+              CUP$result = new ConstType(/*const_type*/28);
+               ((ConstType)CUP$result).symbol = (/*s*/(FloatPtType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 71: // const_type ::= bool_type 
+            {
+              CUP$result = new ConstType(/*const_type*/28);
+               ((ConstType)CUP$result).symbol = (/*s*/(BooleanType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 70: // const_type ::= char_type 
+            {
+              CUP$result = new ConstType(/*const_type*/28);
+               ((ConstType)CUP$result).symbol = (/*s*/(CharType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 69: // const_type ::= int_type 
+            {
+              CUP$result = new ConstType(/*const_type*/28);
+               ((ConstType)CUP$result).symbol = (/*s*/(IntType)CUP$stack.elementAt(CUP$top-0)); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 68: // const_dcl ::= CONST const_type ID EQUALS const_expr 
+            {
+              CUP$result = new ConstDecl(/*const_dcl*/27);
+              
+                        ((ConstDecl)CUP$result).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-2)).str_val);
+                        ((ConstDecl)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-2)));
+                        ((ConstDecl)CUP$result).const_expr = (/*ce*/(ConstExpr)CUP$stack.elementAt(CUP$top-0));
+                        ((ConstDecl)CUP$result).const_type = (ConstType)(/*ct*/(ConstType)CUP$stack.elementAt(CUP$top-3));
+                        ((ConstDecl)CUP$result).set_included( parser.include_state );
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 67: // init_param_decl ::= IN param_type_spec simple_declarator 
+            {
+              CUP$result = new InitParamDecl(/*init_param_decl*/26);
+              
+                        ((InitParamDecl)CUP$result).paramTypeSpec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
+                        ((InitParamDecl)CUP$result).simple_declarator = (/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-0));
+                  
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 66: // init_param_decls ::= init_param_decl COMMA init_param_decls 
+            {
+              CUP$result = new SymbolList(/*init_param_decls*/90);
+              
+                        ((SymbolList)CUP$result).v = (Vector)(/*ipdcls*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((SymbolList)CUP$result).v.insertElementAt( (/*ip*/(InitParamDecl)CUP$stack.elementAt(CUP$top-2)), 0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 65: // init_param_decls ::= init_param_decl 
+            {
+              CUP$result = new SymbolList(/*init_param_decls*/90);
+              
+                        ((SymbolList)CUP$result).v.insertElementAt( (/*ip*/(InitParamDecl)CUP$stack.elementAt(CUP$top-0)), 0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 64: // init_dcl ::= FACTORY ID LPAREN RPAREN raises_expr SEMI 
+            {
+              CUP$result = new InitDecl(/*init_dcl*/25);
+              
+                        ((InitDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val;
+                        ((InitDecl)CUP$result).raisesExpr = (/*re*/(RaisesExpr)CUP$stack.elementAt(CUP$top-1));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 63: // init_dcl ::= FACTORY ID LPAREN init_param_decls RPAREN raises_expr SEMI 
+            {
+              CUP$result = new InitDecl(/*init_dcl*/25);
+              
+                        ((InitDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-5)).str_val;
+                        ((InitDecl)CUP$result).paramDecls = (Vector)(/*ipd*/(SymbolList)CUP$stack.elementAt(CUP$top-3)).v.clone();
+                        ((InitDecl)CUP$result).raisesExpr = (/*re*/(RaisesExpr)CUP$stack.elementAt(CUP$top-1));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 62: // state_member ::= PRIVATE type_spec declarators SEMI 
+            {
+              CUP$result = new StateMember(/*state_member*/24);
+              
+                           ((StateMember)CUP$result).isPublic    = false;
+                           ((StateMember)CUP$result).type_spec   = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-2));
+                           ((StateMember)CUP$result).declarators = (/*ds*/(SymbolList)CUP$stack.elementAt(CUP$top-1));
+                  
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 61: // state_member ::= PUBLIC type_spec declarators SEMI 
+            {
+              CUP$result = new StateMember(/*state_member*/24);
+              
+                           ((StateMember)CUP$result).isPublic    = true;
+                           ((StateMember)CUP$result).type_spec   = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-2));
+                           ((StateMember)CUP$result).declarators = (/*ds*/(SymbolList)CUP$stack.elementAt(CUP$top-1));
+                  
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 60: // value_element ::= init_dcl 
+            {
+              CUP$result = new Definition(/*value_element*/23);
+              
+                        ((Definition)CUP$result).set_declaration ((/*id*/(InitDecl)CUP$stack.elementAt(CUP$top-0)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 59: // value_element ::= state_member 
+            {
+              CUP$result = new Definition(/*value_element*/23);
+              
+                        ((Definition)CUP$result).set_declaration ((/*sm*/(StateMember)CUP$stack.elementAt(CUP$top-0)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 58: // value_element ::= export 
+            {
+              CUP$result = new Definition(/*value_element*/23);
+              
+                        ((Definition)CUP$result).set_declaration ((/*e*/(Definition)CUP$stack.elementAt(CUP$top-0)).get_declaration());
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 57: // value_elements ::= empty 
+            {
+              CUP$result = new Definitions(/*value_elements*/22);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 56: // value_elements ::= value_element value_elements 
+            {
+              CUP$result = new Definitions(/*value_elements*/22);
+              
+                        ((Definitions)CUP$result).v = (Vector)(/*es*/(Definitions)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((Definitions)CUP$result).v.insertElementAt((/*e*/(Definition)CUP$stack.elementAt(CUP$top-1)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 55: // truncatable ::= TRUNCATABLE 
+            {
+              CUP$result = new Truncatable(/*truncatable*/15);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 54: // value_inheritance_spec ::= empty 
+            {
+              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 53: // value_inheritance_spec ::= COLON 
+            {
+              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
+              
+                        lexer.emit_warn("Illegal IDL: empty inheritance spec after colon!");
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 52: // value_inheritance_spec ::= COLON scopename_list SUPPORTS scopename_list 
+            {
+              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
+              
+                        ((ValueInheritanceSpec)CUP$result).v = (Vector)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-2)).v.clone();
+                        ((ValueInheritanceSpec)CUP$result).supports = (Vector)(/*interface_names*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 51: // value_inheritance_spec ::= COLON truncatable scopename_list SUPPORTS scopename_list 
+            {
+              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
+              
+                        ((ValueInheritanceSpec)CUP$result).truncatable = (/*t*/(Truncatable)CUP$stack.elementAt(CUP$top-3));
+                        ((ValueInheritanceSpec)CUP$result).truncatable.scopedName = (ScopedName)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-2)).v.remove(0);
+                        ((ValueInheritanceSpec)CUP$result).v = (Vector)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-2)).v.clone();
+                        ((ValueInheritanceSpec)CUP$result).supports = (Vector)(/*interface_names*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 50: // value_inheritance_spec ::= SUPPORTS scopename_list 
+            {
+              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
+              
+                        ((ValueInheritanceSpec)CUP$result).supports = (Vector)(/*interface_names*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 49: // value_inheritance_spec ::= COLON scopename_list 
+            {
+              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
+              
+                        ((ValueInheritanceSpec)CUP$result).v = (Vector)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 48: // value_inheritance_spec ::= COLON truncatable scopename_list 
+            {
+              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
+              
+                        ((ValueInheritanceSpec)CUP$result).truncatable = (/*t*/(Truncatable)CUP$stack.elementAt(CUP$top-1));
+                        ((ValueInheritanceSpec)CUP$result).truncatable.scopedName = (ScopedName)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.remove(0);
+                        ((ValueInheritanceSpec)CUP$result).v = (Vector)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 47: // value_dcl ::= VALUETYPE ID value_inheritance_spec LCBRACE value_elements RCBRACE 
+            {
+              CUP$result = new ValueDecl(/*value_dcl*/18);
+              
+                        ((ValueDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val;
+                        ((ValueDecl)CUP$result).set_token ((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
+                        ((ValueDecl)CUP$result).setInheritanceSpec ((/*is*/(ValueInheritanceSpec)CUP$stack.elementAt(CUP$top-3)));
+                        ((ValueDecl)CUP$result).setValueElements ((/*ve*/(Definitions)CUP$stack.elementAt(CUP$top-1)));
+                        ((ValueDecl)CUP$result).isCustomMarshalled (false);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 46: // value_dcl ::= VALUETYPE ID 
+            {
+              CUP$result = new ValueDecl(/*value_dcl*/18);
+              
+                        ((ValueDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val;
+                        ((ValueDecl)CUP$result).set_token ((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                        ((ValueDecl)CUP$result).isCustomMarshalled (false);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 45: // value_dcl ::= CUSTOM VALUETYPE ID value_inheritance_spec LCBRACE value_elements RCBRACE 
+            {
+              CUP$result = new ValueDecl(/*value_dcl*/18);
+              
+                        ((ValueDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val;
+                        ((ValueDecl)CUP$result).set_token ((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
+                        ((ValueDecl)CUP$result).setInheritanceSpec ((/*is*/(ValueInheritanceSpec)CUP$stack.elementAt(CUP$top-3)));
+                        ((ValueDecl)CUP$result).setValueElements ((/*ve*/(Definitions)CUP$stack.elementAt(CUP$top-1)));
+                        ((ValueDecl)CUP$result).isCustomMarshalled (true);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 44: // value_body ::= empty 
+            {
+              CUP$result = new ValueBody(/*value_body*/20);
+               ((ValueBody)CUP$result).commit(); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 43: // value_body ::= export value_body 
+            {
+              CUP$result = new ValueBody(/*value_body*/20);
+              
+                        ((ValueBody)CUP$result).v = (Vector)(/*vb*/(ValueBody)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((ValueBody)CUP$result).v.insertElementAt((/*e*/(Definition)CUP$stack.elementAt(CUP$top-1)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 42: // value_abs_dcl ::= ABSTRACT VALUETYPE ID 
+            {
+              CUP$result = new ValueAbsDecl(/*value_abs_dcl*/19);
+              
+                        ((ValueAbsDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val;
+                        ((ValueAbsDecl)CUP$result).set_token ((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 41: // value_abs_dcl ::= ABSTRACT VALUETYPE ID value_inheritance_spec LCBRACE value_body RCBRACE 
+            {
+              CUP$result = new ValueAbsDecl(/*value_abs_dcl*/19);
+              
+                        ((ValueAbsDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val;
+                        ((ValueAbsDecl)CUP$result).setInheritanceSpec( (/*is*/(ValueInheritanceSpec)CUP$stack.elementAt(CUP$top-3)) );
+                        ((ValueAbsDecl)CUP$result).body = (/*b*/(ValueBody)CUP$stack.elementAt(CUP$top-1));
+                        (/*b*/(ValueBody)CUP$stack.elementAt(CUP$top-1)).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val);
+                        (/*b*/(ValueBody)CUP$stack.elementAt(CUP$top-1)).myAbsValue = ((ValueAbsDecl)CUP$result);
+                        (/*b*/(ValueBody)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((ValueAbsDecl)CUP$result));
+                        ((ValueAbsDecl)CUP$result).set_token ((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 40: // value_box_dcl ::= VALUETYPE ID type_spec 
+            {
+              CUP$result = new ValueBoxDecl(/*value_box_dcl*/17);
+              
+                        ((ValueBoxDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-1)).str_val;
+                        ((ValueBoxDecl)CUP$result).typeSpec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-0));
+                        ((ValueBoxDecl)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-1)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 39: // value ::= value_box_dcl 
+            {
+              CUP$result = new Value(/*value*/16);
+              
+                        ((Value)CUP$result).setValue ((/*vbx*/(ValueBoxDecl)CUP$stack.elementAt(CUP$top-0)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 38: // value ::= value_abs_dcl 
+            {
+              CUP$result = new Value(/*value*/16);
+              
+                        ((Value)CUP$result).setValue ((/*vad*/(ValueAbsDecl)CUP$stack.elementAt(CUP$top-0)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 37: // value ::= value_dcl 
+            {
+              CUP$result = new Value(/*value*/16);
+              
+                        ((Value)CUP$result).setValue ((/*vd*/(ValueDecl)CUP$stack.elementAt(CUP$top-0)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 36: // scopename ::= OBJECT 
+            {
+              CUP$result = new ScopedName(/*scopename*/14);
+              
+                        ((ScopedName)CUP$result).typeName = "org.omg.CORBA.Object";
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 35: // scopename ::= scopename DBLCOLON ID 
+            {
+              CUP$result = new ScopedName(/*scopename*/14);
+              
+                        ((ScopedName)CUP$result).setId( (/*sn*/(ScopedName)CUP$stack.elementAt(CUP$top-2)).typeName+ "." + (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val );
+                        ((ScopedName)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 34: // scopename ::= DBLCOLON ID 
+            {
+              CUP$result = new ScopedName(/*scopename*/14);
+              
+                        ((ScopedName)CUP$result).setId( "." + (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val);
+                        ((ScopedName)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 33: // scopename ::= ID 
+            {
+              CUP$result = new ScopedName(/*scopename*/14);
+              
+                        ((ScopedName)CUP$result).setId( (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val );
+                        ((ScopedName)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 32: // scopename_list ::= scopename 
+            {
+              CUP$result = new SymbolList(/*scopename_list*/92);
+               ((SymbolList)CUP$result).v.insertElementAt((/*sn*/(ScopedName)CUP$stack.elementAt(CUP$top-0)),0); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 31: // scopename_list ::= scopename COMMA scopename_list 
+            {
+              CUP$result = new SymbolList(/*scopename_list*/92);
+              
+                ((SymbolList)CUP$result).v = (Vector)(/*snl*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                ((SymbolList)CUP$result).v.insertElementAt((/*sn*/(ScopedName)CUP$stack.elementAt(CUP$top-2)),0);
+            
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 30: // inheritance_spec ::= empty 
+            {
+              CUP$result = new SymbolList(/*inheritance_spec*/95);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 29: // inheritance_spec ::= COLON 
+            {
+              CUP$result = new SymbolList(/*inheritance_spec*/95);
+              
+                        lexer.emit_warn("Illegal IDL: empty inheritance spec after colon!");
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 28: // inheritance_spec ::= COLON scopename_list 
+            {
+              CUP$result = new SymbolList(/*inheritance_spec*/95);
+              
+                        ((SymbolList)CUP$result).v = (Vector)(/*sl*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 27: // export ::= op_dcl SEMI 
+            {
+              CUP$result = new Definition(/*export*/13);
+               ((Definition)CUP$result).set_declaration((/*o*/(OpDecl)CUP$stack.elementAt(CUP$top-1))); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 26: // export ::= attr_dcl SEMI 
+            {
+              CUP$result = new Definition(/*export*/13);
+               ((Definition)CUP$result).set_declaration((/*a*/(AttrDecl)CUP$stack.elementAt(CUP$top-1))); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 25: // export ::= except_dcl SEMI 
+            {
+              CUP$result = new Definition(/*export*/13);
+               ((Definition)CUP$result).set_declaration((/*e*/(StructType)CUP$stack.elementAt(CUP$top-1))); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 24: // export ::= const_dcl SEMI 
+            {
+              CUP$result = new Definition(/*export*/13);
+               ((Definition)CUP$result).set_declaration((/*c*/(ConstDecl)CUP$stack.elementAt(CUP$top-1))); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 23: // export ::= type_dcl SEMI 
+            {
+              CUP$result = new Definition(/*export*/13);
+               ((Definition)CUP$result).set_declaration((/*t*/(TypeDeclaration)CUP$stack.elementAt(CUP$top-1))); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 22: // interface_body ::= empty 
+            {
+              CUP$result = new InterfaceBody(/*interface_body*/12);
+               ((InterfaceBody)CUP$result).commit(); 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 21: // interface_body ::= export interface_body 
+            {
+              CUP$result = new InterfaceBody(/*interface_body*/12);
+              
+                        ((InterfaceBody)CUP$result).v = (Vector)(/*i*/(InterfaceBody)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((InterfaceBody)CUP$result).v.insertElementAt((/*e*/(Definition)CUP$stack.elementAt(CUP$top-1)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 20: // interface ::= PSEUDO INTERFACE ID 
+            {
+              CUP$result = new Interface(/*interface*/11);
+              
+                ((Interface)CUP$result).set_pseudo();
+                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                parser.closeScope( (Scope)((Interface)CUP$result) );
+          
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 19: // interface ::= LOCAL INTERFACE ID 
+            {
+              CUP$result = new Interface(/*interface*/11);
+              
+                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                ((Interface)CUP$result).set_abstract();
+                ((Interface)CUP$result).set_locality( true );
+                parser.closeScope( (Scope)((Interface)CUP$result) );
+          
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 18: // interface ::= ABSTRACT INTERFACE ID 
+            {
+              CUP$result = new Interface(/*interface*/11);
+              
+                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                ((Interface)CUP$result).set_abstract();
+                parser.closeScope( (Scope)((Interface)CUP$result) );
+          
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 17: // interface ::= INTERFACE ID 
+            {
+              CUP$result = new Interface(/*interface*/11);
+              
+                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
+                parser.closeScope( (Scope)((Interface)CUP$result) );
+          
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 16: // interface ::= PSEUDO INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE 
+            {
+              CUP$result = new Interface(/*interface*/11);
+              
+                ((Interface)CUP$result).set_pseudo();
+                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
+                ((Interface)CUP$result).inheritanceSpec = (/*is*/(SymbolList)CUP$stack.elementAt(CUP$top-3));
+                ((Interface)CUP$result).body = (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1));
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).set_pseudo();
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val);
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).my_interface = ((Interface)CUP$result);
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((Interface)CUP$result));
+                ((Interface)CUP$result).set_included( parser.include_state );
+                parser.closeScope( (Scope)((Interface)CUP$result) );
+         
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 15: // interface ::= LOCAL INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE 
+            {
+              CUP$result = new Interface(/*interface*/11);
+              
+                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
+                ((Interface)CUP$result).inheritanceSpec = (/*is*/(SymbolList)CUP$stack.elementAt(CUP$top-3));
+                ((Interface)CUP$result).body = (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)) ;
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val);
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).my_interface = ((Interface)CUP$result);
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((Interface)CUP$result));
+                ((Interface)CUP$result).set_included( parser.include_state );
+                ((Interface)CUP$result).set_locality( true );
+                parser.closeScope( (Scope)((Interface)CUP$result) );
+         
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 14: // interface ::= ABSTRACT INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE 
+            {
+              CUP$result = new Interface(/*interface*/11);
+              
+                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
+                ((Interface)CUP$result).set_abstract();
+                ((Interface)CUP$result).inheritanceSpec = (/*is*/(SymbolList)CUP$stack.elementAt(CUP$top-3));
+                ((Interface)CUP$result).body = (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)) ;
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val);
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).my_interface = ((Interface)CUP$result);
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((Interface)CUP$result));
+                ((Interface)CUP$result).set_included( parser.include_state );
+                parser.closeScope( (Scope)((Interface)CUP$result) );
+         
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 13: // interface ::= INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE 
+            {
+              CUP$result = new Interface(/*interface*/11);
+              
+                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
+                ((Interface)CUP$result).inheritanceSpec = (/*is*/(SymbolList)CUP$stack.elementAt(CUP$top-3));
+                ((Interface)CUP$result).body = (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)) ;
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val);
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).my_interface = ((Interface)CUP$result);
+                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((Interface)CUP$result));
+                ((Interface)CUP$result).set_included( parser.include_state );
+                parser.closeScope( (Scope)((Interface)CUP$result) );
+         
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 12: // module ::= MODULE ID LCBRACE definitions RCBRACE 
+            {
+              CUP$result = new Module(/*module*/10);
+              
+                ((Module)CUP$result).spec = (/*d*/(Definitions)CUP$stack.elementAt(CUP$top-1));
+                ((Module)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)));
+                ((Module)CUP$result).setPackage((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)).str_val );
+                ((Module)CUP$result).set_included( parser.include_state );
+
+                (/*d*/(Definitions)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((Module)CUP$result));
+                parser.closeScope( (Scope)((Module)CUP$result) );
+        
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 11: // definition ::= value SEMI 
+            {
+              CUP$result = new Definition(/*definition*/8);
+              
+                        ((Definition)CUP$result).set_declaration((/*m*/(Value)CUP$stack.elementAt(CUP$top-1)));
+                 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 10: // definition ::= module SEMI 
+            {
+              CUP$result = new Definition(/*definition*/8);
+              
+                        ((Definition)CUP$result).set_declaration((/*m*/(Module)CUP$stack.elementAt(CUP$top-1)));
+                 
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 9: // definition ::= interface SEMI 
+            {
+              CUP$result = new Definition(/*definition*/8);
+              
+                        ((Definition)CUP$result).set_declaration((/*p*/(Interface)CUP$stack.elementAt(CUP$top-1)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 8: // definition ::= except_dcl SEMI 
+            {
+              CUP$result = new Definition(/*definition*/8);
+              
+                        ((Definition)CUP$result).set_declaration((/*e*/(StructType)CUP$stack.elementAt(CUP$top-1)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 7: // definition ::= const_dcl SEMI 
+            {
+              CUP$result = new Definition(/*definition*/8);
+              
+                        ((Definition)CUP$result).set_declaration((/*c*/(ConstDecl)CUP$stack.elementAt(CUP$top-1)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 6: // definition ::= type_dcl SEMI 
+            {
+              CUP$result = new Definition(/*definition*/8);
+              
+                        ((Definition)CUP$result).set_declaration((/*t*/(TypeDeclaration)CUP$stack.elementAt(CUP$top-1)));
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 5: // definitions ::= definition 
+            {
+              CUP$result = new Definitions(/*definitions*/9);
+              
+                        ((Definitions)CUP$result).v.insertElementAt((/*d*/(Definition)CUP$stack.elementAt(CUP$top-0)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 4: // definitions ::= definition definitions 
+            {
+              CUP$result = new Definitions(/*definitions*/9);
+              
+                        ((Definitions)CUP$result).v = (Vector)(/*ds*/(Definitions)CUP$stack.elementAt(CUP$top-0)).v.clone();
+                        ((Definitions)CUP$result).v.insertElementAt((/*d*/(Definition)CUP$stack.elementAt(CUP$top-1)),0);
+                
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 3: // specification ::= empty 
+            {
+              CUP$result = new Spec(/*specification*/7);
+              
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 2: // specification ::= NT$0 definitions 
+            {
+              CUP$result = new Spec(/*specification*/7);
+              
+                /* parsing */
+
+                ((Spec)CUP$result).definitions = (Vector)(/*ds*/(Definitions)CUP$stack.elementAt(CUP$top-0)).v.clone();
+
+                if( ((org.jacorb.idl.parser)CUP$parser).package_prefix != null )
+                        ((Spec)CUP$result).setPackage( ((org.jacorb.idl.parser)CUP$parser).package_prefix );
+
+                ((Spec)CUP$result).parse();
+
+                if ( lexer.error_count != 0 )
+                {
+                    lexer.emit_error( lexer.error_count + " error(s).");
+                    throw new ParseException ("Lexer errors");
+                }
+
+                // if there are still interfaces to be parsed, wait until the
+                // threads performing this have finished. The last one
+                // will call notify() :)
+
+                if( parser.pending_interfaces.size() > 0  )
+                {
+                   // only block waiting if we know that there are active or
+                   // runnable threads and that there are still pending tasks
+                    final long timeout = 60000;
+                    long waitUntil = System.currentTimeMillis() + 20000;
+
+                    synchronized(parser.pending_interfaces)
+                    {
+                        while(parser.activeParseThreads() > 0 && parser.pending_interfaces.size() > 0 && System.currentTimeMillis() < waitUntil)
+                        {
+                            parser.pending_interfaces.wait(timeout);
+                        }
+                    }
+                }
+
+                if( parser.pending_interfaces.size() > 0 &&
+                    !parser.sloppy )
+                {
+                    parser.fatal_error("Undefined interface: " +
+                        (String)(parser.pending_interfaces.keys().nextElement()), null );
+                }
+
+
+                /* okay, parsing is done */
+                parser.done_parsing = true;
+
+                /* code generation phase */
+
+                if (! ((org.jacorb.idl.parser)CUP$parser).parse_only  )
+                {
+                     org.jacorb.idl.IDLTreeVisitor backend =
+                        ((org.jacorb.idl.parser)CUP$parser).getGenerator();
+                     if( backend != null )
+                     {
+                         if (((org.jacorb.idl.parser)CUP$parser).addbackend)
+                         {
+                             // before the custom backend first use
+                             // the default code generator for the Java Mapping
+                              ((Spec)CUP$result).print( new java.io.PrintWriter( java.lang.System.out ) );
+                         }
+
+                          // a custom backend was provided , so let's start
+                          // the visitor
+                          ((Spec)CUP$result).accept( backend );
+                     }
+                     else
+                     {
+                          // use the default code generator for the Java Mapping
+                          ((Spec)CUP$result).print( new java.io.PrintWriter( java.lang.System.out ) );
+                     }
+                }
+
+        
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 1: // NT$0 ::= 
+            {
+              CUP$result = new org.jacorb.idl.runtime.token(/*NT$0*/98);
+              
+        
+            }
+          return CUP$result;
+
+          /*. . . . . . . . . . . . . . . . . . . .*/
+          case 0: // $START ::= specification EOF 
+            {
+              CUP$result = new org.jacorb.idl.runtime.token(/*$START*/0);
+              
+            }
+          /* ACCEPT */
+          CUP$parser.done_parsing();
+          return CUP$result;
+
+          /* . . . . . .*/
+          default:
+            throw new Exception(
+               "Invalid action number found in internal parse table");
+
+        }
+    }
+};
+
diff -Nru JacORB-R_2_3_2_jboss-5/src/org/jacorb/idl/sym.java JacORB-R_2_3_2_jboss-5.java_cup/src/org/jacorb/idl/sym.java
--- JacORB-R_2_3_2_jboss-5/src/org/jacorb/idl/sym.java	1970-01-01 01:00:00.000000000 +0100
+++ JacORB-R_2_3_2_jboss-5.java_cup/src/org/jacorb/idl/sym.java	2016-09-01 20:26:27.723247112 +0200
@@ -0,0 +1,102 @@
+
+//----------------------------------------------------
+// The following code was generated by CUP v0.9e
+// Thu Sep 01 20:26:27 CEST 2016
+//----------------------------------------------------
+
+package org.jacorb.idl;
+
+/** Cup generated class containing symbol constants. */
+public class sym {
+  /* terminals */
+  static final int SHORT = 38;
+  static final int CONTEXT = 9;
+  static final int FACTORY = 15;
+  static final int CONST = 8;
+  static final int TRUNCATABLE = 44;
+  static final int WCHAR = 51;
+  static final int SEMI = 53;
+  static final int ENUM = 13;
+  static final int SPACE = 82;
+  static final int READONLY = 35;
+  static final int RAISES = 34;
+  static final int COMMA = 54;
+  static final int RPAREN = 62;
+  static final int SEQUENCE = 37;
+  static final int DOUBLE = 12;
+  static final int STRUCT = 40;
+  static final int VALUEBASE = 48;
+  static final int LPAREN = 61;
+  static final int OUT = 30;
+  static final int FALSE = 16;
+  static final int TILDE = 77;
+  static final int RCBRACE = 64;
+  static final int OBJECT = 27;
+  static final int DBLQUOTE = 70;
+  static final int LCBRACE = 63;
+  static final int FLOAT = 18;
+  static final int WSTRING = 52;
+  static final int GREATERTHAN = 68;
+  static final int SETRAISES = 36;
+  static final int FIXED = 17;
+  static final int SUPPORTS = 41;
+  static final int NUMBER = 85;
+  static final int LESSTHAN = 67;
+  static final int ABSTRACT = 2;
+  static final int SLASH = 75;
+  static final int VALUETYPE = 49;
+  static final int TRUE = 43;
+  static final int NATIVE = 26;
+  static final int LONG = 24;
+  static final int PLUS = 59;
+  static final int PERCENT = 76;
+  static final int QUOTE = 69;
+  static final int PSEUDO = 33;
+  static final int UNION = 47;
+  static final int MODULE = 25;
+  static final int INTERFACE = 22;
+  static final int CHAR = 7;
+  static final int BOOLEAN = 5;
+  static final int SWITCH = 42;
+  static final int STAR = 55;
+  static final int VOID = 50;
+  static final int INOUT = 21;
+  static final int PUBLIC = 32;
+  static final int OCTET = 28;
+  static final int AMPERSAND = 74;
+  static final int DOT = 56;
+  static final int CIRCUM = 73;
+  static final int EOF = 0;
+  static final int ONEWAY = 29;
+  static final int DBLCOLON = 78;
+  static final int DEFAULT = 11;
+  static final int GETRAISES = 19;
+  static final int FLOAT_NUMBER = 87;
+  static final int LOCAL = 23;
+  static final int FIXED_NUMBER = 88;
+  static final int RSBRACE = 66;
+  static final int MINUS = 60;
+  static final int IN = 20;
+  static final int CH = 84;
+  static final int error = 1;
+  static final int ATTRIBUTE = 4;
+  static final int UNSIGNED = 46;
+  static final int ID = 83;
+  static final int CUSTOM = 10;
+  static final int BSLASH = 71;
+  static final int COLON = 57;
+  static final int LSBRACE = 65;
+  static final int ANY = 3;
+  static final int CASE = 6;
+  static final int EXCEPTION = 14;
+  static final int RSHIFT = 79;
+  static final int STRING = 39;
+  static final int LDBLQUOTE = 81;
+  static final int BAR = 72;
+  static final int PRIVATE = 31;
+  static final int LSHIFT = 80;
+  static final int TYPEDEF = 45;
+  static final int EQUALS = 58;
+  static final int LONG_NUMBER = 86;
+};
+