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