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