1 package iotpolicy.parser;
3 //----------------------------------------------------
4 // The following code was generated by CUP v0.11b 20160615 (GIT 4ac7450)
5 //----------------------------------------------------
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;
13 import javax.xml.transform.*;
14 import javax.xml.transform.stream.*;
15 import java_cup.runtime.XMLElement;
17 import iotpolicy.tree.ParseNode;
18 import iotpolicy.tree.ParseNodeVector;
20 /** CUP v0.11b 20160615 (GIT 4ac7450) generated parser.
22 @SuppressWarnings({"rawtypes"})
23 public class Parser extends java_cup.runtime.lr_parser {
25 public final Class getSymbolContainer() {
29 /** Default constructor. */
31 public Parser() {super();}
33 /** Constructor which sets the default scanner. */
35 public Parser(java_cup.runtime.Scanner s) {super(s);}
37 /** Constructor which sets the default scanner. */
38 public Parser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}
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" +
53 /** Access to production table. */
54 public short[][] production_table() {return _production_table;}
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" });
94 /** Access to parse-action table. */
95 public short[][] action_table() {return _action_table;}
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" });
121 /** Access to <code>reduce_goto</code> table. */
122 public short[][] reduce_table() {return _reduce_table;}
124 /** Instance of action encapsulation class. */
125 protected CUP$Parser$actions action_obj;
127 /** Action encapsulation object initializer. */
128 protected void init_actions()
130 action_obj = new CUP$Parser$actions(this);
133 /** Invoke a user supplied parse action. */
134 public java_cup.runtime.Symbol do_action(
136 java_cup.runtime.lr_parser parser,
137 java.util.Stack stack,
139 throws java.lang.Exception
141 /* call code in generated class */
142 return action_obj.CUP$Parser$do_action(act_num, parser, stack, top);
145 /** Indicates start state. */
146 public int start_state() {return 0;}
147 /** Indicates start production. */
148 public int start_production() {return 1;}
150 /** <code>EOF</code> Symbol index. */
151 public int EOF_sym() {return 0;}
153 /** <code>error</code> Symbol index. */
154 public int error_sym() {return 1;}
158 public Parser(Lexer lex, ComplexSymbolFactory sf) {
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));
167 Parser p = new Parser(lexer,csf);
168 ParseNode pn = (ParseNode) p.parse().value;
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();
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();
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();*/
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());
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());
236 System.out.println();
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());
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());
266 //ParseNodeVector pnvReqGreatGrand = pnReqGreatGrandChild2.getChildren();
267 //System.out.println("Grand children: " + pnvReqGreatGrand.size());
268 System.out.println();*/
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;
279 CUP$Parser$actions(Parser parser) {
280 this.parser = parser;
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,
289 throws java.lang.Exception
291 /* Symbol object for return from actions */
292 java_cup.runtime.Symbol CUP$Parser$result;
294 /* select the action based on the action number */
295 switch (CUP$Parser$act_num)
297 /*. . . . . . . . . . . . . . . . . . . .*/
298 case 0: // policy ::= intface capablist reqlist
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;
311 ParseNode pn = new ParseNode("policy");
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);
319 return CUP$Parser$result;
321 /*. . . . . . . . . . . . . . . . . . . .*/
322 case 1: // $START ::= policy EOF
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;
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);
332 CUP$Parser$parser.done_parsing();
333 return CUP$Parser$result;
335 /*. . . . . . . . . . . . . . . . . . . .*/
336 case 2: // intface ::= PUBLIC INTERFACE IDENT BEGIN methlist END
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;
346 ParseNode pn = new ParseNode("interface");
347 pn.addChild("intface_ident").setLiteral(idint);
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);
353 return CUP$Parser$result;
355 /*. . . . . . . . . . . . . . . . . . . .*/
356 case 3: // intface ::=
358 ParseNode RESULT =null;
360 ParseNode pn = new ParseNode("interface");
363 CUP$Parser$result = parser.getSymbolFactory().newSymbol("intface",1, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
365 return CUP$Parser$result;
367 /*. . . . . . . . . . . . . . . . . . . .*/
368 case 4: // methlist ::= methlist meth
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;
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);
383 return CUP$Parser$result;
385 /*. . . . . . . . . . . . . . . . . . . .*/
386 case 5: // methlist ::=
388 ParseNode RESULT =null;
390 ParseNode pn = new ParseNode("method_list");
393 CUP$Parser$result = parser.getSymbolFactory().newSymbol("methlist",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
395 return CUP$Parser$result;
397 /*. . . . . . . . . . . . . . . . . . . .*/
398 case 6: // meth ::= PUBLIC TYPE IDENT LPAR paramlist RPAR SEMICOLON
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;
411 ParseNode pn = new ParseNode("method");
412 pn.addChild("method_type").setLiteral(typemeth);
413 pn.addChild("method_ident").setLiteral(idmeth);
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);
419 return CUP$Parser$result;
421 /*. . . . . . . . . . . . . . . . . . . .*/
422 case 7: // paramlist ::= paramlist param
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;
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);
437 return CUP$Parser$result;
439 /*. . . . . . . . . . . . . . . . . . . .*/
440 case 8: // paramlist ::=
442 ParseNode RESULT =null;
444 ParseNode pn = new ParseNode("param_list");
447 CUP$Parser$result = parser.getSymbolFactory().newSymbol("paramlist",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
449 return CUP$Parser$result;
451 /*. . . . . . . . . . . . . . . . . . . .*/
452 case 9: // param ::= TYPE IDENT COMMA
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;
462 ParseNode pn = new ParseNode("param");
463 pn.addChild("param_type").setLiteral(typeprm);
464 pn.addChild("param_ident").setLiteral(idprm);
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);
469 return CUP$Parser$result;
471 /*. . . . . . . . . . . . . . . . . . . .*/
472 case 10: // param ::= TYPE IDENT
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;
482 ParseNode pn = new ParseNode("param");
483 pn.addChild("param_type").setLiteral(typeprm);
484 pn.addChild("param_ident").setLiteral(idprm);
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);
489 return CUP$Parser$result;
491 /*. . . . . . . . . . . . . . . . . . . .*/
492 case 11: // param ::= IDENT IDENT COMMA
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;
502 ParseNode pn = new ParseNode("param");
503 pn.addChild("param_class").setLiteral(clsprm);
504 pn.addChild("param_ident").setLiteral(idprm);
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);
509 return CUP$Parser$result;
511 /*. . . . . . . . . . . . . . . . . . . .*/
512 case 12: // param ::= IDENT IDENT
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;
522 ParseNode pn = new ParseNode("param");
523 pn.addChild("param_class").setLiteral(clsprm);
524 pn.addChild("param_ident").setLiteral(idprm);
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);
529 return CUP$Parser$result;
531 /*. . . . . . . . . . . . . . . . . . . .*/
532 case 13: // capablist ::= capablist capab
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;
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);
547 return CUP$Parser$result;
549 /*. . . . . . . . . . . . . . . . . . . .*/
550 case 14: // capablist ::=
552 ParseNode RESULT =null;
554 ParseNode pn = new ParseNode("capab_list");
557 CUP$Parser$result = parser.getSymbolFactory().newSymbol("capablist",6, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
559 return CUP$Parser$result;
561 /*. . . . . . . . . . . . . . . . . . . .*/
562 case 15: // capab ::= CAPABILITY IDENT DOT IDENT BEGIN capabcont END
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;
575 ParseNode pn = new ParseNode("capability");
576 pn.addChild("intface_ident").setLiteral(idint);
577 pn.addChild("capab_ident").setLiteral(idcap);
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);
583 return CUP$Parser$result;
585 /*. . . . . . . . . . . . . . . . . . . .*/
586 case 16: // capabcont ::= capabcont cont
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;
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);
601 return CUP$Parser$result;
603 /*. . . . . . . . . . . . . . . . . . . .*/
604 case 17: // capabcont ::=
606 ParseNode RESULT =null;
608 ParseNode pn = new ParseNode("capab_content");
611 CUP$Parser$result = parser.getSymbolFactory().newSymbol("capabcont",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
613 return CUP$Parser$result;
615 /*. . . . . . . . . . . . . . . . . . . .*/
616 case 18: // cont ::= DESCRIPTION ASSIGN STRINGCONST SEMICOLON
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;
626 ParseNode pn = new ParseNode("capab_content");
627 pn.addChild("capab_desc").setLiteral(str);
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);
632 return CUP$Parser$result;
634 /*. . . . . . . . . . . . . . . . . . . .*/
635 case 19: // cont ::= METHOD ASSIGN IDENT SEMICOLON
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;
645 ParseNode pn = new ParseNode("capab_content");
646 pn.addChild("capab_ident").setLiteral(idmeth);
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);
651 return CUP$Parser$result;
653 /*. . . . . . . . . . . . . . . . . . . .*/
654 case 20: // reqlist ::= reqlist require
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;
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);
669 return CUP$Parser$result;
671 /*. . . . . . . . . . . . . . . . . . . .*/
672 case 21: // reqlist ::=
674 ParseNode RESULT =null;
676 ParseNode pn = new ParseNode("requires_list");
679 CUP$Parser$result = parser.getSymbolFactory().newSymbol("reqlist",10, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
681 return CUP$Parser$result;
683 /*. . . . . . . . . . . . . . . . . . . .*/
684 case 22: // require ::= REQUIRES IDENT WITH capintlist AS INTERFACE IDENT SEMICOLON
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;
697 ParseNode pn = new ParseNode("requires");
698 pn.addChild("intface_ident").setLiteral(idint);
700 pn.addChild("new_intface_ident").setLiteral(idnewint);
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);
705 return CUP$Parser$result;
707 /*. . . . . . . . . . . . . . . . . . . .*/
708 case 23: // capintlist ::= IDENT
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;
715 ParseNode pn = new ParseNode("capab_ident_list");
716 pn.addChild("capab_ident").setLiteral(idcap);
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);
721 return CUP$Parser$result;
723 /*. . . . . . . . . . . . . . . . . . . .*/
724 case 24: // capintlist ::= capintlist COMMA IDENT
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;
734 cil.addChild("capab_ident").setLiteral(idcap);
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);
739 return CUP$Parser$result;
741 /*. . . . . . . . . . . . . . . . . . . .*/
742 case 25: // capintlist ::=
744 ParseNode RESULT =null;
746 ParseNode pn = new ParseNode("capab_ident_list");
749 CUP$Parser$result = parser.getSymbolFactory().newSymbol("capintlist",12, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
751 return CUP$Parser$result;
756 "Invalid action number "+CUP$Parser$act_num+"found in internal parse table");
759 } /* end of method */
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,
767 throws java.lang.Exception
769 return CUP$Parser$do_action_part00000000(