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