2 //----------------------------------------------------
3 // The following code was generated by CUP v0.11b 20160615 (GIT 4ac7450)
4 //----------------------------------------------------
5 package iotpolicy.parser;
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;
19 /** CUP v0.11b 20160615 (GIT 4ac7450) generated parser.
21 @SuppressWarnings({"rawtypes"})
22 public class Parser extends java_cup.runtime.lr_parser {
24 public final Class getSymbolContainer() {
28 /** Default constructor. */
30 public Parser() {super();}
32 /** Constructor which sets the default scanner. */
34 public Parser(java_cup.runtime.Scanner s) {super(s);}
36 /** Constructor which sets the default scanner. */
37 public Parser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}
39 /** Production table. */
40 protected static final short _production_table[][] =
41 unpackFromStrings(new String[] {
42 "\000\033\000\002\002\003\000\002\002\004\000\002\002" +
43 "\003\000\002\003\011\000\002\004\004\000\002\004\002" +
44 "\000\002\005\011\000\002\005\011\000\002\006\004\000" +
45 "\002\006\002\000\002\007\005\000\002\007\004\000\002" +
46 "\007\005\000\002\007\004\000\002\010\004\000\002\010" +
47 "\002\000\002\011\007\000\002\012\004\000\002\012\002" +
48 "\000\002\013\006\000\002\013\006\000\002\014\004\000" +
49 "\002\014\002\000\002\015\012\000\002\016\003\000\002" +
50 "\016\005\000\002\016\002" });
52 /** Access to production table. */
53 public short[][] production_table() {return _production_table;}
55 /** Parse-action table. */
56 protected static final short[][] _action_table =
57 unpackFromStrings(new String[] {
58 "\000\074\000\010\002\uffeb\013\006\020\uffeb\001\002\000" +
59 "\004\002\001\001\002\000\006\002\uffff\020\063\001\002" +
60 "\000\004\014\011\001\002\000\004\002\010\001\002\000" +
61 "\004\002\000\001\002\000\004\024\012\001\002\000\004" +
62 "\010\013\001\002\000\010\011\ufffc\013\ufffc\015\ufffc\001" +
63 "\002\000\010\011\ufff2\013\016\015\ufff2\001\002\000\010" +
64 "\011\ufffd\013\ufffd\015\ufffd\001\002\000\006\023\041\024" +
65 "\040\001\002\000\006\011\022\015\021\001\002\000\006" +
66 "\011\ufff3\015\ufff3\001\002\000\004\024\023\001\002\000" +
67 "\004\002\ufffe\001\002\000\004\010\024\001\002\000\010" +
68 "\011\uffef\016\uffef\017\uffef\001\002\000\010\011\030\016" +
69 "\027\017\031\001\002\000\010\011\ufff0\016\ufff0\017\ufff0" +
70 "\001\002\000\004\012\035\001\002\000\006\011\ufff1\015" +
71 "\ufff1\001\002\000\004\012\032\001\002\000\004\025\033" +
72 "\001\002\000\004\004\034\001\002\000\010\011\uffed\016" +
73 "\uffed\017\uffed\001\002\000\004\025\036\001\002\000\004" +
74 "\004\037\001\002\000\010\011\uffee\016\uffee\017\uffee\001" +
75 "\002\000\004\024\056\001\002\000\004\024\042\001\002" +
76 "\000\004\006\043\001\002\000\010\007\ufff8\023\ufff8\024" +
77 "\ufff8\001\002\000\010\007\047\023\050\024\045\001\002" +
78 "\000\004\024\054\001\002\000\010\007\ufff9\023\ufff9\024" +
79 "\ufff9\001\002\000\004\004\053\001\002\000\004\024\051" +
80 "\001\002\000\012\005\052\007\ufff6\023\ufff6\024\ufff6\001" +
81 "\002\000\010\007\ufff7\023\ufff7\024\ufff7\001\002\000\010" +
82 "\011\ufffb\013\ufffb\015\ufffb\001\002\000\012\005\055\007" +
83 "\ufff4\023\ufff4\024\ufff4\001\002\000\010\007\ufff5\023\ufff5" +
84 "\024\ufff5\001\002\000\004\006\057\001\002\000\010\007" +
85 "\ufff8\023\ufff8\024\ufff8\001\002\000\010\007\061\023\050" +
86 "\024\045\001\002\000\004\004\062\001\002\000\010\011" +
87 "\ufffa\013\ufffa\015\ufffa\001\002\000\004\024\065\001\002" +
88 "\000\006\002\uffec\020\uffec\001\002\000\004\021\066\001" +
89 "\002\000\010\005\uffe7\022\uffe7\024\070\001\002\000\006" +
90 "\005\071\022\072\001\002\000\006\005\uffe9\022\uffe9\001" +
91 "\002\000\004\024\076\001\002\000\004\014\073\001\002" +
92 "\000\004\024\074\001\002\000\004\004\075\001\002\000" +
93 "\006\002\uffea\020\uffea\001\002\000\006\005\uffe8\022\uffe8" +
96 /** Access to parse-action table. */
97 public short[][] action_table() {return _action_table;}
99 /** <code>reduce_goto</code> table. */
100 protected static final short[][] _reduce_table =
101 unpackFromStrings(new String[] {
102 "\000\074\000\010\002\006\003\003\014\004\001\001\000" +
103 "\002\001\001\000\004\015\063\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\004\013\001\001\000\006\005\014" +
106 "\010\016\001\001\000\002\001\001\000\002\001\001\000" +
107 "\004\011\017\001\001\000\002\001\001\000\002\001\001" +
108 "\000\002\001\001\000\002\001\001\000\004\012\024\001" +
109 "\001\000\004\013\025\001\001\000\002\001\001\000\002" +
110 "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
111 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
112 "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
113 "\002\001\001\000\002\001\001\000\004\006\043\001\001" +
114 "\000\004\007\045\001\001\000\002\001\001\000\002\001" +
115 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
116 "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
117 "\002\001\001\000\002\001\001\000\004\006\057\001\001" +
118 "\000\004\007\045\001\001\000\002\001\001\000\002\001" +
119 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
120 "\000\004\016\066\001\001\000\002\001\001\000\002\001" +
121 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
122 "\000\002\001\001\000\002\001\001\000\002\001\001" });
124 /** Access to <code>reduce_goto</code> table. */
125 public short[][] reduce_table() {return _reduce_table;}
127 /** Instance of action encapsulation class. */
128 protected CUP$Parser$actions action_obj;
130 /** Action encapsulation object initializer. */
131 protected void init_actions()
133 action_obj = new CUP$Parser$actions(this);
136 /** Invoke a user supplied parse action. */
137 public java_cup.runtime.Symbol do_action(
139 java_cup.runtime.lr_parser parser,
140 java.util.Stack stack,
142 throws java.lang.Exception
144 /* call code in generated class */
145 return action_obj.CUP$Parser$do_action(act_num, parser, stack, top);
148 /** Indicates start state. */
149 public int start_state() {return 0;}
150 /** Indicates start production. */
151 public int start_production() {return 1;}
153 /** <code>EOF</code> Symbol index. */
154 public int EOF_sym() {return 0;}
156 /** <code>error</code> Symbol index. */
157 public int error_sym() {return 1;}
161 public Parser(Lexer lex, ComplexSymbolFactory sf) {
164 public static void main(String[] args) throws Exception {
165 // initialize the symbol factory
166 ComplexSymbolFactory csf = new ComplexSymbolFactory();
167 // create a buffering scanner wrapper
168 ScannerBuffer lexer = new ScannerBuffer(new Lexer(new BufferedReader(new FileReader(args[0])),csf));
170 Parser p = new Parser(lexer,csf);
171 ParseNode pn = (ParseNode) p.parse().value;
175 /** Cup generated class to encapsulate user supplied action code.*/
176 @SuppressWarnings({"rawtypes", "unchecked", "unused"})
177 class CUP$Parser$actions {
178 private final Parser parser;
181 CUP$Parser$actions(Parser parser) {
182 this.parser = parser;
185 /** Method 0 with the actual generated action code for actions 0 to 300. */
186 public final java_cup.runtime.Symbol CUP$Parser$do_action_part00000000(
187 int CUP$Parser$act_num,
188 java_cup.runtime.lr_parser CUP$Parser$parser,
189 java.util.Stack CUP$Parser$stack,
191 throws java.lang.Exception
193 /* Symbol object for return from actions */
194 java_cup.runtime.Symbol CUP$Parser$result;
196 /* select the action based on the action number */
197 switch (CUP$Parser$act_num)
199 /*. . . . . . . . . . . . . . . . . . . .*/
200 case 0: // policy ::= intface
202 ParseNode RESULT =null;
203 int inleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
204 int inright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
205 ParseNode in = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
207 ParseNode pn = new ParseNode("policy");
211 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);
213 return CUP$Parser$result;
215 /*. . . . . . . . . . . . . . . . . . . .*/
216 case 1: // $START ::= policy EOF
219 int start_valleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
220 int start_valright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
221 ParseNode start_val = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
223 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);
226 CUP$Parser$parser.done_parsing();
227 return CUP$Parser$result;
229 /*. . . . . . . . . . . . . . . . . . . .*/
230 case 2: // policy ::= reqlist
232 ParseNode RESULT =null;
233 int rlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
234 int rlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
235 ParseNode rl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
237 ParseNode pn = new ParseNode("policy");
241 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);
243 return CUP$Parser$result;
245 /*. . . . . . . . . . . . . . . . . . . .*/
246 case 3: // intface ::= PUBLIC INTERFACE IDENT BEGIN methlist capablist END
248 ParseNode RESULT =null;
249 int idintleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
250 int idintright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
251 Object idint = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
252 int mlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
253 int mlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
254 ParseNode ml = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
255 int clleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
256 int clright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
257 ParseNode cl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
259 ParseNode pn = new ParseNode("interface");
260 pn.addChild("intface_ident").setLiteral(idint);
265 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);
267 return CUP$Parser$result;
269 /*. . . . . . . . . . . . . . . . . . . .*/
270 case 4: // methlist ::= methlist meth
272 ParseNode RESULT =null;
273 int mlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
274 int mlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
275 ParseNode ml = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
276 int mleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
277 int mright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
278 ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
283 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);
285 return CUP$Parser$result;
287 /*. . . . . . . . . . . . . . . . . . . .*/
288 case 5: // methlist ::=
290 ParseNode RESULT =null;
292 ParseNode pn = new ParseNode("method_list");
295 CUP$Parser$result = parser.getSymbolFactory().newSymbol("methlist",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
297 return CUP$Parser$result;
299 /*. . . . . . . . . . . . . . . . . . . .*/
300 case 6: // meth ::= PUBLIC TYPE IDENT LPAR paramlist RPAR SEMICOLON
302 ParseNode RESULT =null;
303 int typemethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
304 int typemethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
305 Object typemeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
306 int idmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
307 int idmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
308 Object idmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
309 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
310 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
311 ParseNode pl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
313 ParseNode pn = new ParseNode("method");
314 pn.addChild("method_type").setLiteral(typemeth);
315 pn.addChild("method_ident").setLiteral(idmeth);
319 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);
321 return CUP$Parser$result;
323 /*. . . . . . . . . . . . . . . . . . . .*/
324 case 7: // meth ::= PUBLIC IDENT IDENT LPAR paramlist RPAR SEMICOLON
326 ParseNode RESULT =null;
327 int clsmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
328 int clsmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
329 Object clsmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
330 int idmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
331 int idmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
332 Object idmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
333 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
334 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
335 ParseNode pl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
337 ParseNode pn = new ParseNode("method");
338 pn.addChild("method_class").setLiteral(clsmeth);
339 pn.addChild("method_ident").setLiteral(idmeth);
343 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);
345 return CUP$Parser$result;
347 /*. . . . . . . . . . . . . . . . . . . .*/
348 case 8: // paramlist ::= paramlist param
350 ParseNode RESULT =null;
351 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
352 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
353 ParseNode pl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
354 int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
355 int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
356 ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
361 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);
363 return CUP$Parser$result;
365 /*. . . . . . . . . . . . . . . . . . . .*/
366 case 9: // paramlist ::=
368 ParseNode RESULT =null;
370 ParseNode pn = new ParseNode("param_list");
373 CUP$Parser$result = parser.getSymbolFactory().newSymbol("paramlist",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
375 return CUP$Parser$result;
377 /*. . . . . . . . . . . . . . . . . . . .*/
378 case 10: // param ::= TYPE IDENT COMMA
380 ParseNode RESULT =null;
381 int typeprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
382 int typeprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
383 Object typeprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
384 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
385 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
386 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
388 ParseNode pn = new ParseNode("param");
389 pn.addChild("param_type").setLiteral(typeprm);
390 pn.addChild("param_ident").setLiteral(idprm);
393 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);
395 return CUP$Parser$result;
397 /*. . . . . . . . . . . . . . . . . . . .*/
398 case 11: // param ::= TYPE IDENT
400 ParseNode RESULT =null;
401 int typeprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
402 int typeprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
403 Object typeprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
404 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
405 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
406 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
408 ParseNode pn = new ParseNode("param");
409 pn.addChild("param_type").setLiteral(typeprm);
410 pn.addChild("param_ident").setLiteral(idprm);
413 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);
415 return CUP$Parser$result;
417 /*. . . . . . . . . . . . . . . . . . . .*/
418 case 12: // param ::= IDENT IDENT COMMA
420 ParseNode RESULT =null;
421 int clsprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
422 int clsprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
423 Object clsprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
424 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
425 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
426 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
428 ParseNode pn = new ParseNode("param");
429 pn.addChild("param_class").setLiteral(clsprm);
430 pn.addChild("param_ident").setLiteral(idprm);
433 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);
435 return CUP$Parser$result;
437 /*. . . . . . . . . . . . . . . . . . . .*/
438 case 13: // param ::= IDENT IDENT
440 ParseNode RESULT =null;
441 int clsprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
442 int clsprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
443 Object clsprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
444 int idprmleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
445 int idprmright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
446 Object idprm = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
448 ParseNode pn = new ParseNode("param");
449 pn.addChild("param_class").setLiteral(clsprm);
450 pn.addChild("param_ident").setLiteral(idprm);
453 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);
455 return CUP$Parser$result;
457 /*. . . . . . . . . . . . . . . . . . . .*/
458 case 14: // capablist ::= capablist capab
460 ParseNode RESULT =null;
461 int clleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
462 int clright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
463 ParseNode cl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
464 int capleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
465 int capright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
466 ParseNode cap = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
471 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);
473 return CUP$Parser$result;
475 /*. . . . . . . . . . . . . . . . . . . .*/
476 case 15: // capablist ::=
478 ParseNode RESULT =null;
480 ParseNode pn = new ParseNode("capab_list");
483 CUP$Parser$result = parser.getSymbolFactory().newSymbol("capablist",6, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
485 return CUP$Parser$result;
487 /*. . . . . . . . . . . . . . . . . . . .*/
488 case 16: // capab ::= CAPABILITY IDENT BEGIN capabcont END
490 ParseNode RESULT =null;
491 int idcapleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
492 int idcapright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
493 Object idcap = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
494 int ccontleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
495 int ccontright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
496 ParseNode ccont = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
498 ParseNode pn = new ParseNode("capability");
499 pn.addChild("capab_ident").setLiteral(idcap);
503 CUP$Parser$result = parser.getSymbolFactory().newSymbol("capab",7, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
505 return CUP$Parser$result;
507 /*. . . . . . . . . . . . . . . . . . . .*/
508 case 17: // capabcont ::= capabcont cont
510 ParseNode RESULT =null;
511 int ccontleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
512 int ccontright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
513 ParseNode ccont = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
514 int cntleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
515 int cntright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
516 ParseNode cnt = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
521 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);
523 return CUP$Parser$result;
525 /*. . . . . . . . . . . . . . . . . . . .*/
526 case 18: // capabcont ::=
528 ParseNode RESULT =null;
530 ParseNode pn = new ParseNode("capab_content");
533 CUP$Parser$result = parser.getSymbolFactory().newSymbol("capabcont",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
535 return CUP$Parser$result;
537 /*. . . . . . . . . . . . . . . . . . . .*/
538 case 19: // cont ::= DESCRIPTION ASSIGN STRINGCONST SEMICOLON
540 ParseNode RESULT =null;
541 int dscleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
542 int dscright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
543 Object dsc = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
544 int strdscleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
545 int strdscright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
546 Object strdsc = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
548 ParseNode pn = new ParseNode("capab_content");
549 pn.addChild("capab_desc").setLiteral(strdsc);
552 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);
554 return CUP$Parser$result;
556 /*. . . . . . . . . . . . . . . . . . . .*/
557 case 20: // cont ::= METHOD ASSIGN STRINGCONST SEMICOLON
559 ParseNode RESULT =null;
560 int mtdleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
561 int mtdright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
562 Object mtd = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
563 int strmethleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
564 int strmethright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
565 Object strmeth = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
567 ParseNode pn = new ParseNode("capab_content");
568 pn.addChild("capab_meth").setLiteral(strmeth);
571 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);
573 return CUP$Parser$result;
575 /*. . . . . . . . . . . . . . . . . . . .*/
576 case 21: // reqlist ::= reqlist require
578 ParseNode RESULT =null;
579 int rlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
580 int rlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
581 ParseNode rl = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
582 int reqleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
583 int reqright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
584 ParseNode req = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
589 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);
591 return CUP$Parser$result;
593 /*. . . . . . . . . . . . . . . . . . . .*/
594 case 22: // reqlist ::=
596 ParseNode RESULT =null;
598 ParseNode pn = new ParseNode("reqlist");
601 CUP$Parser$result = parser.getSymbolFactory().newSymbol("reqlist",10, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
603 return CUP$Parser$result;
605 /*. . . . . . . . . . . . . . . . . . . .*/
606 case 23: // require ::= REQUIRES IDENT WITH capintlist AS INTERFACE IDENT SEMICOLON
608 ParseNode RESULT =null;
609 int idintleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left;
610 int idintright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).right;
611 Object idint = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-6)).value;
612 int cilleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
613 int cilright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
614 ParseNode cil = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
615 int idnewintleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
616 int idnewintright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
617 Object idnewint = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
619 ParseNode pn = new ParseNode("requires");
620 pn.addChild("intface_ident").setLiteral(idint);
622 pn.addChild("new_intface_ident").setLiteral(idnewint);
625 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);
627 return CUP$Parser$result;
629 /*. . . . . . . . . . . . . . . . . . . .*/
630 case 24: // capintlist ::= IDENT
632 ParseNode RESULT =null;
633 int idcapleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
634 int idcapright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
635 Object idcap = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
637 ParseNode pn = new ParseNode("capab_ident_list");
638 pn.addChild("capab_ident").setLiteral(idcap);
641 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);
643 return CUP$Parser$result;
645 /*. . . . . . . . . . . . . . . . . . . .*/
646 case 25: // capintlist ::= capintlist COMMA IDENT
648 ParseNode RESULT =null;
649 int cilleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
650 int cilright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
651 ParseNode cil = (ParseNode)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
652 int idcapleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
653 int idcapright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
654 Object idcap = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
656 cil.addChild("capab_ident").setLiteral(idcap);
659 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);
661 return CUP$Parser$result;
663 /*. . . . . . . . . . . . . . . . . . . .*/
664 case 26: // capintlist ::=
666 ParseNode RESULT =null;
668 ParseNode pn = new ParseNode("capab_ident_list");
671 CUP$Parser$result = parser.getSymbolFactory().newSymbol("capintlist",12, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
673 return CUP$Parser$result;
678 "Invalid action number "+CUP$Parser$act_num+"found in internal parse table");
681 } /* end of method */
683 /** Method splitting the generated action code into several parts. */
684 public final java_cup.runtime.Symbol CUP$Parser$do_action(
685 int CUP$Parser$act_num,
686 java_cup.runtime.lr_parser CUP$Parser$parser,
687 java.util.Stack CUP$Parser$stack,
689 throws java.lang.Exception
691 return CUP$Parser$do_action_part00000000(