KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jacorb > idl > parser


1
2 //----------------------------------------------------
3
// The following code was generated by CUP v0.9e
4
// Wed Apr 21 17:28:07 CEST 2004
5
//----------------------------------------------------
6

7 package org.jacorb.idl;
8
9 import java.io.*;
10 import java.util.*;
11 import org.jacorb.idl.runtime.*;
12 import org.apache.log.*;
13 import org.apache.log.format.*;
14 import org.apache.log.output.io.*;
15
16 public class parser extends org.jacorb.idl.runtime.lr_parser {
17
18   /** constructor */
19   public parser() {super();}
20
21   /** production table */
22   protected static final short _production_table[][] = {
23         {0, 2}, {96, 0}, {7, 2}, {7, 1}, {9, 2},
24         {9, 1}, {8, 2}, {8, 2}, {8, 2}, {8, 2},
25         {8, 2}, {8, 2}, {10, 5}, {11, 6}, {11, 7},
26         {11, 7}, {11, 7}, {11, 2}, {11, 3}, {11, 3},
27         {11, 3}, {12, 2}, {12, 1}, {13, 2}, {13, 2},
28         {13, 2}, {13, 2}, {13, 2}, {93, 2}, {93, 1},
29         {93, 1}, {90, 3}, {90, 1}, {14, 1}, {14, 2},
30         {14, 3}, {14, 1}, {16, 1}, {16, 1}, {16, 1},
31         {17, 3}, {19, 7}, {19, 3}, {20, 2}, {20, 1},
32         {18, 7}, {18, 2}, {18, 6}, {21, 3}, {21, 2},
33         {21, 2}, {21, 5}, {21, 4}, {21, 1}, {21, 1},
34         {15, 1}, {22, 2}, {22, 1}, {23, 1}, {23, 1},
35         {23, 1}, {24, 4}, {24, 4}, {25, 7}, {25, 6},
36         {88, 1}, {88, 3}, {26, 3}, {27, 5}, {28, 1},
37         {28, 1}, {28, 1}, {28, 1}, {28, 1}, {28, 1},
38         {28, 1}, {28, 1}, {29, 1}, {31, 1}, {31, 3},
39         {32, 1}, {32, 3}, {33, 1}, {33, 3}, {34, 1},
40         {34, 3}, {34, 3}, {35, 1}, {35, 3}, {35, 3},
41         {36, 1}, {36, 3}, {36, 3}, {36, 3}, {37, 2},
42         {37, 1}, {6, 2}, {6, 1}, {6, 1}, {38, 1},
43         {38, 1}, {38, 3}, {74, 1}, {74, 2}, {74, 2},
44         {74, 1}, {74, 3}, {74, 1}, {74, 1}, {74, 1},
45         {74, 1}, {74, 1}, {75, 3}, {75, 2}, {75, 3},
46         {75, 2}, {30, 1}, {39, 1}, {39, 1}, {39, 1},
47         {39, 1}, {39, 1}, {45, 2}, {40, 2}, {41, 1},
48         {41, 1}, {46, 1}, {46, 1}, {46, 1}, {57, 1},
49         {57, 1}, {57, 1}, {57, 1}, {57, 1}, {57, 1},
50         {57, 1}, {47, 1}, {47, 1}, {47, 1}, {48, 1},
51         {48, 1}, {48, 1}, {92, 3}, {92, 1}, {77, 1},
52         {77, 1}, {78, 1}, {59, 1}, {59, 1}, {60, 1},
53         {61, 1}, {62, 1}, {62, 2}, {58, 1}, {58, 1},
54         {58, 2}, {58, 2}, {58, 1}, {58, 2}, {63, 1},
55         {64, 1}, {65, 2}, {66, 1}, {66, 1}, {67, 1},
56         {68, 1}, {69, 1}, {50, 5}, {50, 2}, {85, 1},
57         {85, 2}, {76, 3}, {52, 9}, {52, 2}, {44, 1},
58         {44, 1}, {44, 1}, {44, 1}, {44, 1}, {54, 1},
59         {54, 2}, {55, 3}, {86, 3}, {86, 2}, {86, 4},
60         {86, 3}, {56, 2}, {49, 5}, {94, 1}, {94, 3},
61         {53, 2}, {72, 6}, {72, 4}, {71, 4}, {71, 4},
62         {71, 1}, {71, 1}, {73, 6}, {79, 2}, {95, 1},
63         {95, 2}, {80, 3}, {84, 4}, {84, 3}, {91, 1},
64         {91, 3}, {51, 4}, {51, 5}, {83, 6}, {4, 1},
65         {4, 1}, {42, 1}, {42, 1}, {70, 1}, {89, 3},
66         {89, 2}, {87, 3}, {87, 1}, {81, 3}, {5, 1},
67         {5, 1}, {5, 1}, {82, 4}, {82, 1}, {1, 4},
68         {1, 1}, {2, 1}, {2, 3}, {43, 1}, {43, 1},
69         {43, 1}, {3, 0} };
70
71   /** access to production table */
72   public short[][] production_table() {return _production_table;}
73
74   /** parse action table */
75   protected static final short[][] _action_table = {
76     /*0*/{0,-232,2,-2,8,-2,10,-2,13,-2,14,-2,21,-2,22,-2,24,-2,25,-2,32,-2,38,-2,43,-2,45,-2,47,-2,-1,0},
77     /*1*/{2,30,8,27,10,8,13,28,14,10,21,29,22,14,24,21,25,13,32,23,38,12,43,24,45,26,47,17,-1,0},
78     /*2*/{0,5,-1,0},
79     /*3*/{0,-4,-1,0},
80     /*4*/{0,-1,-1,0},
81     /*5*/{51,405,-1,0},
82     /*6*/{51,404,-1,0},
83     /*7*/{47,398,-1,0},
84     /*8*/{51,397,-1,0},
85     /*9*/{81,392,-1,0},
86     /*10*/{51,-121,-1,0},
87     /*11*/{81,383,-1,0},
88     /*12*/{81,200,-1,0},
89     /*13*/{21,376,-1,0},
90     /*14*/{0,-6,2,30,8,27,10,8,13,28,14,10,21,29,22,14,24,21,25,13,32,23,38,12,43,24,45,26,47,17,62,-6,-1,0},
91     /*15*/{51,-38,-1,0},
92     /*16*/{81,339,-1,0},
93     /*17*/{51,-40,-1,0},
94     /*18*/{51,338,-1,0},
95     /*19*/{51,-122,-1,0},
96     /*20*/{81,334,-1,0},
97     /*21*/{51,333,-1,0},
98     /*22*/{21,327,-1,0},
99     /*23*/{3,86,5,81,7,68,12,95,13,28,17,284,18,83,23,64,26,79,27,93,35,293,36,90,37,82,38,12,44,73,45,26,46,76,49,91,50,92,76,72,81,77,-1,0},
100     /*24*/{51,320,-1,0},
101     /*25*/{81,260,-1,0},
102     /*26*/{5,81,7,68,12,95,17,255,18,83,23,64,26,79,27,93,36,90,37,82,44,73,49,91,50,92,76,72,81,77,-1,0},
103     /*27*/{81,240,-1,0},
104     /*28*/{81,235,-1,0},
105     /*29*/{21,36,47,37,-1,0},
106     /*30*/{51,-39,-1,0},
107     /*31*/{51,-120,-1,0},
108     /*32*/{51,-118,-1,0},
109     /*33*/{51,-119,-1,0},
110     /*34*/{0,-3,-1,0},
111     /*35*/{81,224,-1,0},
112     /*36*/{81,38,-1,0},
113     /*37*/{39,41,51,-43,55,39,61,-232,-1,0},
114     /*38*/{26,79,42,216,61,-54,76,72,81,77,-1,0},
115     /*39*/{61,-55,-1,0},
116     /*40*/{26,79,76,72,81,77,-1,0},
117     /*41*/{61,43,-1,0},
118     /*42*/{3,-232,4,46,5,-232,7,-232,8,27,12,-232,13,28,14,10,18,-232,23,-232,25,13,26,-232,27,-232,28,47,34,45,36,-232,37,-232,38,12,43,24,44,-232,45,26,46,-232,48,-232,49,-232,50,-232,62,-232,76,-232,81,-232,-1,0},
119     /*43*/{51,214,-1,0},
120     /*44*/{4,211,-1,0},
121     /*45*/{3,86,5,81,7,68,12,95,18,83,23,64,26,79,27,93,36,90,37,82,44,73,46,76,49,91,50,92,76,72,81,77,-1,0},
122     /*46*/{3,-210,5,-210,7,-210,12,-210,18,-210,23,-210,26,-210,27,-210,36,-210,37,-210,44,-210,46,-210,48,-210,49,-210,50,-210,76,-210,81,-210,-1,0},
123     /*47*/{3,86,5,81,7,68,12,95,18,83,23,64,26,79,27,93,36,90,37,82,44,73,46,76,48,94,49,91,50,92,76,72,81,77,-1,0},
124     /*48*/{51,61,-1,0},
125     /*49*/{3,-211,5,-211,7,-211,12,-211,18,-211,23,-211,26,-211,27,-211,36,-211,37,-211,44,-211,46,-211,48,-211,49,-211,50,-211,62,-45,76,-211,81,-211,-1,0},
126     /*50*/{51,60,-1,0},
127     /*51*/{51,59,-1,0},
128     /*52*/{51,58,-1,0},
129     /*53*/{62,57,-1,0},
130     /*54*/{3,-232,4,46,5,-232,7,-232,8,27,12,-232,13,28,14,10,18,-232,23,-232,25,13,26,-232,27,-232,28,47,34,45,36,-232,37,-232,38,12,43,24,44,-232,45,26,46,-232,48,-232,49,-232,50,-232,62,-232,76,-232,81,-232,-1,0},
131     /*55*/{62,-44,-1,0},
132     /*56*/{51,-42,-1,0},
133     /*57*/{3,-26,4,-26,5,-26,7,-26,8,-26,12,-26,13,-26,14,-26,15,-26,18,-26,23,-26,25,-26,26,-26,27,-26,28,-26,30,-26,31,-26,34,-26,36,-26,37,-26,38,-26,43,-26,44,-26,45,-26,46,-26,48,-26,49,-26,50,-26,62,-26,76,-26,81,-26,-1,0},
134     /*58*/{3,-28,4,-28,5,-28,7,-28,8,-28,12,-28,13,-28,14,-28,15,-28,18,-28,23,-28,25,-28,26,-28,27,-28,28,-28,30,-28,31,-28,34,-28,36,-28,37,-28,38,-28,43,-28,44,-28,45,-28,46,-28,48,-28,49,-28,50,-28,62,-28,76,-28,81,-28,-1,0},
135     /*59*/{3,-25,4,-25,5,-25,7,-25,8,-25,12,-25,13,-25,14,-25,15,-25,18,-25,23,-25,25,-25,26,-25,27,-25,28,-25,30,-25,31,-25,34,-25,36,-25,37,-25,38,-25,43,-25,44,-25,45,-25,46,-25,48,-25,49,-25,50,-25,62,-25,76,-25,81,-25,-1,0},
136     /*60*/{3,-27,4,-27,5,-27,7,-27,8,-27,12,-27,13,-27,14,-27,15,-27,18,-27,23,-27,25,-27,26,-27,27,-27,28,-27,30,-27,31,-27,34,-27,36,-27,37,-27,38,-27,43,-27,44,-27,45,-27,46,-27,48,-27,49,-27,50,-27,62,-27,76,-27,81,-27,-1,0},
137     /*61*/{51,-134,52,-134,66,-134,81,-134,-1,0},
138     /*62*/{81,-230,-1,0},
139     /*63*/{12,205,23,169,51,-161,52,-161,66,-161,81,-161,-1,0},
140     /*64*/{51,-132,52,-132,66,-132,81,-132,-1,0},
141     /*65*/{76,160,81,-231,-1,0},
142     /*66*/{81,171,-1,0},
143     /*67*/{51,-163,52,-163,60,-163,66,-163,81,-163,-1,0},
144     /*68*/{51,-158,52,-158,60,-158,66,-158,81,-158,-1,0},
145     /*69*/{81,-212,-1,0},
146     /*70*/{81,-229,-1,0},
147     /*71*/{81,170,-1,0},
148     /*72*/{23,165,36,90,-1,0},
149     /*73*/{51,-131,52,-131,66,-131,81,-131,-1,0},
150     /*74*/{81,-213,-1,0},
151     /*75*/{51,-136,52,-136,66,-136,81,-136,-1,0},
152     /*76*/{39,-34,51,-34,52,-34,53,-34,55,-34,57,-34,58,-34,60,-34,61,-34,64,-34,66,-34,70,-34,71,-34,72,-34,73,-34,74,-34,76,-34,77,-34,78,-34,81,-34,-1,0},
153     /*77*/{51,-148,52,-148,66,-148,81,-148,-1,0},
154     /*78*/{39,-37,51,-37,52,-37,53,-37,55,-37,57,-37,58,-37,60,-37,61,-37,64,-37,66,-37,70,-37,71,-37,72,-37,73,-37,74,-37,76,-37,77,-37,78,-37,81,-37,-1,0},
155     /*79*/{51,-133,52,-133,66,-133,81,-133,-1,0},
156     /*80*/{51,-165,52,-165,60,-165,66,-165,81,-165,-1,0},
157     /*81*/{51,-196,52,-196,65,162,66,-196,81,-196,-1,0},
158     /*82*/{51,-150,52,-150,66,-150,81,-150,-1,0},
159     /*83*/{51,-135,52,-135,66,-135,81,-135,-1,0},
160     /*84*/{51,-149,52,-149,66,-149,81,-149,-1,0},
161     /*85*/{51,-167,52,-167,66,-167,81,-167,-1,0},
162     /*86*/{51,-155,52,-155,60,-155,66,-155,81,-155,-1,0},
163     /*87*/{51,-154,52,-154,60,-154,66,-154,81,-154,-1,0},
164     /*88*/{51,-130,52,-130,66,-130,81,-130,-1,0},
165     /*89*/{51,-160,52,-160,60,-160,66,-160,81,-160,-1,0},
166     /*90*/{51,-164,52,-164,60,-164,66,-164,81,-164,-1,0},
167     /*91*/{51,-197,52,-197,65,96,66,-197,81,-197,-1,0},
168     /*92*/{51,-166,52,-166,66,-166,81,-166,-1,0},
169     /*93*/{81,-214,-1,0},
170     /*94*/{51,-152,52,-152,66,-152,81,-152,-1,0},
171     /*95*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
172     /*96*/{51,-79,52,-79,55,-79,60,-79,64,-79,66,-79,70,-79,71,150,-1,0},
173     /*97*/{51,-110,52,-110,53,-110,55,-110,57,-110,58,-110,60,-110,64,-110,66,-110,70,-110,71,-110,72,-110,73,-110,74,-110,77,-110,78,-110,-1,0},
174     /*98*/{16,-98,26,-98,41,-98,58,-98,59,-98,67,-98,68,-98,76,-98,79,-98,81,-98,83,-98,84,-98,85,-98,86,-98,-1,0},
175     /*99*/{51,-109,52,-109,53,-109,55,-109,57,-109,58,-109,60,-109,64,-109,66,-109,70,-109,71,-109,72,-109,73,-109,74,-109,77,-109,78,-109,-1,0},
176     /*100*/{51,-106,52,-106,53,-106,55,-106,57,-106,58,-106,60,-106,64,-106,66,-106,70,-106,71,-106,72,-106,73,-106,74,-106,77,-106,78,-106,-1,0},
177     /*101*/{51,-100,52,-100,53,-100,55,-100,57,-100,58,-100,60,-100,64,-100,66,-100,70,-100,71,-100,72,-100,73,-100,74,-100,76,160,77,-100,78,-100,-1,0},
178     /*102*/{68,157,81,158,-1,0},
179     /*103*/{51,-111,52,-111,53,-111,55,-111,57,-111,58,-111,60,-111,64,-111,66,-111,70,-111,71,-111,72,-111,73,-111,74,-111,77,-111,78,-111,-1,0},
180     /*104*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
181     /*105*/{16,-99,26,-99,41,-99,58,-99,59,-99,67,-99,68,-99,76,-99,79,-99,81,-99,83,-99,84,-99,85,-99,86,-99,-1,0},
182     /*106*/{51,-85,52,-85,55,-85,57,131,58,132,60,-85,64,-85,66,-85,70,-85,71,-85,72,-85,77,-85,78,-85,-1,0},
183     /*107*/{51,-91,52,-91,53,-91,55,-91,57,-91,58,-91,60,-91,64,-91,66,-91,70,-91,71,-91,72,-91,73,-91,74,-91,77,-91,78,-91,-1,0},
184     /*108*/{82,153,-1,0},
185     /*109*/{66,152,-1,0},
186     /*110*/{51,-103,52,-103,53,-103,55,-103,57,-103,58,-103,60,-103,64,-103,66,-103,70,-103,71,-103,72,-103,73,-103,74,-103,77,-103,78,-103,-1,0},
187     /*111*/{51,-78,52,-78,55,-78,60,-78,64,-78,66,-78,70,148,-1,0},
188     /*112*/{51,-96,52,-96,53,-96,55,-96,57,-96,58,-96,60,-96,64,-96,66,-96,70,-96,71,-96,72,-96,73,-96,74,-96,77,-96,78,-96,-1,0},
189     /*113*/{51,-112,52,-112,53,-112,55,-112,57,-112,58,-112,60,-112,64,-112,66,-112,70,-112,71,-112,72,-112,73,-112,74,-112,77,-112,78,-112,-1,0},
190     /*114*/{80,147,83,127,84,126,-1,0},
191     /*115*/{51,-101,52,-101,53,-101,55,-101,57,-101,58,-101,60,-101,64,-101,66,-101,70,-101,71,-101,72,-101,73,-101,74,-101,77,-101,78,-101,-1,0},
192     /*116*/{51,-108,52,-108,53,-108,55,-108,57,-108,58,-108,60,-108,64,-108,66,-108,70,-108,71,-108,72,-108,73,-108,74,-108,77,-108,78,-108,-1,0},
193     /*117*/{51,-81,52,-81,55,-81,60,-81,64,-81,66,-81,70,-81,71,-81,72,145,-1,0},
194     /*118*/{51,-88,52,-88,53,134,55,-88,57,-88,58,-88,60,-88,64,-88,66,-88,70,-88,71,-88,72,-88,73,136,74,135,77,-88,78,-88,-1,0},
195     /*119*/{68,143,81,142,-1,0},
196     /*120*/{52,-117,64,-117,66,-117,-1,0},
197     /*121*/{51,-83,52,-83,55,-83,60,-83,64,-83,66,-83,70,-83,71,-83,72,-83,77,129,78,128,-1,0},
198     /*122*/{16,114,26,79,41,104,58,125,59,105,67,109,68,103,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
199     /*123*/{51,-95,52,-95,53,-95,55,-95,57,-95,58,-95,60,-95,64,-95,66,-95,70,-95,71,-95,72,-95,73,-95,74,-95,77,-95,78,-95,-1,0},
200     /*124*/{83,127,84,126,-1,0},
201     /*125*/{51,-105,52,-105,53,-105,55,-105,57,-105,58,-105,60,-105,64,-105,66,-105,70,-105,71,-105,72,-105,73,-105,74,-105,77,-105,78,-105,-1,0},
202     /*126*/{51,-104,52,-104,53,-104,55,-104,57,-104,58,-104,60,-104,64,-104,66,-104,70,-104,71,-104,72,-104,73,-104,74,-104,77,-104,78,-104,-1,0},
203     /*127*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
204     /*128*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
205     /*129*/{51,-87,52,-87,55,-87,57,131,58,132,60,-87,64,-87,66,-87,70,-87,71,-87,72,-87,77,-87,78,-87,-1,0},
206     /*130*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
207     /*131*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
208     /*132*/{51,-90,52,-90,53,134,55,-90,57,-90,58,-90,60,-90,64,-90,66,-90,70,-90,71,-90,72,-90,73,136,74,135,77,-90,78,-90,-1,0},
209     /*133*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
210     /*134*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
211     /*135*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
212     /*136*/{51,-93,52,-93,53,-93,55,-93,57,-93,58,-93,60,-93,64,-93,66,-93,70,-93,71,-93,72,-93,73,-93,74,-93,77,-93,78,-93,-1,0},
213     /*137*/{51,-94,52,-94,53,-94,55,-94,57,-94,58,-94,60,-94,64,-94,66,-94,70,-94,71,-94,72,-94,73,-94,74,-94,77,-94,78,-94,-1,0},
214     /*138*/{51,-92,52,-92,53,-92,55,-92,57,-92,58,-92,60,-92,64,-92,66,-92,70,-92,71,-92,72,-92,73,-92,74,-92,77,-92,78,-92,-1,0},
215     /*139*/{51,-89,52,-89,53,134,55,-89,57,-89,58,-89,60,-89,64,-89,66,-89,70,-89,71,-89,72,-89,73,136,74,135,77,-89,78,-89,-1,0},
216     /*140*/{51,-86,52,-86,55,-86,57,131,58,132,60,-86,64,-86,66,-86,70,-86,71,-86,72,-86,77,-86,78,-86,-1,0},
217     /*141*/{68,144,-1,0},
218     /*142*/{51,-116,52,-116,53,-116,55,-116,57,-116,58,-116,60,-116,64,-116,66,-116,70,-116,71,-116,72,-116,73,-116,74,-116,77,-116,78,-116,-1,0},
219     /*143*/{51,-115,52,-115,53,-115,55,-115,57,-115,58,-115,60,-115,64,-115,66,-115,70,-115,71,-115,72,-115,73,-115,74,-115,77,-115,78,-115,-1,0},
220     /*144*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
221     /*145*/{51,-84,52,-84,55,-84,60,-84,64,-84,66,-84,70,-84,71,-84,72,-84,77,129,78,128,-1,0},
222     /*146*/{16,-97,26,-97,41,-97,58,-97,59,-97,67,-97,68,-97,76,-97,79,-97,81,-97,83,-97,84,-97,85,-97,86,-97,-1,0},
223     /*147*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
224     /*148*/{51,-80,52,-80,55,-80,60,-80,64,-80,66,-80,70,-80,71,150,-1,0},
225     /*149*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
226     /*150*/{51,-82,52,-82,55,-82,60,-82,64,-82,66,-82,70,-82,71,-82,72,145,-1,0},
227     /*151*/{51,-195,52,-195,66,-195,81,-195,-1,0},
228     /*152*/{67,154,-1,0},
229     /*153*/{51,-107,52,-107,53,-107,55,-107,57,-107,58,-107,60,-107,64,-107,66,-107,70,-107,71,-107,72,-107,73,-107,74,-107,77,-107,78,-107,-1,0},
230     /*154*/{60,156,-1,0},
231     /*155*/{51,-102,52,-102,53,-102,55,-102,57,-102,58,-102,60,-102,64,-102,66,-102,70,-102,71,-102,72,-102,73,-102,74,-102,77,-102,78,-102,-1,0},
232     /*156*/{51,-114,52,-114,53,-114,55,-114,57,-114,58,-114,60,-114,64,-114,66,-114,70,-114,71,-114,72,-114,73,-114,74,-114,77,-114,78,-114,-1,0},
233     /*157*/{68,159,-1,0},
234     /*158*/{51,-113,52,-113,53,-113,55,-113,57,-113,58,-113,60,-113,64,-113,66,-113,70,-113,71,-113,72,-113,73,-113,74,-113,77,-113,78,-113,-1,0},
235     /*159*/{81,161,-1,0},
236     /*160*/{39,-36,51,-36,52,-36,53,-36,55,-36,57,-36,58,-36,60,-36,61,-36,64,-36,66,-36,70,-36,71,-36,72,-36,73,-36,74,-36,76,-36,77,-36,78,-36,81,-36,-1,0},
237     /*161*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
238     /*162*/{66,164,-1,0},
239     /*163*/{51,-194,52,-194,66,-194,81,-194,-1,0},
240     /*164*/{23,169,51,-161,52,-161,60,-161,66,-161,81,-161,-1,0},
241     /*165*/{51,-159,52,-159,60,-159,66,-159,81,-159,-1,0},
242     /*166*/{51,-157,52,-157,60,-157,66,-157,81,-157,-1,0},
243     /*167*/{51,-156,52,-156,60,-156,66,-156,81,-156,-1,0},
244     /*168*/{51,-162,52,-162,60,-162,66,-162,81,-162,-1,0},
245     /*169*/{39,-35,51,-35,52,-35,53,-35,55,-35,57,-35,58,-35,60,-35,61,-35,64,-35,66,-35,70,-35,71,-35,72,-35,73,-35,74,-35,76,-35,77,-35,78,-35,81,-35,-1,0},
246     /*170*/{59,172,-1,0},
247     /*171*/{19,193,20,196,29,192,60,194,-1,0},
248     /*172*/{9,-232,33,174,51,-232,-1,0},
249     /*173*/{59,186,-1,0},
250     /*174*/{9,179,51,-232,-1,0},
251     /*175*/{9,-224,51,-224,-1,0},
252     /*176*/{51,-209,-1,0},
253     /*177*/{51,-226,-1,0},
254     /*178*/{59,180,-1,0},
255     /*179*/{68,103,79,120,-1,0},
256     /*180*/{52,184,60,-227,-1,0},
257     /*181*/{60,183,-1,0},
258     /*182*/{51,-225,-1,0},
259     /*183*/{68,103,79,120,-1,0},
260     /*184*/{60,-228,-1,0},
261     /*185*/{26,79,76,72,81,77,-1,0},
262     /*186*/{39,-33,52,190,60,-33,61,-33,76,160,-1,0},
263     /*187*/{60,189,-1,0},
264     /*188*/{9,-223,51,-223,-1,0},
265     /*189*/{26,79,76,72,81,77,-1,0},
266     /*190*/{39,-32,60,-32,61,-32,-1,0},
267     /*191*/{3,-221,5,-221,7,-221,12,-221,18,-221,23,-221,26,-221,27,-221,36,-221,37,-221,44,-221,46,-221,49,-221,50,-221,76,-221,81,-221,-1,0},
268     /*192*/{3,-220,5,-220,7,-220,12,-220,18,-220,23,-220,26,-220,27,-220,36,-220,37,-220,44,-220,46,-220,49,-220,50,-220,76,-220,81,-220,-1,0},
269     /*193*/{9,-216,33,-216,51,-216,-1,0},
270     /*194*/{60,204,-1,0},
271     /*195*/{3,-222,5,-222,7,-222,12,-222,18,-222,23,-222,26,-222,27,-222,36,-222,37,-222,44,-222,46,-222,49,-222,50,-222,76,-222,81,-222,-1,0},
272     /*196*/{52,202,60,-218,-1,0},
273     /*197*/{3,86,5,81,7,68,12,95,18,83,23,64,26,79,27,93,36,90,37,82,44,73,46,76,49,91,50,92,76,72,81,77,-1,0},
274     /*198*/{81,200,-1,0},
275     /*199*/{51,-147,52,-147,60,-147,-1,0},
276     /*200*/{52,-219,60,-219,-1,0},
277     /*201*/{19,193,20,196,29,192,-1,0},
278     /*202*/{60,-217,-1,0},
279     /*203*/{9,-215,33,-215,51,-215,-1,0},
280     /*204*/{51,-153,52,-153,66,-153,81,-153,-1,0},
281     /*205*/{81,200,-1,0},
282     /*206*/{51,-205,52,209,-1,0},
283     /*207*/{51,-204,-1,0},
284     /*208*/{81,200,-1,0},
285     /*209*/{51,-206,-1,0},
286     /*210*/{3,86,5,81,7,68,12,95,18,83,23,64,26,79,27,93,36,90,37,82,44,73,46,76,49,91,50,92,76,72,81,77,-1,0},
287     /*211*/{81,200,-1,0},
288     /*212*/{51,-203,-1,0},
289     /*213*/{3,-24,4,-24,5,-24,7,-24,8,-24,12,-24,13,-24,14,-24,15,-24,18,-24,23,-24,25,-24,26,-24,27,-24,28,-24,30,-24,31,-24,34,-24,36,-24,37,-24,38,-24,43,-24,44,-24,45,-24,46,-24,48,-24,49,-24,50,-24,62,-24,76,-24,81,-24,-1,0},
290     /*214*/{61,-51,-1,0},
291     /*215*/{26,-56,76,-56,81,-56,-1,0},
292     /*216*/{39,222,61,-50,-1,0},
293     /*217*/{26,79,76,72,81,77,-1,0},
294     /*218*/{39,220,61,-49,-1,0},
295     /*219*/{26,79,76,72,81,77,-1,0},
296     /*220*/{61,-52,-1,0},
297     /*221*/{26,79,76,72,81,77,-1,0},
298     /*222*/{61,-53,-1,0},
299     /*223*/{51,-19,55,226,61,-232,-1,0},
300     /*224*/{61,229,-1,0},
301     /*225*/{26,79,61,-30,76,72,81,77,-1,0},
302     /*226*/{61,-31,-1,0},
303     /*227*/{61,-29,-1,0},
304     /*228*/{3,-232,4,46,5,-232,7,-232,8,27,12,-232,13,28,14,10,18,-232,23,-232,25,13,26,-232,27,-232,28,47,34,45,36,-232,37,-232,38,12,43,24,44,-232,45,26,46,-232,48,-232,49,-232,50,-232,62,-232,76,-232,81,-232,-1,0},
305     /*229*/{62,234,-1,0},
306     /*230*/{3,-211,5,-211,7,-211,12,-211,18,-211,23,-211,26,-211,27,-211,36,-211,37,-211,44,-211,46,-211,48,-211,49,-211,50,-211,62,-23,76,-211,81,-211,-1,0},
307     /*231*/{3,-232,4,46,5,-232,7,-232,8,27,12,-232,13,28,14,10,18,-232,23,-232,25,13,26,-232,27,-232,28,47,34,45,36,-232,37,-232,38,12,43,24,44,-232,45,26,46,-232,48,-232,49,-232,50,-232,62,-232,76,-232,81,-232,-1,0},
308     /*232*/{62,-22,-1,0},
309     /*233*/{51,-15,-1,0},
310     /*234*/{51,-18,55,226,61,-232,-1,0},
311     /*235*/{61,237,-1,0},
312     /*236*/{3,-232,4,46,5,-232,7,-232,8,27,12,-232,13,28,14,10,18,-232,23,-232,25,13,26,-232,27,-232,28,47,34,45,36,-232,37,-232,38,12,43,24,44,-232,45,26,46,-232,48,-232,49,-232,50,-232,62,-232,76,-232,81,-232,-1,0},
313     /*237*/{62,239,-1,0},
314     /*238*/{51,-14,-1,0},
315     /*239*/{61,241,-1,0},
316     /*240*/{81,242,-1,0},
317     /*241*/{52,245,62,-189,-1,0},
318     /*242*/{62,244,-1,0},
319     /*243*/{51,-188,60,-188,81,-188,-1,0},
320     /*244*/{81,242,-1,0},
321     /*245*/{62,-190,-1,0},
322     /*246*/{81,-76,-1,0},
323     /*247*/{81,-75,-1,0},
324     /*248*/{81,-71,-1,0},
325     /*249*/{76,160,81,-77,-1,0},
326     /*250*/{81,-70,-1,0},
327     /*251*/{81,-72,-1,0},
328     /*252*/{81,-74,-1,0},
329     /*253*/{81,-73,-1,0},
330     /*254*/{81,-151,-1,0},
331     /*255*/{81,257,-1,0},
332     /*256*/{56,258,-1,0},
333     /*257*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
334     /*258*/{51,-69,-1,0},
335     /*259*/{40,261,51,-174,81,-174,-1,0},
336     /*260*/{59,262,-1,0},
337     /*261*/{5,81,7,68,13,28,23,165,26,79,36,90,44,73,49,91,76,72,81,77,-1,0},
338     /*262*/{60,-178,-1,0},
339     /*263*/{60,-176,-1,0},
340     /*264*/{60,269,-1,0},
341     /*265*/{60,-179,76,160,-1,0},
342     /*266*/{60,-175,-1,0},
343     /*267*/{60,-177,-1,0},
344     /*268*/{61,270,-1,0},
345     /*269*/{6,275,11,272,-1,0},
346     /*270*/{62,319,-1,0},
347     /*271*/{55,317,-1,0},
348     /*272*/{6,275,11,272,62,-180,-1,0},
349     /*273*/{3,86,5,81,7,68,12,95,13,28,17,284,18,83,23,64,26,79,27,93,35,293,36,90,37,82,38,12,44,73,45,26,46,76,49,91,50,92,76,72,81,77,-1,0},
350     /*274*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
351     /*275*/{55,277,-1,0},
352     /*276*/{3,-183,5,-183,6,275,7,-183,11,272,12,-183,13,-183,17,-183,18,-183,23,-183,26,-183,27,-183,35,-183,36,-183,37,-183,38,-183,44,-183,45,-183,46,-183,49,-183,50,-183,76,-183,81,-183,-1,0},
353     /*277*/{3,-185,5,-185,7,-185,12,-185,13,-185,17,-185,18,-185,23,-185,26,-185,27,-185,35,-185,36,-185,37,-185,38,-185,44,-185,45,-185,46,-185,49,-185,50,-185,76,-185,81,-185,-1,0},
354     /*278*/{51,-140,81,-140,-1,0},
355     /*279*/{51,-142,81,-142,-1,0},
356     /*280*/{51,315,-1,0},
357     /*281*/{51,-125,81,-125,-1,0},
358     /*282*/{51,-128,52,-128,66,-128,81,-128,-1,0},
359     /*283*/{65,310,-1,0},
360     /*284*/{51,-126,81,-126,-1,0},
361     /*285*/{51,-141,81,-141,-1,0},
362     /*286*/{51,-129,52,-129,66,-129,76,160,81,-129,-1,0},
363     /*287*/{51,-138,52,-138,66,-138,81,-138,-1,0},
364     /*288*/{81,300,-1,0},
365     /*289*/{51,-137,52,-137,66,-137,81,-137,-1,0},
366     /*290*/{51,-127,52,-127,66,-127,81,-127,-1,0},
367     /*291*/{51,-139,52,-139,66,-139,81,-139,-1,0},
368     /*292*/{65,294,-1,0},
369     /*293*/{3,86,5,81,7,68,12,95,17,284,18,83,23,64,26,79,27,93,35,293,36,90,37,82,44,73,46,76,49,91,50,92,76,72,81,77,-1,0},
370     /*294*/{52,296,66,297,-1,0},
371     /*295*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
372     /*296*/{51,-193,52,-193,66,-193,81,-193,-1,0},
373     /*297*/{66,299,-1,0},
374     /*298*/{51,-192,52,-192,66,-192,81,-192,-1,0},
375     /*299*/{51,-147,52,-147,63,306,-1,0},
376     /*300*/{51,-145,52,-145,-1,0},
377     /*301*/{51,-187,-1,0},
378     /*302*/{51,-146,52,-146,-1,0},
379     /*303*/{51,-200,52,-200,63,306,-1,0},
380     /*304*/{51,-199,52,-199,-1,0},
381     /*305*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
382     /*306*/{64,308,-1,0},
383     /*307*/{51,-202,52,-202,63,-202,-1,0},
384     /*308*/{51,-201,52,-201,-1,0},
385     /*309*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
386     /*310*/{52,312,-1,0},
387     /*311*/{16,114,26,79,41,104,57,99,58,115,59,105,67,109,68,103,75,106,76,72,79,120,81,77,83,111,84,101,85,98,86,100,-1,0},
388     /*312*/{66,314,-1,0},
389     /*313*/{51,-198,52,-198,66,-198,81,-198,-1,0},
390     /*314*/{6,-182,11,-182,62,-182,-1,0},
391     /*315*/{62,-181,-1,0},
392     /*316*/{3,-184,5,-184,6,275,7,-184,11,272,12,-184,13,-184,17,-184,18,-184,23,-184,26,-184,27,-184,35,-184,36,-184,37,-184,38,-184,44,-184,45,-184,46,-184,49,-184,50,-184,76,-184,81,-184,-1,0},
393     /*317*/{3,-186,5,-186,7,-186,12,-186,13,-186,17,-186,18,-186,23,-186,26,-186,27,-186,35,-186,36,-186,37,-186,38,-186,44,-186,45,-186,46,-186,49,-186,50,-186,76,-186,81,-186,-1,0},
394     /*318*/{51,-173,81,-173,-1,0},
395     /*319*/{0,-12,2,-12,8,-12,10,-12,13,-12,14,-12,21,-12,22,-12,24,-12,25,-12,32,-12,38,-12,43,-12,45,-12,47,-12,62,-12,-1,0},
396     /*320*/{51,-123,-1,0},
397     /*321*/{81,300,-1,0},
398     /*322*/{51,-144,52,325,-1,0},
399     /*323*/{51,-124,-1,0},
400     /*324*/{81,300,-1,0},
401     /*325*/{51,-143,-1,0},
402     /*326*/{81,328,-1,0},
403     /*327*/{51,-21,55,226,61,-232,-1,0},
404     /*328*/{61,330,-1,0},
405     /*329*/{3,-232,4,46,5,-232,7,-232,8,27,12,-232,13,28,14,10,18,-232,23,-232,25,13,26,-232,27,-232,28,47,34,45,36,-232,37,-232,38,12,43,24,44,-232,45,26,46,-232,48,-232,49,-232,50,-232,62,-232,76,-232,81,-232,-1,0},
406     /*330*/{62,332,-1,0},
407     /*331*/{51,-17,-1,0},
408     /*332*/{0,-9,2,-9,8,-9,10,-9,13,-9,14,-9,21,-9,22,-9,24,-9,25,-9,32,-9,38,-9,43,-9,45,-9,47,-9,62,-9,-1,0},
409     /*333*/{61,335,-1,0},
410     /*334*/{2,30,8,27,10,8,13,28,14,10,21,29,22,14,24,21,25,13,32,23,38,12,43,24,45,26,47,17,-1,0},
411     /*335*/{62,337,-1,0},
412     /*336*/{51,-13,-1,0},
413     /*337*/{0,-8,2,-8,8,-8,10,-8,13,-8,14,-8,21,-8,22,-8,24,-8,25,-8,32,-8,38,-8,43,-8,45,-8,47,-8,62,-8,-1,0},
414     /*338*/{3,86,5,81,7,68,12,95,13,28,17,284,18,83,23,64,26,79,27,93,35,293,36,90,37,82,38,12,39,41,44,73,45,26,46,76,49,91,50,92,51,-47,55,39,61,-232,76,72,81,77,-1,0},
415     /*339*/{61,342,-1,0},
416     /*340*/{51,-41,-1,0},
417     /*341*/{3,-232,4,46,5,-232,7,-232,8,27,12,-232,13,28,14,10,15,349,18,-232,23,-232,25,13,26,-232,27,-232,28,47,30,343,31,345,34,45,36,-232,37,-232,38,12,43,24,44,-232,45,26,46,-232,48,-232,49,-232,50,-232,62,-232,76,-232,81,-232,-1,0},
418     /*342*/{3,86,5,81,7,68,12,95,13,28,17,284,18,83,23,64,26,79,27,93,35,293,36,90,37,82,38,12,44,73,45,26,46,76,49,91,50,92,76,72,81,77,-1,0},
419     /*343*/{3,-60,4,-60,5,-60,7,-60,8,-60,12,-60,13,-60,14,-60,15,-60,18,-60,23,-60,25,-60,26,-60,27,-60,28,-60,30,-60,31,-60,34,-60,36,-60,37,-60,38,-60,43,-60,44,-60,45,-60,46,-60,48,-60,49,-60,50,-60,62,-60,76,-60,81,-60,-1,0},
420     /*344*/{3,86,5,81,7,68,12,95,13,28,17,284,18,83,23,64,26,79,27,93,35,293,36,90,37,82,38,12,44,73,45,26,46,76,49,91,50,92,76,72,81,77,-1,0},
421     /*345*/{3,-211,5,-211,7,-211,12,-211,18,-211,23,-211,26,-211,27,-211,36,-211,37,-211,44,-211,46,-211,48,-211,49,-211,50,-211,62,-58,76,-211,81,-211,-1,0},
422     /*346*/{3,-61,4,-61,5,-61,7,-61,8,-61,12,-61,13,-61,14,-61,15,-61,18,-61,23,-61,25,-61,26,-61,27,-61,28,-61,30,-61,31,-61,34,-61,36,-61,37,-61,38,-61,43,-61,44,-61,45,-61,46,-61,48,-61,49,-61,50,-61,62,-61,76,-61,81,-61,-1,0},
423     /*347*/{3,-59,4,-59,5,-59,7,-59,8,-59,12,-59,13,-59,14,-59,15,-59,18,-59,23,-59,25,-59,26,-59,27,-59,28,-59,30,-59,31,-59,34,-59,36,-59,37,-59,38,-59,43,-59,44,-59,45,-59,46,-59,48,-59,49,-59,50,-59,62,-59,76,-59,81,-59,-1,0},
424     /*348*/{81,354,-1,0},
425     /*349*/{62,353,-1,0},
426     /*350*/{3,-232,4,46,5,-232,7,-232,8,27,12,-232,13,28,14,10,15,349,18,-232,23,-232,25,13,26,-232,27,-232,28,47,30,343,31,345,34,45,36,-232,37,-232,38,12,43,24,44,-232,45,26,46,-232,48,-232,49,-232,50,-232,62,-232,76,-232,81,-232,-1,0},
427     /*351*/{62,-57,-1,0},
428     /*352*/{51,-48,-1,0},
429     /*353*/{59,355,-1,0},
430     /*354*/{19,356,60,358,-1,0},
431     /*355*/{3,86,5,81,7,68,12,95,18,83,23,64,26,79,27,93,36,90,37,82,44,73,46,76,49,91,50,92,76,72,81,77,-1,0},
432     /*356*/{60,364,-1,0},
433     /*357*/{33,174,51,-232,-1,0},
434     /*358*/{52,360,60,-66,-1,0},
435     /*359*/{19,356,-1,0},
436     /*360*/{60,-67,-1,0},
437     /*361*/{51,363,-1,0},
438     /*362*/{3,-65,4,-65,5,-65,7,-65,8,-65,12,-65,13,-65,14,-65,15,-65,18,-65,23,-65,25,-65,26,-65,27,-65,28,-65,30,-65,31,-65,34,-65,36,-65,37,-65,38,-65,43,-65,44,-65,45,-65,46,-65,48,-65,49,-65,50,-65,62,-65,76,-65,81,-65,-1,0},
439     /*363*/{33,174,51,-232,-1,0},
440     /*364*/{51,366,-1,0},
441     /*365*/{3,-64,4,-64,5,-64,7,-64,8,-64,12,-64,13,-64,14,-64,15,-64,18,-64,23,-64,25,-64,26,-64,27,-64,28,-64,30,-64,31,-64,34,-64,36,-64,37,-64,38,-64,43,-64,44,-64,45,-64,46,-64,48,-64,49,-64,50,-64,62,-64,76,-64,81,-64,-1,0},
442     /*366*/{81,200,-1,0},
443     /*367*/{52,-68,60,-68,-1,0},
444     /*368*/{81,300,-1,0},
445     /*369*/{51,371,-1,0},
446     /*370*/{3,-62,4,-62,5,-62,7,-62,8,-62,12,-62,13,-62,14,-62,15,-62,18,-62,23,-62,25,-62,26,-62,27,-62,28,-62,30,-62,31,-62,34,-62,36,-62,37,-62,38,-62,43,-62,44,-62,45,-62,46,-62,48,-62,49,-62,50,-62,62,-62,76,-62,81,-62,-1,0},
447     /*371*/{81,300,-1,0},
448     /*372*/{51,374,-1,0},
449     /*373*/{3,-63,4,-63,5,-63,7,-63,8,-63,12,-63,13,-63,14,-63,15,-63,18,-63,23,-63,25,-63,26,-63,27,-63,28,-63,30,-63,31,-63,34,-63,36,-63,37,-63,38,-63,43,-63,44,-63,45,-63,46,-63,48,-63,49,-63,50,-63,62,-63,76,-63,81,-63,-1,0},
450     /*374*/{0,-5,62,-5,-1,0},
451     /*375*/{81,377,-1,0},
452     /*376*/{51,-20,55,226,61,-232,-1,0},
453     /*377*/{61,379,-1,0},
454     /*378*/{3,-232,4,46,5,-232,7,-232,8,27,12,-232,13,28,14,10,18,-232,23,-232,25,13,26,-232,27,-232,28,47,34,45,36,-232,37,-232,38,12,43,24,44,-232,45,26,46,-232,48,-232,49,-232,50,-232,62,-232,76,-232,81,-232,-1,0},
455     /*379*/{62,381,-1,0},
456     /*380*/{51,-16,-1,0},
457     /*381*/{51,-191,-1,0},
458     /*382*/{51,-169,61,384,81,-169,-1,0},
459     /*383*/{3,86,5,81,7,68,12,95,13,28,17,284,18,83,23,64,26,79,27,93,35,293,36,90,37,82,38,12,44,73,45,26,46,76,49,91,50,92,76,72,81,77,-1,0},
460     /*384*/{62,391,-1,0},
461     /*385*/{81,300,-1,0},
462     /*386*/{3,86,5,81,7,68,12,95,13,28,17,284,18,83,23,64,26,79,27,93,35,293,36,90,37,82,38,12,44,73,45,26,46,76,49,91,50,92,62,-170,76,72,81,77,-1,0},
463     /*387*/{62,-171,-1,0},
464     /*388*/{51,390,-1,0},
465     /*389*/{3,-172,5,-172,7,-172,12,-172,13,-172,17,-172,18,-172,23,-172,26,-172,27,-172,35,-172,36,-172,37,-172,38,-172,44,-172,45,-172,46,-172,49,-172,50,-172,62,-172,76,-172,81,-172,-1,0},
466     /*390*/{51,-168,81,-168,-1,0},
467     /*391*/{61,393,-1,0},
468     /*392*/{3,86,5,81,7,68,12,95,13,28,17,284,18,83,23,64,26,79,27,93,35,293,36,90,37,82,38,12,44,73,45,26,46,76,49,91,50,92,62,395,76,72,81,77,-1,0},
469     /*393*/{62,396,-1,0},
470     /*394*/{51,-207,-1,0},
471     /*395*/{51,-208,-1,0},
472     /*396*/{0,-11,2,-11,8,-11,10,-11,13,-11,14,-11,21,-11,22,-11,24,-11,25,-11,32,-11,38,-11,43,-11,45,-11,47,-11,62,-11,-1,0},
473     /*397*/{81,399,-1,0},
474     /*398*/{39,41,55,39,61,-232,-1,0},
475     /*399*/{61,401,-1,0},
476     /*400*/{3,-232,4,46,5,-232,7,-232,8,27,12,-232,13,28,14,10,15,349,18,-232,23,-232,25,13,26,-232,27,-232,28,47,30,343,31,345,34,45,36,-232,37,-232,38,12,43,24,44,-232,45,26,46,-232,48,-232,49,-232,50,-232,62,-232,76,-232,81,-232,-1,0},
477     /*401*/{62,403,-1,0},
478     /*402*/{51,-46,-1,0},
479     /*403*/{0,-7,2,-7,8,-7,10,-7,13,-7,14,-7,21,-7,22,-7,24,-7,25,-7,32,-7,38,-7,43,-7,45,-7,47,-7,62,-7,-1,0},
480     /*404*/{0,-10,2,-10,8,-10,10,-10,13,-10,14,-10,21,-10,22,-10,24,-10,25,-10,32,-10,38,-10,43,-10,45,-10,47,-10,62,-10,-1,0},
481   };
482
483   /** access to parse action table */
484   public short[][] action_table() {return _action_table;}
485
486   /** reduce_goto table */
487   protected static final short[][] _reduce_table = {
488     /*0*/{3,3,7,2,96,1,-1,-1},
489     /*1*/{8,14,9,34,10,8,11,5,16,24,17,17,18,15,19,30,27,18,39,6,45,32,49,10,50,33,51,21,52,31,53,19,-1,-1},
490     /*2*/{-1,-1},
491     /*3*/{-1,-1},
492     /*4*/{-1,-1},
493     /*5*/{-1,-1},
494     /*6*/{-1,-1},
495     /*7*/{-1,-1},
496     /*8*/{-1,-1},
497     /*9*/{-1,-1},
498     /*10*/{-1,-1},
499     /*11*/{-1,-1},
500     /*12*/{78,381,-1,-1},
501     /*13*/{-1,-1},
502     /*14*/{8,14,9,374,10,8,11,5,16,24,17,17,18,15,19,30,27,18,39,6,45,32,49,10,50,33,51,21,52,31,53,19,-1,-1},
503     /*15*/{-1,-1},
504     /*16*/{-1,-1},
505     /*17*/{-1,-1},
506     /*18*/{-1,-1},
507     /*19*/{-1,-1},
508     /*20*/{-1,-1},
509     /*21*/{-1,-1},
510     /*22*/{-1,-1},
511     /*23*/{14,286,40,320,41,321,46,281,47,282,48,284,49,279,50,278,52,285,57,290,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,287,72,289,73,291,-1,-1},
512     /*24*/{-1,-1},
513     /*25*/{-1,-1},
514     /*26*/{14,249,28,255,58,250,59,253,60,77,61,252,62,84,63,68,64,87,65,86,66,248,67,251,68,246,71,247,-1,-1},
515     /*27*/{-1,-1},
516     /*28*/{-1,-1},
517     /*29*/{-1,-1},
518     /*30*/{-1,-1},
519     /*31*/{-1,-1},
520     /*32*/{-1,-1},
521     /*33*/{-1,-1},
522     /*34*/{-1,-1},
523     /*35*/{-1,-1},
524     /*36*/{-1,-1},
525     /*37*/{3,39,21,41,-1,-1},
526     /*38*/{14,186,15,217,90,216,-1,-1},
527     /*39*/{-1,-1},
528     /*40*/{14,186,90,214,-1,-1},
529     /*41*/{-1,-1},
530     /*42*/{3,49,4,47,13,54,20,53,27,50,39,43,45,32,49,10,50,33,51,52,52,31,53,19,83,51,84,48,-1,-1},
531     /*43*/{-1,-1},
532     /*44*/{-1,-1},
533     /*45*/{14,65,43,205,57,70,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,62,-1,-1},
534     /*46*/{-1,-1},
535     /*47*/{14,65,42,66,43,69,57,70,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,70,74,71,62,-1,-1},
536     /*48*/{-1,-1},
537     /*49*/{-1,-1},
538     /*50*/{-1,-1},
539     /*51*/{-1,-1},
540     /*52*/{-1,-1},
541     /*53*/{-1,-1},
542     /*54*/{3,49,4,47,13,54,20,55,27,50,39,43,45,32,49,10,50,33,51,52,52,31,53,19,83,51,84,48,-1,-1},
543     /*55*/{-1,-1},
544     /*56*/{-1,-1},
545     /*57*/{-1,-1},
546     /*58*/{-1,-1},
547     /*59*/{-1,-1},
548     /*60*/{-1,-1},
549     /*61*/{-1,-1},
550     /*62*/{-1,-1},
551     /*63*/{-1,-1},
552     /*64*/{-1,-1},
553     /*65*/{-1,-1},
554     /*66*/{-1,-1},
555     /*67*/{-1,-1},
556     /*68*/{-1,-1},
557     /*69*/{-1,-1},
558     /*70*/{-1,-1},
559     /*71*/{-1,-1},
560     /*72*/{63,165,64,167,65,166,-1,-1},
561     /*73*/{-1,-1},
562     /*74*/{-1,-1},
563     /*75*/{-1,-1},
564     /*76*/{-1,-1},
565     /*77*/{-1,-1},
566     /*78*/{-1,-1},
567     /*79*/{-1,-1},
568     /*80*/{-1,-1},
569     /*81*/{-1,-1},
570     /*82*/{-1,-1},
571     /*83*/{-1,-1},
572     /*84*/{-1,-1},
573     /*85*/{-1,-1},
574     /*86*/{-1,-1},
575     /*87*/{-1,-1},
576     /*88*/{-1,-1},
577     /*89*/{-1,-1},
578     /*90*/{-1,-1},
579     /*91*/{-1,-1},
580     /*92*/{-1,-1},
581     /*93*/{-1,-1},
582     /*94*/{-1,-1},
583     /*95*/{6,122,14,101,29,120,30,109,31,111,32,96,33,117,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
584     /*96*/{-1,-1},
585     /*97*/{-1,-1},
586     /*98*/{-1,-1},
587     /*99*/{-1,-1},
588     /*100*/{-1,-1},
589     /*101*/{-1,-1},
590     /*102*/{-1,-1},
591     /*103*/{-1,-1},
592     /*104*/{6,122,14,101,29,154,31,111,32,96,33,117,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
593     /*105*/{-1,-1},
594     /*106*/{-1,-1},
595     /*107*/{-1,-1},
596     /*108*/{-1,-1},
597     /*109*/{-1,-1},
598     /*110*/{-1,-1},
599     /*111*/{-1,-1},
600     /*112*/{-1,-1},
601     /*113*/{-1,-1},
602     /*114*/{-1,-1},
603     /*115*/{-1,-1},
604     /*116*/{-1,-1},
605     /*117*/{-1,-1},
606     /*118*/{-1,-1},
607     /*119*/{-1,-1},
608     /*120*/{-1,-1},
609     /*121*/{-1,-1},
610     /*122*/{14,101,38,123,74,115,75,116,-1,-1},
611     /*123*/{-1,-1},
612     /*124*/{-1,-1},
613     /*125*/{-1,-1},
614     /*126*/{-1,-1},
615     /*127*/{6,122,14,101,35,140,36,118,37,107,38,112,74,115,75,116,-1,-1},
616     /*128*/{6,122,14,101,35,129,36,118,37,107,38,112,74,115,75,116,-1,-1},
617     /*129*/{-1,-1},
618     /*130*/{6,122,14,101,36,139,37,107,38,112,74,115,75,116,-1,-1},
619     /*131*/{6,122,14,101,36,132,37,107,38,112,74,115,75,116,-1,-1},
620     /*132*/{-1,-1},
621     /*133*/{6,122,14,101,37,138,38,112,74,115,75,116,-1,-1},
622     /*134*/{6,122,14,101,37,137,38,112,74,115,75,116,-1,-1},
623     /*135*/{6,122,14,101,37,136,38,112,74,115,75,116,-1,-1},
624     /*136*/{-1,-1},
625     /*137*/{-1,-1},
626     /*138*/{-1,-1},
627     /*139*/{-1,-1},
628     /*140*/{-1,-1},
629     /*141*/{-1,-1},
630     /*142*/{-1,-1},
631     /*143*/{-1,-1},
632     /*144*/{6,122,14,101,34,145,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
633     /*145*/{-1,-1},
634     /*146*/{-1,-1},
635     /*147*/{6,122,14,101,32,148,33,117,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
636     /*148*/{-1,-1},
637     /*149*/{6,122,14,101,33,150,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
638     /*150*/{-1,-1},
639     /*151*/{-1,-1},
640     /*152*/{-1,-1},
641     /*153*/{-1,-1},
642     /*154*/{-1,-1},
643     /*155*/{-1,-1},
644     /*156*/{-1,-1},
645     /*157*/{-1,-1},
646     /*158*/{-1,-1},
647     /*159*/{-1,-1},
648     /*160*/{-1,-1},
649     /*161*/{6,122,14,101,29,120,30,162,31,111,32,96,33,117,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
650     /*162*/{-1,-1},
651     /*163*/{-1,-1},
652     /*164*/{-1,-1},
653     /*165*/{-1,-1},
654     /*166*/{-1,-1},
655     /*167*/{-1,-1},
656     /*168*/{-1,-1},
657     /*169*/{-1,-1},
658     /*170*/{89,172,-1,-1},
659     /*171*/{5,197,81,196,87,194,-1,-1},
660     /*172*/{3,175,82,174,-1,-1},
661     /*173*/{-1,-1},
662     /*174*/{1,176,3,177,-1,-1},
663     /*175*/{-1,-1},
664     /*176*/{-1,-1},
665     /*177*/{-1,-1},
666     /*178*/{-1,-1},
667     /*179*/{2,181,75,180,-1,-1},
668     /*180*/{-1,-1},
669     /*181*/{-1,-1},
670     /*182*/{-1,-1},
671     /*183*/{2,184,75,180,-1,-1},
672     /*184*/{-1,-1},
673     /*185*/{14,186,90,187,-1,-1},
674     /*186*/{-1,-1},
675     /*187*/{-1,-1},
676     /*188*/{-1,-1},
677     /*189*/{14,186,90,190,-1,-1},
678     /*190*/{-1,-1},
679     /*191*/{-1,-1},
680     /*192*/{-1,-1},
681     /*193*/{-1,-1},
682     /*194*/{-1,-1},
683     /*195*/{-1,-1},
684     /*196*/{-1,-1},
685     /*197*/{14,65,43,198,57,70,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,62,-1,-1},
686     /*198*/{78,200,-1,-1},
687     /*199*/{-1,-1},
688     /*200*/{-1,-1},
689     /*201*/{5,197,81,196,87,202,-1,-1},
690     /*202*/{-1,-1},
691     /*203*/{-1,-1},
692     /*204*/{-1,-1},
693     /*205*/{78,206,91,207,-1,-1},
694     /*206*/{-1,-1},
695     /*207*/{-1,-1},
696     /*208*/{78,206,91,209,-1,-1},
697     /*209*/{-1,-1},
698     /*210*/{14,65,43,211,57,70,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,62,-1,-1},
699     /*211*/{78,206,91,212,-1,-1},
700     /*212*/{-1,-1},
701     /*213*/{-1,-1},
702     /*214*/{-1,-1},
703     /*215*/{-1,-1},
704     /*216*/{-1,-1},
705     /*217*/{14,186,90,218,-1,-1},
706     /*218*/{-1,-1},
707     /*219*/{14,186,90,220,-1,-1},
708     /*220*/{-1,-1},
709     /*221*/{14,186,90,222,-1,-1},
710     /*222*/{-1,-1},
711     /*223*/{3,226,93,224,-1,-1},
712     /*224*/{-1,-1},
713     /*225*/{14,186,90,227,-1,-1},
714     /*226*/{-1,-1},
715     /*227*/{-1,-1},
716     /*228*/{3,230,4,47,12,229,13,231,27,50,39,43,45,32,49,10,50,33,51,52,52,31,53,19,83,51,84,48,-1,-1},
717     /*229*/{-1,-1},
718     /*230*/{-1,-1},
719     /*231*/{3,230,4,47,12,232,13,231,27,50,39,43,45,32,49,10,50,33,51,52,52,31,53,19,83,51,84,48,-1,-1},
720     /*232*/{-1,-1},
721     /*233*/{-1,-1},
722     /*234*/{3,226,93,235,-1,-1},
723     /*235*/{-1,-1},
724     /*236*/{3,230,4,47,12,237,13,231,27,50,39,43,45,32,49,10,50,33,51,52,52,31,53,19,83,51,84,48,-1,-1},
725     /*237*/{-1,-1},
726     /*238*/{-1,-1},
727     /*239*/{-1,-1},
728     /*240*/{94,242,-1,-1},
729     /*241*/{-1,-1},
730     /*242*/{-1,-1},
731     /*243*/{-1,-1},
732     /*244*/{94,245,-1,-1},
733     /*245*/{-1,-1},
734     /*246*/{-1,-1},
735     /*247*/{-1,-1},
736     /*248*/{-1,-1},
737     /*249*/{-1,-1},
738     /*250*/{-1,-1},
739     /*251*/{-1,-1},
740     /*252*/{-1,-1},
741     /*253*/{-1,-1},
742     /*254*/{-1,-1},
743     /*255*/{-1,-1},
744     /*256*/{-1,-1},
745     /*257*/{6,122,14,101,29,258,31,111,32,96,33,117,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
746     /*258*/{-1,-1},
747     /*259*/{-1,-1},
748     /*260*/{-1,-1},
749     /*261*/{14,265,44,264,49,262,58,266,63,68,64,87,65,86,66,263,67,267,-1,-1},
750     /*262*/{-1,-1},
751     /*263*/{-1,-1},
752     /*264*/{-1,-1},
753     /*265*/{-1,-1},
754     /*266*/{-1,-1},
755     /*267*/{-1,-1},
756     /*268*/{-1,-1},
757     /*269*/{54,270,55,272,86,273,-1,-1},
758     /*270*/{-1,-1},
759     /*271*/{-1,-1},
760     /*272*/{54,315,55,272,86,273,-1,-1},
761     /*273*/{14,286,41,288,46,281,47,282,48,284,49,279,50,278,52,285,56,280,57,290,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,287,72,289,73,291,-1,-1},
762     /*274*/{6,122,14,101,29,275,31,111,32,96,33,117,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
763     /*275*/{-1,-1},
764     /*276*/{86,277,-1,-1},
765     /*277*/{-1,-1},
766     /*278*/{-1,-1},
767     /*279*/{-1,-1},
768     /*280*/{-1,-1},
769     /*281*/{-1,-1},
770     /*282*/{-1,-1},
771     /*283*/{-1,-1},
772     /*284*/{-1,-1},
773     /*285*/{-1,-1},
774     /*286*/{-1,-1},
775     /*287*/{-1,-1},
776     /*288*/{77,301,78,300,79,302,-1,-1},
777     /*289*/{-1,-1},
778     /*290*/{-1,-1},
779     /*291*/{-1,-1},
780     /*292*/{-1,-1},
781     /*293*/{14,286,46,294,47,282,57,290,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,287,72,289,73,291,-1,-1},
782     /*294*/{-1,-1},
783     /*295*/{6,122,14,101,29,120,30,297,31,111,32,96,33,117,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
784     /*296*/{-1,-1},
785     /*297*/{-1,-1},
786     /*298*/{-1,-1},
787     /*299*/{80,303,95,304,-1,-1},
788     /*300*/{-1,-1},
789     /*301*/{-1,-1},
790     /*302*/{-1,-1},
791     /*303*/{80,303,95,308,-1,-1},
792     /*304*/{-1,-1},
793     /*305*/{6,122,14,101,29,120,30,306,31,111,32,96,33,117,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
794     /*306*/{-1,-1},
795     /*307*/{-1,-1},
796     /*308*/{-1,-1},
797     /*309*/{6,122,14,101,29,120,30,310,31,111,32,96,33,117,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
798     /*310*/{-1,-1},
799     /*311*/{6,122,14,101,29,120,30,312,31,111,32,96,33,117,34,121,35,106,36,118,37,107,38,112,74,115,75,116,-1,-1},
800     /*312*/{-1,-1},
801     /*313*/{-1,-1},
802     /*314*/{-1,-1},
803     /*315*/{-1,-1},
804     /*316*/{86,317,-1,-1},
805     /*317*/{-1,-1},
806     /*318*/{-1,-1},
807     /*319*/{-1,-1},
808     /*320*/{-1,-1},
809     /*321*/{77,322,78,300,79,302,92,323,-1,-1},
810     /*322*/{-1,-1},
811     /*323*/{-1,-1},
812     /*324*/{77,322,78,300,79,302,92,325,-1,-1},
813     /*325*/{-1,-1},
814     /*326*/{-1,-1},
815     /*327*/{3,226,93,328,-1,-1},
816     /*328*/{-1,-1},
817     /*329*/{3,230,4,47,12,330,13,231,27,50,39,43,45,32,49,10,50,33,51,52,52,31,53,19,83,51,84,48,-1,-1},
818     /*330*/{-1,-1},
819     /*331*/{-1,-1},
820     /*332*/{-1,-1},
821     /*333*/{-1,-1},
822     /*334*/{8,14,9,335,10,8,11,5,16,24,17,17,18,15,19,30,27,18,39,6,45,32,49,10,50,33,51,21,52,31,53,19,-1,-1},
823     /*335*/{-1,-1},
824     /*336*/{-1,-1},
825     /*337*/{-1,-1},
826     /*338*/{3,39,14,286,21,339,41,340,46,281,47,282,48,284,49,279,50,278,52,285,57,290,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,287,72,289,73,291,-1,-1},
827     /*339*/{-1,-1},
828     /*340*/{-1,-1},
829     /*341*/{3,345,4,47,13,347,22,349,23,350,24,343,25,346,27,50,39,43,45,32,49,10,50,33,51,52,52,31,53,19,83,51,84,48,-1,-1},
830     /*342*/{14,286,41,371,46,281,47,282,48,284,49,279,50,278,52,285,57,290,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,287,72,289,73,291,-1,-1},
831     /*343*/{-1,-1},
832     /*344*/{14,286,41,368,46,281,47,282,48,284,49,279,50,278,52,285,57,290,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,287,72,289,73,291,-1,-1},
833     /*345*/{-1,-1},
834     /*346*/{-1,-1},
835     /*347*/{-1,-1},
836     /*348*/{-1,-1},
837     /*349*/{-1,-1},
838     /*350*/{3,345,4,47,13,347,22,351,23,350,24,343,25,346,27,50,39,43,45,32,49,10,50,33,51,52,52,31,53,19,83,51,84,48,-1,-1},
839     /*351*/{-1,-1},
840     /*352*/{-1,-1},
841     /*353*/{-1,-1},
842     /*354*/{26,358,88,356,-1,-1},
843     /*355*/{14,65,43,366,57,70,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,62,-1,-1},
844     /*356*/{-1,-1},
845     /*357*/{3,175,82,361,-1,-1},
846     /*358*/{-1,-1},
847     /*359*/{26,358,88,360,-1,-1},
848     /*360*/{-1,-1},
849     /*361*/{-1,-1},
850     /*362*/{-1,-1},
851     /*363*/{3,175,82,364,-1,-1},
852     /*364*/{-1,-1},
853     /*365*/{-1,-1},
854     /*366*/{78,367,-1,-1},
855     /*367*/{-1,-1},
856     /*368*/{77,322,78,300,79,302,92,369,-1,-1},
857     /*369*/{-1,-1},
858     /*370*/{-1,-1},
859     /*371*/{77,322,78,300,79,302,92,372,-1,-1},
860     /*372*/{-1,-1},
861     /*373*/{-1,-1},
862     /*374*/{-1,-1},
863     /*375*/{-1,-1},
864     /*376*/{3,226,93,377,-1,-1},
865     /*377*/{-1,-1},
866     /*378*/{3,230,4,47,12,379,13,231,27,50,39,43,45,32,49,10,50,33,51,52,52,31,53,19,83,51,84,48,-1,-1},
867     /*379*/{-1,-1},
868     /*380*/{-1,-1},
869     /*381*/{-1,-1},
870     /*382*/{-1,-1},
871     /*383*/{14,286,41,385,46,281,47,282,48,284,49,279,50,278,52,285,57,290,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,287,72,289,73,291,76,386,85,384,-1,-1},
872     /*384*/{-1,-1},
873     /*385*/{77,322,78,300,79,302,92,388,-1,-1},
874     /*386*/{14,286,41,385,46,281,47,282,48,284,49,279,50,278,52,285,57,290,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,287,72,289,73,291,76,386,85,387,-1,-1},
875     /*387*/{-1,-1},
876     /*388*/{-1,-1},
877     /*389*/{-1,-1},
878     /*390*/{-1,-1},
879     /*391*/{-1,-1},
880     /*392*/{14,286,41,385,46,281,47,282,48,284,49,279,50,278,52,285,57,290,58,73,59,88,60,77,62,84,63,68,64,87,65,86,66,64,67,79,68,61,69,83,71,287,72,289,73,291,76,386,85,393,-1,-1},
881     /*393*/{-1,-1},
882     /*394*/{-1,-1},
883     /*395*/{-1,-1},
884     /*396*/{-1,-1},
885     /*397*/{-1,-1},
886     /*398*/{3,39,21,399,-1,-1},
887     /*399*/{-1,-1},
888     /*400*/{3,345,4,47,13,347,22,401,23,350,24,343,25,346,27,50,39,43,45,32,49,10,50,33,51,52,52,31,53,19,83,51,84,48,-1,-1},
889     /*401*/{-1,-1},
890     /*402*/{-1,-1},
891     /*403*/{-1,-1},
892     /*404*/{-1,-1},
893   };
894
895   /** access to reduce_goto table */
896   public short[][] reduce_table() {return _reduce_table;}
897
898   /** instance of action encapsulation class */
899   protected CUP$actions action_obj;
900
901   /** action encapsulation object initializer */
902   protected void init_actions()
903     {
904       action_obj = new CUP$actions();
905     }
906
907   /** invoke a user supplied parse action */
908   public org.jacorb.idl.runtime.symbol do_action(
909     int act_num,
910     org.jacorb.idl.runtime.lr_parser parser,
911     java.util.Stack JavaDoc stack,
912     int top)
913     throws java.lang.Exception JavaDoc
914   {
915     /* call code in generated class */
916     return action_obj.CUP$do_action(act_num, parser, stack, top);
917   }
918
919   /** start state */
920   public int start_state() {return 0;}
921   /** start production */
922   public int start_production() {return 0;}
923
924   /** EOF symbol index */
925   public int EOF_sym() {return 0;}
926
927   /** error symbol index */
928   public int error_sym() {return 1;}
929
930
931   /** user initialization */
932   public void user_init() throws java.lang.Exception JavaDoc
933     {
934
935         lexer.init();
936
937     }
938
939   /** scan to get the next token */
940   public org.jacorb.idl.runtime.token scan()
941     throws java.lang.Exception JavaDoc
942     {
943
944         return lexer.next_token();
945
946     }
947
948
949     static String JavaDoc command_line[] = null;
950
951     public static Hashtable pack_replace = new Hashtable();
952     public static Stack scopes = new Stack();
953     private static Hashtable tmpDefines = null;
954     private static Hashtable tmpUnDefines = null;
955
956     public static String JavaDoc currentVersion = "";
957
958     // Compiles out leaving no runtime dependency on Version
959
public static final String JavaDoc compiler_version = org.jacorb.util.Version.longVersion;
960
961     private static final String JavaDoc yearString = "1997-2004";
962
963     // custom code generators
964
public static Class JavaDoc codeGeneratorClass = null;
965     public static org.jacorb.idl.IDLTreeVisitor generator = null;
966
967     private static final String JavaDoc FINAL = " final";
968     private static final String JavaDoc NO_FINAL = "";
969
970     static String JavaDoc out_dir = ".";
971     // Use for org.omg only.
972
static String JavaDoc package_prefix = null;
973
974     static boolean parse_only = false;
975
976     /** used for internal checking that name conversion
977         to mapped Java names is done only after parsing */

978     public static boolean done_parsing = false;
979
980     /** compiler flags */
981     public static boolean include_state = false;
982     public static boolean strict_names = true;
983     /** these two are to work around buggy IDL generated by Sun's rmic in JDK 1.4 */
984     public static boolean strict_inheritance = true;
985     public static boolean strict_attributes = true;
986
987     public static boolean generateIR = false;
988     public static boolean generate_skeletons = true;
989     public static boolean generate_stubs = true;
990
991     public static boolean generate_ami_callback = false;
992     public static boolean generate_ami_polling = false;
993
994     protected static boolean generateIncluded = false;
995     protected static boolean inhibitionState = false;
996     protected static boolean localityContraint = false;
997     protected static boolean useUncheckedNarrow = false;
998     protected static boolean cldc10 = false;
999
1000    protected static boolean forceOverwrite;
1001
1002    protected static String JavaDoc finalString = FINAL;
1003
1004    private static int activeParseThreads;
1005
1006    private static Logger logger;
1007    private static Writer logStreamWriter = null;
1008
1009    /* a la CORBA 2.4, allow forward declarations that remain undefined */
1010    public static boolean sloppy = false;
1011
1012    /**
1013     * allows reinitialization if compiler is not
1014     * run from a command-line
1015     */

1016
1017    protected static void init()
1018    {
1019        command_line = null;
1020        pack_replace = new Hashtable();
1021        scopes = new Stack();
1022        tmpDefines = new Hashtable();
1023        tmpUnDefines = new Hashtable();
1024
1025        out_dir = ".";
1026        package_prefix = null;
1027
1028        parse_only = false;
1029
1030        include_state = false;
1031        generateIR = false;
1032        generate_skeletons = true;
1033
1034        strict_names = true;
1035
1036        generateIncluded = false;
1037        inhibitionState = false;
1038        localityContraint = false;
1039        forceOverwrite = false;
1040
1041        finalString = FINAL;
1042
1043        String JavaDoc pattern = "[%.11{category}] %.7{priority} : %{message}\\n%{throwable}";
1044        PatternFormatter formatter = new PatternFormatter( pattern );
1045        logger = Hierarchy.getDefaultHierarchy().getLoggerFor("jacorb.idl");
1046        logger.setPriority( Priority.ERROR );
1047
1048        // check if the environment's logStream has been set
1049
Writer logWriter;
1050        if( logStreamWriter != null )
1051        {
1052            logWriter = logStreamWriter;
1053        }
1054        else
1055        {
1056            OutputStream outStream = System.err;
1057            logWriter = new OutputStreamWriter( outStream );
1058        }
1059        WriterTarget writerTarget = new WriterTarget( logWriter, formatter );
1060        logger.setLogTargets( new LogTarget[] { writerTarget } );
1061
1062        parser.openScope();
1063    }
1064
1065
1066    public static void main( String JavaDoc argv[] )
1067    {
1068        if( compileAndHandle( argv ) == true )
1069            System.exit( 0 );
1070        else
1071            System.exit( 1 );
1072    }
1073
1074
1075    public static boolean compileAndHandle( String JavaDoc argv[] )
1076    {
1077        try
1078        {
1079            return compile( argv );
1080        }
1081        catch( org.jacorb.idl.ParseException e )
1082        {
1083            lexer.emit_error( e.getMessage() );
1084            return false;
1085        }
1086        catch ( java.io.IOException JavaDoc io )
1087        {
1088            lexer.emit_error("IO Error, please check file names: " + io.getMessage());
1089        }
1090        catch( Exception JavaDoc e )
1091        {
1092            e.printStackTrace();
1093            lexer.emit_error( "Exception: " + e.toString() );
1094            usage( argv, e.getMessage() );
1095        }
1096        return false;
1097    }
1098
1099    public static boolean compile( String JavaDoc argv[] )
1100        throws Exception JavaDoc
1101    {
1102        return compile( argv, null );
1103    }
1104
1105    public static boolean compile( String JavaDoc argv[], StringWriter logWriter )
1106        throws Exception JavaDoc
1107    {
1108        BufferedReader in = null;
1109
1110        if (logWriter!= null)
1111              logStreamWriter = logWriter;
1112
1113        init();
1114
1115        command_line = argv;
1116        if( argv.length > 0 )
1117        {
1118            int i;
1119            for( i = 0; i < argv.length; i++ )
1120            {
1121                if( argv[i].equals("-syntax"))
1122                {
1123                    parse_only = true;
1124                    continue;
1125                }
1126                if( argv[i].equals("-noskel"))
1127                {
1128                    generate_skeletons = false;
1129                    continue;
1130                }
1131                if( argv[i].equals("-nostub"))
1132                {
1133                    generate_stubs = false;
1134                    continue;
1135                }
1136                if( argv[i].equals("-ami_callback"))
1137                {
1138                    generate_ami_callback = true;
1139                    continue;
1140                }
1141                if( argv[i].equals("-forceOverwrite"))
1142                {
1143                    forceOverwrite = true;
1144                    continue;
1145                }
1146                if( argv[i].equals("-ami_polling"))
1147                {
1148                    throw new RuntimeException JavaDoc
1149                      ("Sorry, the polling model is not yet implemented.");
1150                    // generate_ami_polling = true;
1151
// continue;
1152
}
1153                if( argv[i].equals("-sloppy_forward"))
1154                {
1155                    sloppy = true;
1156                    continue;
1157                }
1158                if( argv[i].equals("-sloppy_names"))
1159                {
1160                    strict_names = false;
1161                    continue;
1162                }
1163                if( argv[i].equals("-permissive_rmic"))
1164                {
1165                    strict_names = false;
1166                    strict_attributes = false;
1167                    strict_inheritance = false;
1168                    continue;
1169                }
1170                if( argv[i].equals("-unchecked_narrow"))
1171                {
1172                    useUncheckedNarrow = true;
1173                    continue;
1174                }
1175                if( argv[i].equals("-backend"))
1176                {
1177                    if( i+1 == argv.length || argv[i+1].charAt(0)=='-' )
1178                        usage(argv, "-backend");
1179
1180                    try
1181                    {
1182                        codeGeneratorClass = Class.forName( argv[++i] );
1183                    }
1184                    catch( ClassNotFoundException JavaDoc cnfe )
1185                    {
1186                        throw new ParseException("Generator Class " + argv[i] + " not found! Check classpath!");
1187                    }
1188
1189                    if( ! org.jacorb.idl.IDLTreeVisitor.class.isAssignableFrom( codeGeneratorClass ))
1190                        throw new ParseException( "Not a valid code generator: " +
1191                            codeGeneratorClass.getName() );
1192                    setGenerator( (org.jacorb.idl.IDLTreeVisitor) codeGeneratorClass.newInstance());
1193                    continue;
1194                }
1195                if( argv[i].equals("-d"))
1196                {
1197                    if( i+1 == argv.length || argv[i+1].charAt(0)=='-' )
1198                        usage(argv, "-d");
1199                    out_dir = argv[++i];
1200                    continue;
1201                }
1202                if( argv[i].equals("-W"))
1203                {
1204                    if( i+1 == argv.length || argv[i+1].charAt(0)=='-' )
1205                        usage(argv, "-W");
1206
1207                    int level = Integer.parseInt( argv[++i] );
1208
1209                    logger.setPriority(Environment.intToPriority(level));
1210
1211                    continue;
1212                }
1213                if( argv[i].startsWith("-D"))
1214                {
1215                    String JavaDoc def = argv[i].substring(2);
1216                    String JavaDoc val;
1217
1218                    if( def.indexOf('=') > 0 )
1219                    {
1220                        val = def.substring( def.indexOf('=') + 1);
1221                        def = def.substring( 0, def.indexOf('='));
1222                    }
1223                    else
1224                        val = "1";
1225                    tmpDefines.put( def, val );
1226                    continue;
1227                }
1228                if( argv[i].startsWith("-U"))
1229                {
1230                        tmpUnDefines.put( argv[i].substring(2), "" );
1231                        continue;
1232                }
1233                if( argv[i].equals("-omg"))
1234                {
1235                        package_prefix = "org.omg";
1236                        continue;
1237                }
1238                if( argv[i].equals("-cldc10"))
1239                {
1240                        cldc10 = true;
1241                        continue;
1242                }
1243                if( argv[i].equals("-i2jpackage"))
1244                {
1245                    if( i+1 == argv.length || argv[i+1].charAt(0)=='-')
1246                        usage(argv, "-i2jpackage");
1247                     addI2JPackage (argv[i+1]);
1248                    i++;
1249                    continue;
1250                }
1251                if (argv[i].equals ("-i2jpackagefile"))
1252                {
1253                   if( i+1 == argv.length || argv[i+1].charAt(0)=='-')
1254                        usage(argv, "-i2jpackagefile");
1255
1256                       try
1257                       {
1258                          in = new BufferedReader (new FileReader (argv[i+1]));
1259                       }
1260                       catch (FileNotFoundException e)
1261                       {
1262                          System.out.println ("File " + argv[i+1] + " not found");
1263                          throw new RuntimeException JavaDoc
1264                             ("File for -i2jpackagefile not found");
1265                       }
1266                       String JavaDoc mapping = in.readLine ();
1267                       while (mapping != null)
1268                       {
1269                          addI2JPackage (mapping);
1270                          mapping = in.readLine ();
1271                       }
1272                       in.close ();
1273                       i++;
1274                       continue;
1275                }
1276                if( argv[i].equals("-ir"))
1277                {
1278                        generateIR = true;
1279                        continue;
1280                }
1281                if( argv[i].startsWith("-I"))
1282                {
1283                    GlobalInputStream.setIncludePath(argv[i].substring(2));
1284                    continue;
1285                }
1286                if( argv[i].equals("-h") || argv[i].equals("-help") )
1287                {
1288                    help();
1289                    return true;
1290                }
1291                if( argv[i].equals("-all") )
1292                {
1293                        generateIncluded = true;
1294                        continue;
1295                }
1296                if( argv[i].equals("-v") || argv[i].equals("-version") )
1297                {
1298                    version();
1299                    return true;
1300                }
1301                if ( argv[i].equals("-nofinal") )
1302                {
1303                    setFinalString(NO_FINAL);
1304                    continue;
1305                }
1306                if( argv[i].equals("-in") )
1307                {
1308                    i++;
1309                    if( i < argv.length )
1310                    {
1311                        prepareAndParse(argv[i]);
1312                    }
1313                    continue;
1314                }
1315                if( argv[i].endsWith(".idl") )
1316                {
1317                    break;
1318                }
1319
1320                // else:
1321
usage(argv, "Unrecognized option: " + argv[i]);
1322
1323            }
1324            for( int j=i; j < argv.length; j++)
1325            {
1326                if( argv[j].endsWith(".idl"))
1327                {
1328                    prepareAndParse(argv[j]);
1329                }
1330                else
1331                {
1332                    throw new ParseException("Not an IDL file:" + argv[j]);
1333                }
1334            }
1335        }
1336        return true;
1337    }
1338
1339    private static void prepareAndParse(String JavaDoc fileName)
1340        throws Exception JavaDoc
1341    {
1342        GlobalInputStream.init();
1343        GlobalInputStream.setInput( fileName );
1344
1345        /* reset tables everywhere */
1346        lexer.reset();
1347        NameTable.init();
1348        ConstDecl.init();
1349        TypeMap.init();
1350
1351        /* define/undefine symbols */
1352        for( Enumeration e = tmpDefines.keys(); e.hasMoreElements(); )
1353        {
1354            String JavaDoc key = (String JavaDoc)e.nextElement();
1355            lexer.define( key, (String JavaDoc)tmpDefines.get( key ));
1356        }
1357
1358        for( Enumeration e = tmpUnDefines.keys(); e.hasMoreElements(); )
1359        {
1360            lexer.undefine( (String JavaDoc)e.nextElement() );
1361        }
1362
1363        new parser().parse();
1364
1365        if( lexer.error_count > 0 )
1366        {
1367            throw new ParseException( "Errors in lexer" );
1368        }
1369    }
1370
1371
1372
1373
1374    public static void usage(String JavaDoc [] argv, String JavaDoc msg)
1375    {
1376        // debug:
1377
for( int i = 0; i < argv.length; i++)
1378            System.out.print( argv[i] + " " );
1379        System.out.println(" : " + msg);
1380
1381        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][-sloppy_forward][-sloppy_names][-permissive_rmic][-syntax][-in inputfile] <filelist>");
1382    }
1383
1384
1385    static void addI2JPackage( String JavaDoc mapping )
1386    {
1387       int split_idx = mapping.indexOf(':');
1388       if( split_idx < 0 )
1389       {
1390          System.out.println ("Incorrect format for i2jpackage mapping: " + mapping);
1391          System.exit (1);
1392       }
1393       String JavaDoc idlp = mapping.substring(0,split_idx);
1394       String JavaDoc jp = mapping.substring(split_idx+1);
1395
1396       if( idlp.length() == 0 )
1397       {
1398           package_prefix = jp;
1399           if( logger.isDebugEnabled() )
1400           {
1401               logger.debug( "Replace unnamed global package with " + jp );
1402           }
1403       }
1404       else
1405       {
1406           pack_replace.put( idlp, jp );
1407           if( logger.isDebugEnabled() )
1408           {
1409               logger.debug( "Replace pack " + idlp + " with " + jp );
1410           }
1411       }
1412    }
1413
1414
1415    private static void help()
1416    {
1417        System.out.println("\t-h|help \tthese few lines of help");
1418        System.out.println("\t-v|version \tprint version information");
1419        System.out.println("\t-d dir\t\troot of directory tree for output");
1420        System.out.println("\t-Dx\t\tdefine preprocessor symbol x with value 1");
1421        System.out.println("\t-Dx=y\t\tdefine preprocessor symbol x with value y");
1422        System.out.println("\t-Idir\t\tset include path for idl files");
1423        System.out.println("\t-U<symbol>\t\tundefine preprocessor symbol");
1424        System.out.println("\t-W [1..4]\tdebug level");
1425        System.out.println("\t-all\t\tgenerate code for all IDL files, even included ones");
1426        System.out.println("\t-forceOverwrite\tgenerate code even if IDL has not changed");
1427        System.out.println("\t-ami_callback\t\tgenerate AMI reply handlers and sendc methods");
1428        System.out.println("\t-ami_polling\t\tgenerate AMI poller and sendp methods");
1429        System.out.println("\t-backend classname\t\tuse classname as code generator");
1430        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)");
1431        System.out.println("\t-i2jpackagefile <filename>\t replace IDL package names using list from <filename>. Format as above.");
1432        System.out.println("\t-ir\t\tgenerate information required by the Interface Repository");
1433        System.out.println("\t-nofinal\tgenerated Java code will contain no final class definitions");
1434        System.out.println("\t-unchecked_narrow\t\tuse unchecked_narrow in generated code for IOR parameters in operations");
1435        System.out.println("\t-noskel\t\tdisables generation of POA skeletons");
1436        System.out.println("\t-nostub\t\tdisables generation of client stubs");
1437        System.out.println("\t-cldc10\t\tcode generation compatible with J2ME/CLDC 1.0");
1438        System.out.println("\t-sloppy_forward\tallow forward declarations wo. later definitions");
1439        System.out.println("\t-sloppy_names\tless strict checking of module name scoping");
1440        System.out.println("\t-permissive_rmic\ttolerate dubious IDL generated by JDK's rmic, includes -sloppy_names.");
1441
1442        System.out.println("\t-syntax\t\tsyntax check only, no code generation");
1443        System.out.println("\t<filelist>\t");
1444  }
1445
1446    private static void version()
1447    {
1448        System.out.println("JacORB IDL compiler V" + compiler_version +
1449                           ",\n (C) Gerald Brose, FU Berlin/XTRADYNE Technologies, " +
1450                           yearString + ".");
1451    }
1452
1453    /* override error routines */
1454
1455    public void report_fatal_error( String JavaDoc message, Object JavaDoc info)
1456        throws ParseException
1457    {
1458       done_parsing();
1459       lexer.emit_error(message + "\nCan't recover from previous error(s), giving up.");
1460       throw new ParseException();
1461    }
1462
1463    public static void fatal_error(String JavaDoc message, str_token p_info)
1464        throws ParseException
1465    {
1466       //done_parsing();
1467
lexer.emit_error(message + "\nCan't recover from previous error(s), giving up.", p_info);
1468       throw new ParseException();
1469    }
1470
1471    public void report_error(String JavaDoc message, Object JavaDoc info)
1472    {
1473       lexer.emit_error(message);
1474    }
1475
1476    public static void error(String JavaDoc message, str_token p_info)
1477    {
1478       lexer.emit_error(message, p_info);
1479    }
1480
1481    public static void error( String JavaDoc message )
1482    {
1483       lexer.emit_error( message );
1484    }
1485
1486    /* bookkeeping with IDL scopes */
1487
1488    /** called from the lexer/scanner whenever a scope opening
1489        symbol is encountered */

1490
1491    public static void openScope()
1492    {
1493        scopes.push(new ScopeData());
1494    }
1495
1496    /** called from within the parser whenever parsing a scope
1497        symbol is complete */

1498
1499    public static void closeScope(Scope symbol)
1500    {
1501            ScopeData data = (ScopeData) scopes.pop();
1502            symbol.setScopeData( data );
1503    }
1504
1505    public static ScopeData currentScopeData()
1506    {
1507            return (ScopeData)scopes.peek();
1508    }
1509
1510
1511    // an interface inheriting from an forward declared interface
1512
// needs to wait on an object until the ancestor has been parsed
1513
// if get_pending returns null, the ancestor was not forward
1514
// declared and thus has already been parsed
1515

1516    // forward declared interfaces are put into this list
1517

1518    static Hashtable pending_interfaces = new Hashtable();
1519
1520    public static synchronized void set_pending( String JavaDoc name )
1521    {
1522         // name will only be marked pending if it has not already been
1523
// parsed before and if is not already pending
1524
String JavaDoc use = ScopedName.unPseudoName (name);
1525
1526         if( ! ( pending_interfaces.containsKey(use) ||
1527                 NameTable.parsed_interfaces.containsKey(use)) )
1528         {
1529                 pending_interfaces.put(use, new Object JavaDoc());
1530         }
1531    }
1532
1533    public static void setGenerator( org.jacorb.idl.IDLTreeVisitor generatorObject )
1534    {
1535        generator = generatorObject;
1536    }
1537
1538    public static org.jacorb.idl.IDLTreeVisitor getGenerator()
1539    {
1540        return generator;
1541    }
1542
1543    public static synchronized void remove_pending( String JavaDoc name )
1544    {
1545         String JavaDoc use = ScopedName.unPseudoName (name);
1546         Object JavaDoc o = pending_interfaces.remove(use);
1547         if( o != null)
1548         {
1549             synchronized( o )
1550             {
1551                  o.notifyAll();
1552             }
1553         }
1554         if( pending_interfaces.size() == 0 )
1555         {
1556             // notify the main thread that the parsing phase is complete
1557
synchronized( pending_interfaces )
1558             {
1559                  pending_interfaces.notifyAll();
1560             }
1561         }
1562    }
1563
1564    public static Object JavaDoc get_pending( String JavaDoc name )
1565    {
1566        return pending_interfaces.get (ScopedName.unPseudoName (name));
1567    }
1568
1569    public static synchronized void decActiveParseThreads()
1570    {
1571        activeParseThreads--;
1572    }
1573
1574    public static synchronized void incActiveParseThreads()
1575    {
1576        activeParseThreads++;
1577    }
1578
1579    public static synchronized int activeParseThreads()
1580    {
1581        return activeParseThreads;
1582    }
1583
1584    public static boolean generateIncluded()
1585    {
1586        return generateIncluded;
1587    }
1588
1589    public static boolean getInhibitionState()
1590    {
1591        return inhibitionState;
1592    }
1593
1594    public static void setInhibitionState(boolean flag)
1595    {
1596        inhibitionState = flag;
1597    }
1598
1599    public static void set_included( boolean i )
1600    {
1601        include_state = i;
1602    }
1603
1604    public static String JavaDoc getFinalString()
1605    {
1606        return finalString;
1607    }
1608
1609    public static void setFinalString(String JavaDoc finalString)
1610    {
1611        parser.finalString = finalString;
1612    }
1613
1614    public static void setGenerateFinalCode(boolean isFinal)
1615    {
1616        if (isFinal)
1617        {
1618            setFinalString(FINAL);
1619        }
1620        else
1621        {
1622            setFinalString(NO_FINAL);
1623        }
1624    }
1625
1626
1627
1628    /**
1629     * Package replacements as requested
1630     * by compiler options
1631     */

1632
1633    public static String JavaDoc pack_replace(String JavaDoc old)
1634    {
1635        String JavaDoc n_str = (String JavaDoc)pack_replace.get(old);
1636        if( n_str == null )
1637            return old;
1638        else
1639            return n_str;
1640    }
1641
1642    /**
1643     * convenience access to the preconfigured loger for the
1644     * IDL compiler
1645     */

1646
1647    static final Logger getLogger()
1648    {
1649        return logger;
1650    }
1651
1652
1653
1654
1655};
1656
1657/** Cup generated class to encapsulate user supplied action code.*/
1658class CUP$actions {
1659
1660
1661
1662
1663  /** Constructor */
1664  CUP$actions() { }
1665
1666  /** Method with the actual generated action code. */
1667  public final org.jacorb.idl.runtime.symbol CUP$do_action(
1668    int CUP$act_num,
1669    org.jacorb.idl.runtime.lr_parser CUP$parser,
1670    java.util.Stack JavaDoc CUP$stack,
1671    int CUP$top)
1672    throws java.lang.Exception JavaDoc
1673    {
1674      /* object for return from actions */
1675      org.jacorb.idl.runtime.symbol CUP$result;
1676
1677      /* select the action based on the action number */
1678      switch (CUP$act_num)
1679        {
1680          /*. . . . . . . . . . . . . . . . . . . .*/
1681          case 231: // empty ::=
1682
{
1683              CUP$result = new org.jacorb.idl.runtime.symbol(/*empty*/3);
1684              
1685            }
1686          return CUP$result;
1687
1688          /*. . . . . . . . . . . . . . . . . . . .*/
1689          case 230: // param_type_spec ::= scopename
1690
{
1691              CUP$result = new TypeSpec(/*param_type_spec*/43);
1692               ((TypeSpec)CUP$result).type_spec = (/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0));
1693            }
1694          return CUP$result;
1695
1696          /*. . . . . . . . . . . . . . . . . . . .*/
1697          case 229: // param_type_spec ::= string_type
1698
{
1699              CUP$result = new TypeSpec(/*param_type_spec*/43);
1700               ((TypeSpec)CUP$result).type_spec = (/*s*/(StringType)CUP$stack.elementAt(CUP$top-0));
1701            }
1702          return CUP$result;
1703
1704          /*. . . . . . . . . . . . . . . . . . . .*/
1705          case 228: // param_type_spec ::= base_type_spec
1706
{
1707              CUP$result = new TypeSpec(/*param_type_spec*/43);
1708               ((TypeSpec)CUP$result).type_spec = (/*s*/(BaseType)CUP$stack.elementAt(CUP$top-0));
1709            }
1710          return CUP$result;
1711
1712          /*. . . . . . . . . . . . . . . . . . . .*/
1713          case 227: // string_literal_list ::= string_literal COMMA string_literal_list
1714
{
1715              CUP$result = new org.jacorb.idl.runtime.symbol(/*string_literal_list*/2);
1716              
1717            }
1718          return CUP$result;
1719
1720          /*. . . . . . . . . . . . . . . . . . . .*/
1721          case 226: // string_literal_list ::= string_literal
1722
{
1723              CUP$result = new org.jacorb.idl.runtime.symbol(/*string_literal_list*/2);
1724              
1725            }
1726          return CUP$result;
1727
1728          /*. . . . . . . . . . . . . . . . . . . .*/
1729          case 225: // context_expr ::= empty
1730
{
1731              CUP$result = new org.jacorb.idl.runtime.symbol(/*context_expr*/1);
1732              
1733            }
1734          return CUP$result;
1735
1736          /*. . . . . . . . . . . . . . . . . . . .*/
1737          case 224: // context_expr ::= CONTEXT LPAREN string_literal_list RPAREN
1738
{
1739              CUP$result = new org.jacorb.idl.runtime.symbol(/*context_expr*/1);
1740              
1741            }
1742          return CUP$result;
1743
1744          /*. . . . . . . . . . . . . . . . . . . .*/
1745          case 223: // raises_expr ::= empty
1746
{
1747              CUP$result = new RaisesExpr(/*raises_expr*/82);
1748              
1749            }
1750          return CUP$result;
1751
1752          /*. . . . . . . . . . . . . . . . . . . .*/
1753          case 222: // raises_expr ::= RAISES LPAREN scopename_list RPAREN
1754
{
1755              CUP$result = new RaisesExpr(/*raises_expr*/82);
1756              
1757                ((RaisesExpr)CUP$result).nameList = (Vector)(/*snl*/(SymbolList)CUP$stack.elementAt(CUP$top-1)).v.clone();
1758        
1759            }
1760          return CUP$result;
1761
1762          /*. . . . . . . . . . . . . . . . . . . .*/
1763          case 221: // param_attribute ::= INOUT
1764
{
1765              CUP$result = new org.jacorb.idl.runtime.int_token(/*param_attribute*/5);
1766               ((org.jacorb.idl.runtime.int_token)CUP$result).int_val = ParamDecl.MODE_INOUT;
1767            }
1768          return CUP$result;
1769
1770          /*. . . . . . . . . . . . . . . . . . . .*/
1771          case 220: // param_attribute ::= OUT
1772
{
1773              CUP$result = new org.jacorb.idl.runtime.int_token(/*param_attribute*/5);
1774               ((org.jacorb.idl.runtime.int_token)CUP$result).int_val = ParamDecl.MODE_OUT;
1775            }
1776          return CUP$result;
1777
1778          /*. . . . . . . . . . . . . . . . . . . .*/
1779          case 219: // param_attribute ::= IN
1780
{
1781              CUP$result = new org.jacorb.idl.runtime.int_token(/*param_attribute*/5);
1782               ((org.jacorb.idl.runtime.int_token)CUP$result).int_val = ParamDecl.MODE_IN;
1783            }
1784          return CUP$result;
1785
1786          /*. . . . . . . . . . . . . . . . . . . .*/
1787          case 218: // param_dcl ::= param_attribute param_type_spec simple_declarator
1788
{
1789              CUP$result = new ParamDecl(/*param_dcl*/81);
1790              
1791                ((ParamDecl)CUP$result).paramAttribute = (/*pa*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-2)).int_val;
1792                ((ParamDecl)CUP$result).paramTypeSpec = (/*pts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
1793                ((ParamDecl)CUP$result).simple_declarator = (/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-0));
1794          
1795            }
1796          return CUP$result;
1797
1798          /*. . . . . . . . . . . . . . . . . . . .*/
1799          case 217: // param_dcls ::= param_dcl
1800
{
1801              CUP$result = new SymbolList(/*param_dcls*/87);
1802              
1803                        ((SymbolList)CUP$result).v.insertElementAt((/*pd*/(ParamDecl)CUP$stack.elementAt(CUP$top-0)),0);
1804                
1805            }
1806          return CUP$result;
1807
1808          /*. . . . . . . . . . . . . . . . . . . .*/
1809          case 216: // param_dcls ::= param_dcl COMMA param_dcls
1810
{
1811              CUP$result = new SymbolList(/*param_dcls*/87);
1812              
1813                        ((SymbolList)CUP$result).v = (Vector)(/*pds*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
1814                        ((SymbolList)CUP$result).v.insertElementAt((/*pd*/(ParamDecl)CUP$stack.elementAt(CUP$top-2)),0);
1815                
1816            }
1817          return CUP$result;
1818
1819          /*. . . . . . . . . . . . . . . . . . . .*/
1820          case 215: // parameter_dcls ::= LPAREN RPAREN
1821
{
1822              CUP$result = new SymbolList(/*parameter_dcls*/89);
1823              
1824            }
1825          return CUP$result;
1826
1827          /*. . . . . . . . . . . . . . . . . . . .*/
1828          case 214: // parameter_dcls ::= LPAREN param_dcls RPAREN
1829
{
1830              CUP$result = new SymbolList(/*parameter_dcls*/89);
1831              
1832                        ((SymbolList)CUP$result).v = (Vector)(/*pds*/(SymbolList)CUP$stack.elementAt(CUP$top-1)).v.clone();
1833                
1834            }
1835          return CUP$result;
1836
1837          /*. . . . . . . . . . . . . . . . . . . .*/
1838          case 213: // void_type_spec ::= VOID
1839
{
1840              CUP$result = new VoidTypeSpec(/*void_type_spec*/70);
1841              
1842            }
1843          return CUP$result;
1844
1845          /*. . . . . . . . . . . . . . . . . . . .*/
1846          case 212: // op_type_spec ::= void_type_spec
1847
{
1848              CUP$result = new TypeSpec(/*op_type_spec*/42);
1849               ((TypeSpec)CUP$result).type_spec = (/*s*/(VoidTypeSpec)CUP$stack.elementAt(CUP$top-0));
1850            }
1851          return CUP$result;
1852
1853          /*. . . . . . . . . . . . . . . . . . . .*/
1854          case 211: // op_type_spec ::= param_type_spec
1855
{
1856              CUP$result = new TypeSpec(/*op_type_spec*/42);
1857               ((TypeSpec)CUP$result).type_spec = (/*s*/(TypeSpec)CUP$stack.elementAt(CUP$top-0));
1858            }
1859          return CUP$result;
1860
1861          /*. . . . . . . . . . . . . . . . . . . .*/
1862          case 210: // op_attribute ::= empty
1863
{
1864              CUP$result = new org.jacorb.idl.runtime.int_token(/*op_attribute*/4);
1865               ((org.jacorb.idl.runtime.int_token)CUP$result).int_val = OpDecl.NO_ATTRIBUTE;
1866            }
1867          return CUP$result;
1868
1869          /*. . . . . . . . . . . . . . . . . . . .*/
1870          case 209: // op_attribute ::= ONEWAY
1871
{
1872              CUP$result = new org.jacorb.idl.runtime.int_token(/*op_attribute*/4);
1873               ((org.jacorb.idl.runtime.int_token)CUP$result).int_val = OpDecl.ONEWAY;
1874            }
1875          return CUP$result;
1876
1877          /*. . . . . . . . . . . . . . . . . . . .*/
1878          case 208: // op_dcl ::= op_attribute op_type_spec ID parameter_dcls raises_expr context_expr
1879
{
1880              CUP$result = new OpDecl(/*op_dcl*/83);
1881              
1882                        ((OpDecl)CUP$result).opAttribute = (/*oa*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-5)).int_val;
1883                        ((OpDecl)CUP$result).opTypeSpec = (/*ots*/(TypeSpec)CUP$stack.elementAt(CUP$top-4));
1884                        ((OpDecl)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)));
1885                        ((OpDecl)CUP$result).paramDecls = (Vector)(/*pds*/(SymbolList)CUP$stack.elementAt(CUP$top-2)).v.clone();
1886                        ((OpDecl)CUP$result).raisesExpr = (/*re*/(RaisesExpr)CUP$stack.elementAt(CUP$top-1));
1887          
1888            }
1889          return CUP$result;
1890
1891          /*. . . . . . . . . . . . . . . . . . . .*/
1892          case 207: // except_dcl ::= EXCEPTION ID LCBRACE member_list RCBRACE
1893
{
1894              CUP$result = new StructType(/*except_dcl*/51);
1895              
1896                        ((StructType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)));
1897                        ((StructType)CUP$result).exc = true;
1898                        ((StructType)CUP$result).set_memberlist( (/*ml*/(MemberList)CUP$stack.elementAt(CUP$top-1)) );
1899                        ((StructType)CUP$result).set_included( parser.include_state );
1900                        parser.closeScope( (Scope)((StructType)CUP$result) );
1901                
1902            }
1903          return CUP$result;
1904
1905          /*. . . . . . . . . . . . . . . . . . . .*/
1906          case 206: // except_dcl ::= EXCEPTION ID LCBRACE RCBRACE
1907
{
1908              CUP$result = new StructType(/*except_dcl*/51);
1909              
1910                        ((StructType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-2)));
1911                        ((StructType)CUP$result).exc = true;
1912                        ((StructType)CUP$result).set_included( parser.include_state );
1913                        parser.closeScope( (Scope)((StructType)CUP$result) );
1914                
1915            }
1916          return CUP$result;
1917
1918          /*. . . . . . . . . . . . . . . . . . . .*/
1919          case 205: // simple_declarator_list ::= simple_declarator COMMA simple_declarator_list
1920
{
1921              CUP$result = new SymbolList(/*simple_declarator_list*/91);
1922              
1923                        ((SymbolList)CUP$result).v = (Vector)(/*sdl*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
1924                        ((SymbolList)CUP$result).v.insertElementAt((/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-2)),0);
1925                
1926            }
1927          return CUP$result;
1928
1929          /*. . . . . . . . . . . . . . . . . . . .*/
1930          case 204: // simple_declarator_list ::= simple_declarator
1931
{
1932              CUP$result = new SymbolList(/*simple_declarator_list*/91);
1933              
1934                        ((SymbolList)CUP$result).v.insertElementAt((/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-0)),0);
1935                
1936            }
1937          return CUP$result;
1938
1939          /*. . . . . . . . . . . . . . . . . . . .*/
1940          case 203: // attr_dcl ::= ATTRIBUTE param_type_spec simple_declarator_list
1941
{
1942              CUP$result = new AttrDecl(/*attr_dcl*/84);
1943              
1944                        ((AttrDecl)CUP$result).readOnly = false;
1945                        ((AttrDecl)CUP$result).param_type_spec = (/*pts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
1946                        ((AttrDecl)CUP$result).declarators = (/*sdl*/(SymbolList)CUP$stack.elementAt(CUP$top-0));
1947                
1948            }
1949          return CUP$result;
1950
1951          /*. . . . . . . . . . . . . . . . . . . .*/
1952          case 202: // attr_dcl ::= READONLY ATTRIBUTE param_type_spec simple_declarator_list
1953
{
1954              CUP$result = new AttrDecl(/*attr_dcl*/84);
1955              
1956                        ((AttrDecl)CUP$result).readOnly = true;
1957                        ((AttrDecl)CUP$result).param_type_spec = (/*pts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
1958                        ((AttrDecl)CUP$result).declarators = (/*sdl*/(SymbolList)CUP$stack.elementAt(CUP$top-0));
1959                
1960            }
1961          return CUP$result;
1962
1963          /*. . . . . . . . . . . . . . . . . . . .*/
1964          case 201: // fixed_array_size ::= LSBRACE positive_int_const RSBRACE
1965
{
1966              CUP$result = new FixedArraySize(/*fixed_array_size*/80);
1967              
1968                        ((FixedArraySize)CUP$result).pos_int_const = (/*pic*/(PosIntConst)CUP$stack.elementAt(CUP$top-1));
1969                
1970            }
1971          return CUP$result;
1972
1973          /*. . . . . . . . . . . . . . . . . . . .*/
1974          case 200: // fixed_array_size_list ::= fixed_array_size fixed_array_size_list
1975
{
1976              CUP$result = new SymbolList(/*fixed_array_size_list*/95);
1977              
1978                        ((SymbolList)CUP$result).v = (Vector)(/*fasl*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
1979                        ((SymbolList)CUP$result).v.insertElementAt((/*fas*/(FixedArraySize)CUP$stack.elementAt(CUP$top-1)),0);
1980                
1981            }
1982          return CUP$result;
1983
1984          /*. . . . . . . . . . . . . . . . . . . .*/
1985          case 199: // fixed_array_size_list ::= fixed_array_size
1986
{
1987              CUP$result = new SymbolList(/*fixed_array_size_list*/95);
1988              
1989                        ((SymbolList)CUP$result).v.insertElementAt((/*fas*/(FixedArraySize)CUP$stack.elementAt(CUP$top-0)),0);
1990                
1991            }
1992          return CUP$result;
1993
1994          /*. . . . . . . . . . . . . . . . . . . .*/
1995          case 198: // array_declarator ::= ID fixed_array_size_list
1996
{
1997              CUP$result = new ArrayDeclarator(/*array_declarator*/79);
1998              
1999                        ((ArrayDeclarator)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-1)));
2000                        ((ArrayDeclarator)CUP$result).fixed_array_size_list = (/*fasl*/(SymbolList)CUP$stack.elementAt(CUP$top-0));
2001                
2002            }
2003          return CUP$result;
2004
2005          /*. . . . . . . . . . . . . . . . . . . .*/
2006          case 197: // fixed_point_type ::= FIXED LESSTHAN positive_int_const COMMA positive_int_const GREATERTHAN
2007
{
2008              CUP$result = new FixedPointType(/*fixed_point_type*/73);
2009              
2010                ((FixedPointType)CUP$result).digit_expr = (/*digits*/(PosIntConst)CUP$stack.elementAt(CUP$top-3)).const_expr;
2011                ((FixedPointType)CUP$result).scale_expr = (/*scale*/(PosIntConst)CUP$stack.elementAt(CUP$top-1)).const_expr;
2012         
2013            }
2014          return CUP$result;
2015
2016          /*. . . . . . . . . . . . . . . . . . . .*/
2017          case 196: // string_type ::= WSTRING
2018
{
2019              CUP$result = new StringType(/*string_type*/71);
2020               ((StringType)CUP$result).setWide();
2021            }
2022          return CUP$result;
2023
2024          /*. . . . . . . . . . . . . . . . . . . .*/
2025          case 195: // string_type ::= STRING
2026
{
2027              CUP$result = new StringType(/*string_type*/71);
2028              
2029            }
2030          return CUP$result;
2031
2032          /*. . . . . . . . . . . . . . . . . . . .*/
2033          case 194: // string_type ::= WSTRING LESSTHAN positive_int_const GREATERTHAN
2034
{
2035              CUP$result = new StringType(/*string_type*/71);
2036              
2037                ((StringType)CUP$result).max = (/*pic*/(PosIntConst)CUP$stack.elementAt(CUP$top-1)).const_expr;
2038                ((StringType)CUP$result).setWide();
2039          
2040            }
2041          return CUP$result;
2042
2043          /*. . . . . . . . . . . . . . . . . . . .*/
2044          case 193: // string_type ::= STRING LESSTHAN positive_int_const GREATERTHAN
2045
{
2046              CUP$result = new StringType(/*string_type*/71);
2047               ((StringType)CUP$result).max = (/*pic*/(PosIntConst)CUP$stack.elementAt(CUP$top-1)).const_expr;
2048            }
2049          return CUP$result;
2050
2051          /*. . . . . . . . . . . . . . . . . . . .*/
2052          case 192: // sequence_type ::= SEQUENCE LESSTHAN simple_type_spec GREATERTHAN
2053
{
2054              CUP$result = new SequenceType(/*sequence_type*/72);
2055              
2056                        ((SequenceType)CUP$result).setTypeSpec( (/*sts*/(SimpleTypeSpec)CUP$stack.elementAt(CUP$top-1)) );
2057                
2058            }
2059          return CUP$result;
2060
2061          /*. . . . . . . . . . . . . . . . . . . .*/
2062          case 191: // sequence_type ::= SEQUENCE LESSTHAN simple_type_spec COMMA positive_int_const GREATERTHAN
2063
{
2064              CUP$result = new SequenceType(/*sequence_type*/72);
2065              
2066                        ((SequenceType)CUP$result).max = (/*pic*/(PosIntConst)CUP$stack.elementAt(CUP$top-1)).const_expr;
2067                        ((SequenceType)CUP$result).setTypeSpec( (/*sts*/(SimpleTypeSpec)CUP$stack.elementAt(CUP$top-3)) );
2068                
2069            }
2070          return CUP$result;
2071
2072          /*. . . . . . . . . . . . . . . . . . . .*/
2073          case 190: // native_type ::= NATIVE simple_declarator
2074
{
2075              CUP$result = new NativeType(/*native_type*/53);
2076              
2077                        ((NativeType)CUP$result).declarator = (/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-0));
2078                
2079            }
2080          return CUP$result;
2081
2082          /*. . . . . . . . . . . . . . . . . . . .*/
2083          case 189: // enumerator_list ::= ID COMMA enumerator_list
2084
{
2085              CUP$result = new SymbolList(/*enumerator_list*/94);
2086              
2087                        ((SymbolList)CUP$result).v = (Vector)(/*el*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
2088                        ((SymbolList)CUP$result).v.insertElementAt((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-2)).str_val,0);
2089                        ((SymbolList)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-2)));
2090                
2091            }
2092          return CUP$result;
2093
2094          /*. . . . . . . . . . . . . . . . . . . .*/
2095          case 188: // enumerator_list ::= ID
2096
{
2097              CUP$result = new SymbolList(/*enumerator_list*/94);
2098              
2099                        ((SymbolList)CUP$result).v.insertElementAt((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val,0);
2100                        ((SymbolList)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
2101                
2102            }
2103          return CUP$result;
2104
2105          /*. . . . . . . . . . . . . . . . . . . .*/
2106          case 187: // enum_type ::= ENUM ID LCBRACE enumerator_list RCBRACE
2107
{
2108              CUP$result = new EnumType(/*enum_type*/49);
2109              
2110                        ((EnumType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)));
2111                        ((EnumType)CUP$result).enumlist = (/*el*/(SymbolList)CUP$stack.elementAt(CUP$top-1));
2112                        ((EnumType)CUP$result).set_included( parser.include_state );
2113                
2114            }
2115          return CUP$result;
2116
2117          /*. . . . . . . . . . . . . . . . . . . .*/
2118          case 186: // element_spec ::= type_spec declarator
2119
{
2120              CUP$result = new ElementSpec(/*element_spec*/56);
2121              
2122                        ((ElementSpec)CUP$result).t.type_spec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
2123                        ((ElementSpec)CUP$result).d = (/*dc*/(Declarator)CUP$stack.elementAt(CUP$top-0));
2124                
2125            }
2126          return CUP$result;
2127
2128          /*. . . . . . . . . . . . . . . . . . . .*/
2129          case 185: // case_label_list ::= DEFAULT COLON case_label_list
2130
{
2131              CUP$result = new SymbolList(/*case_label_list*/86);
2132              
2133                        ((SymbolList)CUP$result).v = (Vector)(/*cll*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
2134                        ((SymbolList)CUP$result).v.addElement(null);
2135                
2136            }
2137          return CUP$result;
2138
2139          /*. . . . . . . . . . . . . . . . . . . .*/
2140          case 184: // case_label_list ::= CASE const_expr COLON case_label_list
2141
{
2142              CUP$result = new SymbolList(/*case_label_list*/86);
2143              
2144                        ((SymbolList)CUP$result).v = (Vector)(/*cll*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
2145                        ((SymbolList)CUP$result).v.addElement((/*c*/(ConstExpr)CUP$stack.elementAt(CUP$top-2)));
2146                
2147            }
2148          return CUP$result;
2149
2150          /*. . . . . . . . . . . . . . . . . . . .*/
2151          case 183: // case_label_list ::= DEFAULT COLON
2152
{
2153              CUP$result = new SymbolList(/*case_label_list*/86);
2154               ((SymbolList)CUP$result).v.addElement( null );
2155            }
2156          return CUP$result;
2157
2158          /*. . . . . . . . . . . . . . . . . . . .*/
2159          case 182: // case_label_list ::= CASE const_expr COLON
2160
{
2161              CUP$result = new SymbolList(/*case_label_list*/86);
2162               ((SymbolList)CUP$result).v.addElement((/*c*/(ConstExpr)CUP$stack.elementAt(CUP$top-1)));
2163            }
2164          return CUP$result;
2165
2166          /*. . . . . . . . . . . . . . . . . . . .*/
2167          case 181: // case ::= case_label_list element_spec SEMI
2168
{
2169              CUP$result = new Case(/*case*/55);
2170              
2171                        ((Case)CUP$result).element_spec = (/*es*/(ElementSpec)CUP$stack.elementAt(CUP$top-1));
2172                        ((Case)CUP$result).case_label_list = (/*c*/(SymbolList)CUP$stack.elementAt(CUP$top-2));
2173                
2174            }
2175          return CUP$result;
2176
2177          /*. . . . . . . . . . . . . . . . . . . .*/
2178          case 180: // switch_body ::= case switch_body
2179
{
2180              CUP$result = new SwitchBody(/*switch_body*/54);
2181              
2182                ((SwitchBody)CUP$result).caseListVector = (Vector)(/*sb*/(SwitchBody)CUP$stack.elementAt(CUP$top-0)).caseListVector.clone();
2183                ((SwitchBody)CUP$result).caseListVector.insertElementAt((/*c*/(Case)CUP$stack.elementAt(CUP$top-1)), 0);
2184        
2185            }
2186          return CUP$result;
2187
2188          /*. . . . . . . . . . . . . . . . . . . .*/
2189          case 179: // switch_body ::= case
2190
{
2191              CUP$result = new SwitchBody(/*switch_body*/54);
2192              
2193                ((SwitchBody)CUP$result).caseListVector.insertElementAt((/*c*/(Case)CUP$stack.elementAt(CUP$top-0)), 0);
2194        
2195            }
2196          return CUP$result;
2197
2198          /*. . . . . . . . . . . . . . . . . . . .*/
2199          case 178: // switch_type_spec ::= scopename
2200
{
2201              CUP$result = new TypeSpec(/*switch_type_spec*/44);
2202               ((TypeSpec)CUP$result).type_spec = (/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0));
2203            }
2204          return CUP$result;
2205
2206          /*. . . . . . . . . . . . . . . . . . . .*/
2207          case 177: // switch_type_spec ::= enum_type
2208
{
2209              CUP$result = new TypeSpec(/*switch_type_spec*/44);
2210               ((TypeSpec)CUP$result).set_constr((/*e*/(EnumType)CUP$stack.elementAt(CUP$top-0)));
2211            }
2212          return CUP$result;
2213
2214          /*. . . . . . . . . . . . . . . . . . . .*/
2215          case 176: // switch_type_spec ::= bool_type
2216
{
2217              CUP$result = new TypeSpec(/*switch_type_spec*/44);
2218               ((TypeSpec)CUP$result).type_spec = (/*b*/(BooleanType)CUP$stack.elementAt(CUP$top-0));
2219            }
2220          return CUP$result;
2221
2222          /*. . . . . . . . . . . . . . . . . . . .*/
2223          case 175: // switch_type_spec ::= char_type
2224
{
2225              CUP$result = new TypeSpec(/*switch_type_spec*/44);
2226               ((TypeSpec)CUP$result).type_spec = (/*c*/(CharType)CUP$stack.elementAt(CUP$top-0));
2227            }
2228          return CUP$result;
2229
2230          /*. . . . . . . . . . . . . . . . . . . .*/
2231          case 174: // switch_type_spec ::= int_type
2232
{
2233              CUP$result = new TypeSpec(/*switch_type_spec*/44);
2234               ((TypeSpec)CUP$result).type_spec = (/*i*/(IntType)CUP$stack.elementAt(CUP$top-0));
2235            }
2236          return CUP$result;
2237
2238          /*. . . . . . . . . . . . . . . . . . . .*/
2239          case 173: // union_type ::= UNION ID
2240
{
2241              CUP$result = new UnionType(/*union_type*/52);
2242              
2243                        ((UnionType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
2244                        parser.closeScope( (Scope)((UnionType)CUP$result) );
2245                
2246            }
2247          return CUP$result;
2248
2249          /*. . . . . . . . . . . . . . . . . . . .*/
2250          case 172: // union_type ::= UNION ID SWITCH LPAREN switch_type_spec RPAREN LCBRACE switch_body RCBRACE
2251
{
2252              CUP$result = new UnionType(/*union_type*/52);
2253              
2254                        ((UnionType)CUP$result).setSwitchType( (/*s*/(TypeSpec)CUP$stack.elementAt(CUP$top-4)) );
2255                        ((UnionType)CUP$result).setSwitchBody( (/*sb*/(SwitchBody)CUP$stack.elementAt(CUP$top-1)) );
2256                        ((UnionType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-7)));
2257                        ((UnionType)CUP$result).set_included( parser.include_state );
2258                        parser.closeScope( (Scope)((UnionType)CUP$result) );
2259                
2260            }
2261          return CUP$result;
2262
2263          /*. . . . . . . . . . . . . . . . . . . .*/
2264          case 171: // member ::= type_spec declarators SEMI
2265
{
2266              CUP$result = new Member(/*member*/76);
2267              
2268                        ((Member)CUP$result).type_spec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-2));
2269                        ((Member)CUP$result).declarators = (/*ds*/(SymbolList)CUP$stack.elementAt(CUP$top-1));
2270                
2271            }
2272          return CUP$result;
2273
2274          /*. . . . . . . . . . . . . . . . . . . .*/
2275          case 170: // member_list ::= member member_list
2276
{
2277              CUP$result = new MemberList(/*member_list*/85);
2278              
2279                        ((MemberList)CUP$result).v = (Vector)(/*ml*/(MemberList)CUP$stack.elementAt(CUP$top-0)).v.clone();
2280                        ((MemberList)CUP$result).v.insertElementAt((/*m*/(Member)CUP$stack.elementAt(CUP$top-1)),0);
2281                
2282            }
2283          return CUP$result;
2284
2285          /*. . . . . . . . . . . . . . . . . . . .*/
2286          case 169: // member_list ::= member
2287
{
2288              CUP$result = new MemberList(/*member_list*/85);
2289              
2290                        ((MemberList)CUP$result).v.insertElementAt((/*m*/(Member)CUP$stack.elementAt(CUP$top-0)),0);
2291                
2292            }
2293          return CUP$result;
2294
2295          /*. . . . . . . . . . . . . . . . . . . .*/
2296          case 168: // struct_type ::= STRUCT ID
2297
{
2298              CUP$result = new StructType(/*struct_type*/50);
2299              
2300                        ((StructType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
2301                        parser.closeScope( (Scope)((StructType)CUP$result) );
2302               
2303            }
2304          return CUP$result;
2305
2306          /*. . . . . . . . . . . . . . . . . . . .*/
2307          case 167: // struct_type ::= STRUCT ID LCBRACE member_list RCBRACE
2308
{
2309              CUP$result = new StructType(/*struct_type*/50);
2310              
2311                        ((StructType)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)));
2312                        ((StructType)CUP$result).exc = false;
2313                        ((StructType)CUP$result).set_memberlist( (/*ml*/(MemberList)CUP$stack.elementAt(CUP$top-1)) );
2314                        ((StructType)CUP$result).set_included( parser.include_state );
2315                        parser.closeScope( (Scope)((StructType)CUP$result) );
2316                
2317            }
2318          return CUP$result;
2319
2320          /*. . . . . . . . . . . . . . . . . . . .*/
2321          case 166: // any_type ::= ANY
2322
{
2323              CUP$result = new AnyType(/*any_type*/69);
2324              
2325            }
2326          return CUP$result;
2327
2328          /*. . . . . . . . . . . . . . . . . . . .*/
2329          case 165: // octet_type ::= OCTET
2330
{
2331              CUP$result = new OctetType(/*octet_type*/68);
2332              
2333            }
2334          return CUP$result;
2335
2336          /*. . . . . . . . . . . . . . . . . . . .*/
2337          case 164: // bool_type ::= BOOLEAN
2338
{
2339              CUP$result = new BooleanType(/*bool_type*/67);
2340              
2341            }
2342          return CUP$result;
2343
2344          /*. . . . . . . . . . . . . . . . . . . .*/
2345          case 163: // char_type ::= WCHAR
2346
{
2347              CUP$result = new CharType(/*char_type*/66);
2348               ((CharType)CUP$result).setWide();
2349            }
2350          return CUP$result;
2351
2352          /*. . . . . . . . . . . . . . . . . . . .*/
2353          case 162: // char_type ::= CHAR
2354
{
2355              CUP$result = new CharType(/*char_type*/66);
2356              
2357            }
2358          return CUP$result;
2359
2360          /*. . . . . . . . . . . . . . . . . . . .*/
2361          case 161: // long_long_type ::= LONG LONG
2362
{
2363              CUP$result = new LongLongType(/*long_long_type*/65);
2364              
2365            }
2366          return CUP$result;
2367
2368          /*. . . . . . . . . . . . . . . . . . . .*/
2369          case 160: // long_type ::= LONG
2370
{
2371              CUP$result = new LongType(/*long_type*/64);
2372              
2373            }
2374          return CUP$result;
2375
2376          /*. . . . . . . . . . . . . . . . . . . .*/
2377          case 159: // short_type ::= SHORT
2378
{
2379              CUP$result = new ShortType(/*short_type*/63);
2380              
2381            }
2382          return CUP$result;
2383
2384          /*. . . . . . . . . . . . . . . . . . . .*/
2385          case 158: // int_type ::= UNSIGNED short_type
2386
{
2387              CUP$result = new IntType(/*int_type*/58);
2388              
2389                        ((IntType)CUP$result).type_spec = (/*s*/(ShortType)CUP$stack.elementAt(CUP$top-0));
2390                        ((IntType)CUP$result).setUnsigned();
2391                
2392            }
2393          return CUP$result;
2394
2395          /*. . . . . . . . . . . . . . . . . . . .*/
2396          case 157: // int_type ::= short_type
2397
{
2398              CUP$result = new IntType(/*int_type*/58);
2399              
2400                        ((IntType)CUP$result).type_spec = (/*s*/(ShortType)CUP$stack.elementAt(CUP$top-0));
2401                
2402            }
2403          return CUP$result;
2404
2405          /*. . . . . . . . . . . . . . . . . . . .*/
2406          case 156: // int_type ::= UNSIGNED long_long_type
2407
{
2408              CUP$result = new IntType(/*int_type*/58);
2409              
2410                        ((IntType)CUP$result).type_spec = (/*l*/(LongLongType)CUP$stack.elementAt(CUP$top-0));
2411                        ((IntType)CUP$result).setUnsigned();
2412                
2413            }
2414          return CUP$result;
2415
2416          /*. . . . . . . . . . . . . . . . . . . .*/
2417          case 155: // int_type ::= UNSIGNED long_type
2418
{
2419              CUP$result = new IntType(/*int_type*/58);
2420              
2421                        ((IntType)CUP$result).type_spec = (/*l*/(LongType)CUP$stack.elementAt(CUP$top-0));
2422                        ((IntType)CUP$result).setUnsigned();
2423                
2424            }
2425          return CUP$result;
2426
2427          /*. . . . . . . . . . . . . . . . . . . .*/
2428          case 154: // int_type ::= long_long_type
2429
{
2430              CUP$result = new IntType(/*int_type*/58);
2431              
2432                        ((IntType)CUP$result).type_spec = (/*ll*/(LongLongType)CUP$stack.elementAt(CUP$top-0));
2433                
2434            }
2435          return CUP$result;
2436
2437          /*. . . . . . . . . . . . . . . . . . . .*/
2438          case 153: // int_type ::= long_type
2439
{
2440              CUP$result = new IntType(/*int_type*/58);
2441              
2442                        ((IntType)CUP$result).type_spec = (/*l*/(LongType)CUP$stack.elementAt(CUP$top-0));
2443                
2444            }
2445          return CUP$result;
2446
2447          /*. . . . . . . . . . . . . . . . . . . .*/
2448          case 152: // double_type ::= LONG DOUBLE
2449
{
2450              CUP$result = new DoubleType(/*double_type*/62);
2451              
2452                ((DoubleType)CUP$result).setLongDouble();
2453                lexer.emit_warn("IDL type long double not supported by standard IDL/Java mappings!");
2454          
2455            }
2456          return CUP$result;
2457
2458          /*. . . . . . . . . . . . . . . . . . . .*/
2459          case 151: // double_type ::= DOUBLE
2460
{
2461              CUP$result = new DoubleType(/*double_type*/62);
2462              
2463            }
2464          return CUP$result;
2465
2466          /*. . . . . . . . . . . . . . . . . . . .*/
2467          case 150: // fixed_pt_const_type ::= FIXED
2468
{
2469              CUP$result = new FixedPointConstType(/*fixed_pt_const_type*/61);
2470              
2471            }
2472          return CUP$result;
2473
2474          /*. . . . . . . . . . . . . . . . . . . .*/
2475          case 149: // float_type ::= FLOAT
2476
{
2477              CUP$result = new FloatType(/*float_type*/60);
2478              
2479            }
2480          return CUP$result;
2481
2482          /*. . . . . . . . . . . . . . . . . . . .*/
2483          case 148: // float_pt_type ::= double_type
2484
{
2485              CUP$result = new FloatPtType(/*float_pt_type*/59);
2486               ((FloatPtType)CUP$result).type_spec = (/*d*/(DoubleType)CUP$stack.elementAt(CUP$top-0));
2487                 
2488            }
2489          return CUP$result;
2490
2491          /*. . . . . . . . . . . . . . . . . . . .*/
2492          case 147: // float_pt_type ::= float_type
2493
{
2494              CUP$result = new FloatPtType(/*float_pt_type*/59);
2495              ((FloatPtType)CUP$result).type_spec = (/*f*/(FloatType)CUP$stack.elementAt(CUP$top-0));
2496            }
2497          return CUP$result;
2498
2499          /*. . . . . . . . . . . . . . . . . . . .*/
2500          case 146: // simple_declarator ::= ID
2501
{
2502              CUP$result = new SimpleDeclarator(/*simple_declarator*/78);
2503              
2504                        ((SimpleDeclarator)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
2505                
2506            }
2507          return CUP$result;
2508
2509          /*. . . . . . . . . . . . . . . . . . . .*/
2510          case 145: // declarator ::= array_declarator
2511
{
2512              CUP$result = new Declarator(/*declarator*/77);
2513               ((Declarator)CUP$result).d = (/*s*/(ArrayDeclarator)CUP$stack.elementAt(CUP$top-0));
2514            }
2515          return CUP$result;
2516
2517          /*. . . . . . . . . . . . . . . . . . . .*/
2518          case 144: // declarator ::= simple_declarator
2519
{
2520              CUP$result = new Declarator(/*declarator*/77);
2521               ((Declarator)CUP$result).d = (/*s*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-0));
2522            }
2523          return CUP$result;
2524
2525          /*. . . . . . . . . . . . . . . . . . . .*/
2526          case 143: // declarators ::= declarator
2527
{
2528              CUP$result = new SymbolList(/*declarators*/92);
2529              
2530                        ((SymbolList)CUP$result).v.insertElementAt((/*d*/(Declarator)CUP$stack.elementAt(CUP$top-0)),0);
2531                 
2532            }
2533          return CUP$result;
2534
2535          /*. . . . . . . . . . . . . . . . . . . .*/
2536          case 142: // declarators ::= declarator COMMA declarators
2537
{
2538              CUP$result = new SymbolList(/*declarators*/92);
2539              
2540                        ((SymbolList)CUP$result).v = (Vector)(/*ds*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
2541                        ((SymbolList)CUP$result).v.insertElementAt((/*d*/(Declarator)CUP$stack.elementAt(CUP$top-2)),0);
2542                
2543            }
2544          return CUP$result;
2545
2546          /*. . . . . . . . . . . . . . . . . . . .*/
2547          case 141: // constr_type_spec ::= enum_type
2548
{
2549              CUP$result = new ConstrTypeSpec(/*constr_type_spec*/48);
2550              
2551                        ((ConstrTypeSpec)CUP$result).c_type_spec = (/*e*/(EnumType)CUP$stack.elementAt(CUP$top-0));
2552                        ((ConstrTypeSpec)CUP$result).set_token((/*e*/(EnumType)CUP$stack.elementAt(CUP$top-0)).get_token());
2553                
2554            }
2555          return CUP$result;
2556
2557          /*. . . . . . . . . . . . . . . . . . . .*/
2558          case 140: // constr_type_spec ::= union_type
2559
{
2560              CUP$result = new ConstrTypeSpec(/*constr_type_spec*/48);
2561              
2562                        ((ConstrTypeSpec)CUP$result).c_type_spec = (/*u*/(UnionType)CUP$stack.elementAt(CUP$top-0));
2563                        ((ConstrTypeSpec)CUP$result).set_token((/*u*/(UnionType)CUP$stack.elementAt(CUP$top-0)).get_token());
2564                
2565            }
2566          return CUP$result;
2567
2568          /*. . . . . . . . . . . . . . . . . . . .*/
2569          case 139: // constr_type_spec ::= struct_type
2570
{
2571              CUP$result = new ConstrTypeSpec(/*constr_type_spec*/48);
2572              
2573                        ((ConstrTypeSpec)CUP$result).c_type_spec = (/*s*/(StructType)CUP$stack.elementAt(CUP$top-0));
2574                        ((ConstrTypeSpec)CUP$result).set_token((/*s*/(StructType)CUP$stack.elementAt(CUP$top-0)).get_token());
2575                
2576            }
2577          return CUP$result;
2578
2579          /*. . . . . . . . . . . . . . . . . . . .*/
2580          case 138: // template_type_spec ::= fixed_point_type
2581
{
2582              CUP$result = new TemplateTypeSpec(/*template_type_spec*/47);
2583              
2584                        ((TemplateTypeSpec)CUP$result).type_spec = (/*f*/(FixedPointType)CUP$stack.elementAt(CUP$top-0));
2585                        ((TemplateTypeSpec)CUP$result).set_token((/*f*/(FixedPointType)CUP$stack.elementAt(CUP$top-0)).get_token());
2586                
2587            }
2588          return CUP$result;
2589
2590          /*. . . . . . . . . . . . . . . . . . . .*/
2591          case 137: // template_type_spec ::= string_type
2592
{
2593              CUP$result = new TemplateTypeSpec(/*template_type_spec*/47);
2594              
2595                        ((TemplateTypeSpec)CUP$result).type_spec = (/*s*/(StringType)CUP$stack.elementAt(CUP$top-0));
2596                        ((TemplateTypeSpec)CUP$result).set_token((/*s*/(StringType)CUP$stack.elementAt(CUP$top-0)).get_token());
2597                
2598            }
2599          return CUP$result;
2600
2601          /*. . . . . . . . . . . . . . . . . . . .*/
2602          case 136: // template_type_spec ::= sequence_type
2603
{
2604              CUP$result = new TemplateTypeSpec(/*template_type_spec*/47);
2605              
2606                        ((TemplateTypeSpec)CUP$result).type_spec = (/*s*/(SequenceType)CUP$stack.elementAt(CUP$top-0));
2607                        ((TemplateTypeSpec)CUP$result).set_token((/*s*/(SequenceType)CUP$stack.elementAt(CUP$top-0)).get_token());
2608                
2609            }
2610          return CUP$result;
2611
2612          /*. . . . . . . . . . . . . . . . . . . .*/
2613          case 135: // base_type_spec ::= VALUEBASE
2614
{
2615              CUP$result = new BaseType(/*base_type_spec*/57);
2616               ((BaseType)CUP$result).type_spec = new ValueBase(sym.VALUEBASE);
2617            }
2618          return CUP$result;
2619
2620          /*. . . . . . . . . . . . . . . . . . . .*/
2621          case 134: // base_type_spec ::= any_type
2622
{
2623              CUP$result = new BaseType(/*base_type_spec*/57);
2624               ((BaseType)CUP$result).type_spec = (/*s*/(AnyType)CUP$stack.elementAt(CUP$top-0));
2625            }
2626          return CUP$result;
2627
2628          /*. . . . . . . . . . . . . . . . . . . .*/
2629          case 133: // base_type_spec ::= octet_type
2630
{
2631              CUP$result = new BaseType(/*base_type_spec*/57);
2632               ((BaseType)CUP$result).type_spec = (/*s*/(OctetType)CUP$stack.elementAt(CUP$top-0));
2633            }
2634          return CUP$result;
2635
2636          /*. . . . . . . . . . . . . . . . . . . .*/
2637          case 132: // base_type_spec ::= bool_type
2638
{
2639              CUP$result = new BaseType(/*base_type_spec*/57);
2640               ((BaseType)CUP$result).type_spec = (/*s*/(BooleanType)CUP$stack.elementAt(CUP$top-0));
2641            }
2642          return CUP$result;
2643
2644          /*. . . . . . . . . . . . . . . . . . . .*/
2645          case 131: // base_type_spec ::= char_type
2646
{
2647              CUP$result = new BaseType(/*base_type_spec*/57);
2648               ((BaseType)CUP$result).type_spec = (/*s*/(CharType)CUP$stack.elementAt(CUP$top-0));
2649            }
2650          return CUP$result;
2651
2652          /*. . . . . . . . . . . . . . . . . . . .*/
2653          case 130: // base_type_spec ::= int_type
2654
{
2655              CUP$result = new BaseType(/*base_type_spec*/57);
2656              
2657                        ((BaseType)CUP$result).type_spec = (/*s*/(IntType)CUP$stack.elementAt(CUP$top-0));
2658                
2659            }
2660          return CUP$result;
2661
2662          /*. . . . . . . . . . . . . . . . . . . .*/
2663          case 129: // base_type_spec ::= float_pt_type
2664
{
2665              CUP$result = new BaseType(/*base_type_spec*/57);
2666               ((BaseType)CUP$result).type_spec = (/*s*/(FloatPtType)CUP$stack.elementAt(CUP$top-0));
2667            }
2668          return CUP$result;
2669
2670          /*. . . . . . . . . . . . . . . . . . . .*/
2671          case 128: // simple_type_spec ::= scopename
2672
{
2673              CUP$result = new SimpleTypeSpec(/*simple_type_spec*/46);
2674              
2675                        ((SimpleTypeSpec)CUP$result).type_spec = (/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0));
2676                        ((SimpleTypeSpec)CUP$result).set_token((/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0)).get_token());
2677                
2678            }
2679          return CUP$result;
2680
2681          /*. . . . . . . . . . . . . . . . . . . .*/
2682          case 127: // simple_type_spec ::= template_type_spec
2683
{
2684              CUP$result = new SimpleTypeSpec(/*simple_type_spec*/46);
2685              
2686                        ((SimpleTypeSpec)CUP$result).type_spec = (/*s*/(TemplateTypeSpec)CUP$stack.elementAt(CUP$top-0));
2687                        ((SimpleTypeSpec)CUP$result).set_token((/*s*/(TemplateTypeSpec)CUP$stack.elementAt(CUP$top-0)).get_token());
2688                
2689            }
2690          return CUP$result;
2691
2692          /*. . . . . . . . . . . . . . . . . . . .*/
2693          case 126: // simple_type_spec ::= base_type_spec
2694
{
2695              CUP$result = new SimpleTypeSpec(/*simple_type_spec*/46);
2696              
2697                        ((SimpleTypeSpec)CUP$result).type_spec = (/*s*/(BaseType)CUP$stack.elementAt(CUP$top-0));
2698                
2699            }
2700          return CUP$result;
2701
2702          /*. . . . . . . . . . . . . . . . . . . .*/
2703          case 125: // type_spec ::= constr_type_spec
2704
{
2705              CUP$result = new TypeSpec(/*type_spec*/41);
2706              
2707                        ((TypeSpec)CUP$result).type_spec = (/*s*/(ConstrTypeSpec)CUP$stack.elementAt(CUP$top-0));
2708                        ((TypeSpec)CUP$result).set_token((/*s*/(ConstrTypeSpec)CUP$stack.elementAt(CUP$top-0)).get_token());
2709                
2710            }
2711          return CUP$result;
2712
2713          /*. . . . . . . . . . . . . . . . . . . .*/
2714          case 124: // type_spec ::= simple_type_spec
2715
{
2716              CUP$result = new TypeSpec(/*type_spec*/41);
2717              
2718                        ((TypeSpec)CUP$result).type_spec = (/*s*/(SimpleTypeSpec)CUP$stack.elementAt(CUP$top-0));
2719                        ((TypeSpec)CUP$result).set_token((/*s*/(SimpleTypeSpec)CUP$stack.elementAt(CUP$top-0)).get_token());
2720                
2721            }
2722          return CUP$result;
2723
2724          /*. . . . . . . . . . . . . . . . . . . .*/
2725          case 123: // type_declarator ::= type_spec declarators
2726
{
2727              CUP$result = new TypeDeclarator(/*type_declarator*/40);
2728              
2729                        ((TypeDeclarator)CUP$result).type_spec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
2730                        ((TypeDeclarator)CUP$result).declarators = (/*ds*/(SymbolList)CUP$stack.elementAt(CUP$top-0));
2731                
2732            }
2733          return CUP$result;
2734
2735          /*. . . . . . . . . . . . . . . . . . . .*/
2736          case 122: // type_def ::= TYPEDEF type_declarator
2737
{
2738              CUP$result = new TypeDef(/*type_def*/45);
2739              
2740                ((TypeDef)CUP$result).type_declarator = (/*t*/(TypeDeclarator)CUP$stack.elementAt(CUP$top-0));
2741                ((TypeDef)CUP$result).set_included( parser.include_state );
2742        
2743            }
2744          return CUP$result;
2745
2746          /*. . . . . . . . . . . . . . . . . . . .*/
2747          case 121: // type_dcl ::= native_type
2748
{
2749              CUP$result = new TypeDeclaration(/*type_dcl*/39);
2750               ((TypeDeclaration)CUP$result).type_decl = (/*n*/(NativeType)CUP$stack.elementAt(CUP$top-0));
2751            }
2752          return CUP$result;
2753
2754          /*. . . . . . . . . . . . . . . . . . . .*/
2755          case 120: // type_dcl ::= enum_type
2756
{
2757              CUP$result = new TypeDeclaration(/*type_dcl*/39);
2758               ((TypeDeclaration)CUP$result).type_decl = (/*e*/(EnumType)CUP$stack.elementAt(CUP$top-0));
2759            }
2760          return CUP$result;
2761
2762          /*. . . . . . . . . . . . . . . . . . . .*/
2763          case 119: // type_dcl ::= union_type
2764
{
2765              CUP$result = new TypeDeclaration(/*type_dcl*/39);
2766               ((TypeDeclaration)CUP$result).type_decl = (/*u*/(UnionType)CUP$stack.elementAt(CUP$top-0));
2767            }
2768          return CUP$result;
2769
2770          /*. . . . . . . . . . . . . . . . . . . .*/
2771          case 118: // type_dcl ::= struct_type
2772
{
2773              CUP$result = new TypeDeclaration(/*type_dcl*/39);
2774               ((TypeDeclaration)CUP$result).type_decl = (/*s*/(StructType)CUP$stack.elementAt(CUP$top-0));
2775            }
2776          return CUP$result;
2777
2778          /*. . . . . . . . . . . . . . . . . . . .*/
2779          case 117: // type_dcl ::= type_def
2780
{
2781              CUP$result = new TypeDeclaration(/*type_dcl*/39);
2782               ((TypeDeclaration)CUP$result).type_decl = (/*t*/(TypeDef)CUP$stack.elementAt(CUP$top-0));
2783            }
2784          return CUP$result;
2785
2786          /*. . . . . . . . . . . . . . . . . . . .*/
2787          case 116: // positive_int_const ::= const_expr
2788
{
2789              CUP$result = new PosIntConst(/*positive_int_const*/30);
2790               ((PosIntConst)CUP$result).setExpression( (/*c*/(ConstExpr)CUP$stack.elementAt(CUP$top-0)) );
2791            }
2792          return CUP$result;
2793
2794          /*. . . . . . . . . . . . . . . . . . . .*/
2795          case 115: // string_literal ::= LDBLQUOTE DBLQUOTE
2796
{
2797              CUP$result = new Literal(/*string_literal*/75);
2798              
2799                        ((Literal)CUP$result).string = "\"\"";
2800                        ((Literal)CUP$result).wide = true;
2801                  
2802            }
2803          return CUP$result;
2804
2805          /*. . . . . . . . . . . . . . . . . . . .*/
2806          case 114: // string_literal ::= LDBLQUOTE ID DBLQUOTE
2807
{
2808              CUP$result = new Literal(/*string_literal*/75);
2809              
2810                        ((Literal)CUP$result).string = "\"" + (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-1)).str_val + "\"";
2811                        ((Literal)CUP$result).wide = true;
2812                  
2813            }
2814          return CUP$result;
2815
2816          /*. . . . . . . . . . . . . . . . . . . .*/
2817          case 113: // string_literal ::= DBLQUOTE DBLQUOTE
2818
{
2819              CUP$result = new Literal(/*string_literal*/75);
2820               ((Literal)CUP$result).string = "\"\"";
2821            }
2822          return CUP$result;
2823
2824          /*. . . . . . . . . . . . . . . . . . . .*/
2825          case 112: // string_literal ::= DBLQUOTE ID DBLQUOTE
2826
{
2827              CUP$result = new Literal(/*string_literal*/75);
2828               ((Literal)CUP$result).string = "\"" + (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-1)).str_val + "\"";
2829            }
2830          return CUP$result;
2831
2832          /*. . . . . . . . . . . . . . . . . . . .*/
2833          case 111: // literal ::= FALSE
2834
{
2835              CUP$result = new Literal(/*literal*/74);
2836              
2837                        ((Literal)CUP$result).string = "false";
2838                
2839            }
2840          return CUP$result;
2841
2842          /*. . . . . . . . . . . . . . . . . . . .*/
2843          case 110: // literal ::= TRUE
2844
{
2845              CUP$result = new Literal(/*literal*/74);
2846              
2847                        ((Literal)CUP$result).string = "true";
2848                
2849            }
2850          return CUP$result;
2851
2852          /*. . . . . . . . . . . . . . . . . . . .*/
2853          case 109: // literal ::= FLOAT_NUMBER
2854
{
2855              CUP$result = new Literal(/*literal*/74);
2856              
2857                        ((Literal)CUP$result).string = "" + (/*n*/(org.jacorb.idl.runtime.float_token)CUP$stack.elementAt(CUP$top-0)).float_val ;
2858                        ((Literal)CUP$result).token = (/*n*/(org.jacorb.idl.runtime.float_token)CUP$stack.elementAt(CUP$top-0));
2859                
2860            }
2861          return CUP$result;
2862
2863          /*. . . . . . . . . . . . . . . . . . . .*/
2864          case 108: // literal ::= FIXED_NUMBER
2865
{
2866              CUP$result = new Literal(/*literal*/74);
2867              
2868                        ((Literal)CUP$result).string = "" + (/*f*/(fixed_token)CUP$stack.elementAt(CUP$top-0)).fixed_val;
2869                        ((Literal)CUP$result).token = (/*f*/(fixed_token)CUP$stack.elementAt(CUP$top-0));
2870                
2871            }
2872          return CUP$result;
2873
2874          /*. . . . . . . . . . . . . . . . . . . .*/
2875          case 107: // literal ::= string_literal
2876
{
2877              CUP$result = new Literal(/*literal*/74);
2878              
2879                        ((Literal)CUP$result).string = (/*s*/(Literal)CUP$stack.elementAt(CUP$top-0)).string;
2880                        ((Literal)CUP$result).wide = (/*s*/(Literal)CUP$stack.elementAt(CUP$top-0)).wide;
2881                
2882            }
2883          return CUP$result;
2884
2885          /*. . . . . . . . . . . . . . . . . . . .*/
2886          case 106: // literal ::= QUOTE CH QUOTE
2887
{
2888              CUP$result = new Literal(/*literal*/74);
2889              
2890                        ((Literal)CUP$result).string = "\'" + (/*c*/(org.jacorb.idl.runtime.char_token)CUP$stack.elementAt(CUP$top-1)).char_val + "\'";
2891                        ((Literal)CUP$result).token = (/*c*/(org.jacorb.idl.runtime.char_token)CUP$stack.elementAt(CUP$top-1));
2892                
2893            }
2894          return CUP$result;
2895
2896          /*. . . . . . . . . . . . . . . . . . . .*/
2897          case 105: // literal ::= LONG_NUMBER
2898
{
2899              CUP$result = new Literal(/*literal*/74);
2900              
2901                        ((Literal)CUP$result).string = "" + (/*l*/(org.jacorb.idl.runtime.long_token)CUP$stack.elementAt(CUP$top-0)).long_val;
2902                        ((Literal)CUP$result).token = (/*l*/(org.jacorb.idl.runtime.long_token)CUP$stack.elementAt(CUP$top-0));
2903                
2904            }
2905          return CUP$result;
2906
2907          /*. . . . . . . . . . . . . . . . . . . .*/
2908          case 104: // literal ::= MINUS LONG_NUMBER
2909
{
2910              CUP$result = new Literal(/*literal*/74);
2911              
2912                        ((Literal)CUP$result).string = "-" + (/*l*/(org.jacorb.idl.runtime.long_token)CUP$stack.elementAt(CUP$top-0)).long_val;
2913                        ((Literal)CUP$result).token = (/*l*/(org.jacorb.idl.runtime.long_token)CUP$stack.elementAt(CUP$top-0));
2914                
2915            }
2916          return CUP$result;
2917
2918          /*. . . . . . . . . . . . . . . . . . . .*/
2919          case 103: // literal ::= MINUS NUMBER
2920
{
2921              CUP$result = new Literal(/*literal*/74);
2922              
2923                        ((Literal)CUP$result).string = "-" + (/*n*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-0)).int_val;
2924                        ((Literal)CUP$result).token = (/*n*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-0));
2925                
2926            }
2927          return CUP$result;
2928
2929          /*. . . . . . . . . . . . . . . . . . . .*/
2930          case 102: // literal ::= NUMBER
2931
{
2932              CUP$result = new Literal(/*literal*/74);
2933              
2934                        ((Literal)CUP$result).string = "" + (/*n*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-0)).int_val;
2935                        ((Literal)CUP$result).token = (/*n*/(org.jacorb.idl.runtime.int_token)CUP$stack.elementAt(CUP$top-0));
2936                
2937            }
2938          return CUP$result;
2939
2940          /*. . . . . . . . . . . . . . . . . . . .*/
2941          case 101: // primary_expr ::= LPAREN const_expr RPAREN
2942
{
2943              CUP$result = new PrimaryExpr(/*primary_expr*/38);
2944               ((PrimaryExpr)CUP$result).symbol = (/*c*/(ConstExpr)CUP$stack.elementAt(CUP$top-1));
2945            }
2946          return CUP$result;
2947
2948          /*. . . . . . . . . . . . . . . . . . . .*/
2949          case 100: // primary_expr ::= literal
2950
{
2951              CUP$result = new PrimaryExpr(/*primary_expr*/38);
2952               ((PrimaryExpr)CUP$result).symbol = (/*l*/(Literal)CUP$stack.elementAt(CUP$top-0));
2953            }
2954          return CUP$result;
2955
2956          /*. . . . . . . . . . . . . . . . . . . .*/
2957          case 99: // primary_expr ::= scopename
2958
{
2959              CUP$result = new PrimaryExpr(/*primary_expr*/38);
2960               ((PrimaryExpr)CUP$result).symbol = (/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0));
2961            }
2962          return CUP$result;
2963
2964          /*. . . . . . . . . . . . . . . . . . . .*/
2965          case 98: // unary_op ::= TILDE
2966
{
2967              CUP$result = new org.jacorb.idl.runtime.str_token(/*unary_op*/6);
2968               ((org.jacorb.idl.runtime.str_token)CUP$result).str_val = "~";
2969            }
2970          return CUP$result;
2971
2972          /*. . . . . . . . . . . . . . . . . . . .*/
2973          case 97: // unary_op ::= PLUS
2974
{
2975              CUP$result = new org.jacorb.idl.runtime.str_token(/*unary_op*/6);
2976               ((org.jacorb.idl.runtime.str_token)CUP$result).str_val = "+";
2977            }
2978          return CUP$result;
2979
2980          /*. . . . . . . . . . . . . . . . . . . .*/
2981          case 96: // unary_op ::= MINUS SPACE
2982
{
2983              CUP$result = new org.jacorb.idl.runtime.str_token(/*unary_op*/6);
2984               ((org.jacorb.idl.runtime.str_token)CUP$result).str_val = "-";
2985            }
2986          return CUP$result;
2987
2988          /*. . . . . . . . . . . . . . . . . . . .*/
2989          case 95: // unary_expr ::= primary_expr
2990
{
2991              CUP$result = new UnaryExpr(/*unary_expr*/37);
2992               ((UnaryExpr)CUP$result).primary_expr = (/*p*/(PrimaryExpr)CUP$stack.elementAt(CUP$top-0));
2993            }
2994          return CUP$result;
2995
2996          /*. . . . . . . . . . . . . . . . . . . .*/
2997          case 94: // unary_expr ::= unary_op primary_expr
2998
{
2999              CUP$result = new UnaryExpr(/*unary_expr*/37);
3000              
3001                        ((UnaryExpr)CUP$result).primary_expr = (/*p*/(PrimaryExpr)CUP$stack.elementAt(CUP$top-0));
3002                        ((UnaryExpr)CUP$result).unary_op = (/*u*/(org.jacorb.idl.runtime.str_token)CUP$stack.elementAt(CUP$top-1)).str_val;
3003                
3004            }
3005          return CUP$result;
3006
3007          /*. . . . . . . . . . . . . . . . . . . .*/
3008          case 93: // mult_expr ::= mult_expr PERCENT unary_expr
3009
{
3010              CUP$result = new MultExpr(/*mult_expr*/36);
3011              
3012                        ((MultExpr)CUP$result).unary_expr = (/*u*/(UnaryExpr)CUP$stack.elementAt(CUP$top-0));
3013                        ((MultExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-2));
3014                        ((MultExpr)CUP$result).operator = "%";
3015                
3016            }
3017          return CUP$result;
3018
3019          /*. . . . . . . . . . . . . . . . . . . .*/
3020          case 92: // mult_expr ::= mult_expr SLASH unary_expr
3021
{
3022              CUP$result = new MultExpr(/*mult_expr*/36);
3023              
3024                        ((MultExpr)CUP$result).unary_expr = (/*u*/(UnaryExpr)CUP$stack.elementAt(CUP$top-0));
3025                        ((MultExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-2));
3026                        ((MultExpr)CUP$result).operator = "/";
3027                
3028            }
3029          return CUP$result;
3030
3031          /*. . . . . . . . . . . . . . . . . . . .*/
3032          case 91: // mult_expr ::= mult_expr STAR unary_expr
3033
{
3034              CUP$result = new MultExpr(/*mult_expr*/36);
3035              
3036                        ((MultExpr)CUP$result).unary_expr = (/*u*/(UnaryExpr)CUP$stack.elementAt(CUP$top-0));
3037                        ((MultExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-2));
3038                        ((MultExpr)CUP$result).operator = "*";
3039                
3040            }
3041          return CUP$result;
3042
3043          /*. . . . . . . . . . . . . . . . . . . .*/
3044          case 90: // mult_expr ::= unary_expr
3045
{
3046              CUP$result = new MultExpr(/*mult_expr*/36);
3047               ((MultExpr)CUP$result).unary_expr = (/*u*/(UnaryExpr)CUP$stack.elementAt(CUP$top-0));
3048            }
3049          return CUP$result;
3050
3051          /*. . . . . . . . . . . . . . . . . . . .*/
3052          case 89: // add_expr ::= add_expr MINUS mult_expr
3053
{
3054              CUP$result = new AddExpr(/*add_expr*/35);
3055              
3056                        ((AddExpr)CUP$result).add_expr = (/*a*/(AddExpr)CUP$stack.elementAt(CUP$top-2));
3057                        ((AddExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-0));
3058                        ((AddExpr)CUP$result).operator = "-";
3059                
3060            }
3061          return CUP$result;
3062
3063          /*. . . . . . . . . . . . . . . . . . . .*/
3064          case 88: // add_expr ::= add_expr PLUS mult_expr
3065
{
3066              CUP$result = new AddExpr(/*add_expr*/35);
3067              
3068                        ((AddExpr)CUP$result).add_expr = (/*a*/(AddExpr)CUP$stack.elementAt(CUP$top-2));
3069                        ((AddExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-0));
3070                        ((AddExpr)CUP$result).operator = "+";
3071                
3072            }
3073          return CUP$result;
3074
3075          /*. . . . . . . . . . . . . . . . . . . .*/
3076          case 87: // add_expr ::= mult_expr
3077
{
3078              CUP$result = new AddExpr(/*add_expr*/35);
3079              
3080                        ((AddExpr)CUP$result).mult_expr = (/*m*/(MultExpr)CUP$stack.elementAt(CUP$top-0));
3081                
3082            }
3083          return CUP$result;
3084
3085          /*. . . . . . . . . . . . . . . . . . . .*/
3086          case 86: // shift_expr ::= shift_expr RSHIFT add_expr
3087
{
3088              CUP$result = new ShiftExpr(/*shift_expr*/34);
3089              
3090                        ((ShiftExpr)CUP$result).add_expr = (/*a*/(AddExpr)CUP$stack.elementAt(CUP$top-0));
3091                        ((ShiftExpr)CUP$result).shift_expr = (/*s*/(ShiftExpr)CUP$stack.elementAt(CUP$top-2));
3092                        ((ShiftExpr)CUP$result).operator = ">>";
3093                
3094            }
3095          return CUP$result;
3096
3097          /*. . . . . . . . . . . . . . . . . . . .*/
3098          case 85: // shift_expr ::= shift_expr LSHIFT add_expr
3099
{
3100              CUP$result = new ShiftExpr(/*shift_expr*/34);
3101              
3102                        ((ShiftExpr)CUP$result).add_expr = (/*a*/(AddExpr)CUP$stack.elementAt(CUP$top-0));
3103                        ((ShiftExpr)CUP$result).shift_expr = (/*s*/(ShiftExpr)CUP$stack.elementAt(CUP$top-2));
3104                        ((ShiftExpr)CUP$result).operator = "<<";
3105                
3106            }
3107          return CUP$result;
3108
3109          /*. . . . . . . . . . . . . . . . . . . .*/
3110          case 84: // shift_expr ::= add_expr
3111
{
3112              CUP$result = new ShiftExpr(/*shift_expr*/34);
3113              
3114                        ((ShiftExpr)CUP$result).add_expr = (/*a*/(AddExpr)CUP$stack.elementAt(CUP$top-0));
3115                
3116            }
3117          return CUP$result;
3118
3119          /*. . . . . . . . . . . . . . . . . . . .*/
3120          case 83: // and_expr ::= and_expr AMPERSAND shift_expr
3121
{
3122              CUP$result = new AndExpr(/*and_expr*/33);
3123              
3124                        ((AndExpr)CUP$result).and_expr = (/*a*/(AndExpr)CUP$stack.elementAt(CUP$top-2));
3125                        ((AndExpr)CUP$result).shift_expr = (/*s*/(ShiftExpr)CUP$stack.elementAt(CUP$top-0));
3126                
3127            }
3128          return CUP$result;
3129
3130          /*. . . . . . . . . . . . . . . . . . . .*/
3131          case 82: // and_expr ::= shift_expr
3132
{
3133              CUP$result = new AndExpr(/*and_expr*/33);
3134              
3135                        ((AndExpr)CUP$result).shift_expr = (/*s*/(ShiftExpr)CUP$stack.elementAt(CUP$top-0));
3136                
3137            }
3138          return CUP$result;
3139
3140          /*. . . . . . . . . . . . . . . . . . . .*/
3141          case 81: // xor_expr ::= xor_expr CIRCUM and_expr
3142
{
3143              CUP$result = new XorExpr(/*xor_expr*/32);
3144              
3145                        ((XorExpr)CUP$result).and_expr = (/*a*/(AndExpr)CUP$stack.elementAt(CUP$top-0));
3146                        ((XorExpr)CUP$result).xor_expr = (/*x*/(XorExpr)CUP$stack.elementAt(CUP$top-2));
3147                
3148            }
3149          return CUP$result;
3150
3151          /*. . . . . . . . . . . . . . . . . . . .*/
3152          case 80: // xor_expr ::= and_expr
3153
{
3154              CUP$result = new XorExpr(/*xor_expr*/32);
3155              
3156                        ((XorExpr)CUP$result).and_expr = (/*a*/(AndExpr)CUP$stack.elementAt(CUP$top-0));
3157                
3158            }
3159          return CUP$result;
3160
3161          /*. . . . . . . . . . . . . . . . . . . .*/
3162          case 79: // or_expr ::= or_expr BAR xor_expr
3163
{
3164              CUP$result = new OrExpr(/*or_expr*/31);
3165              
3166                        ((OrExpr)CUP$result).or_expr = (/*o*/(OrExpr)CUP$stack.elementAt(CUP$top-2));
3167                        ((OrExpr)CUP$result).xor_expr = (/*x*/(XorExpr)CUP$stack.elementAt(CUP$top-0));
3168                
3169            }
3170          return CUP$result;
3171
3172          /*. . . . . . . . . . . . . . . . . . . .*/
3173          case 78: // or_expr ::= xor_expr
3174
{
3175              CUP$result = new OrExpr(/*or_expr*/31);
3176              
3177                        ((OrExpr)CUP$result).xor_expr = (/*x*/(XorExpr)CUP$stack.elementAt(CUP$top-0));
3178                
3179            }
3180          return CUP$result;
3181
3182          /*. . . . . . . . . . . . . . . . . . . .*/
3183          case 77: // const_expr ::= or_expr
3184
{
3185              CUP$result = new ConstExpr(/*const_expr*/29);
3186              
3187                        ((ConstExpr)CUP$result).or_expr = (/*o*/(OrExpr)CUP$stack.elementAt(CUP$top-0));
3188                
3189            }
3190          return CUP$result;
3191
3192          /*. . . . . . . . . . . . . . . . . . . .*/
3193          case 76: // const_type ::= scopename
3194
{
3195              CUP$result = new ConstType(/*const_type*/28);
3196              
3197                        ((ConstType)CUP$result).symbol = (/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0));
3198                        ((ConstType)CUP$result).set_token((/*s*/(ScopedName)CUP$stack.elementAt(CUP$top-0)).get_token());
3199                
3200            }
3201          return CUP$result;
3202
3203          /*. . . . . . . . . . . . . . . . . . . .*/
3204          case 75: // const_type ::= octet_type
3205
{
3206              CUP$result = new ConstType(/*const_type*/28);
3207               ((ConstType)CUP$result).symbol = (/*s*/(OctetType)CUP$stack.elementAt(CUP$top-0));
3208            }
3209          return CUP$result;
3210
3211          /*. . . . . . . . . . . . . . . . . . . .*/
3212          case 74: // const_type ::= string_type
3213
{
3214              CUP$result = new ConstType(/*const_type*/28);
3215               ((ConstType)CUP$result).symbol = (/*s*/(StringType)CUP$stack.elementAt(CUP$top-0));
3216            }
3217          return CUP$result;
3218
3219          /*. . . . . . . . . . . . . . . . . . . .*/
3220          case 73: // const_type ::= fixed_pt_const_type
3221
{
3222              CUP$result = new ConstType(/*const_type*/28);
3223               ((ConstType)CUP$result).symbol = (/*s*/(FixedPointConstType)CUP$stack.elementAt(CUP$top-0));
3224            }
3225          return CUP$result;
3226
3227          /*. . . . . . . . . . . . . . . . . . . .*/
3228          case 72: // const_type ::= float_pt_type
3229
{
3230              CUP$result = new ConstType(/*const_type*/28);
3231               ((ConstType)CUP$result).symbol = (/*s*/(FloatPtType)CUP$stack.elementAt(CUP$top-0));
3232            }
3233          return CUP$result;
3234
3235          /*. . . . . . . . . . . . . . . . . . . .*/
3236          case 71: // const_type ::= bool_type
3237
{
3238              CUP$result = new ConstType(/*const_type*/28);
3239               ((ConstType)CUP$result).symbol = (/*s*/(BooleanType)CUP$stack.elementAt(CUP$top-0));
3240            }
3241          return CUP$result;
3242
3243          /*. . . . . . . . . . . . . . . . . . . .*/
3244          case 70: // const_type ::= char_type
3245
{
3246              CUP$result = new ConstType(/*const_type*/28);
3247               ((ConstType)CUP$result).symbol = (/*s*/(CharType)CUP$stack.elementAt(CUP$top-0));
3248            }
3249          return CUP$result;
3250
3251          /*. . . . . . . . . . . . . . . . . . . .*/
3252          case 69: // const_type ::= int_type
3253
{
3254              CUP$result = new ConstType(/*const_type*/28);
3255               ((ConstType)CUP$result).symbol = (/*s*/(IntType)CUP$stack.elementAt(CUP$top-0));
3256            }
3257          return CUP$result;
3258
3259          /*. . . . . . . . . . . . . . . . . . . .*/
3260          case 68: // const_dcl ::= CONST const_type ID EQUALS const_expr
3261
{
3262              CUP$result = new ConstDecl(/*const_dcl*/27);
3263              
3264                        ((ConstDecl)CUP$result).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-2)).str_val);
3265                        ((ConstDecl)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-2)));
3266                        ((ConstDecl)CUP$result).const_expr = (/*ce*/(ConstExpr)CUP$stack.elementAt(CUP$top-0));
3267                        ((ConstDecl)CUP$result).const_type = (ConstType)(/*ct*/(ConstType)CUP$stack.elementAt(CUP$top-3));
3268                        ((ConstDecl)CUP$result).set_included( parser.include_state );
3269                
3270            }
3271          return CUP$result;
3272
3273          /*. . . . . . . . . . . . . . . . . . . .*/
3274          case 67: // init_param_decl ::= IN param_type_spec simple_declarator
3275
{
3276              CUP$result = new InitParamDecl(/*init_param_decl*/26);
3277              
3278                        ((InitParamDecl)CUP$result).paramTypeSpec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-1));
3279                        ((InitParamDecl)CUP$result).simple_declarator = (/*sd*/(SimpleDeclarator)CUP$stack.elementAt(CUP$top-0));
3280                  
3281            }
3282          return CUP$result;
3283
3284          /*. . . . . . . . . . . . . . . . . . . .*/
3285          case 66: // init_param_decls ::= init_param_decl COMMA init_param_decls
3286
{
3287              CUP$result = new SymbolList(/*init_param_decls*/88);
3288              
3289                        ((SymbolList)CUP$result).v = (Vector)(/*ipdcls*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
3290                        ((SymbolList)CUP$result).v.insertElementAt( (/*ip*/(InitParamDecl)CUP$stack.elementAt(CUP$top-2)), 0);
3291                
3292            }
3293          return CUP$result;
3294
3295          /*. . . . . . . . . . . . . . . . . . . .*/
3296          case 65: // init_param_decls ::= init_param_decl
3297
{
3298              CUP$result = new SymbolList(/*init_param_decls*/88);
3299              
3300                        ((SymbolList)CUP$result).v.insertElementAt( (/*ip*/(InitParamDecl)CUP$stack.elementAt(CUP$top-0)), 0);
3301                
3302            }
3303          return CUP$result;
3304
3305          /*. . . . . . . . . . . . . . . . . . . .*/
3306          case 64: // init_dcl ::= FACTORY ID LPAREN RPAREN raises_expr SEMI
3307
{
3308              CUP$result = new InitDecl(/*init_dcl*/25);
3309              
3310                        ((InitDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val;
3311                        ((InitDecl)CUP$result).raisesExpr = (/*re*/(RaisesExpr)CUP$stack.elementAt(CUP$top-1));
3312                
3313            }
3314          return CUP$result;
3315
3316          /*. . . . . . . . . . . . . . . . . . . .*/
3317          case 63: // init_dcl ::= FACTORY ID LPAREN init_param_decls RPAREN raises_expr SEMI
3318
{
3319              CUP$result = new InitDecl(/*init_dcl*/25);
3320              
3321                        ((InitDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-5)).str_val;
3322                        ((InitDecl)CUP$result).paramDecls = (Vector)(/*ipd*/(SymbolList)CUP$stack.elementAt(CUP$top-3)).v.clone();
3323                        ((InitDecl)CUP$result).raisesExpr = (/*re*/(RaisesExpr)CUP$stack.elementAt(CUP$top-1));
3324                
3325            }
3326          return CUP$result;
3327
3328          /*. . . . . . . . . . . . . . . . . . . .*/
3329          case 62: // state_member ::= PRIVATE type_spec declarators SEMI
3330
{
3331              CUP$result = new StateMember(/*state_member*/24);
3332              
3333                           ((StateMember)CUP$result).isPublic = false;
3334                           ((StateMember)CUP$result).type_spec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-2));
3335                           ((StateMember)CUP$result).declarators = (/*ds*/(SymbolList)CUP$stack.elementAt(CUP$top-1));
3336                  
3337            }
3338          return CUP$result;
3339
3340          /*. . . . . . . . . . . . . . . . . . . .*/
3341          case 61: // state_member ::= PUBLIC type_spec declarators SEMI
3342
{
3343              CUP$result = new StateMember(/*state_member*/24);
3344              
3345                           ((StateMember)CUP$result).isPublic = true;
3346                           ((StateMember)CUP$result).type_spec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-2));
3347                           ((StateMember)CUP$result).declarators = (/*ds*/(SymbolList)CUP$stack.elementAt(CUP$top-1));
3348                  
3349            }
3350          return CUP$result;
3351
3352          /*. . . . . . . . . . . . . . . . . . . .*/
3353          case 60: // value_element ::= init_dcl
3354
{
3355              CUP$result = new Definition(/*value_element*/23);
3356              
3357                        ((Definition)CUP$result).set_declaration ((/*id*/(InitDecl)CUP$stack.elementAt(CUP$top-0)));
3358                
3359            }
3360          return CUP$result;
3361
3362          /*. . . . . . . . . . . . . . . . . . . .*/
3363          case 59: // value_element ::= state_member
3364
{
3365              CUP$result = new Definition(/*value_element*/23);
3366              
3367                        ((Definition)CUP$result).set_declaration ((/*sm*/(StateMember)CUP$stack.elementAt(CUP$top-0)));
3368                
3369            }
3370          return CUP$result;
3371
3372          /*. . . . . . . . . . . . . . . . . . . .*/
3373          case 58: // value_element ::= export
3374
{
3375              CUP$result = new Definition(/*value_element*/23);
3376              
3377                        ((Definition)CUP$result).set_declaration ((/*e*/(Definition)CUP$stack.elementAt(CUP$top-0)).get_declaration());
3378                
3379            }
3380          return CUP$result;
3381
3382          /*. . . . . . . . . . . . . . . . . . . .*/
3383          case 57: // value_elements ::= empty
3384
{
3385              CUP$result = new Definitions(/*value_elements*/22);
3386              
3387            }
3388          return CUP$result;
3389
3390          /*. . . . . . . . . . . . . . . . . . . .*/
3391          case 56: // value_elements ::= value_element value_elements
3392
{
3393              CUP$result = new Definitions(/*value_elements*/22);
3394              
3395                        ((Definitions)CUP$result).v = (Vector)(/*es*/(Definitions)CUP$stack.elementAt(CUP$top-0)).v.clone();
3396                        ((Definitions)CUP$result).v.insertElementAt((/*e*/(Definition)CUP$stack.elementAt(CUP$top-1)),0);
3397                
3398            }
3399          return CUP$result;
3400
3401          /*. . . . . . . . . . . . . . . . . . . .*/
3402          case 55: // truncatable ::= TRUNCATABLE
3403
{
3404              CUP$result = new Truncatable(/*truncatable*/15);
3405              
3406            }
3407          return CUP$result;
3408
3409          /*. . . . . . . . . . . . . . . . . . . .*/
3410          case 54: // value_inheritance_spec ::= empty
3411
{
3412              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
3413              
3414            }
3415          return CUP$result;
3416
3417          /*. . . . . . . . . . . . . . . . . . . .*/
3418          case 53: // value_inheritance_spec ::= COLON
3419
{
3420              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
3421              
3422                        lexer.emit_warn("Illegal IDL: empty inheritance spec after colon!");
3423                
3424            }
3425          return CUP$result;
3426
3427          /*. . . . . . . . . . . . . . . . . . . .*/
3428          case 52: // value_inheritance_spec ::= COLON scopename_list SUPPORTS scopename_list
3429
{
3430              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
3431              
3432                        ((ValueInheritanceSpec)CUP$result).v = (Vector)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-2)).v.clone();
3433                        ((ValueInheritanceSpec)CUP$result).supports = (Vector)(/*interface_names*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
3434                
3435            }
3436          return CUP$result;
3437
3438          /*. . . . . . . . . . . . . . . . . . . .*/
3439          case 51: // value_inheritance_spec ::= COLON truncatable scopename_list SUPPORTS scopename_list
3440
{
3441              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
3442              
3443                        ((ValueInheritanceSpec)CUP$result).truncatable = (/*t*/(Truncatable)CUP$stack.elementAt(CUP$top-3));
3444                        ((ValueInheritanceSpec)CUP$result).truncatable.scopedName = (ScopedName)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-2)).v.remove(0);
3445                        ((ValueInheritanceSpec)CUP$result).v = (Vector)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-2)).v.clone();
3446                        ((ValueInheritanceSpec)CUP$result).supports = (Vector)(/*interface_names*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
3447                
3448            }
3449          return CUP$result;
3450
3451          /*. . . . . . . . . . . . . . . . . . . .*/
3452          case 50: // value_inheritance_spec ::= SUPPORTS scopename_list
3453
{
3454              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
3455              
3456                        ((ValueInheritanceSpec)CUP$result).supports = (Vector)(/*interface_names*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
3457                
3458            }
3459          return CUP$result;
3460
3461          /*. . . . . . . . . . . . . . . . . . . .*/
3462          case 49: // value_inheritance_spec ::= COLON scopename_list
3463
{
3464              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
3465              
3466                        ((ValueInheritanceSpec)CUP$result).v = (Vector)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
3467                
3468            }
3469          return CUP$result;
3470
3471          /*. . . . . . . . . . . . . . . . . . . .*/
3472          case 48: // value_inheritance_spec ::= COLON truncatable scopename_list
3473
{
3474              CUP$result = new ValueInheritanceSpec(/*value_inheritance_spec*/21);
3475              
3476                        ((ValueInheritanceSpec)CUP$result).truncatable = (/*t*/(Truncatable)CUP$stack.elementAt(CUP$top-1));
3477                        ((ValueInheritanceSpec)CUP$result).truncatable.scopedName = (ScopedName)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.remove(0);
3478                        ((ValueInheritanceSpec)CUP$result).v = (Vector)(/*vn*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
3479                
3480            }
3481          return CUP$result;
3482
3483          /*. . . . . . . . . . . . . . . . . . . .*/
3484          case 47: // value_dcl ::= VALUETYPE ID value_inheritance_spec LCBRACE value_elements RCBRACE
3485
{
3486              CUP$result = new ValueDecl(/*value_dcl*/18);
3487              
3488                        ((ValueDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val;
3489                        ((ValueDecl)CUP$result).set_token ((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
3490                        ((ValueDecl)CUP$result).setInheritanceSpec ((/*is*/(ValueInheritanceSpec)CUP$stack.elementAt(CUP$top-3)));
3491                        ((ValueDecl)CUP$result).setValueElements ((/*ve*/(Definitions)CUP$stack.elementAt(CUP$top-1)));
3492                        ((ValueDecl)CUP$result).isCustomMarshalled (false);
3493                
3494            }
3495          return CUP$result;
3496
3497          /*. . . . . . . . . . . . . . . . . . . .*/
3498          case 46: // value_dcl ::= VALUETYPE ID
3499
{
3500              CUP$result = new ValueDecl(/*value_dcl*/18);
3501              
3502                        ((ValueDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val;
3503                        ((ValueDecl)CUP$result).set_token ((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
3504                        ((ValueDecl)CUP$result).isCustomMarshalled (false);
3505                
3506            }
3507          return CUP$result;
3508
3509          /*. . . . . . . . . . . . . . . . . . . .*/
3510          case 45: // value_dcl ::= CUSTOM VALUETYPE ID value_inheritance_spec LCBRACE value_elements RCBRACE
3511
{
3512              CUP$result = new ValueDecl(/*value_dcl*/18);
3513              
3514                        ((ValueDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val;
3515                        ((ValueDecl)CUP$result).set_token ((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
3516                        ((ValueDecl)CUP$result).setInheritanceSpec ((/*is*/(ValueInheritanceSpec)CUP$stack.elementAt(CUP$top-3)));
3517                        ((ValueDecl)CUP$result).setValueElements ((/*ve*/(Definitions)CUP$stack.elementAt(CUP$top-1)));
3518                        ((ValueDecl)CUP$result).isCustomMarshalled (true);
3519                
3520            }
3521          return CUP$result;
3522
3523          /*. . . . . . . . . . . . . . . . . . . .*/
3524          case 44: // value_body ::= empty
3525
{
3526              CUP$result = new ValueBody(/*value_body*/20);
3527               ((ValueBody)CUP$result).commit();
3528            }
3529          return CUP$result;
3530
3531          /*. . . . . . . . . . . . . . . . . . . .*/
3532          case 43: // value_body ::= export value_body
3533
{
3534              CUP$result = new ValueBody(/*value_body*/20);
3535              
3536                        ((ValueBody)CUP$result).v = (Vector)(/*vb*/(ValueBody)CUP$stack.elementAt(CUP$top-0)).v.clone();
3537                        ((ValueBody)CUP$result).v.insertElementAt((/*e*/(Definition)CUP$stack.elementAt(CUP$top-1)),0);
3538                
3539            }
3540          return CUP$result;
3541
3542          /*. . . . . . . . . . . . . . . . . . . .*/
3543          case 42: // value_abs_dcl ::= ABSTRACT VALUETYPE ID
3544
{
3545              CUP$result = new ValueAbsDecl(/*value_abs_dcl*/19);
3546              
3547                        ((ValueAbsDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val;
3548                        ((ValueAbsDecl)CUP$result).set_token ((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
3549                
3550            }
3551          return CUP$result;
3552
3553          /*. . . . . . . . . . . . . . . . . . . .*/
3554          case 41: // value_abs_dcl ::= ABSTRACT VALUETYPE ID value_inheritance_spec LCBRACE value_body RCBRACE
3555
{
3556              CUP$result = new ValueAbsDecl(/*value_abs_dcl*/19);
3557              
3558                        ((ValueAbsDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val;
3559                        ((ValueAbsDecl)CUP$result).setInheritanceSpec( (/*is*/(ValueInheritanceSpec)CUP$stack.elementAt(CUP$top-3)) );
3560                        ((ValueAbsDecl)CUP$result).body = (/*b*/(ValueBody)CUP$stack.elementAt(CUP$top-1));
3561                        (/*b*/(ValueBody)CUP$stack.elementAt(CUP$top-1)).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val);
3562                        (/*b*/(ValueBody)CUP$stack.elementAt(CUP$top-1)).myAbsValue = ((ValueAbsDecl)CUP$result);
3563                        (/*b*/(ValueBody)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((ValueAbsDecl)CUP$result));
3564                        ((ValueAbsDecl)CUP$result).set_token ((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
3565                
3566            }
3567          return CUP$result;
3568
3569          /*. . . . . . . . . . . . . . . . . . . .*/
3570          case 40: // value_box_dcl ::= VALUETYPE ID type_spec
3571
{
3572              CUP$result = new ValueBoxDecl(/*value_box_dcl*/17);
3573              
3574                        ((ValueBoxDecl)CUP$result).name = (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-1)).str_val;
3575                        ((ValueBoxDecl)CUP$result).typeSpec = (/*ts*/(TypeSpec)CUP$stack.elementAt(CUP$top-0));
3576                        ((ValueBoxDecl)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-1)));
3577                
3578            }
3579          return CUP$result;
3580
3581          /*. . . . . . . . . . . . . . . . . . . .*/
3582          case 39: // value ::= value_box_dcl
3583
{
3584              CUP$result = new Value(/*value*/16);
3585              
3586                        ((Value)CUP$result).setValue ((/*vbx*/(ValueBoxDecl)CUP$stack.elementAt(CUP$top-0)));
3587                
3588            }
3589          return CUP$result;
3590
3591          /*. . . . . . . . . . . . . . . . . . . .*/
3592          case 38: // value ::= value_abs_dcl
3593
{
3594              CUP$result = new Value(/*value*/16);
3595              
3596                        ((Value)CUP$result).setValue ((/*vad*/(ValueAbsDecl)CUP$stack.elementAt(CUP$top-0)));
3597                
3598            }
3599          return CUP$result;
3600
3601          /*. . . . . . . . . . . . . . . . . . . .*/
3602          case 37: // value ::= value_dcl
3603
{
3604              CUP$result = new Value(/*value*/16);
3605              
3606                        ((Value)CUP$result).setValue ((/*vd*/(ValueDecl)CUP$stack.elementAt(CUP$top-0)));
3607                
3608            }
3609          return CUP$result;
3610
3611          /*. . . . . . . . . . . . . . . . . . . .*/
3612          case 36: // scopename ::= OBJECT
3613
{
3614              CUP$result = new ScopedName(/*scopename*/14);
3615              
3616                        ((ScopedName)CUP$result).typeName = "org.omg.CORBA.Object";
3617                
3618            }
3619          return CUP$result;
3620
3621          /*. . . . . . . . . . . . . . . . . . . .*/
3622          case 35: // scopename ::= scopename DBLCOLON ID
3623
{
3624              CUP$result = new ScopedName(/*scopename*/14);
3625              
3626                        ((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 );
3627                        ((ScopedName)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
3628                 
3629            }
3630          return CUP$result;
3631
3632          /*. . . . . . . . . . . . . . . . . . . .*/
3633          case 34: // scopename ::= DBLCOLON ID
3634
{
3635              CUP$result = new ScopedName(/*scopename*/14);
3636              
3637                        ((ScopedName)CUP$result).setId( "." + (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val);
3638                        ((ScopedName)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
3639                
3640            }
3641          return CUP$result;
3642
3643          /*. . . . . . . . . . . . . . . . . . . .*/
3644          case 33: // scopename ::= ID
3645
{
3646              CUP$result = new ScopedName(/*scopename*/14);
3647              
3648                        ((ScopedName)CUP$result).setId( (/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)).str_val );
3649                        ((ScopedName)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
3650                
3651            }
3652          return CUP$result;
3653
3654          /*. . . . . . . . . . . . . . . . . . . .*/
3655          case 32: // scopename_list ::= scopename
3656
{
3657              CUP$result = new SymbolList(/*scopename_list*/90);
3658               ((SymbolList)CUP$result).v.insertElementAt((/*sn*/(ScopedName)CUP$stack.elementAt(CUP$top-0)),0);
3659            }
3660          return CUP$result;
3661
3662          /*. . . . . . . . . . . . . . . . . . . .*/
3663          case 31: // scopename_list ::= scopename COMMA scopename_list
3664
{
3665              CUP$result = new SymbolList(/*scopename_list*/90);
3666              
3667                ((SymbolList)CUP$result).v = (Vector)(/*snl*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
3668                ((SymbolList)CUP$result).v.insertElementAt((/*sn*/(ScopedName)CUP$stack.elementAt(CUP$top-2)),0);
3669            
3670            }
3671          return CUP$result;
3672
3673          /*. . . . . . . . . . . . . . . . . . . .*/
3674          case 30: // inheritance_spec ::= empty
3675
{
3676              CUP$result = new SymbolList(/*inheritance_spec*/93);
3677              
3678            }
3679          return CUP$result;
3680
3681          /*. . . . . . . . . . . . . . . . . . . .*/
3682          case 29: // inheritance_spec ::= COLON
3683
{
3684              CUP$result = new SymbolList(/*inheritance_spec*/93);
3685              
3686                        lexer.emit_warn("Illegal IDL: empty inheritance spec after colon!");
3687                
3688            }
3689          return CUP$result;
3690
3691          /*. . . . . . . . . . . . . . . . . . . .*/
3692          case 28: // inheritance_spec ::= COLON scopename_list
3693
{
3694              CUP$result = new SymbolList(/*inheritance_spec*/93);
3695              
3696                        ((SymbolList)CUP$result).v = (Vector)(/*sl*/(SymbolList)CUP$stack.elementAt(CUP$top-0)).v.clone();
3697                
3698            }
3699          return CUP$result;
3700
3701          /*. . . . . . . . . . . . . . . . . . . .*/
3702          case 27: // export ::= op_dcl SEMI
3703
{
3704              CUP$result = new Definition(/*export*/13);
3705               ((Definition)CUP$result).set_declaration((/*o*/(OpDecl)CUP$stack.elementAt(CUP$top-1)));
3706            }
3707          return CUP$result;
3708
3709          /*. . . . . . . . . . . . . . . . . . . .*/
3710          case 26: // export ::= attr_dcl SEMI
3711
{
3712              CUP$result = new Definition(/*export*/13);
3713               ((Definition)CUP$result).set_declaration((/*a*/(AttrDecl)CUP$stack.elementAt(CUP$top-1)));
3714            }
3715          return CUP$result;
3716
3717          /*. . . . . . . . . . . . . . . . . . . .*/
3718          case 25: // export ::= except_dcl SEMI
3719
{
3720              CUP$result = new Definition(/*export*/13);
3721               ((Definition)CUP$result).set_declaration((/*e*/(StructType)CUP$stack.elementAt(CUP$top-1)));
3722            }
3723          return CUP$result;
3724
3725          /*. . . . . . . . . . . . . . . . . . . .*/
3726          case 24: // export ::= const_dcl SEMI
3727
{
3728              CUP$result = new Definition(/*export*/13);
3729               ((Definition)CUP$result).set_declaration((/*c*/(ConstDecl)CUP$stack.elementAt(CUP$top-1)));
3730            }
3731          return CUP$result;
3732
3733          /*. . . . . . . . . . . . . . . . . . . .*/
3734          case 23: // export ::= type_dcl SEMI
3735
{
3736              CUP$result = new Definition(/*export*/13);
3737               ((Definition)CUP$result).set_declaration((/*t*/(TypeDeclaration)CUP$stack.elementAt(CUP$top-1)));
3738            }
3739          return CUP$result;
3740
3741          /*. . . . . . . . . . . . . . . . . . . .*/
3742          case 22: // interface_body ::= empty
3743
{
3744              CUP$result = new InterfaceBody(/*interface_body*/12);
3745               ((InterfaceBody)CUP$result).commit();
3746            }
3747          return CUP$result;
3748
3749          /*. . . . . . . . . . . . . . . . . . . .*/
3750          case 21: // interface_body ::= export interface_body
3751
{
3752              CUP$result = new InterfaceBody(/*interface_body*/12);
3753              
3754                        ((InterfaceBody)CUP$result).v = (Vector)(/*i*/(InterfaceBody)CUP$stack.elementAt(CUP$top-0)).v.clone();
3755                        ((InterfaceBody)CUP$result).v.insertElementAt((/*e*/(Definition)CUP$stack.elementAt(CUP$top-1)),0);
3756                
3757            }
3758          return CUP$result;
3759
3760          /*. . . . . . . . . . . . . . . . . . . .*/
3761          case 20: // interface ::= PSEUDO INTERFACE ID
3762
{
3763              CUP$result = new Interface(/*interface*/11);
3764              
3765                ((Interface)CUP$result).set_pseudo();
3766                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
3767                parser.closeScope( (Scope)((Interface)CUP$result) );
3768          
3769            }
3770          return CUP$result;
3771
3772          /*. . . . . . . . . . . . . . . . . . . .*/
3773          case 19: // interface ::= LOCAL INTERFACE ID
3774
{
3775              CUP$result = new Interface(/*interface*/11);
3776              
3777                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
3778                ((Interface)CUP$result).set_abstract();
3779                ((Interface)CUP$result).set_locality( true );
3780                parser.closeScope( (Scope)((Interface)CUP$result) );
3781          
3782            }
3783          return CUP$result;
3784
3785          /*. . . . . . . . . . . . . . . . . . . .*/
3786          case 18: // interface ::= ABSTRACT INTERFACE ID
3787
{
3788              CUP$result = new Interface(/*interface*/11);
3789              
3790                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
3791                ((Interface)CUP$result).set_abstract();
3792                parser.closeScope( (Scope)((Interface)CUP$result) );
3793          
3794            }
3795          return CUP$result;
3796
3797          /*. . . . . . . . . . . . . . . . . . . .*/
3798          case 17: // interface ::= INTERFACE ID
3799
{
3800              CUP$result = new Interface(/*interface*/11);
3801              
3802                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-0)));
3803                parser.closeScope( (Scope)((Interface)CUP$result) );
3804          
3805            }
3806          return CUP$result;
3807
3808          /*. . . . . . . . . . . . . . . . . . . .*/
3809          case 16: // interface ::= PSEUDO INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE
3810
{
3811              CUP$result = new Interface(/*interface*/11);
3812              
3813                ((Interface)CUP$result).set_pseudo();
3814                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
3815                ((Interface)CUP$result).inheritanceSpec = (/*is*/(SymbolList)CUP$stack.elementAt(CUP$top-3));
3816                ((Interface)CUP$result).body = (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1));
3817                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).set_pseudo();
3818                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val);
3819                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).my_interface = ((Interface)CUP$result);
3820                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((Interface)CUP$result));
3821                ((Interface)CUP$result).set_included( parser.include_state );
3822                parser.closeScope( (Scope)((Interface)CUP$result) );
3823         
3824            }
3825          return CUP$result;
3826
3827          /*. . . . . . . . . . . . . . . . . . . .*/
3828          case 15: // interface ::= LOCAL INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE
3829
{
3830              CUP$result = new Interface(/*interface*/11);
3831              
3832                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
3833                ((Interface)CUP$result).inheritanceSpec = (/*is*/(SymbolList)CUP$stack.elementAt(CUP$top-3));
3834                ((Interface)CUP$result).body = (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)) ;
3835                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val);
3836                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).my_interface = ((Interface)CUP$result);
3837                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((Interface)CUP$result));
3838                ((Interface)CUP$result).set_included( parser.include_state );
3839                ((Interface)CUP$result).set_locality( true );
3840                parser.closeScope( (Scope)((Interface)CUP$result) );
3841         
3842            }
3843          return CUP$result;
3844
3845          /*. . . . . . . . . . . . . . . . . . . .*/
3846          case 14: // interface ::= ABSTRACT INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE
3847
{
3848              CUP$result = new Interface(/*interface*/11);
3849              
3850                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
3851                ((Interface)CUP$result).set_abstract();
3852                ((Interface)CUP$result).inheritanceSpec = (/*is*/(SymbolList)CUP$stack.elementAt(CUP$top-3));
3853                ((Interface)CUP$result).body = (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)) ;
3854                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val);
3855                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).my_interface = ((Interface)CUP$result);
3856                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((Interface)CUP$result));
3857                ((Interface)CUP$result).set_included( parser.include_state );
3858                parser.closeScope( (Scope)((Interface)CUP$result) );
3859         
3860            }
3861          return CUP$result;
3862
3863          /*. . . . . . . . . . . . . . . . . . . .*/
3864          case 13: // interface ::= INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE
3865
{
3866              CUP$result = new Interface(/*interface*/11);
3867              
3868                ((Interface)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)));
3869                ((Interface)CUP$result).inheritanceSpec = (/*is*/(SymbolList)CUP$stack.elementAt(CUP$top-3));
3870                ((Interface)CUP$result).body = (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)) ;
3871                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).set_name((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-4)).str_val);
3872                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).my_interface = ((Interface)CUP$result);
3873                (/*b*/(InterfaceBody)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((Interface)CUP$result));
3874                ((Interface)CUP$result).set_included( parser.include_state );
3875                parser.closeScope( (Scope)((Interface)CUP$result) );
3876         
3877            }
3878          return CUP$result;
3879
3880          /*. . . . . . . . . . . . . . . . . . . .*/
3881          case 12: // module ::= MODULE ID LCBRACE definitions RCBRACE
3882
{
3883              CUP$result = new Module(/*module*/10);
3884              
3885                ((Module)CUP$result).spec = (/*d*/(Definitions)CUP$stack.elementAt(CUP$top-1));
3886                ((Module)CUP$result).set_token((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)));
3887                ((Module)CUP$result).setPackage((/*i*/(org.jacorb.idl.str_token)CUP$stack.elementAt(CUP$top-3)).str_val );
3888                ((Module)CUP$result).set_included( parser.include_state );
3889
3890                (/*d*/(Definitions)CUP$stack.elementAt(CUP$top-1)).setEnclosingSymbol(((Module)CUP$result));
3891                parser.closeScope( (Scope)((Module)CUP$result) );
3892        
3893            }
3894          return CUP$result;
3895
3896          /*. . . . . . . . . . . . . . . . . . . .*/
3897          case 11: // definition ::= value SEMI
3898
{
3899              CUP$result = new Definition(/*definition*/8);
3900              
3901                        ((Definition)CUP$result).set_declaration((/*m*/(Value)CUP$stack.elementAt(CUP$top-1)));
3902                 
3903            }
3904          return CUP$result;
3905
3906          /*. . . . . . . . . . . . . . . . . . . .*/
3907          case 10: // definition ::= module SEMI
3908
{
3909              CUP$result = new Definition(/*definition*/8);
3910              
3911                        ((Definition)CUP$result).set_declaration((/*m*/(Module)CUP$stack.elementAt(CUP$top-1)));
3912                 
3913            }
3914          return CUP$result;
3915
3916          /*. . . . . . . . . . . . . . . . . . . .*/
3917          case 9: // definition ::= interface SEMI
3918
{
3919              CUP$result = new Definition(/*definition*/8);
3920              
3921                        ((Definition)CUP$result).set_declaration((/*p*/(Interface)CUP$stack.elementAt(CUP$top-1)));
3922                
3923            }
3924          return CUP$result;
3925
3926          /*. . . . . . . . . . . . . . . . . . . .*/
3927          case 8: // definition ::= except_dcl SEMI
3928
{
3929              CUP$result = new Definition(/*definition*/8);
3930              
3931                        ((Definition)CUP$result).set_declaration((/*e*/(StructType)CUP$stack.elementAt(CUP$top-1)));
3932                
3933            }
3934          return CUP$result;
3935
3936          /*. . . . . . . . . . . . . . . . . . . .*/
3937          case 7: // definition ::= const_dcl SEMI
3938
{
3939              CUP$result = new Definition(/*definition*/8);
3940              
3941                        ((Definition)CUP$result).set_declaration((/*c*/(ConstDecl)CUP$stack.elementAt(CUP$top-1)));
3942                
3943            }
3944          return CUP$result;
3945
3946          /*. . . . . . . . . . . . . . . . . . . .*/
3947          case 6: // definition ::= type_dcl SEMI
3948
{
3949              CUP$result = new Definition(/*definition*/8);
3950              
3951                        ((Definition)CUP$result).set_declaration((/*t*/(TypeDeclaration)CUP$stack.elementAt(CUP$top-1)));
3952                
3953            }
3954          return CUP$result;
3955
3956          /*. . . . . . . . . . . . . . . . . . . .*/
3957          case 5: // definitions ::= definition
3958
{
3959              CUP$result = new Definitions(/*definitions*/9);
3960              
3961                        ((Definitions)CUP$result).v.insertElementAt((/*d*/(Definition)CUP$stack.elementAt(CUP$top-0)),0);
3962                
3963            }
3964          return CUP$result;
3965
3966          /*. . . . . . . . . . . . . . . . . . . .*/
3967          case 4: // definitions ::= definition definitions
3968
{
3969              CUP$result = new Definitions(/*definitions*/9);
3970              
3971                        ((Definitions)CUP$result).v = (Vector)(/*ds*/(Definitions)CUP$stack.elementAt(CUP$top-0)).v.clone();
3972                        ((Definitions)CUP$result).v.insertElementAt((/*d*/(Definition)CUP$stack.elementAt(CUP$top-1)),0);
3973                
3974            }
3975          return CUP$result;
3976
3977          /*. . . . . . . . . . . . . . . . . . . .*/
3978          case 3: // specification ::= empty
3979
{
3980              CUP$result = new Spec(/*specification*/7);
3981              
3982            }
3983          return CUP$result;
3984
3985          /*. . . . . . . . . . . . . . . . . . . .*/
3986          case 2: // specification ::= NT$0 definitions
3987
{
3988              CUP$result = new Spec(/*specification*/7);
3989              
3990                /* parsing */
3991
3992                ((Spec)CUP$result).definitions = (Vector)(/*ds*/(Definitions)CUP$stack.elementAt(CUP$top-0)).v.clone();
3993
3994                if( ((org.jacorb.idl.parser)CUP$parser).package_prefix != null )
3995                        ((Spec)CUP$result).setPackage( ((org.jacorb.idl.parser)CUP$parser).package_prefix );
3996
3997                ((Spec)CUP$result).parse();
3998
3999                if ( lexer.error_count != 0 )
4000                {
4001                    lexer.emit_error( lexer.error_count + " error(s).");
4002                    throw new ParseException ("Lexer errors");
4003                }
4004
4005                // if there are still interfaces to be parsed, wait until the
4006
// threads performing this have finished. The last one
4007
// will call notify() :)
4008

4009                if( parser.pending_interfaces.size() > 0 )
4010                {
4011                   // give other threads a chance to start and signal
4012
// that they're active
4013
Thread.yield();
4014
4015                   boolean runnableFound = false;
4016
4017                   // still no one seems to be active, but we'll call
4018
// round to be sure
4019
if( parser.activeParseThreads() == 0 )
4020                   {
4021                        for( int t = 0;
4022                             t < InterfaceBody.parseThreads.size() && !runnableFound;
4023                             t++ )
4024