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;
+};
+