62b750dafc913eb984ef81a129c86b4f442ec4d8
[iot2.git] / iotjava / iotpolicy / parser / Parser.java
1 package iotpolicy.parser;
2
3 //----------------------------------------------------
4 // The following code was generated by CUP v0.11b 20160615 (GIT 4ac7450)
5 //----------------------------------------------------
6
7 import java_cup.runtime.ComplexSymbolFactory;
8 import java_cup.runtime.ScannerBuffer;
9 import java_cup.runtime.XMLElement;
10 import javax.xml.stream.XMLOutputFactory;
11 import javax.xml.stream.XMLStreamWriter;
12 import java.io.*;
13 import javax.xml.transform.*;
14 import javax.xml.transform.stream.*;
15 import java_cup.runtime.XMLElement;
16
17 import iotpolicy.tree.ParseNode;
18
19 /** CUP v0.11b 20160615 (GIT 4ac7450) generated parser.
20   */
21 @SuppressWarnings({"rawtypes"})
22 public class Parser extends java_cup.runtime.lr_parser {
23
24  public final Class getSymbolContainer() {
25     return sym.class;
26 }
27
28   /** Default constructor. */
29   @Deprecated
30   public Parser() {super();}
31
32   /** Constructor which sets the default scanner. */
33   @Deprecated
34   public Parser(java_cup.runtime.Scanner s) {super(s);}
35
36   /** Constructor which sets the default scanner. */
37   public Parser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}
38
39   /** Production table. */
40   protected static final short _production_table[][] = 
41     unpackFromStrings(new String[] {
42     "\000\060\000\002\002\003\000\002\002\004\000\002\002" +
43     "\003\000\002\003\013\000\002\004\004\000\002\004\002" +
44     "\000\002\005\011\000\002\005\011\000\002\005\014\000" +
45     "\002\005\014\000\002\006\004\000\002\006\002\000\002" +
46     "\007\005\000\002\007\004\000\002\007\005\000\002\007" +
47     "\004\000\002\007\007\000\002\007\007\000\002\007\010" +
48     "\000\002\007\010\000\002\011\004\000\002\011\002\000" +
49     "\002\012\007\000\002\013\004\000\002\013\002\000\002" +
50     "\014\006\000\002\014\006\000\002\015\004\000\002\015" +
51     "\002\000\002\016\012\000\002\017\003\000\002\017\005" +
52     "\000\002\017\002\000\002\020\004\000\002\020\002\000" +
53     "\002\021\007\000\002\022\004\000\002\022\002\000\002" +
54     "\023\004\000\002\023\003\000\002\024\004\000\002\024" +
55     "\002\000\002\025\007\000\002\026\004\000\002\026\002" +
56     "\000\002\027\005\000\002\027\005\000\002\027\010" });
57
58   /** Access to production table. */
59   public short[][] production_table() {return _production_table;}
60
61   /** Parse-action table. */
62   protected static final short[][] _action_table = 
63     unpackFromStrings(new String[] {
64     "\000\161\000\010\002\uffe5\015\006\022\uffe5\001\002\000" +
65     "\004\002\001\001\002\000\006\002\uffff\022\150\001\002" +
66     "\000\004\016\011\001\002\000\004\002\010\001\002\000" +
67     "\004\002\000\001\002\000\004\030\012\001\002\000\004" +
68     "\012\013\001\002\000\014\013\ufffc\015\ufffc\017\ufffc\025" +
69     "\ufffc\026\ufffc\001\002\000\014\013\uffec\015\016\017\uffec" +
70     "\025\uffec\026\uffec\001\002\000\014\013\ufffd\015\ufffd\017" +
71     "\ufffd\025\ufffd\026\ufffd\001\002\000\006\027\076\030\075" +
72     "\001\002\000\012\013\uffdf\017\022\025\uffdf\026\uffdf\001" +
73     "\002\000\010\013\uffd8\025\042\026\uffd8\001\002\000\012" +
74     "\013\uffed\017\uffed\025\uffed\026\uffed\001\002\000\004\030" +
75     "\023\001\002\000\004\012\024\001\002\000\010\013\uffe9" +
76     "\020\uffe9\021\uffe9\001\002\000\010\013\030\020\027\021" +
77     "\031\001\002\000\010\013\uffea\020\uffea\021\uffea\001\002" +
78     "\000\004\014\035\001\002\000\012\013\uffeb\017\uffeb\025" +
79     "\uffeb\026\uffeb\001\002\000\004\014\032\001\002\000\004" +
80     "\031\033\001\002\000\004\004\034\001\002\000\010\013" +
81     "\uffe7\020\uffe7\021\uffe7\001\002\000\004\031\036\001\002" +
82     "\000\004\004\037\001\002\000\010\013\uffe8\020\uffe8\021" +
83     "\uffe8\001\002\000\006\013\054\026\053\001\002\000\010" +
84     "\013\uffe0\025\uffe0\026\uffe0\001\002\000\004\030\043\001" +
85     "\002\000\004\012\044\001\002\000\006\013\uffdc\030\uffdc" +
86     "\001\002\000\006\013\050\030\047\001\002\000\006\013" +
87     "\uffdd\030\uffdd\001\002\000\010\005\051\013\uffda\030\uffda" +
88     "\001\002\000\010\013\uffde\025\uffde\026\uffde\001\002\000" +
89     "\006\013\uffdb\030\uffdb\001\002\000\006\013\uffd9\026\uffd9" +
90     "\001\002\000\004\030\055\001\002\000\004\002\ufffe\001" +
91     "\002\000\004\012\056\001\002\000\010\013\uffd5\027\uffd5" +
92     "\030\uffd5\001\002\000\010\013\061\027\062\030\060\001" +
93     "\002\000\006\010\066\030\067\001\002\000\006\013\uffd7" +
94     "\026\uffd7\001\002\000\004\030\064\001\002\000\010\013" +
95     "\uffd6\027\uffd6\030\uffd6\001\002\000\004\004\065\001\002" +
96     "\000\010\013\uffd4\027\uffd4\030\uffd4\001\002\000\004\030" +
97     "\071\001\002\000\004\004\070\001\002\000\010\013\uffd3" +
98     "\027\uffd3\030\uffd3\001\002\000\004\011\072\001\002\000" +
99     "\004\030\073\001\002\000\004\004\074\001\002\000\010" +
100     "\013\uffd2\027\uffd2\030\uffd2\001\002\000\006\010\124\030" +
101     "\125\001\002\000\004\030\077\001\002\000\004\006\100" +
102     "\001\002\000\010\007\ufff6\027\ufff6\030\ufff6\001\002\000" +
103     "\010\007\103\027\105\030\102\001\002\000\006\010\111" +
104     "\030\112\001\002\000\004\004\110\001\002\000\010\007" +
105     "\ufff7\027\ufff7\030\ufff7\001\002\000\004\030\106\001\002" +
106     "\000\012\005\107\007\ufff4\027\ufff4\030\ufff4\001\002\000" +
107     "\010\007\ufff5\027\ufff5\030\ufff5\001\002\000\014\013\ufffb" +
108     "\015\ufffb\017\ufffb\025\ufffb\026\ufffb\001\002\000\006\027" +
109     "\115\030\114\001\002\000\012\005\113\007\ufff2\027\ufff2" +
110     "\030\ufff2\001\002\000\010\007\ufff3\027\ufff3\030\ufff3\001" +
111     "\002\000\004\011\121\001\002\000\004\011\116\001\002" +
112     "\000\004\030\117\001\002\000\012\005\120\007\ufff1\027" +
113     "\ufff1\030\ufff1\001\002\000\010\007\uffef\027\uffef\030\uffef" +
114     "\001\002\000\004\030\122\001\002\000\012\005\123\007" +
115     "\ufff0\027\ufff0\030\ufff0\001\002\000\010\007\uffee\027\uffee" +
116     "\030\uffee\001\002\000\006\027\133\030\132\001\002\000" +
117     "\004\006\126\001\002\000\010\007\ufff6\027\ufff6\030\ufff6" +
118     "\001\002\000\010\007\130\027\105\030\102\001\002\000" +
119     "\004\004\131\001\002\000\014\013\ufffa\015\ufffa\017\ufffa" +
120     "\025\ufffa\026\ufffa\001\002\000\004\011\142\001\002\000" +
121     "\004\011\134\001\002\000\004\030\135\001\002\000\004" +
122     "\006\136\001\002\000\010\007\ufff6\027\ufff6\030\ufff6\001" +
123     "\002\000\010\007\140\027\105\030\102\001\002\000\004" +
124     "\004\141\001\002\000\014\013\ufff9\015\ufff9\017\ufff9\025" +
125     "\ufff9\026\ufff9\001\002\000\004\030\143\001\002\000\004" +
126     "\006\144\001\002\000\010\007\ufff6\027\ufff6\030\ufff6\001" +
127     "\002\000\010\007\146\027\105\030\102\001\002\000\004" +
128     "\004\147\001\002\000\014\013\ufff8\015\ufff8\017\ufff8\025" +
129     "\ufff8\026\ufff8\001\002\000\004\030\152\001\002\000\006" +
130     "\002\uffe6\022\uffe6\001\002\000\004\023\153\001\002\000" +
131     "\010\005\uffe1\024\uffe1\030\155\001\002\000\006\005\156" +
132     "\024\157\001\002\000\006\005\uffe3\024\uffe3\001\002\000" +
133     "\004\030\163\001\002\000\004\016\160\001\002\000\004" +
134     "\030\161\001\002\000\004\004\162\001\002\000\006\002" +
135     "\uffe4\022\uffe4\001\002\000\006\005\uffe2\024\uffe2\001\002" +
136     "" });
137
138   /** Access to parse-action table. */
139   public short[][] action_table() {return _action_table;}
140
141   /** <code>reduce_goto</code> table. */
142   protected static final short[][] _reduce_table = 
143     unpackFromStrings(new String[] {
144     "\000\161\000\010\002\006\003\003\015\004\001\001\000" +
145     "\002\001\001\000\004\016\150\001\001\000\002\001\001" +
146     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
147     "\002\001\001\000\004\004\013\001\001\000\006\005\014" +
148     "\011\016\001\001\000\002\001\001\000\002\001\001\000" +
149     "\006\012\020\020\017\001\001\000\006\021\040\024\037" +
150     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
151     "\001\000\004\013\024\001\001\000\004\014\025\001\001" +
152     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
153     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
154     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
155     "\001\000\004\025\051\001\001\000\002\001\001\000\002" +
156     "\001\001\000\002\001\001\000\004\022\044\001\001\000" +
157     "\004\023\045\001\001\000\002\001\001\000\002\001\001" +
158     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
159     "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
160     "\026\056\001\001\000\004\027\062\001\001\000\002\001" +
161     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
162     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
163     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
164     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
165     "\001\000\002\001\001\000\002\001\001\000\004\006\100" +
166     "\001\001\000\004\007\103\001\001\000\002\001\001\000" +
167     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
168     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
169     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
170     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
171     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
172     "\001\001\000\002\001\001\000\002\001\001\000\004\006" +
173     "\126\001\001\000\004\007\103\001\001\000\002\001\001" +
174     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
175     "\002\001\001\000\002\001\001\000\004\006\136\001\001" +
176     "\000\004\007\103\001\001\000\002\001\001\000\002\001" +
177     "\001\000\002\001\001\000\002\001\001\000\004\006\144" +
178     "\001\001\000\004\007\103\001\001\000\002\001\001\000" +
179     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
180     "\001\001\000\004\017\153\001\001\000\002\001\001\000" +
181     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
182     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
183     "\001" });
184
185   /** Access to <code>reduce_goto</code> table. */
186   public short[][] reduce_table() {return _reduce_table;}
187
188   /** Instance of action encapsulation class. */
189   protected CUP$Parser$actions action_obj;
190
191   /** Action encapsulation object initializer. */
192   protected void init_actions()
193     {
194       action_obj = new CUP$Parser$actions(this);
195     }
196
197   /** Invoke a user supplied parse action. */
198   public java_cup.runtime.Symbol do_action(
199     int                        act_num,
200     java_cup.runtime.lr_parser parser,
201     java.util.Stack            stack,
202     int                        top)
203     throws java.lang.Exception
204   {
205     /* call code in generated class */
206     return action_obj.CUP$Parser$do_action(act_num, parser, stack, top);
207   }
208
209   /** Indicates start state. */
210   public int start_state() {return 0;}
211   /** Indicates start production. */
212   public int start_production() {return 1;}
213
214   /** <code>EOF</code> Symbol index. */
215   public int EOF_sym() {return 0;}
216
217   /** <code>error</code> Symbol index. */
218   public int error_sym() {return 1;}
219
220
221
222   public Parser(Lexer lex, ComplexSymbolFactory sf) {
223     super(lex,sf);
224   }
225   public static void main(String[] args) throws Exception {
226       // initialize the symbol factory
227       ComplexSymbolFactory csf = new ComplexSymbolFactory();
228       // create a buffering scanner wrapper
229       ScannerBuffer lexer = new ScannerBuffer(new Lexer(new BufferedReader(new FileReader(args[0])),csf));
230       // start parsing
231       Parser p = new Parser(lexer,csf);
232       ParseNode pn = (ParseNode) p.parse().value;
233   }
234
235
236 /** Cup generated class to encapsulate user supplied action code.*/
237 @SuppressWarnings({"rawtypes", "unchecked", "unused"})
238 class CUP$Parser$actions {
239   private final Parser parser;
240
241   /** Constructor */
242   CUP$Parser$actions(Parser parser) {
243     this.parser = parser;
244   }
245
246   /** Method 0 with the actual generated action code for actions 0 to 300. */
247   public final java_cup.runtime.Symbol CUP$Parser$do_action_part00000000(
248     int                        CUP$Parser$act_num,
249     java_cup.runtime.lr_parser CUP$Parser$parser,
250     java.util.Stack            CUP$Parser$stack,
251     int                        CUP$Parser$top)
252     throws java.lang.Exception
253     {
254       /* Symbol object for return from actions */
255       java_cup.runtime.Symbol CUP$Parser$result;
256
257       /* select the action based on the action number */
258       switch (CUP$Parser$act_num)
259         {
260           /*. . . . . . . . . . . . . . . . . . . .*/
261           case 0: // policy ::= intface 
262             {
263               ParseNode RESULT =null;
264                 int inleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
265                 int inright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
266                 ParseNode in = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
267                 
268                 ParseNode pn = new ParseNode("policy");
269                 pn.addChild(in);
270                 RESULT = pn;
271         
272               CUP$Parser$result = parser.getSymbolFactory().newSymbol("policy",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
273             }
274           return CUP$Parser$result;
275
276           /*. . . . . . . . . . . . . . . . . . . .*/
277           case 1: // $START ::= policy EOF 
278             {
279               Object RESULT =null;
280                 int start_valleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
281                 int start_valright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
282                 ParseNode start_val = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
283                 RESULT = start_val;
284               CUP$Parser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
285             }
286           /* ACCEPT */
287           CUP$Parser$parser.done_parsing();
288           return CUP$Parser$result;
289
290           /*. . . . . . . . . . . . . . . . . . . .*/
291           case 2: // policy ::= reqlist 
292             {
293               ParseNode RESULT =null;
294                 int rlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
295                 int rlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
296                 ParseNode rl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
297                 
298                 ParseNode pn = new ParseNode("policy");
299                 pn.addChild(rl);
300                 RESULT = pn;
301         
302               CUP$Parser$result = parser.getSymbolFactory().newSymbol("policy",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
303             }
304           return CUP$Parser$result;
305
306           /*. . . . . . . . . . . . . . . . . . . .*/
307           case 3: // intface ::= PUBLIC INTERFACE IDENT BEGIN methlist capablist enumdeclist structdeclist END 
308             {
309               ParseNode RESULT =null;
310                 int idintleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left;
311                 int idintright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).right;
312                 Object idint = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-6)).value;
313                 int mlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
314                 int mlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
315                 ParseNode ml = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
316                 int clleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
317                 int clright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
318                 ParseNode cl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
319                 int elleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
320                 int elright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
321                 ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
322                 int slleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
323                 int slright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
324                 ParseNode sl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
325                 
326                 ParseNode pn = new ParseNode("interface");
327                 pn.addChild("intface_ident").setLiteral(idint);
328                 pn.addChild(ml);
329                 pn.addChild(cl);
330                 pn.addChild(el);
331                 pn.addChild(sl);
332                 RESULT = pn;
333         
334               CUP$Parser$result = parser.getSymbolFactory().newSymbol("intface",1, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-8)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
335             }
336           return CUP$Parser$result;
337
338           /*. . . . . . . . . . . . . . . . . . . .*/
339           case 4: // methlist ::= methlist meth 
340             {
341               ParseNode RESULT =null;
342                 int mlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
343                 int mlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
344                 ParseNode ml = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
345                 int mleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
346                 int mright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
347                 ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
348                 
349                 ml.addChild(m);
350                 RESULT = ml;
351         
352               CUP$Parser$result = parser.getSymbolFactory().newSymbol("methlist",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
353             }
354           return CUP$Parser$result;
355
356           /*. . . . . . . . . . . . . . . . . . . .*/
357           case 5: // methlist ::= 
358             {
359               ParseNode RESULT =null;
360                 
361                 ParseNode pn = new ParseNode("method_list");
362                 RESULT = pn;
363         
364               CUP$Parser$result = parser.getSymbolFactory().newSymbol("methlist",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
365             }
366           return CUP$Parser$result;
367
368           /*. . . . . . . . . . . . . . . . . . . .*/
369           case 6: // meth ::= PUBLIC TYPE IDENT LPAR paramlist RPAR SEMICOLON 
370             {
371               ParseNode RESULT =null;
372                 int typemethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
373                 int typemethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
374                 Object typemeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
375                 int idmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
376                 int idmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
377                 Object idmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
378                 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
379                 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
380                 ParseNode pl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
381                 
382                 ParseNode pn = new ParseNode("method");
383                 pn.addChild("method_type").setLiteral(typemeth);
384                 pn.addChild("method_ident").setLiteral(idmeth);
385                 pn.addChild(pl);
386                 RESULT = pn;
387         
388               CUP$Parser$result = parser.getSymbolFactory().newSymbol("meth",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
389             }
390           return CUP$Parser$result;
391
392           /*. . . . . . . . . . . . . . . . . . . .*/
393           case 7: // meth ::= PUBLIC IDENT IDENT LPAR paramlist RPAR SEMICOLON 
394             {
395               ParseNode RESULT =null;
396                 int clsmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
397                 int clsmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
398                 Object clsmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
399                 int idmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
400                 int idmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
401                 Object idmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
402                 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
403                 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
404                 ParseNode pl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
405                 
406                 ParseNode pn = new ParseNode("method");
407                 pn.addChild("method_class").setLiteral(clsmeth);
408                 pn.addChild("method_ident").setLiteral(idmeth);
409                 pn.addChild(pl);
410                 RESULT = pn;
411         
412               CUP$Parser$result = parser.getSymbolFactory().newSymbol("meth",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
413             }
414           return CUP$Parser$result;
415
416           /*. . . . . . . . . . . . . . . . . . . .*/
417           case 8: // meth ::= PUBLIC IDENT LANG TYPE RANG IDENT LPAR paramlist RPAR SEMICOLON 
418             {
419               ParseNode RESULT =null;
420                 int clsmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-8)).left;
421                 int clsmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-8)).right;
422                 Object clsmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-8)).value;
423                 int typegenleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left;
424                 int typegenright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).right;
425                 Object typegen = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-6)).value;
426                 int idmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
427                 int idmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
428                 Object idmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
429                 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
430                 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
431                 ParseNode pl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
432                 
433                 ParseNode pn = new ParseNode("method");
434                 pn.addChild("method_class").setLiteral((String)clsmeth + "<" + typegen + ">");
435                 pn.addChild("method_ident").setLiteral(idmeth);
436                 pn.addChild(pl);
437                 RESULT = pn;
438         
439               CUP$Parser$result = parser.getSymbolFactory().newSymbol("meth",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-9)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
440             }
441           return CUP$Parser$result;
442
443           /*. . . . . . . . . . . . . . . . . . . .*/
444           case 9: // meth ::= PUBLIC IDENT LANG IDENT RANG IDENT LPAR paramlist RPAR SEMICOLON 
445             {
446               ParseNode RESULT =null;
447                 int clsmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-8)).left;
448                 int clsmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-8)).right;
449                 Object clsmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-8)).value;
450                 int clsgenleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left;
451                 int clsgenright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).right;
452                 Object clsgen = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-6)).value;
453                 int idmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
454                 int idmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
455                 Object idmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
456                 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
457                 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
458                 ParseNode pl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
459                 
460                 ParseNode pn = new ParseNode("method");
461                 pn.addChild("method_class").setLiteral((String)clsmeth + "<" + clsgen + ">");
462                 pn.addChild("method_ident").setLiteral(idmeth);
463                 pn.addChild(pl);
464                 RESULT = pn;
465         
466               CUP$Parser$result = parser.getSymbolFactory().newSymbol("meth",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-9)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
467             }
468           return CUP$Parser$result;
469
470           /*. . . . . . . . . . . . . . . . . . . .*/
471           case 10: // paramlist ::= paramlist param 
472             {
473               ParseNode RESULT =null;
474                 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
475                 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
476                 ParseNode pl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
477                 int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
478                 int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
479                 ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
480                 
481                 pl.addChild(p);
482                 RESULT = pl;
483         
484               CUP$Parser$result = parser.getSymbolFactory().newSymbol("paramlist",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
485             }
486           return CUP$Parser$result;
487
488           /*. . . . . . . . . . . . . . . . . . . .*/
489           case 11: // paramlist ::= 
490             {
491               ParseNode RESULT =null;
492                 
493                 ParseNode pn = new ParseNode("param_list");
494                 RESULT = pn;
495         
496               CUP$Parser$result = parser.getSymbolFactory().newSymbol("paramlist",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
497             }
498           return CUP$Parser$result;
499
500           /*. . . . . . . . . . . . . . . . . . . .*/
501           case 12: // param ::= TYPE IDENT COMMA 
502             {
503               ParseNode RESULT =null;
504                 int typeprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
505                 int typeprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
506                 Object typeprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
507                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
508                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
509                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
510                 
511                 ParseNode pn = new ParseNode("param");
512                 pn.addChild("param_type").setLiteral(typeprm);
513                 pn.addChild("param_ident").setLiteral(idprm);
514                 RESULT = pn;
515         
516               CUP$Parser$result = parser.getSymbolFactory().newSymbol("param",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
517             }
518           return CUP$Parser$result;
519
520           /*. . . . . . . . . . . . . . . . . . . .*/
521           case 13: // param ::= TYPE IDENT 
522             {
523               ParseNode RESULT =null;
524                 int typeprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
525                 int typeprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
526                 Object typeprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
527                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
528                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
529                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
530                 
531                 ParseNode pn = new ParseNode("param");
532                 pn.addChild("param_type").setLiteral(typeprm);
533                 pn.addChild("param_ident").setLiteral(idprm);
534                 RESULT = pn;
535         
536               CUP$Parser$result = parser.getSymbolFactory().newSymbol("param",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
537             }
538           return CUP$Parser$result;
539
540           /*. . . . . . . . . . . . . . . . . . . .*/
541           case 14: // param ::= IDENT IDENT COMMA 
542             {
543               ParseNode RESULT =null;
544                 int clsprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
545                 int clsprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
546                 Object clsprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
547                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
548                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
549                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
550                 
551                 ParseNode pn = new ParseNode("param");
552                 pn.addChild("param_class").setLiteral(clsprm);
553                 pn.addChild("param_ident").setLiteral(idprm);
554                 RESULT = pn;
555         
556               CUP$Parser$result = parser.getSymbolFactory().newSymbol("param",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
557             }
558           return CUP$Parser$result;
559
560           /*. . . . . . . . . . . . . . . . . . . .*/
561           case 15: // param ::= IDENT IDENT 
562             {
563               ParseNode RESULT =null;
564                 int clsprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
565                 int clsprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
566                 Object clsprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
567                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
568                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
569                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
570                 
571                 ParseNode pn = new ParseNode("param");
572                 pn.addChild("param_class").setLiteral(clsprm);
573                 pn.addChild("param_ident").setLiteral(idprm);
574                 RESULT = pn;
575         
576               CUP$Parser$result = parser.getSymbolFactory().newSymbol("param",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
577             }
578           return CUP$Parser$result;
579
580           /*. . . . . . . . . . . . . . . . . . . .*/
581           case 16: // param ::= IDENT LANG TYPE RANG IDENT 
582             {
583               ParseNode RESULT =null;
584                 int clsprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
585                 int clsprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
586                 Object clsprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
587                 int typegenleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
588                 int typegenright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
589                 Object typegen = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
590                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
591                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
592                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
593                 
594                 ParseNode pn = new ParseNode("param");
595                 pn.addChild("param_class").setLiteral((String)clsprm + "<" + typegen + ">");
596                 pn.addChild("param_ident").setLiteral(idprm);
597                 RESULT = pn;
598         
599               CUP$Parser$result = parser.getSymbolFactory().newSymbol("param",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
600             }
601           return CUP$Parser$result;
602
603           /*. . . . . . . . . . . . . . . . . . . .*/
604           case 17: // param ::= IDENT LANG IDENT RANG IDENT 
605             {
606               ParseNode RESULT =null;
607                 int clsprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
608                 int clsprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
609                 Object clsprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
610                 int clsgenleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
611                 int clsgenright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
612                 Object clsgen = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
613                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
614                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
615                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
616                 
617                 ParseNode pn = new ParseNode("param");
618                 pn.addChild("param_class").setLiteral((String)clsprm + "<" + clsgen + ">");
619                 pn.addChild("param_ident").setLiteral(idprm);
620                 RESULT = pn;
621         
622               CUP$Parser$result = parser.getSymbolFactory().newSymbol("param",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
623             }
624           return CUP$Parser$result;
625
626           /*. . . . . . . . . . . . . . . . . . . .*/
627           case 18: // param ::= IDENT LANG TYPE RANG IDENT COMMA 
628             {
629               ParseNode RESULT =null;
630                 int clsprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
631                 int clsprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
632                 Object clsprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
633                 int typegenleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
634                 int typegenright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
635                 Object typegen = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
636                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
637                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
638                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
639                 
640                 ParseNode pn = new ParseNode("param");
641                 pn.addChild("param_class").setLiteral((String)clsprm + "<" + typegen + ">");
642                 pn.addChild("param_ident").setLiteral(idprm);
643                 RESULT = pn;
644         
645               CUP$Parser$result = parser.getSymbolFactory().newSymbol("param",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
646             }
647           return CUP$Parser$result;
648
649           /*. . . . . . . . . . . . . . . . . . . .*/
650           case 19: // param ::= IDENT LANG IDENT RANG IDENT COMMA 
651             {
652               ParseNode RESULT =null;
653                 int clsprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
654                 int clsprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
655                 Object clsprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
656                 int clsgenleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
657                 int clsgenright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
658                 Object clsgen = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
659                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
660                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
661                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
662                 
663                 ParseNode pn = new ParseNode("param");
664                 pn.addChild("param_class").setLiteral((String)clsprm + "<" + clsgen + ">");
665                 pn.addChild("param_ident").setLiteral(idprm);
666                 RESULT = pn;
667         
668               CUP$Parser$result = parser.getSymbolFactory().newSymbol("param",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
669             }
670           return CUP$Parser$result;
671
672           /*. . . . . . . . . . . . . . . . . . . .*/
673           case 20: // capablist ::= capablist capab 
674             {
675               ParseNode RESULT =null;
676                 int clleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
677                 int clright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
678                 ParseNode cl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
679                 int capleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
680                 int capright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
681                 ParseNode cap = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
682                 
683                 cl.addChild(cap);
684                 RESULT = cl;
685         
686               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capablist",7, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
687             }
688           return CUP$Parser$result;
689
690           /*. . . . . . . . . . . . . . . . . . . .*/
691           case 21: // capablist ::= 
692             {
693               ParseNode RESULT =null;
694                 
695                 ParseNode pn = new ParseNode("capab_list");
696                 RESULT = pn;
697         
698               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capablist",7, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
699             }
700           return CUP$Parser$result;
701
702           /*. . . . . . . . . . . . . . . . . . . .*/
703           case 22: // capab ::= CAPABILITY IDENT BEGIN capabcont END 
704             {
705               ParseNode RESULT =null;
706                 int idcapleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
707                 int idcapright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
708                 Object idcap = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
709                 int ccontleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
710                 int ccontright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
711                 ParseNode ccont = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
712                 
713                 ParseNode pn = new ParseNode("capability");
714                 pn.addChild("capab_ident").setLiteral(idcap);
715                 pn.addChild(ccont);
716                 RESULT = pn;
717         
718               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capab",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
719             }
720           return CUP$Parser$result;
721
722           /*. . . . . . . . . . . . . . . . . . . .*/
723           case 23: // capabcont ::= capabcont cont 
724             {
725               ParseNode RESULT =null;
726                 int ccontleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
727                 int ccontright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
728                 ParseNode ccont = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
729                 int cntleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
730                 int cntright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
731                 ParseNode cnt = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
732                 
733                 ccont.addChild(cnt);
734                 RESULT = ccont;
735         
736               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capabcont",9, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
737             }
738           return CUP$Parser$result;
739
740           /*. . . . . . . . . . . . . . . . . . . .*/
741           case 24: // capabcont ::= 
742             {
743               ParseNode RESULT =null;
744                 
745                 ParseNode pn = new ParseNode("capab_content");
746                 RESULT = pn;
747         
748               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capabcont",9, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
749             }
750           return CUP$Parser$result;
751
752           /*. . . . . . . . . . . . . . . . . . . .*/
753           case 25: // cont ::= DESCRIPTION ASSIGN STRINGCONST SEMICOLON 
754             {
755               ParseNode RESULT =null;
756                 int dscleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
757                 int dscright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
758                 Object dsc = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
759                 int strdscleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
760                 int strdscright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
761                 Object strdsc = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
762                 
763                 ParseNode pn = new ParseNode("capab_content");
764                 pn.addChild("capab_desc").setLiteral(strdsc);
765                 RESULT = pn;
766         
767               CUP$Parser$result = parser.getSymbolFactory().newSymbol("cont",10, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
768             }
769           return CUP$Parser$result;
770
771           /*. . . . . . . . . . . . . . . . . . . .*/
772           case 26: // cont ::= METHOD ASSIGN STRINGCONST SEMICOLON 
773             {
774               ParseNode RESULT =null;
775                 int mtdleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
776                 int mtdright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
777                 Object mtd = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
778                 int strmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
779                 int strmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
780                 Object strmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
781                 
782                 ParseNode pn = new ParseNode("capab_content");
783                 pn.addChild("capab_meth").setLiteral(strmeth);
784                 RESULT = pn;
785         
786               CUP$Parser$result = parser.getSymbolFactory().newSymbol("cont",10, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
787             }
788           return CUP$Parser$result;
789
790           /*. . . . . . . . . . . . . . . . . . . .*/
791           case 27: // reqlist ::= reqlist require 
792             {
793               ParseNode RESULT =null;
794                 int rlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
795                 int rlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
796                 ParseNode rl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
797                 int reqleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
798                 int reqright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
799                 ParseNode req = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
800                 
801                 rl.addChild(req);
802                 RESULT = rl;
803         
804               CUP$Parser$result = parser.getSymbolFactory().newSymbol("reqlist",11, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
805             }
806           return CUP$Parser$result;
807
808           /*. . . . . . . . . . . . . . . . . . . .*/
809           case 28: // reqlist ::= 
810             {
811               ParseNode RESULT =null;
812                 
813                 ParseNode pn = new ParseNode("reqlist");
814                 RESULT = pn;
815         
816               CUP$Parser$result = parser.getSymbolFactory().newSymbol("reqlist",11, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
817             }
818           return CUP$Parser$result;
819
820           /*. . . . . . . . . . . . . . . . . . . .*/
821           case 29: // require ::= REQUIRES IDENT WITH capintlist AS INTERFACE IDENT SEMICOLON 
822             {
823               ParseNode RESULT =null;
824                 int idintleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left;
825                 int idintright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).right;
826                 Object idint = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-6)).value;
827                 int cilleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
828                 int cilright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
829                 ParseNode cil = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
830                 int idnewintleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
831                 int idnewintright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
832                 Object idnewint = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
833                 
834                 ParseNode pn = new ParseNode("requires");
835                 pn.addChild("intface_ident").setLiteral(idint);
836                 pn.addChild(cil);
837                 pn.addChild("new_intface_ident").setLiteral(idnewint);
838                 RESULT = pn;
839         
840               CUP$Parser$result = parser.getSymbolFactory().newSymbol("require",12, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-7)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
841             }
842           return CUP$Parser$result;
843
844           /*. . . . . . . . . . . . . . . . . . . .*/
845           case 30: // capintlist ::= IDENT 
846             {
847               ParseNode RESULT =null;
848                 int idcapleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
849                 int idcapright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
850                 Object idcap = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
851                 
852                 ParseNode pn = new ParseNode("capab_ident_list");
853                 pn.addChild("capab_ident").setLiteral(idcap);
854                 RESULT = pn;
855         
856               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capintlist",13, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
857             }
858           return CUP$Parser$result;
859
860           /*. . . . . . . . . . . . . . . . . . . .*/
861           case 31: // capintlist ::= capintlist COMMA IDENT 
862             {
863               ParseNode RESULT =null;
864                 int cilleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
865                 int cilright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
866                 ParseNode cil = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
867                 int idcapleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
868                 int idcapright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
869                 Object idcap = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
870                 
871                 cil.addChild("capab_ident").setLiteral(idcap);
872                 RESULT = cil;
873         
874               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capintlist",13, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
875             }
876           return CUP$Parser$result;
877
878           /*. . . . . . . . . . . . . . . . . . . .*/
879           case 32: // capintlist ::= 
880             {
881               ParseNode RESULT =null;
882                 
883                 ParseNode pn = new ParseNode("capab_ident_list");
884                 RESULT = pn;
885         
886               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capintlist",13, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
887             }
888           return CUP$Parser$result;
889
890           /*. . . . . . . . . . . . . . . . . . . .*/
891           case 33: // enumdeclist ::= enumdeclist enumdec 
892             {
893               ParseNode RESULT =null;
894                 int elleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
895                 int elright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
896                 ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
897                 int edleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
898                 int edright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
899                 ParseNode ed = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
900                 
901                 el.addChild(ed);
902                 RESULT = el;
903         
904               CUP$Parser$result = parser.getSymbolFactory().newSymbol("enumdeclist",14, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
905             }
906           return CUP$Parser$result;
907
908           /*. . . . . . . . . . . . . . . . . . . .*/
909           case 34: // enumdeclist ::= 
910             {
911               ParseNode RESULT =null;
912                 
913                 ParseNode pn = new ParseNode("enum_dec_list");
914                 RESULT = pn;
915         
916               CUP$Parser$result = parser.getSymbolFactory().newSymbol("enumdeclist",14, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
917             }
918           return CUP$Parser$result;
919
920           /*. . . . . . . . . . . . . . . . . . . .*/
921           case 35: // enumdec ::= ENUM IDENT BEGIN enumlist END 
922             {
923               ParseNode RESULT =null;
924                 int idenumdecleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
925                 int idenumdecright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
926                 Object idenumdec = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
927                 int elleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
928                 int elright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
929                 ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
930                 
931                 ParseNode pn = new ParseNode("enum_dec");
932                 pn.addChild("enum_dec_ident").setLiteral(idenumdec);
933                 pn.addChild(el);
934                 RESULT = pn;
935         
936               CUP$Parser$result = parser.getSymbolFactory().newSymbol("enumdec",15, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
937             }
938           return CUP$Parser$result;
939
940           /*. . . . . . . . . . . . . . . . . . . .*/
941           case 36: // enumlist ::= enumlist enummem 
942             {
943               ParseNode RESULT =null;
944                 int elleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
945                 int elright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
946                 ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
947                 int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
948                 int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
949                 ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
950                 
951                 el.addChild(e);
952                 RESULT = el;
953         
954               CUP$Parser$result = parser.getSymbolFactory().newSymbol("enumlist",16, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
955             }
956           return CUP$Parser$result;
957
958           /*. . . . . . . . . . . . . . . . . . . .*/
959           case 37: // enumlist ::= 
960             {
961               ParseNode RESULT =null;
962                 
963                 ParseNode pn = new ParseNode("enum_list");
964                 RESULT = pn;
965         
966               CUP$Parser$result = parser.getSymbolFactory().newSymbol("enumlist",16, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
967             }
968           return CUP$Parser$result;
969
970           /*. . . . . . . . . . . . . . . . . . . .*/
971           case 38: // enummem ::= IDENT COMMA 
972             {
973               ParseNode RESULT =null;
974                 int idenumleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
975                 int idenumright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
976                 Object idenum = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
977                 
978                 ParseNode pn = new ParseNode("enum_mem");
979                 pn.addChild("enum_ident").setLiteral(idenum);
980                 RESULT = pn;
981         
982               CUP$Parser$result = parser.getSymbolFactory().newSymbol("enummem",17, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
983             }
984           return CUP$Parser$result;
985
986           /*. . . . . . . . . . . . . . . . . . . .*/
987           case 39: // enummem ::= IDENT 
988             {
989               ParseNode RESULT =null;
990                 int idenumleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
991                 int idenumright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
992                 Object idenum = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
993                 
994                 ParseNode pn = new ParseNode("enum_mem");
995                 pn.addChild("enum_ident").setLiteral(idenum);
996                 RESULT = pn;
997         
998               CUP$Parser$result = parser.getSymbolFactory().newSymbol("enummem",17, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
999             }
1000           return CUP$Parser$result;
1001
1002           /*. . . . . . . . . . . . . . . . . . . .*/
1003           case 40: // structdeclist ::= structdeclist structdec 
1004             {
1005               ParseNode RESULT =null;
1006                 int slleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
1007                 int slright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
1008                 ParseNode sl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
1009                 int sdleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
1010                 int sdright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
1011                 ParseNode sd = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
1012                 
1013                 sl.addChild(sd);
1014                 RESULT = sl;
1015         
1016               CUP$Parser$result = parser.getSymbolFactory().newSymbol("structdeclist",18, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
1017             }
1018           return CUP$Parser$result;
1019
1020           /*. . . . . . . . . . . . . . . . . . . .*/
1021           case 41: // structdeclist ::= 
1022             {
1023               ParseNode RESULT =null;
1024                 
1025                 ParseNode pn = new ParseNode("struct_dec_list");
1026                 RESULT = pn;
1027         
1028               CUP$Parser$result = parser.getSymbolFactory().newSymbol("structdeclist",18, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
1029             }
1030           return CUP$Parser$result;
1031
1032           /*. . . . . . . . . . . . . . . . . . . .*/
1033           case 42: // structdec ::= STRUCT IDENT BEGIN structlist END 
1034             {
1035               ParseNode RESULT =null;
1036                 int idstructdecleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
1037                 int idstructdecright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
1038                 Object idstructdec = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
1039                 int slleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
1040                 int slright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
1041                 ParseNode sl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
1042                 
1043                 ParseNode pn = new ParseNode("struct_dec");
1044                 pn.addChild("struct_dec_ident").setLiteral(idstructdec);
1045                 pn.addChild(sl);
1046                 RESULT = pn;
1047         
1048               CUP$Parser$result = parser.getSymbolFactory().newSymbol("structdec",19, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
1049             }
1050           return CUP$Parser$result;
1051
1052           /*. . . . . . . . . . . . . . . . . . . .*/
1053           case 43: // structlist ::= structlist structmem 
1054             {
1055               ParseNode RESULT =null;
1056                 int slleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
1057                 int slright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
1058                 ParseNode sl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
1059                 int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
1060                 int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
1061                 ParseNode s = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
1062                 
1063                 sl.addChild(s);
1064                 RESULT = sl;
1065         
1066               CUP$Parser$result = parser.getSymbolFactory().newSymbol("structlist",20, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
1067             }
1068           return CUP$Parser$result;
1069
1070           /*. . . . . . . . . . . . . . . . . . . .*/
1071           case 44: // structlist ::= 
1072             {
1073               ParseNode RESULT =null;
1074                 
1075                 ParseNode pn = new ParseNode("struct_list");
1076                 RESULT = pn;
1077         
1078               CUP$Parser$result = parser.getSymbolFactory().newSymbol("structlist",20, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
1079             }
1080           return CUP$Parser$result;
1081
1082           /*. . . . . . . . . . . . . . . . . . . .*/
1083           case 45: // structmem ::= TYPE IDENT SEMICOLON 
1084             {
1085               ParseNode RESULT =null;
1086                 int typestrleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
1087                 int typestrright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
1088                 Object typestr = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
1089                 int idstrleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
1090                 int idstrright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
1091                 Object idstr = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
1092                 
1093                 ParseNode pn = new ParseNode("struct_mem");
1094                 pn.addChild("struct_type").setLiteral(typestr);
1095                 pn.addChild("struct_ident").setLiteral(idstr);
1096                 RESULT = pn;
1097         
1098               CUP$Parser$result = parser.getSymbolFactory().newSymbol("structmem",21, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
1099             }
1100           return CUP$Parser$result;
1101
1102           /*. . . . . . . . . . . . . . . . . . . .*/
1103           case 46: // structmem ::= IDENT IDENT SEMICOLON 
1104             {
1105               ParseNode RESULT =null;
1106                 int clsstrleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
1107                 int clsstrright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
1108                 Object clsstr = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
1109                 int idstrleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
1110                 int idstrright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
1111                 Object idstr = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
1112                 
1113                 ParseNode pn = new ParseNode("struct_mem");
1114                 pn.addChild("struct_class").setLiteral(clsstr);
1115                 pn.addChild("struct_ident").setLiteral(idstr);
1116                 RESULT = pn;
1117         
1118               CUP$Parser$result = parser.getSymbolFactory().newSymbol("structmem",21, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
1119             }
1120           return CUP$Parser$result;
1121
1122           /*. . . . . . . . . . . . . . . . . . . .*/
1123           case 47: // structmem ::= IDENT LANG IDENT RANG IDENT SEMICOLON 
1124             {
1125               ParseNode RESULT =null;
1126                 int clsstrleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
1127                 int clsstrright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
1128                 Object clsstr = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
1129                 int clsgenleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
1130                 int clsgenright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
1131                 Object clsgen = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
1132                 int idstrleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
1133                 int idstrright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
1134                 Object idstr = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
1135                 
1136                 ParseNode pn = new ParseNode("struct_mem");
1137                 pn.addChild("struct_class").setLiteral((String)clsstr + "<" + clsgen + ">");
1138                 pn.addChild("struct_ident").setLiteral(idstr);
1139                 RESULT = pn;
1140         
1141               CUP$Parser$result = parser.getSymbolFactory().newSymbol("structmem",21, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
1142             }
1143           return CUP$Parser$result;
1144
1145           /* . . . . . .*/
1146           default:
1147             throw new Exception(
1148                "Invalid action number "+CUP$Parser$act_num+"found in internal parse table");
1149
1150         }
1151     } /* end of method */
1152
1153   /** Method splitting the generated action code into several parts. */
1154   public final java_cup.runtime.Symbol CUP$Parser$do_action(
1155     int                        CUP$Parser$act_num,
1156     java_cup.runtime.lr_parser CUP$Parser$parser,
1157     java.util.Stack            CUP$Parser$stack,
1158     int                        CUP$Parser$top)
1159     throws java.lang.Exception
1160     {
1161               return CUP$Parser$do_action_part00000000(
1162                                CUP$Parser$act_num,
1163                                CUP$Parser$parser,
1164                                CUP$Parser$stack,
1165                                CUP$Parser$top);
1166     }
1167 }
1168
1169 }