f06a0b98856ccbf4e52b761201c144bea5ebcd1a
[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 import iotpolicy.tree.ParseNodeVector;
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\032\000\002\002\005\000\002\002\004\000\002\003" +
44     "\010\000\002\003\002\000\002\004\004\000\002\004\002" +
45     "\000\002\005\011\000\002\006\004\000\002\006\002\000" +
46     "\002\007\005\000\002\007\004\000\002\007\005\000\002" +
47     "\007\004\000\002\010\004\000\002\010\002\000\002\011" +
48     "\011\000\002\012\004\000\002\012\002\000\002\013\006" +
49     "\000\002\013\006\000\002\014\004\000\002\014\002\000" +
50     "\002\015\012\000\002\016\003\000\002\016\005\000\002" +
51     "\016\002" });
52
53   /** Access to production table. */
54   public short[][] production_table() {return _production_table;}
55
56   /** Parse-action table. */
57   protected static final short[][] _action_table = 
58     unpackFromStrings(new String[] {
59     "\000\070\000\012\002\ufffe\014\005\016\ufffe\021\ufffe\001" +
60     "\002\000\010\002\ufff3\016\ufff3\021\ufff3\001\002\000\004" +
61     "\015\010\001\002\000\004\002\007\001\002\000\004\002" +
62     "\000\001\002\000\004\025\011\001\002\000\004\011\012" +
63     "\001\002\000\006\012\ufffc\014\ufffc\001\002\000\006\012" +
64     "\016\014\015\001\002\000\006\012\ufffd\014\ufffd\001\002" +
65     "\000\004\024\017\001\002\000\010\002\uffff\016\uffff\021" +
66     "\uffff\001\002\000\004\025\020\001\002\000\004\007\021" +
67     "\001\002\000\010\010\ufff9\024\ufff9\025\ufff9\001\002\000" +
68     "\010\010\025\024\026\025\023\001\002\000\004\025\032" +
69     "\001\002\000\010\010\ufffa\024\ufffa\025\ufffa\001\002\000" +
70     "\004\004\031\001\002\000\004\025\027\001\002\000\012" +
71     "\005\030\010\ufff7\024\ufff7\025\ufff7\001\002\000\010\010" +
72     "\ufff8\024\ufff8\025\ufff8\001\002\000\006\012\ufffb\014\ufffb" +
73     "\001\002\000\012\005\033\010\ufff5\024\ufff5\025\ufff5\001" +
74     "\002\000\010\010\ufff6\024\ufff6\025\ufff6\001\002\000\010" +
75     "\002\uffec\016\037\021\uffec\001\002\000\010\002\ufff4\016" +
76     "\ufff4\021\ufff4\001\002\000\006\002\001\021\057\001\002" +
77     "\000\004\025\040\001\002\000\004\006\041\001\002\000" +
78     "\004\025\042\001\002\000\004\011\043\001\002\000\010" +
79     "\012\ufff0\017\ufff0\020\ufff0\001\002\000\010\012\047\017" +
80     "\046\020\050\001\002\000\010\012\ufff1\017\ufff1\020\ufff1" +
81     "\001\002\000\004\013\054\001\002\000\010\002\ufff2\016" +
82     "\ufff2\021\ufff2\001\002\000\004\013\051\001\002\000\004" +
83     "\025\052\001\002\000\004\004\053\001\002\000\010\012" +
84     "\uffee\017\uffee\020\uffee\001\002\000\004\026\055\001\002" +
85     "\000\004\004\056\001\002\000\010\012\uffef\017\uffef\020" +
86     "\uffef\001\002\000\004\025\061\001\002\000\006\002\uffed" +
87     "\021\uffed\001\002\000\004\022\062\001\002\000\010\005" +
88     "\uffe8\023\uffe8\025\063\001\002\000\006\005\uffea\023\uffea" +
89     "\001\002\000\006\005\065\023\066\001\002\000\004\025" +
90     "\072\001\002\000\004\015\067\001\002\000\004\025\070" +
91     "\001\002\000\004\004\071\001\002\000\006\002\uffeb\021" +
92     "\uffeb\001\002\000\006\005\uffe9\023\uffe9\001\002" });
93
94   /** Access to parse-action table. */
95   public short[][] action_table() {return _action_table;}
96
97   /** <code>reduce_goto</code> table. */
98   protected static final short[][] _reduce_table = 
99     unpackFromStrings(new String[] {
100     "\000\070\000\006\002\005\003\003\001\001\000\004\010" +
101     "\033\001\001\000\002\001\001\000\002\001\001\000\002" +
102     "\001\001\000\002\001\001\000\002\001\001\000\004\004" +
103     "\012\001\001\000\004\005\013\001\001\000\002\001\001" +
104     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
105     "\002\001\001\000\004\006\021\001\001\000\004\007\023" +
106     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
107     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
108     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
109     "\006\011\034\014\035\001\001\000\002\001\001\000\004" +
110     "\015\057\001\001\000\002\001\001\000\002\001\001\000" +
111     "\002\001\001\000\002\001\001\000\004\012\043\001\001" +
112     "\000\004\013\044\001\001\000\002\001\001\000\002\001" +
113     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
114     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
115     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
116     "\001\001\000\002\001\001\000\004\016\063\001\001\000" +
117     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
118     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
119     "\001\000\002\001\001" });
120
121   /** Access to <code>reduce_goto</code> table. */
122   public short[][] reduce_table() {return _reduce_table;}
123
124   /** Instance of action encapsulation class. */
125   protected CUP$Parser$actions action_obj;
126
127   /** Action encapsulation object initializer. */
128   protected void init_actions()
129     {
130       action_obj = new CUP$Parser$actions(this);
131     }
132
133   /** Invoke a user supplied parse action. */
134   public java_cup.runtime.Symbol do_action(
135     int                        act_num,
136     java_cup.runtime.lr_parser parser,
137     java.util.Stack            stack,
138     int                        top)
139     throws java.lang.Exception
140   {
141     /* call code in generated class */
142     return action_obj.CUP$Parser$do_action(act_num, parser, stack, top);
143   }
144
145   /** Indicates start state. */
146   public int start_state() {return 0;}
147   /** Indicates start production. */
148   public int start_production() {return 1;}
149
150   /** <code>EOF</code> Symbol index. */
151   public int EOF_sym() {return 0;}
152
153   /** <code>error</code> Symbol index. */
154   public int error_sym() {return 1;}
155
156
157
158   public Parser(Lexer lex, ComplexSymbolFactory sf) {
159     super(lex,sf);
160   }
161   public static void main(String[] args) throws Exception {
162       // initialize the symbol factory
163       ComplexSymbolFactory csf = new ComplexSymbolFactory();
164       // create a buffering scanner wrapper
165       ScannerBuffer lexer = new ScannerBuffer(new Lexer(new BufferedReader(new FileReader(args[0])),csf));
166       // start parsing
167       Parser p = new Parser(lexer,csf);
168       ParseNode pn = (ParseNode) p.parse().value;
169
170       //System.out.println("INTERFACE: ");
171       System.out.println(pn);
172       ParseNodeVector pnv = pn.getChildren();
173       /*System.out.println("Children: " + pnv.size());
174       ParseNode pnIntChild = pnv.elementAt(0);
175       System.out.println("Child 1: " + pnIntChild.getLabel());
176       System.out.println("Child 1: " + pnIntChild.getLiteral());
177       System.out.println();
178
179       ParseNodeVector pnIntChildren = pnIntChild.getChildren();
180       System.out.println("Grand children: " + pnIntChildren.size());
181       ParseNode pnIntGrandChild1 = pnIntChildren.elementAt(0);
182       System.out.println("Child 1: " + pnIntGrandChild1.getLabel());
183       System.out.println("Child 1: " + pnIntGrandChild1.getLiteral());
184       System.out.println("Great grand children: " + pnIntGrandChild1.getChildren().size());
185       System.out.println();
186
187       ParseNode pnIntGrandChild2 = pnIntChildren.elementAt(1);
188       System.out.println("Child 2: " + pnIntGrandChild2.getLabel());
189       System.out.println("Child 2: " + pnIntGrandChild2.getLiteral());
190       System.out.println("Great grand children: " + pnIntGrandChild2.getChildren().size());
191       System.out.println();
192       System.out.println();*/
193
194       System.out.println("CAPABILITIES: ");
195       ParseNode pnCapabChild = pnv.elementAt(1);
196       System.out.println("Child 2: " + pnv.elementAt(1).getLabel());
197       System.out.println("Child 2: " + pnv.elementAt(1).getLiteral());
198       ParseNodeVector pnvCap = pnCapabChild.getChildren();
199       System.out.println("Grand children: " + pnvCap.size());
200       ParseNode pnCapGrandChild1 = pnvCap.elementAt(0);
201       System.out.println("Child 1: " + pnCapGrandChild1.getLabel());
202       System.out.println("Child 1: " + pnCapGrandChild1.getLiteral());
203       ParseNodeVector pnvCap2 = pnCapGrandChild1.getChildren();
204       System.out.println("Great grand children: " + pnvCap2.size());
205       ParseNode pnCapGreatGrandChild1 = pnvCap2.elementAt(0);
206       System.out.println("Great grand Child 1: " + pnCapGreatGrandChild1.getLabel());
207       System.out.println("Great grand Child 1: " + pnCapGreatGrandChild1.getLiteral());
208       ParseNode pnCapGreatGrandChild2 = pnvCap2.elementAt(1);
209       System.out.println("Great grand Child 2: " + pnCapGreatGrandChild2.getLabel());
210       System.out.println("Great grand Child 2: " + pnCapGreatGrandChild2.getLiteral());
211       ParseNode pnCapGreatGrandChild3 = pnvCap2.elementAt(2);
212       System.out.println("Great grand Child 3: " + pnCapGreatGrandChild3.getLabel());
213       System.out.println("Great grand Child 3: " + pnCapGreatGrandChild3.getLiteral());
214       ParseNodeVector pnvCap3 = pnCapGreatGrandChild3.getChildren();
215       System.out.println("Great great grand children: " + pnvCap3.size());
216       ParseNode pnCapGreatGreatGrandChild1 = pnvCap3.elementAt(0);
217       System.out.println("Great great grand Child 1: " + pnCapGreatGreatGrandChild1.getLabel());
218       System.out.println("Great great grand Child 1: " + pnCapGreatGreatGrandChild1.getLiteral());
219       ParseNodeVector pnvDesc = pnCapGreatGreatGrandChild1.getChildren();
220       System.out.println("Great great great grand children: " + pnvDesc.size());
221       ParseNode pnDesc = pnvDesc.elementAt(0);
222       System.out.println("Description: " + pnDesc.getLabel());
223       System.out.println("Description: " + pnDesc.getLiteral());
224
225
226       ParseNode pnCapGreatGreatGrandChild2 = pnvCap3.elementAt(1);
227       System.out.println("Great great grand Child 2: " + pnCapGreatGreatGrandChild2.getLabel());
228       System.out.println("Great great grand Child 2: " + pnCapGreatGreatGrandChild2.getLiteral());
229       ParseNode pnCapGreatGreatGrandChild3 = pnvCap3.elementAt(2);
230       System.out.println("Great great grand Child 3: " + pnCapGreatGreatGrandChild3.getLabel());
231       System.out.println("Great great grand Child 3: " + pnCapGreatGreatGrandChild3.getLiteral());
232       ParseNode pnCapGreatGreatGrandChild4 = pnvCap3.elementAt(3);
233       System.out.println("Great great grand Child 4: " + pnCapGreatGreatGrandChild4.getLabel());
234       System.out.println("Great great grand Child 4: " + pnCapGreatGreatGrandChild4.getLiteral());
235
236       System.out.println();
237
238       /*System.out.println("REQUIRES: ");
239       ParseNode pnReqChild = pnv.elementAt(2);
240       System.out.println("Child 3: " + pnv.elementAt(2).getLabel());
241       System.out.println("Child 3: " + pnv.elementAt(2).getLiteral());
242       ParseNodeVector pnvReq = pnReqChild.getChildren();
243       System.out.println("Grand children: " + pnvReq.size());
244       ParseNode pnReqGrandChild = pnvReq.elementAt(0);
245       System.out.println("Grand Child 1: " + pnReqGrandChild.getLabel());
246       System.out.println("Grand Child 1: " + pnReqGrandChild.getLiteral());
247       ParseNodeVector pnvReqGrand = pnReqGrandChild.getChildren();
248       System.out.println("Grand children: " + pnvReqGrand.size());
249       ParseNode pnReqGreatGrandChild = pnvReqGrand.elementAt(0);
250       System.out.println("Great grand Child 1: " + pnReqGreatGrandChild.getLabel());
251       System.out.println("Great grand Child 1: " + pnReqGreatGrandChild.getLiteral());
252       ParseNode pnReqGreatGrandChild2 = pnvReqGrand.elementAt(1);
253       System.out.println("Great grand Child 2: " + pnReqGreatGrandChild2.getLabel());
254       System.out.println("Great grand Child 2: " + pnReqGreatGrandChild2.getLiteral());
255       ParseNodeVector pnvCapList = pnReqGreatGrandChild2.getChildren();
256       System.out.println("Grand children: " + pnvCapList.size());
257       ParseNode pnReqGreatGreatGrandChild2 = pnvCapList.elementAt(0);
258       System.out.println("Great great grand Child 2: " + pnReqGreatGreatGrandChild2.getLabel());
259       System.out.println("Great great grand Child 2: " + pnReqGreatGreatGrandChild2.getLiteral());
260
261       ParseNode pnReqGreatGrandChild3 = pnvReqGrand.elementAt(2);
262       System.out.println("Great grand Child 3: " + pnReqGreatGrandChild3.getLabel());
263       System.out.println("Great grand Child 3: " + pnReqGreatGrandChild3.getLiteral());
264
265
266       //ParseNodeVector pnvReqGreatGrand = pnReqGreatGrandChild2.getChildren();
267       //System.out.println("Grand children: " + pnvReqGreatGrand.size());
268       System.out.println();*/
269
270   }
271
272
273 /** Cup generated class to encapsulate user supplied action code.*/
274 @SuppressWarnings({"rawtypes", "unchecked", "unused"})
275 class CUP$Parser$actions {
276   private final Parser parser;
277
278   /** Constructor */
279   CUP$Parser$actions(Parser parser) {
280     this.parser = parser;
281   }
282
283   /** Method 0 with the actual generated action code for actions 0 to 300. */
284   public final java_cup.runtime.Symbol CUP$Parser$do_action_part00000000(
285     int                        CUP$Parser$act_num,
286     java_cup.runtime.lr_parser CUP$Parser$parser,
287     java.util.Stack            CUP$Parser$stack,
288     int                        CUP$Parser$top)
289     throws java.lang.Exception
290     {
291       /* Symbol object for return from actions */
292       java_cup.runtime.Symbol CUP$Parser$result;
293
294       /* select the action based on the action number */
295       switch (CUP$Parser$act_num)
296         {
297           /*. . . . . . . . . . . . . . . . . . . .*/
298           case 0: // policy ::= intface capablist reqlist 
299             {
300               ParseNode RESULT =null;
301                 int inleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
302                 int inright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
303                 ParseNode in = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
304                 int capleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
305                 int capright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
306                 ParseNode cap = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
307                 int rlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
308                 int rlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
309                 ParseNode rl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
310                 
311                 ParseNode pn = new ParseNode("policy");
312                 pn.addChild(in);
313                 pn.addChild(cap);
314                 pn.addChild(rl);
315                 RESULT = pn;
316         
317               CUP$Parser$result = parser.getSymbolFactory().newSymbol("policy",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
318             }
319           return CUP$Parser$result;
320
321           /*. . . . . . . . . . . . . . . . . . . .*/
322           case 1: // $START ::= policy EOF 
323             {
324               Object RESULT =null;
325                 int start_valleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
326                 int start_valright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
327                 ParseNode start_val = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
328                 RESULT = start_val;
329               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);
330             }
331           /* ACCEPT */
332           CUP$Parser$parser.done_parsing();
333           return CUP$Parser$result;
334
335           /*. . . . . . . . . . . . . . . . . . . .*/
336           case 2: // intface ::= PUBLIC INTERFACE IDENT BEGIN methlist END 
337             {
338               ParseNode RESULT =null;
339                 int idintleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
340                 int idintright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
341                 Object idint = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
342                 int mlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
343                 int mlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
344                 ParseNode ml = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
345                 
346                 ParseNode pn = new ParseNode("interface");
347                 pn.addChild("intface_ident").setLiteral(idint);
348                 pn.addChild(ml);
349                 RESULT = pn;
350         
351               CUP$Parser$result = parser.getSymbolFactory().newSymbol("intface",1, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
352             }
353           return CUP$Parser$result;
354
355           /*. . . . . . . . . . . . . . . . . . . .*/
356           case 3: // intface ::= 
357             {
358               ParseNode RESULT =null;
359                 
360                 ParseNode pn = new ParseNode("interface");
361                 RESULT = pn;
362         
363               CUP$Parser$result = parser.getSymbolFactory().newSymbol("intface",1, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
364             }
365           return CUP$Parser$result;
366
367           /*. . . . . . . . . . . . . . . . . . . .*/
368           case 4: // methlist ::= methlist meth 
369             {
370               ParseNode RESULT =null;
371                 int mlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
372                 int mlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
373                 ParseNode ml = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
374                 int mleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
375                 int mright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
376                 ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
377                 
378                 ml.addChild(m);
379                 RESULT = ml;
380         
381               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);
382             }
383           return CUP$Parser$result;
384
385           /*. . . . . . . . . . . . . . . . . . . .*/
386           case 5: // methlist ::= 
387             {
388               ParseNode RESULT =null;
389                 
390                 ParseNode pn = new ParseNode("method_list");
391                 RESULT = pn;
392         
393               CUP$Parser$result = parser.getSymbolFactory().newSymbol("methlist",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
394             }
395           return CUP$Parser$result;
396
397           /*. . . . . . . . . . . . . . . . . . . .*/
398           case 6: // meth ::= PUBLIC TYPE IDENT LPAR paramlist RPAR SEMICOLON 
399             {
400               ParseNode RESULT =null;
401                 int typemethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
402                 int typemethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
403                 Object typemeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
404                 int idmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
405                 int idmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
406                 Object idmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
407                 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
408                 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
409                 ParseNode pl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
410                 
411                 ParseNode pn = new ParseNode("method");
412                 pn.addChild("method_type").setLiteral(typemeth);
413                 pn.addChild("method_ident").setLiteral(idmeth);
414                 pn.addChild(pl);
415                 RESULT = pn;
416         
417               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);
418             }
419           return CUP$Parser$result;
420
421           /*. . . . . . . . . . . . . . . . . . . .*/
422           case 7: // paramlist ::= paramlist param 
423             {
424               ParseNode RESULT =null;
425                 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
426                 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
427                 ParseNode pl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
428                 int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
429                 int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
430                 ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
431                 
432                 pl.addChild(p);
433                 RESULT = pl;
434         
435               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);
436             }
437           return CUP$Parser$result;
438
439           /*. . . . . . . . . . . . . . . . . . . .*/
440           case 8: // paramlist ::= 
441             {
442               ParseNode RESULT =null;
443                 
444                 ParseNode pn = new ParseNode("param_list");
445                 RESULT = pn;
446         
447               CUP$Parser$result = parser.getSymbolFactory().newSymbol("paramlist",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
448             }
449           return CUP$Parser$result;
450
451           /*. . . . . . . . . . . . . . . . . . . .*/
452           case 9: // param ::= TYPE IDENT COMMA 
453             {
454               ParseNode RESULT =null;
455                 int typeprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
456                 int typeprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
457                 Object typeprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
458                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
459                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
460                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
461                 
462                 ParseNode pn = new ParseNode("param");
463                 pn.addChild("param_type").setLiteral(typeprm);
464                 pn.addChild("param_ident").setLiteral(idprm);
465                 RESULT = pn;
466         
467               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);
468             }
469           return CUP$Parser$result;
470
471           /*. . . . . . . . . . . . . . . . . . . .*/
472           case 10: // param ::= TYPE IDENT 
473             {
474               ParseNode RESULT =null;
475                 int typeprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
476                 int typeprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
477                 Object typeprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
478                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
479                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
480                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
481                 
482                 ParseNode pn = new ParseNode("param");
483                 pn.addChild("param_type").setLiteral(typeprm);
484                 pn.addChild("param_ident").setLiteral(idprm);
485                 RESULT = pn;
486         
487               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);
488             }
489           return CUP$Parser$result;
490
491           /*. . . . . . . . . . . . . . . . . . . .*/
492           case 11: // param ::= IDENT IDENT COMMA 
493             {
494               ParseNode RESULT =null;
495                 int clsprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
496                 int clsprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
497                 Object clsprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
498                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
499                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
500                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
501                 
502                 ParseNode pn = new ParseNode("param");
503                 pn.addChild("param_class").setLiteral(clsprm);
504                 pn.addChild("param_ident").setLiteral(idprm);
505                 RESULT = pn;
506         
507               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);
508             }
509           return CUP$Parser$result;
510
511           /*. . . . . . . . . . . . . . . . . . . .*/
512           case 12: // param ::= IDENT IDENT 
513             {
514               ParseNode RESULT =null;
515                 int clsprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
516                 int clsprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
517                 Object clsprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
518                 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
519                 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
520                 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
521                 
522                 ParseNode pn = new ParseNode("param");
523                 pn.addChild("param_class").setLiteral(clsprm);
524                 pn.addChild("param_ident").setLiteral(idprm);
525                 RESULT = pn;
526         
527               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);
528             }
529           return CUP$Parser$result;
530
531           /*. . . . . . . . . . . . . . . . . . . .*/
532           case 13: // capablist ::= capablist capab 
533             {
534               ParseNode RESULT =null;
535                 int clistleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
536                 int clistright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
537                 ParseNode clist = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
538                 int capleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
539                 int capright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
540                 ParseNode cap = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
541                 
542                 clist.addChild(cap);
543                 RESULT = clist;
544         
545               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capablist",6, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
546             }
547           return CUP$Parser$result;
548
549           /*. . . . . . . . . . . . . . . . . . . .*/
550           case 14: // capablist ::= 
551             {
552               ParseNode RESULT =null;
553                 
554                 ParseNode pn = new ParseNode("capab_list");
555                 RESULT = pn;
556         
557               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capablist",6, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
558             }
559           return CUP$Parser$result;
560
561           /*. . . . . . . . . . . . . . . . . . . .*/
562           case 15: // capab ::= CAPABILITY IDENT DOT IDENT BEGIN capabcont END 
563             {
564               ParseNode RESULT =null;
565                 int idintleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
566                 int idintright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
567                 Object idint = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
568                 int idcapleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
569                 int idcapright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
570                 Object idcap = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
571                 int ccontleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
572                 int ccontright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
573                 ParseNode ccont = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
574                 
575                 ParseNode pn = new ParseNode("capability");
576                 pn.addChild("intface_ident").setLiteral(idint);
577                 pn.addChild("capab_ident").setLiteral(idcap);
578                 pn.addChild(ccont);
579                 RESULT = pn;
580         
581               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capab",7, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
582             }
583           return CUP$Parser$result;
584
585           /*. . . . . . . . . . . . . . . . . . . .*/
586           case 16: // capabcont ::= capabcont cont 
587             {
588               ParseNode RESULT =null;
589                 int ccontleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
590                 int ccontright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
591                 ParseNode ccont = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
592                 int cntleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
593                 int cntright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
594                 ParseNode cnt = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
595                 
596                 ccont.addChild(cnt);
597                 RESULT = ccont;
598         
599               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capabcont",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
600             }
601           return CUP$Parser$result;
602
603           /*. . . . . . . . . . . . . . . . . . . .*/
604           case 17: // capabcont ::= 
605             {
606               ParseNode RESULT =null;
607                 
608                 ParseNode pn = new ParseNode("capab_content");
609                 RESULT = pn;
610         
611               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capabcont",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
612             }
613           return CUP$Parser$result;
614
615           /*. . . . . . . . . . . . . . . . . . . .*/
616           case 18: // cont ::= DESCRIPTION ASSIGN STRINGCONST SEMICOLON 
617             {
618               ParseNode RESULT =null;
619                 int dscleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
620                 int dscright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
621                 Object dsc = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
622                 int strleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
623                 int strright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
624                 Object str = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
625                 
626                 ParseNode pn = new ParseNode("capab_content");
627                 pn.addChild("capab_desc").setLiteral(str);
628                 RESULT = pn;
629         
630               CUP$Parser$result = parser.getSymbolFactory().newSymbol("cont",9, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
631             }
632           return CUP$Parser$result;
633
634           /*. . . . . . . . . . . . . . . . . . . .*/
635           case 19: // cont ::= METHOD ASSIGN IDENT SEMICOLON 
636             {
637               ParseNode RESULT =null;
638                 int mtdleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
639                 int mtdright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
640                 Object mtd = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
641                 int idmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
642                 int idmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
643                 Object idmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
644                 
645                 ParseNode pn = new ParseNode("capab_content");
646                 pn.addChild("capab_ident").setLiteral(idmeth);
647                 RESULT = pn;
648         
649               CUP$Parser$result = parser.getSymbolFactory().newSymbol("cont",9, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
650             }
651           return CUP$Parser$result;
652
653           /*. . . . . . . . . . . . . . . . . . . .*/
654           case 20: // reqlist ::= reqlist require 
655             {
656               ParseNode RESULT =null;
657                 int rlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
658                 int rlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
659                 ParseNode rl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
660                 int reqleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
661                 int reqright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
662                 ParseNode req = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
663                 
664                 rl.addChild(req);
665                 RESULT = rl;
666         
667               CUP$Parser$result = parser.getSymbolFactory().newSymbol("reqlist",10, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
668             }
669           return CUP$Parser$result;
670
671           /*. . . . . . . . . . . . . . . . . . . .*/
672           case 21: // reqlist ::= 
673             {
674               ParseNode RESULT =null;
675                 
676                 ParseNode pn = new ParseNode("requires_list");
677                 RESULT = pn;
678         
679               CUP$Parser$result = parser.getSymbolFactory().newSymbol("reqlist",10, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
680             }
681           return CUP$Parser$result;
682
683           /*. . . . . . . . . . . . . . . . . . . .*/
684           case 22: // require ::= REQUIRES IDENT WITH capintlist AS INTERFACE IDENT SEMICOLON 
685             {
686               ParseNode RESULT =null;
687                 int idintleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left;
688                 int idintright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).right;
689                 Object idint = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-6)).value;
690                 int cilleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
691                 int cilright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
692                 ParseNode cil = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
693                 int idnewintleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
694                 int idnewintright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
695                 Object idnewint = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
696                 
697                 ParseNode pn = new ParseNode("requires");
698                 pn.addChild("intface_ident").setLiteral(idint);
699                 pn.addChild(cil);
700                 pn.addChild("new_intface_ident").setLiteral(idnewint);
701                 RESULT = pn;
702         
703               CUP$Parser$result = parser.getSymbolFactory().newSymbol("require",11, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-7)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
704             }
705           return CUP$Parser$result;
706
707           /*. . . . . . . . . . . . . . . . . . . .*/
708           case 23: // capintlist ::= IDENT 
709             {
710               ParseNode RESULT =null;
711                 int idcapleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
712                 int idcapright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
713                 Object idcap = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
714                 
715                 ParseNode pn = new ParseNode("capab_ident_list");
716                 pn.addChild("capab_ident").setLiteral(idcap);
717                 RESULT = pn;
718         
719               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capintlist",12, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
720             }
721           return CUP$Parser$result;
722
723           /*. . . . . . . . . . . . . . . . . . . .*/
724           case 24: // capintlist ::= capintlist COMMA IDENT 
725             {
726               ParseNode RESULT =null;
727                 int cilleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
728                 int cilright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
729                 ParseNode cil = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
730                 int idcapleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
731                 int idcapright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
732                 Object idcap = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
733                 
734                 cil.addChild("capab_ident").setLiteral(idcap);
735                 RESULT = cil;
736         
737               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capintlist",12, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
738             }
739           return CUP$Parser$result;
740
741           /*. . . . . . . . . . . . . . . . . . . .*/
742           case 25: // capintlist ::= 
743             {
744               ParseNode RESULT =null;
745                 
746                 ParseNode pn = new ParseNode("capab_ident_list");
747                 RESULT = pn;
748         
749               CUP$Parser$result = parser.getSymbolFactory().newSymbol("capintlist",12, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
750             }
751           return CUP$Parser$result;
752
753           /* . . . . . .*/
754           default:
755             throw new Exception(
756                "Invalid action number "+CUP$Parser$act_num+"found in internal parse table");
757
758         }
759     } /* end of method */
760
761   /** Method splitting the generated action code into several parts. */
762   public final java_cup.runtime.Symbol CUP$Parser$do_action(
763     int                        CUP$Parser$act_num,
764     java_cup.runtime.lr_parser CUP$Parser$parser,
765     java.util.Stack            CUP$Parser$stack,
766     int                        CUP$Parser$top)
767     throws java.lang.Exception
768     {
769               return CUP$Parser$do_action_part00000000(
770                                CUP$Parser$act_num,
771                                CUP$Parser$parser,
772                                CUP$Parser$stack,
773                                CUP$Parser$top);
774     }
775 }
776
777 }