KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > ro > infoiasi > donald > compiler > parser > SpecParser


1
2 //----------------------------------------------------
3
// The following code was generated by CUP v0.10k
4
// Tue Oct 19 10:42:24 EEST 2004
5
//----------------------------------------------------
6

7 package ro.infoiasi.donald.compiler.parser;
8
9 import ro.infoiasi.donald.compiler.cfg.*;
10 import java.util.*;
11
12 /** CUP v0.10k generated parser.
13   * @version Tue Oct 19 10:42:24 EEST 2004
14   */

15 public class SpecParser extends java_cup.runtime.lr_parser {
16
17   /** Default constructor. */
18   public SpecParser() {super();}
19
20   /** Constructor which sets the default scanner. */
21   public SpecParser(java_cup.runtime.Scanner s) {super(s);}
22
23   /** Production table. */
24   protected static final short _production_table[][] =
25     unpackFromStrings(new String JavaDoc[] {
26     "\000\114\000\002\003\011\000\002\002\004\000\002\004" +
27     "\005\000\002\004\003\000\002\005\004\000\002\005\003" +
28     "\000\002\006\005\000\002\007\005\000\002\007\003\000" +
29     "\002\010\004\000\002\010\003\000\002\011\003\000\002" +
30     "\011\003\000\002\011\003\000\002\011\003\000\002\012" +
31     "\006\000\002\013\006\000\002\014\006\000\002\015\006" +
32     "\000\002\016\004\000\002\016\003\000\002\017\004\000" +
33     "\002\017\005\000\002\017\004\000\002\020\004\000\002" +
34     "\052\002\000\002\020\006\000\002\021\004\000\002\053" +
35     "\002\000\002\021\006\000\002\022\003\000\002\022\005" +
36     "\000\002\023\005\000\002\023\003\000\002\024\005\000" +
37     "\002\024\003\000\002\025\003\000\002\025\003\000\002" +
38     "\026\004\000\002\026\003\000\002\054\002\000\002\027" +
39     "\007\000\002\055\002\000\002\027\007\000\002\056\002" +
40     "\000\002\027\007\000\002\030\005\000\002\030\003\000" +
41     "\002\031\006\000\002\031\002\000\002\032\004\000\002" +
42     "\032\003\000\002\057\002\000\002\033\007\000\002\060" +
43     "\002\000\002\034\006\000\002\034\003\000\002\035\005" +
44     "\000\002\035\003\000\002\036\004\000\002\036\003\000" +
45     "\002\037\004\000\002\037\003\000\002\040\004\000\002" +
46     "\040\003\000\002\041\003\000\002\047\005\000\002\047" +
47     "\003\000\002\042\003\000\002\043\003\000\002\044\003" +
48     "\000\002\045\003\000\002\046\003\000\002\050\003\000" +
49     "\002\050\003\000\002\051\002" });
50
51   /** Access to production table. */
52   public short[][] production_table() {return _production_table;}
53
54   /** Parse-action table. */
55   protected static final short[][] _action_table =
56     unpackFromStrings(new String JavaDoc[] {
57     "\000\205\000\024\004\007\005\uffb6\006\uffb6\007\uffb6\011" +
58     "\uffb6\012\uffb6\014\uffb6\015\uffb6\016\uffb6\001\002\000\022" +
59     "\005\uffb6\006\uffb6\007\uffb6\011\uffb6\012\uffb6\014\uffb6\015" +
60     "\uffb6\016\uffb6\001\002\000\004\002\015\001\002\000\022" +
61     "\005\ufffe\006\ufffe\007\ufffe\011\ufffe\012\ufffe\014\ufffe\015" +
62     "\ufffe\016\ufffe\001\002\000\004\036\010\001\002\000\006" +
63     "\030\uffbe\032\uffbe\001\002\000\006\030\012\032\013\001" +
64     "\002\000\022\005\uffff\006\uffff\007\uffff\011\uffff\012\uffff" +
65     "\014\uffff\015\uffff\016\uffff\001\002\000\004\036\014\001" +
66     "\002\000\012\030\uffbf\032\uffbf\034\uffbf\036\uffbf\001\002" +
67     "\000\004\002\000\001\002\000\022\005\021\006\uffb6\007" +
68     "\uffb6\011\uffb6\012\uffb6\014\uffb6\015\uffb6\016\uffb6\001\002" +
69     "\000\022\005\ufffc\006\ufffc\007\ufffc\011\ufffc\012\ufffc\014" +
70     "\ufffc\015\ufffc\016\ufffc\001\002\000\022\005\ufffd\006\ufffd" +
71     "\007\ufffd\011\ufffd\012\ufffd\014\ufffd\015\ufffd\016\ufffd\001" +
72     "\002\000\004\036\010\001\002\000\020\006\025\007\026" +
73     "\011\037\012\040\014\030\015\034\016\033\001\002\000" +
74     "\020\006\ufff7\007\ufff7\011\ufff7\012\ufff7\014\ufff7\015\ufff7" +
75     "\016\ufff7\001\002\000\020\006\ufff8\007\ufff8\011\ufff8\012" +
76     "\ufff8\014\ufff8\015\ufff8\016\ufff8\001\002\000\004\010\200" +
77     "\001\002\000\004\010\175\001\002\000\020\006\ufff5\007" +
78     "\ufff5\011\ufff5\012\ufff5\014\ufff5\015\ufff5\016\ufff5\001\002" +
79     "\000\004\015\173\001\002\000\016\014\uffed\015\uffed\016" +
80     "\uffed\017\uffed\023\uffed\036\uffed\001\002\000\020\006\ufff3" +
81     "\007\ufff3\011\ufff3\012\ufff3\014\ufff3\015\ufff3\016\ufff3\001" +
82     "\002\000\004\036\160\001\002\000\004\036\140\001\002" +
83     "\000\020\006\ufff6\007\ufff6\011\ufff6\012\ufff6\014\ufff6\015" +
84     "\ufff6\016\ufff6\001\002\000\016\014\030\015\034\016\033" +
85     "\017\054\023\uffb6\036\uffb6\001\002\000\004\013\047\001" +
86     "\002\000\004\013\042\001\002\000\020\006\ufff4\007\ufff4" +
87     "\011\ufff4\012\ufff4\014\ufff4\015\ufff4\016\ufff4\001\002\000" +
88     "\004\037\043\001\002\000\022\006\uffb6\007\uffb6\011\uffb6" +
89     "\012\uffb6\014\uffb6\015\uffb6\016\uffb6\030\045\001\002\000" +
90     "\020\006\uffef\007\uffef\011\uffef\012\uffef\014\uffef\015\uffef" +
91     "\016\uffef\001\002\000\020\006\uffb8\007\uffb8\011\uffb8\012" +
92     "\uffb8\014\uffb8\015\uffb8\016\uffb8\001\002\000\020\006\uffb7" +
93     "\007\uffb7\011\uffb7\012\uffb7\014\uffb7\015\uffb7\016\uffb7\001" +
94     "\002\000\004\037\050\001\002\000\022\006\uffb6\007\uffb6" +
95     "\011\uffb6\012\uffb6\014\uffb6\015\uffb6\016\uffb6\030\045\001" +
96     "\002\000\020\006\ufff0\007\ufff0\011\ufff0\012\ufff0\014\ufff0" +
97     "\015\ufff0\016\ufff0\001\002\000\006\023\102\036\uffd0\001" +
98     "\002\000\010\017\uffda\023\uffda\036\uffda\001\002\000\010" +
99     "\020\061\021\062\022\063\001\002\000\016\014\uffee\015" +
100     "\uffee\016\uffee\017\uffee\023\uffee\036\uffee\001\002\000\006" +
101     "\023\uffdc\036\uffdc\001\002\000\010\017\054\023\uffdd\036" +
102     "\uffdd\001\002\000\010\017\uffdb\023\uffdb\036\uffdb\001\002" +
103     "\000\004\036\uffd9\001\002\000\004\036\uffd7\001\002\000" +
104     "\004\036\uffd5\001\002\000\004\036\065\001\002\000\010" +
105     "\026\uffbb\027\uffbb\030\uffbb\001\002\000\006\027\uffd2\030" +
106     "\uffd2\001\002\000\006\027\070\030\071\001\002\000\004" +
107     "\036\065\001\002\000\010\017\uffd4\023\uffd4\036\uffd4\001" +
108     "\002\000\006\027\uffd3\030\uffd3\001\002\000\004\036\065" +
109     "\001\002\000\006\027\070\030\075\001\002\000\010\017" +
110     "\uffd6\023\uffd6\036\uffd6\001\002\000\004\036\065\001\002" +
111     "\000\006\027\070\030\100\001\002\000\010\017\uffd8\023" +
112     "\uffd8\036\uffd8\001\002\000\004\036\104\001\002\000\004" +
113     "\013\103\001\002\000\004\036\104\001\002\000\006\025" +
114     "\uffba\030\uffba\001\002\000\004\030\106\001\002\000\004" +
115     "\036\uffd1\001\002\000\004\025\113\001\002\000\006\002" +
116     "\001\036\104\001\002\000\006\002\uffce\036\uffce\001\002" +
117     "\000\006\002\uffcf\036\uffcf\001\002\000\014\024\uffcd\026" +
118     "\uffcd\030\uffcd\036\uffcd\037\uffcd\001\002\000\014\024\uffb6" +
119     "\026\uffb6\030\uffb6\036\uffb6\037\uffb6\001\002\000\006\026" +
120     "\134\030\135\001\002\000\014\024\uffc5\026\uffc5\030\uffc5" +
121     "\036\uffc5\037\uffc5\001\002\000\006\026\uffc9\030\uffc9\001" +
122     "\002\000\014\024\124\026\uffc7\030\uffc7\036\121\037\122" +
123     "\001\002\000\016\024\uffb9\026\uffb9\030\uffb9\031\uffb9\036" +
124     "\uffb9\037\uffb9\001\002\000\014\024\uffc3\026\uffc3\030\uffc3" +
125     "\036\uffc3\037\uffc3\001\002\000\016\024\uffb6\026\uffb6\030" +
126     "\uffb6\031\127\036\uffb6\037\uffb6\001\002\000\004\036\065" +
127     "\001\002\000\014\024\uffc6\026\uffc6\030\uffc6\036\uffc6\037" +
128     "\uffc6\001\002\000\006\026\uffc8\030\uffc8\001\002\000\004" +
129     "\036\132\001\002\000\014\024\uffc1\026\uffc1\030\uffc1\036" +
130     "\uffc1\037\uffc1\001\002\000\014\024\uffc4\026\uffc4\030\uffc4" +
131     "\036\uffc4\037\uffc4\001\002\000\014\024\uffc0\026\uffc0\030" +
132     "\uffc0\036\uffc0\037\uffc0\001\002\000\014\024\uffc2\026\uffc2" +
133     "\030\uffc2\036\uffc2\037\uffc2\001\002\000\014\024\uffcb\026" +
134     "\uffcb\030\uffcb\036\uffcb\037\uffcb\001\002\000\006\002\uffcc" +
135     "\036\uffcc\001\002\000\014\024\uffb6\026\uffb6\030\uffb6\036" +
136     "\uffb6\037\uffb6\001\002\000\006\026\uffca\030\uffca\001\002" +
137     "\000\014\027\uffbd\030\uffbd\032\uffbe\034\uffbe\036\uffbe\001" +
138     "\002\000\010\032\013\034\uffe3\036\uffe3\001\002\000\006" +
139     "\027\uffe0\030\uffe0\001\002\000\006\027\153\030\156\001" +
140     "\002\000\016\014\uffec\015\uffec\016\uffec\017\uffec\023\uffec" +
141     "\036\uffec\001\002\000\006\034\147\036\uffe8\001\002\000" +
142     "\004\036\151\001\002\000\004\035\150\001\002\000\006" +
143     "\034\uffe2\036\uffe2\001\002\000\006\027\uffbd\030\uffbd\001" +
144     "\002\000\006\027\153\030\154\001\002\000\004\036\151" +
145     "\001\002\000\016\014\uffe7\015\uffe7\016\uffe7\017\uffe7\023" +
146     "\uffe7\036\uffe7\001\002\000\006\027\uffe1\030\uffe1\001\002" +
147     "\000\016\014\uffe9\015\uffe9\016\uffe9\017\uffe9\023\uffe9\036" +
148     "\uffe9\001\002\000\016\014\uffea\015\uffea\016\uffea\017\uffea" +
149     "\023\uffea\036\uffea\001\002\000\014\027\uffbc\030\uffbc\032" +
150     "\uffbe\034\uffbe\036\uffbe\001\002\000\006\027\uffde\030\uffde" +
151     "\001\002\000\006\027\167\030\172\001\002\000\006\034" +
152     "\147\036\uffe5\001\002\000\004\036\165\001\002\000\006" +
153     "\027\uffbc\030\uffbc\001\002\000\006\027\167\030\170\001" +
154     "\002\000\004\036\165\001\002\000\016\014\uffe4\015\uffe4" +
155     "\016\uffe4\017\uffe4\023\uffe4\036\uffe4\001\002\000\006\027" +
156     "\uffdf\030\uffdf\001\002\000\016\014\uffe6\015\uffe6\016\uffe6" +
157     "\017\uffe6\023\uffe6\036\uffe6\001\002\000\004\036\160\001" +
158     "\002\000\016\014\uffeb\015\uffeb\016\uffeb\017\uffeb\023\uffeb" +
159     "\036\uffeb\001\002\000\004\037\176\001\002\000\022\006" +
160     "\uffb6\007\uffb6\011\uffb6\012\uffb6\014\uffb6\015\uffb6\016\uffb6" +
161     "\030\045\001\002\000\020\006\ufff1\007\ufff1\011\ufff1\012" +
162     "\ufff1\014\ufff1\015\ufff1\016\ufff1\001\002\000\004\037\201" +
163     "\001\002\000\022\006\uffb6\007\uffb6\011\uffb6\012\uffb6\014" +
164     "\uffb6\015\uffb6\016\uffb6\030\045\001\002\000\020\006\ufff2" +
165     "\007\ufff2\011\ufff2\012\ufff2\014\ufff2\015\ufff2\016\ufff2\001" +
166     "\002\000\006\030\ufff9\032\206\001\002\000\004\030\205" +
167     "\001\002\000\022\005\ufffb\006\ufffb\007\ufffb\011\ufffb\012" +
168     "\ufffb\014\ufffb\015\ufffb\016\ufffb\001\002\000\006\033\207" +
169     "\036\014\001\002\000\004\030\ufffa\001\002" });
170
171   /** Access to parse-action table. */
172   public short[][] action_table() {return _action_table;}
173
174   /** <code>reduce_goto</code> table. */
175   protected static final short[][] _reduce_table =
176     unpackFromStrings(new String JavaDoc[] {
177     "\000\205\000\010\003\004\004\003\051\005\001\001\000" +
178     "\006\005\015\051\016\001\001\000\002\001\001\000\002" +
179     "\001\001\000\004\047\010\001\001\000\002\001\001\000" +
180     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
181     "\001\001\000\002\001\001\000\010\006\017\010\021\051" +
182     "\022\001\001\000\002\001\001\000\002\001\001\000\006" +
183     "\007\203\047\202\001\001\000\020\011\023\012\034\013" +
184     "\026\014\040\015\031\016\035\017\030\001\001\000\002" +
185     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
186     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
187     "\000\002\001\001\000\014\021\156\022\162\024\161\043" +
188     "\160\047\140\001\001\000\014\020\143\022\144\023\142" +
189     "\042\141\047\140\001\001\000\002\001\001\000\014\017" +
190     "\054\025\051\026\056\027\052\051\055\001\001\000\002" +
191     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
192     "\001\000\006\050\043\051\045\001\001\000\002\001\001" +
193     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
194     "\006\050\050\051\045\001\001\000\002\001\001\000\004" +
195     "\031\100\001\001\000\002\001\001\000\002\001\001\000" +
196     "\002\001\001\000\002\001\001\000\004\027\057\001\001" +
197     "\000\002\001\001\000\004\054\075\001\001\000\004\055" +
198     "\072\001\001\000\004\056\063\001\001\000\006\030\066" +
199     "\044\065\001\001\000\002\001\001\000\002\001\001\000" +
200     "\002\001\001\000\004\044\071\001\001\000\002\001\001" +
201     "\000\002\001\001\000\006\030\073\044\065\001\001\000" +
202     "\002\001\001\000\002\001\001\000\006\030\076\044\065" +
203     "\001\001\000\002\001\001\000\002\001\001\000\010\032" +
204     "\107\033\110\045\106\001\001\000\002\001\001\000\004" +
205     "\045\104\001\001\000\002\001\001\000\002\001\001\000" +
206     "\002\001\001\000\002\001\001\000\006\033\111\045\106" +
207     "\001\001\000\002\001\001\000\002\001\001\000\004\057" +
208     "\113\001\001\000\012\034\114\035\116\036\117\051\115" +
209     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
210     "\001\000\006\037\124\046\122\001\001\000\002\001\001" +
211     "\000\002\001\001\000\006\040\130\051\127\001\001\000" +
212     "\004\044\125\001\001\000\002\001\001\000\002\001\001" +
213     "\000\004\041\132\001\001\000\002\001\001\000\002\001" +
214     "\001\000\002\001\001\000\002\001\001\000\004\060\135" +
215     "\001\001\000\002\001\001\000\010\035\136\036\117\051" +
216     "\115\001\001\000\002\001\001\000\002\001\001\000\002" +
217     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
218     "\001\000\004\052\145\001\001\000\006\023\151\042\141" +
219     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
220     "\001\000\002\001\001\000\004\042\154\001\001\000\002" +
221     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
222     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
223     "\000\004\053\163\001\001\000\006\024\165\043\160\001" +
224     "\001\000\002\001\001\000\002\001\001\000\004\043\170" +
225     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
226     "\001\000\014\021\173\022\162\024\161\043\160\047\140" +
227     "\001\001\000\002\001\001\000\002\001\001\000\006\050" +
228     "\176\051\045\001\001\000\002\001\001\000\002\001\001" +
229     "\000\006\050\201\051\045\001\001\000\002\001\001\000" +
230     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
231     "\001\001\000\002\001\001" });
232
233   /** Access to <code>reduce_goto</code> table. */
234   public short[][] reduce_table() {return _reduce_table;}
235
236   /** Instance of action encapsulation class. */
237   protected CUP$SpecParser$actions action_obj;
238
239   /** Action encapsulation object initializer. */
240   protected void init_actions()
241     {
242       action_obj = new CUP$SpecParser$actions(this);
243     }
244
245   /** Invoke a user supplied parse action. */
246   public java_cup.runtime.Symbol do_action(
247     int act_num,
248     java_cup.runtime.lr_parser parser,
249     java.util.Stack JavaDoc stack,
250     int top)
251     throws java.lang.Exception JavaDoc
252   {
253     /* call code in generated class */
254     return action_obj.CUP$SpecParser$do_action(act_num, parser, stack, top);
255   }
256
257   /** Indicates start state. */
258   public int start_state() {return 0;}
259   /** Indicates start production. */
260   public int start_production() {return 1;}
261
262   /** <code>EOF</code> Symbol index. */
263   public int EOF_sym() {return 0;}
264
265   /** <code>error</code> Symbol index. */
266   public int error_sym() {return 1;}
267
268
269
270     // Parser code to change the way the parser reports errors
271
public void report_error(String JavaDoc message, Object JavaDoc info) {
272         StringBuffer JavaDoc m = new StringBuffer JavaDoc("Error");
273         if (info instanceof java_cup.runtime.Symbol) {
274             java_cup.runtime.Symbol symbol = ((java_cup.runtime.Symbol) info);
275             if (symbol.left >= 0) {
276                 m.append(" in line "+(symbol.left+1));
277                 if (symbol.right >= 0)
278                     m.append(", column "+(symbol.right+1));
279             }
280         }
281         m.append(" : "+message);
282         System.err.println(m);
283     }
284
285     public void report_fatal_error(String JavaDoc message, Object JavaDoc info)
286             throws SpecParseException {
287         report_error(message, info);
288         throw new SpecParseException(message);
289     }
290
291 }
292
293 /** Cup generated class to encapsulate user supplied action code.*/
294 class CUP$SpecParser$actions {
295
296
297     class Pair {
298         Object JavaDoc first;
299         Object JavaDoc second;
300         Pair(Object JavaDoc first, Object JavaDoc second) {
301             this.first = first;
302             this.second = second;
303         }
304     }
305     private String JavaDoc packageName = null;
306     private List importsList = new LinkedList();
307     private String JavaDoc actionCode = null;
308     private String JavaDoc parserCode = null;
309     private String JavaDoc initCode = null;
310     private String JavaDoc scanCode = null;
311
312     private NonTerminals v = new NonTerminals();
313     private Terminals t = new Terminals();
314     private NonTerminal s = null;
315     private Productions p = new Productions();
316
317
318     private String JavaDoc type;
319     
320     private int countNewNonTerminals = 0;
321     private int precedence = Terminal.NO_PRECEDENCE;
322     private int associativity;
323
324     private int prodPrecedence;
325     private NonTerminal lhs;
326     private List RHSList;
327     private List prodPartList;
328     private String JavaDoc prodPartLabel;
329     private List prodPartLabels;
330     private SemanticAction action;
331
332   private final SpecParser parser;
333
334   /** Constructor */
335   CUP$SpecParser$actions(SpecParser parser) {
336     this.parser = parser;
337   }
338
339   /** Method with the actual generated action code. */
340   public final java_cup.runtime.Symbol CUP$SpecParser$do_action(
341     int CUP$SpecParser$act_num,
342     java_cup.runtime.lr_parser CUP$SpecParser$parser,
343     java.util.Stack JavaDoc CUP$SpecParser$stack,
344     int CUP$SpecParser$top)
345     throws java.lang.Exception JavaDoc
346     {
347       /* Symbol object for return from actions */
348       java_cup.runtime.Symbol CUP$SpecParser$result;
349
350       /* select the action based on the action number */
351       switch (CUP$SpecParser$act_num)
352         {
353           /*. . . . . . . . . . . . . . . . . . . .*/
354           case 75: // empty ::=
355
{
356               Object JavaDoc RESULT = null;
357
358               CUP$SpecParser$result = new java_cup.runtime.Symbol(39/*empty*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
359             }
360           return CUP$SpecParser$result;
361
362           /*. . . . . . . . . . . . . . . . . . . .*/
363           case 74: // opt_semi ::= empty
364
{
365               Object JavaDoc RESULT = null;
366
367               CUP$SpecParser$result = new java_cup.runtime.Symbol(38/*opt_semi*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
368             }
369           return CUP$SpecParser$result;
370
371           /*. . . . . . . . . . . . . . . . . . . .*/
372           case 73: // opt_semi ::= SEMI
373
{
374               Object JavaDoc RESULT = null;
375
376               CUP$SpecParser$result = new java_cup.runtime.Symbol(38/*opt_semi*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
377             }
378           return CUP$SpecParser$result;
379
380           /*. . . . . . . . . . . . . . . . . . . .*/
381           case 72: // symbol_id ::= ID
382
{
383               ro.infoiasi.donald.compiler.cfg.Symbol RESULT = null;
384         int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
385         int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
386         String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
387         
388         RESULT = t.find(id);
389         if (RESULT == null) {
390             RESULT = v.find(id);
391         }
392         if (RESULT == null) {
393             parser.report_fatal_error("symbol \""+id+"\" not found", null);
394         }
395     
396               CUP$SpecParser$result = new java_cup.runtime.Symbol(36/*symbol_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
397             }
398           return CUP$SpecParser$result;
399
400           /*. . . . . . . . . . . . . . . . . . . .*/
401           case 71: // nonterminal_id ::= ID
402
{
403               NonTerminal RESULT = null;
404         int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
405         int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
406         String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
407         
408         RESULT = v.find(id);
409         if (RESULT == null) {
410             parser.report_fatal_error("non-terminal \""+id+"\" not found", null);
411         }
412     
413               CUP$SpecParser$result = new java_cup.runtime.Symbol(35/*nonterminal_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
414             }
415           return CUP$SpecParser$result;
416
417           /*. . . . . . . . . . . . . . . . . . . .*/
418           case 70: // terminal_id ::= ID
419
{
420               Terminal RESULT = null;
421         int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
422         int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
423         String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
424         
425         RESULT = t.find(id);
426         if (RESULT == null) {
427             parser.report_fatal_error("terminal \""+id+"\" not found", null);
428         }
429     
430               CUP$SpecParser$result = new java_cup.runtime.Symbol(34/*terminal_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
431             }
432           return CUP$SpecParser$result;
433
434           /*. . . . . . . . . . . . . . . . . . . .*/
435           case 69: // new_non_term_id ::= ID
436
{
437               Object JavaDoc RESULT = null;
438         int nameleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
439         int nameright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
440         String JavaDoc name = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
441          v.addNew(name, type);
442               CUP$SpecParser$result = new java_cup.runtime.Symbol(33/*new_non_term_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
443             }
444           return CUP$SpecParser$result;
445
446           /*. . . . . . . . . . . . . . . . . . . .*/
447           case 68: // new_term_id ::= ID
448
{
449               Object JavaDoc RESULT = null;
450         int nameleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
451         int nameright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
452         String JavaDoc name = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
453          t.addNew(name, type);
454               CUP$SpecParser$result = new java_cup.runtime.Symbol(32/*new_term_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
455             }
456           return CUP$SpecParser$result;
457
458           /*. . . . . . . . . . . . . . . . . . . .*/
459           case 67: // multipart_id ::= ID
460
{
461               String JavaDoc RESULT = null;
462         int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
463         int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
464         String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
465         
466         RESULT = id;
467     
468               CUP$SpecParser$result = new java_cup.runtime.Symbol(37/*multipart_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
469             }
470           return CUP$SpecParser$result;
471
472           /*. . . . . . . . . . . . . . . . . . . .*/
473           case 66: // multipart_id ::= multipart_id DOT ID
474
{
475               String JavaDoc RESULT = null;
476         int id1left = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left;
477         int id1right = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).right;
478         String JavaDoc id1 = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value;
479         int id2left = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
480         int id2right = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
481         String JavaDoc id2 = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
482         
483         RESULT = id1 + "." + id2;
484     
485               CUP$SpecParser$result = new java_cup.runtime.Symbol(37/*multipart_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
486             }
487           return CUP$SpecParser$result;
488
489           /*. . . . . . . . . . . . . . . . . . . .*/
490           case 65: // label_id ::= ID
491
{
492               String JavaDoc RESULT = null;
493         int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
494         int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
495         String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
496         
497         RESULT = id;
498     
499               CUP$SpecParser$result = new java_cup.runtime.Symbol(31/*label_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
500             }
501           return CUP$SpecParser$result;
502
503           /*. . . . . . . . . . . . . . . . . . . .*/
504           case 64: // opt_label ::= empty
505
{
506               Object JavaDoc RESULT = null;
507         
508         prodPartLabel = null;
509     
510               CUP$SpecParser$result = new java_cup.runtime.Symbol(30/*opt_label*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
511             }
512           return CUP$SpecParser$result;
513
514           /*. . . . . . . . . . . . . . . . . . . .*/
515           case 63: // opt_label ::= COLON label_id
516
{
517               Object JavaDoc RESULT = null;
518         int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
519         int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
520         String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
521         
522         prodPartLabel = id;
523     
524               CUP$SpecParser$result = new java_cup.runtime.Symbol(30/*opt_label*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
525             }
526           return CUP$SpecParser$result;
527
528           /*. . . . . . . . . . . . . . . . . . . .*/
529           case 62: // prod_part ::= CODE_STRING
530
{
531               Object JavaDoc RESULT = null;
532         int codeStringleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
533         int codeStringright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
534         String JavaDoc codeString = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
535         
536         prodPartList.add(new SemanticAction(lhs.getType(),
537             prodPartLabels, prodPartList.size(), codeString));
538     
539               CUP$SpecParser$result = new java_cup.runtime.Symbol(29/*prod_part*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
540             }
541           return CUP$SpecParser$result;
542
543           /*. . . . . . . . . . . . . . . . . . . .*/
544           case 61: // prod_part ::= symbol_id opt_label
545
{
546               Object JavaDoc RESULT = null;
547         int symleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left;
548         int symright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).right;
549         ro.infoiasi.donald.compiler.cfg.Symbol sym = (ro.infoiasi.donald.compiler.cfg.Symbol)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
550         
551         if (prodPartLabel != null) {
552             prodPartLabels.add(new Label(prodPartLabel, sym, prodPartList.size()));
553         }
554         prodPartList.add(sym);
555     
556               CUP$SpecParser$result = new java_cup.runtime.Symbol(29/*prod_part*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
557             }
558           return CUP$SpecParser$result;
559
560           /*. . . . . . . . . . . . . . . . . . . .*/
561           case 60: // prod_part_list ::= empty
562
{
563               Object JavaDoc RESULT = null;
564
565               CUP$SpecParser$result = new java_cup.runtime.Symbol(28/*prod_part_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
566             }
567           return CUP$SpecParser$result;
568
569           /*. . . . . . . . . . . . . . . . . . . .*/
570           case 59: // prod_part_list ::= prod_part_list prod_part
571
{
572               Object JavaDoc RESULT = null;
573
574               CUP$SpecParser$result = new java_cup.runtime.Symbol(28/*prod_part_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
575             }
576           return CUP$SpecParser$result;
577
578           /*. . . . . . . . . . . . . . . . . . . .*/
579           case 58: // rhs ::= prod_part_list
580
{
581               Object JavaDoc RESULT = null;
582         
583         prodPrecedence = Production.LAST_TERMINAL_PRECEDENCE;
584     
585               CUP$SpecParser$result = new java_cup.runtime.Symbol(27/*rhs*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
586             }
587           return CUP$SpecParser$result;
588
589           /*. . . . . . . . . . . . . . . . . . . .*/
590           case 57: // rhs ::= prod_part_list PERCENT_PREC terminal_id
591
{
592               Object JavaDoc RESULT = null;
593         int termleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
594         int termright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
595         Terminal term = (Terminal)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
596         
597         prodPrecedence = term.getPrecedence();
598     
599               CUP$SpecParser$result = new java_cup.runtime.Symbol(27/*rhs*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
600             }
601           return CUP$SpecParser$result;
602
603           /*. . . . . . . . . . . . . . . . . . . .*/
604           case 56: // rhs_list ::= rhs
605
{
606               Object JavaDoc RESULT = null;
607         
608         Word w = new Word();
609         SemanticAction action = null;
610         Iterator it = prodPartList.iterator();
611         while (it.hasNext()) {
612             Object JavaDoc obj = it.next();
613             ro.infoiasi.donald.compiler.cfg.Symbol sym;
614             if (obj instanceof SemanticAction) {
615                 SemanticAction sa = (SemanticAction)obj;
616                 if (it.hasNext()) {
617                     NonTerminal nt = v.addNew("$ACTION"+countNewNonTerminals++);
618                     p.addNew(nt, new Word(), sa);
619                     w.addLast(nt);
620                 } else {
621                     action = sa;
622                 }
623             } else {
624                 sym = (ro.infoiasi.donald.compiler.cfg.Symbol)obj;
625                 w.addLast(sym);
626             }
627         }
628         RHSList.add(new Pair(w, action));
629     
630               CUP$SpecParser$result = new java_cup.runtime.Symbol(26/*rhs_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
631             }
632           return CUP$SpecParser$result;
633
634           /*. . . . . . . . . . . . . . . . . . . .*/
635           case 55: // rhs_list ::= rhs_list BAR NT$6 rhs
636
{
637               Object JavaDoc RESULT = null;
638               // propagate RESULT from NT$6
639
if ( ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value != null )
640                 RESULT = (Object JavaDoc) ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
641         
642         Word w = new Word();
643         SemanticAction action = null;
644         Iterator it = prodPartList.iterator();
645         while (it.hasNext()) {
646             Object JavaDoc obj = it.next();
647             ro.infoiasi.donald.compiler.cfg.Symbol sym;
648             if (obj instanceof SemanticAction) {
649                 SemanticAction sa = (SemanticAction)obj;
650                 if (it.hasNext()) {
651                     NonTerminal nt = v.addNew("$ACTION"+countNewNonTerminals++);
652                     p.addNew(nt, new Word(), sa);
653                     w.addLast(nt);
654                 } else {
655                     action = sa;
656                 }
657             } else {
658                 sym = (ro.infoiasi.donald.compiler.cfg.Symbol)obj;
659                 w.addLast(sym);
660             }
661         }
662         RHSList.add(new Pair(w, action));
663     
664               CUP$SpecParser$result = new java_cup.runtime.Symbol(26/*rhs_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
665             }
666           return CUP$SpecParser$result;
667
668           /*. . . . . . . . . . . . . . . . . . . .*/
669           case 54: // NT$6 ::=
670
{
671               Object JavaDoc RESULT = null;
672
673         prodPartList = new LinkedList();
674         prodPartLabels = new LinkedList();
675         action = null;
676     
677               CUP$SpecParser$result = new java_cup.runtime.Symbol(46/*NT$6*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
678             }
679           return CUP$SpecParser$result;
680
681           /*. . . . . . . . . . . . . . . . . . . .*/
682           case 53: // production ::= nonterminal_id COLON_COLON_EQUALS NT$5 rhs_list SEMI
683
{
684               Object JavaDoc RESULT = null;
685               // propagate RESULT from NT$5
686
if ( ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value != null )
687                 RESULT = (Object JavaDoc) ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value;
688         int ntleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-4)).left;
689         int ntright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-4)).right;
690         NonTerminal nt = (NonTerminal)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-4)).value;
691         
692         Iterator it = RHSList.iterator();
693         while (it.hasNext()) {
694             Pair pair = (Pair)it.next();
695             p.addNew(lhs, (Word)pair.first, (SemanticAction)pair.second);
696         }
697     
698               CUP$SpecParser$result = new java_cup.runtime.Symbol(25/*production*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
699             }
700           return CUP$SpecParser$result;
701
702           /*. . . . . . . . . . . . . . . . . . . .*/
703           case 52: // NT$5 ::=
704
{
705               Object JavaDoc RESULT = null;
706         int ntleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left;
707         int ntright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).right;
708         NonTerminal nt = (NonTerminal)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
709
710         lhs = nt;
711         RHSList = new LinkedList();
712         prodPartList = new LinkedList();
713         prodPartLabels = new LinkedList();
714     
715               CUP$SpecParser$result = new java_cup.runtime.Symbol(45/*NT$5*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
716             }
717           return CUP$SpecParser$result;
718
719           /*. . . . . . . . . . . . . . . . . . . .*/
720           case 51: // production_list ::= production
721
{
722               Object JavaDoc RESULT = null;
723
724               CUP$SpecParser$result = new java_cup.runtime.Symbol(24/*production_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
725             }
726           return CUP$SpecParser$result;
727
728           /*. . . . . . . . . . . . . . . . . . . .*/
729           case 50: // production_list ::= production_list production
730
{
731               Object JavaDoc RESULT = null;
732
733               CUP$SpecParser$result = new java_cup.runtime.Symbol(24/*production_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
734             }
735           return CUP$SpecParser$result;
736
737           /*. . . . . . . . . . . . . . . . . . . .*/
738           case 49: // start_spec ::=
739
{
740               Object JavaDoc RESULT = null;
741
742               CUP$SpecParser$result = new java_cup.runtime.Symbol(23/*start_spec*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
743             }
744           return CUP$SpecParser$result;
745
746           /*. . . . . . . . . . . . . . . . . . . .*/
747           case 48: // start_spec ::= START WITH nonterminal_id SEMI
748
{
749               Object JavaDoc RESULT = null;
750         int ntleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left;
751         int ntright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).right;
752         NonTerminal nt = (NonTerminal)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
753         
754         s = nt;
755     
756               CUP$SpecParser$result = new java_cup.runtime.Symbol(23/*start_spec*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
757             }
758           return CUP$SpecParser$result;
759
760           /*. . . . . . . . . . . . . . . . . . . .*/
761           case 47: // terminal_list ::= terminal_id
762
{
763               Object JavaDoc RESULT = null;
764         int termleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
765         int termright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
766         Terminal term = (Terminal)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
767         
768         term.setPrecedence(precedence, associativity);
769     
770               CUP$SpecParser$result = new java_cup.runtime.Symbol(22/*terminal_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
771             }
772           return CUP$SpecParser$result;
773
774           /*. . . . . . . . . . . . . . . . . . . .*/
775           case 46: // terminal_list ::= terminal_list COMMA terminal_id
776
{
777               Object JavaDoc RESULT = null;
778         int termleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
779         int termright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
780         Terminal term = (Terminal)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
781         
782         term.setPrecedence(precedence, associativity);
783     
784               CUP$SpecParser$result = new java_cup.runtime.Symbol(22/*terminal_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
785             }
786           return CUP$SpecParser$result;
787
788           /*. . . . . . . . . . . . . . . . . . . .*/
789           case 45: // preced ::= PRECEDENCE NONASSOC NT$4 terminal_list SEMI
790
{
791               Object JavaDoc RESULT = null;
792               // propagate RESULT from NT$4
793
if ( ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value != null )
794                 RESULT = (Object JavaDoc) ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value;
795
796               CUP$SpecParser$result = new java_cup.runtime.Symbol(21/*preced*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
797             }
798           return CUP$SpecParser$result;
799
800           /*. . . . . . . . . . . . . . . . . . . .*/
801           case 44: // NT$4 ::=
802
{
803               Object JavaDoc RESULT = null;
804
805         precedence++;
806         associativity = Terminal.NON_ASSOCIATIVE;
807     
808               CUP$SpecParser$result = new java_cup.runtime.Symbol(44/*NT$4*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
809             }
810           return CUP$SpecParser$result;
811
812           /*. . . . . . . . . . . . . . . . . . . .*/
813           case 43: // preced ::= PRECEDENCE RIGHT NT$3 terminal_list SEMI
814
{
815               Object JavaDoc RESULT = null;
816               // propagate RESULT from NT$3
817
if ( ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value != null )
818                 RESULT = (Object JavaDoc) ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value;
819
820               CUP$SpecParser$result = new java_cup.runtime.Symbol(21/*preced*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
821             }
822           return CUP$SpecParser$result;
823
824           /*. . . . . . . . . . . . . . . . . . . .*/
825           case 42: // NT$3 ::=
826
{
827               Object JavaDoc RESULT = null;
828
829         precedence++;
830         associativity = Terminal.RIGHT_ASSOCIATIVE;
831     
832               CUP$SpecParser$result = new java_cup.runtime.Symbol(43/*NT$3*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
833             }
834           return CUP$SpecParser$result;
835
836           /*. . . . . . . . . . . . . . . . . . . .*/
837           case 41: // preced ::= PRECEDENCE LEFT NT$2 terminal_list SEMI
838
{
839               Object JavaDoc RESULT = null;
840               // propagate RESULT from NT$2
841
if ( ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value != null )
842                 RESULT = (Object JavaDoc) ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value;
843
844               CUP$SpecParser$result = new java_cup.runtime.Symbol(21/*preced*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
845             }
846           return CUP$SpecParser$result;
847
848           /*. . . . . . . . . . . . . . . . . . . .*/
849           case 40: // NT$2 ::=
850
{
851               Object JavaDoc RESULT = null;
852
853         precedence++;
854         associativity = Terminal.LEFT_ASSOCIATIVE;
855     
856               CUP$SpecParser$result = new java_cup.runtime.Symbol(42/*NT$2*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
857             }
858           return CUP$SpecParser$result;
859
860           /*. . . . . . . . . . . . . . . . . . . .*/
861           case 39: // precedence_l ::= preced
862
{
863               Object JavaDoc RESULT = null;
864
865               CUP$SpecParser$result = new java_cup.runtime.Symbol(20/*precedence_l*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
866             }
867           return CUP$SpecParser$result;
868
869           /*. . . . . . . . . . . . . . . . . . . .*/
870           case 38: // precedence_l ::= precedence_l preced
871
{
872               Object JavaDoc RESULT = null;
873
874               CUP$SpecParser$result = new java_cup.runtime.Symbol(20/*precedence_l*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
875             }
876           return CUP$SpecParser$result;
877
878           /*. . . . . . . . . . . . . . . . . . . .*/
879           case 37: // precedence_list ::= empty
880
{
881               Object JavaDoc RESULT = null;
882
883               CUP$SpecParser$result = new java_cup.runtime.Symbol(19/*precedence_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
884             }
885           return CUP$SpecParser$result;
886
887           /*. . . . . . . . . . . . . . . . . . . .*/
888           case 36: // precedence_list ::= precedence_l
889
{
890               Object JavaDoc RESULT = null;
891
892               CUP$SpecParser$result = new java_cup.runtime.Symbol(19/*precedence_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
893             }
894           return CUP$SpecParser$result;
895
896           /*. . . . . . . . . . . . . . . . . . . .*/
897           case 35: // non_term_name_list ::= new_non_term_id
898
{
899               Object JavaDoc RESULT = null;
900
901               CUP$SpecParser$result = new java_cup.runtime.Symbol(18/*non_term_name_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
902             }
903           return CUP$SpecParser$result;
904
905           /*. . . . . . . . . . . . . . . . . . . .*/
906           case 34: // non_term_name_list ::= non_term_name_list COMMA new_non_term_id
907
{
908               Object JavaDoc RESULT = null;
909
910               CUP$SpecParser$result = new java_cup.runtime.Symbol(18/*non_term_name_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
911             }
912           return CUP$SpecParser$result;
913
914           /*. . . . . . . . . . . . . . . . . . . .*/
915           case 33: // term_name_list ::= new_term_id
916
{
917               Object JavaDoc RESULT = null;
918
919               CUP$SpecParser$result = new java_cup.runtime.Symbol(17/*term_name_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
920             }
921           return CUP$SpecParser$result;
922
923           /*. . . . . . . . . . . . . . . . . . . .*/
924           case 32: // term_name_list ::= term_name_list COMMA new_term_id
925
{
926               Object JavaDoc RESULT = null;
927
928               CUP$SpecParser$result = new java_cup.runtime.Symbol(17/*term_name_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
929             }
930           return CUP$SpecParser$result;
931
932           /*. . . . . . . . . . . . . . . . . . . .*/
933           case 31: // type_id ::= type_id LBRACK RBRACK
934
{
935               String JavaDoc RESULT = null;
936         int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left;
937         int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).right;
938         String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value;
939         
940         RESULT = id+"[]";
941     
942               CUP$SpecParser$result = new java_cup.runtime.Symbol(16/*type_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
943             }
944           return CUP$SpecParser$result;
945
946           /*. . . . . . . . . . . . . . . . . . . .*/
947           case 30: // type_id ::= multipart_id
948
{
949               String JavaDoc RESULT = null;
950         int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
951         int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
952         String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
953         
954         RESULT = id;
955     
956               CUP$SpecParser$result = new java_cup.runtime.Symbol(16/*type_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
957             }
958           return CUP$SpecParser$result;
959
960           /*. . . . . . . . . . . . . . . . . . . .*/
961           case 29: // declares_non_term ::= type_id NT$1 non_term_name_list SEMI
962
{
963               Object JavaDoc RESULT = null;
964               // propagate RESULT from NT$1
965
if ( ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value != null )
966                 RESULT = (Object JavaDoc) ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value;
967         int type_nameleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).left;
968         int type_nameright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).right;
969         String JavaDoc type_name = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).value;
970         
971         type = null;
972     
973               CUP$SpecParser$result = new java_cup.runtime.Symbol(15/*declares_non_term*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
974             }
975           return CUP$SpecParser$result;
976
977           /*. . . . . . . . . . . . . . . . . . . .*/
978           case 28: // NT$1 ::=
979
{
980               Object JavaDoc RESULT = null;
981         int type_nameleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
982         int type_nameright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
983         String JavaDoc type_name = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
984
985         type = type_name;
986     
987               CUP$SpecParser$result = new java_cup.runtime.Symbol(41/*NT$1*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
988             }
989           return CUP$SpecParser$result;
990
991           /*. . . . . . . . . . . . . . . . . . . .*/
992           case 27: // declares_non_term ::= non_term_name_list SEMI
993
{
994               Object JavaDoc RESULT = null;
995
996               CUP$SpecParser$result = new java_cup.runtime.Symbol(15/*declares_non_term*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
997             }
998           return CUP$SpecParser$result;
999
1000          /*. . . . . . . . . . . . . . . . . . . .*/
1001          case 26: // declares_term ::= type_id NT$0 term_name_list SEMI
1002
{
1003              Object JavaDoc RESULT = null;
1004              // propagate RESULT from NT$0
1005
if ( ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value != null )
1006                RESULT = (Object JavaDoc) ((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value;
1007        int type_nameleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).left;
1008        int type_nameright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).right;
1009        String JavaDoc type_name = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).value;
1010        
1011        type = null;
1012    
1013              CUP$SpecParser$result = new java_cup.runtime.Symbol(14/*declares_term*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1014            }
1015          return CUP$SpecParser$result;
1016
1017          /*. . . . . . . . . . . . . . . . . . . .*/
1018          case 25: // NT$0 ::=
1019
{
1020              Object JavaDoc RESULT = null;
1021        int type_nameleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
1022        int type_nameright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
1023        String JavaDoc type_name = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
1024
1025        type = type_name;
1026    
1027              CUP$SpecParser$result = new java_cup.runtime.Symbol(40/*NT$0*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1028            }
1029          return CUP$SpecParser$result;
1030
1031          /*. . . . . . . . . . . . . . . . . . . .*/
1032          case 24: // declares_term ::= term_name_list SEMI
1033
{
1034              Object JavaDoc RESULT = null;
1035
1036              CUP$SpecParser$result = new java_cup.runtime.Symbol(14/*declares_term*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1037            }
1038          return CUP$SpecParser$result;
1039
1040          /*. . . . . . . . . . . . . . . . . . . .*/
1041          case 23: // symbol ::= NONTERMINAL declares_non_term
1042
{
1043              Object JavaDoc RESULT = null;
1044
1045              CUP$SpecParser$result = new java_cup.runtime.Symbol(13/*symbol*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1046            }
1047          return CUP$SpecParser$result;
1048
1049          /*. . . . . . . . . . . . . . . . . . . .*/
1050          case 22: // symbol ::= NON TERMINAL declares_non_term
1051
{
1052              Object JavaDoc RESULT = null;
1053
1054              CUP$SpecParser$result = new java_cup.runtime.Symbol(13/*symbol*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1055            }
1056          return CUP$SpecParser$result;
1057
1058          /*. . . . . . . . . . . . . . . . . . . .*/
1059          case 21: // symbol ::= TERMINAL declares_term
1060
{
1061              Object JavaDoc RESULT = null;
1062
1063              CUP$SpecParser$result = new java_cup.runtime.Symbol(13/*symbol*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1064            }
1065          return CUP$SpecParser$result;
1066
1067          /*. . . . . . . . . . . . . . . . . . . .*/
1068          case 20: // symbol_list ::= symbol
1069
{
1070              Object JavaDoc RESULT = null;
1071
1072              CUP$SpecParser$result = new java_cup.runtime.Symbol(12/*symbol_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1073            }
1074          return CUP$SpecParser$result;
1075
1076          /*. . . . . . . . . . . . . . . . . . . .*/
1077          case 19: // symbol_list ::= symbol_list symbol
1078
{
1079              Object JavaDoc RESULT = null;
1080
1081              CUP$SpecParser$result = new java_cup.runtime.Symbol(12/*symbol_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1082            }
1083          return CUP$SpecParser$result;
1084
1085          /*. . . . . . . . . . . . . . . . . . . .*/
1086          case 18: // scan_code ::= SCAN WITH CODE_STRING opt_semi
1087
{
1088              Object JavaDoc RESULT = null;
1089        int codeStringleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left;
1090        int codeStringright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).right;
1091        String JavaDoc codeString = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
1092        
1093        if (scanCode == null) {
1094            scanCode = codeString;
1095        } else {
1096            parser.report_error("Redundant scan code (skipping)", null);
1097        }
1098    
1099              CUP$SpecParser$result = new java_cup.runtime.Symbol(11/*scan_code*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1100            }
1101          return CUP$SpecParser$result;
1102
1103          /*. . . . . . . . . . . . . . . . . . . .*/
1104          case 17: // init_code ::= INIT WITH CODE_STRING opt_semi
1105
{
1106              Object JavaDoc RESULT = null;
1107        int codeStringleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left;
1108        int codeStringright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).right;
1109        String JavaDoc codeString = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
1110        
1111        if (initCode == null) {
1112            initCode = codeString;
1113        } else {
1114            parser.report_error("Redundant init code (skipping)", null);
1115        }
1116    
1117              CUP$SpecParser$result = new java_cup.runtime.Symbol(10/*init_code*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1118            }
1119          return CUP$SpecParser$result;
1120
1121          /*. . . . . . . . . . . . . . . . . . . .*/
1122          case 16: // parser_code_part ::= PARSER CODE CODE_STRING opt_semi
1123
{
1124              Object JavaDoc RESULT = null;
1125        int codeStringleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left;
1126        int codeStringright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).right;
1127        String JavaDoc codeString = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
1128        
1129        if (parserCode == null) {
1130            parserCode = codeString;
1131        } else {
1132            parser.report_error("Redundant parser code (skipping)", null);
1133        }
1134    
1135              CUP$SpecParser$result = new java_cup.runtime.Symbol(9/*parser_code_part*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1136            }
1137          return CUP$SpecParser$result;
1138
1139          /*. . . . . . . . . . . . . . . . . . . .*/
1140          case 15: // action_code_part ::= ACTION CODE CODE_STRING opt_semi
1141
{
1142              Object JavaDoc RESULT = null;
1143        int codeStringleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left;
1144        int codeStringright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).right;
1145        String JavaDoc codeString = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
1146        
1147        if (actionCode == null) {
1148            actionCode = codeString;
1149        } else {
1150            parser.report_error("Redundant action code (skipping)", null);
1151        }
1152    
1153              CUP$SpecParser$result = new java_cup.runtime.Symbol(8/*action_code_part*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1154            }
1155          return CUP$SpecParser$result;
1156
1157          /*. . . . . . . . . . . . . . . . . . . .*/
1158          case 14: // code_part ::= scan_code
1159
{
1160              Object JavaDoc RESULT = null;
1161
1162              CUP$SpecParser$result = new java_cup.runtime.Symbol(7/*code_part*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1163            }
1164          return CUP$SpecParser$result;
1165
1166          /*. . . . . . . . . . . . . . . . . . . .*/
1167          case 13: // code_part ::= init_code
1168
{
1169              Object JavaDoc RESULT = null;
1170
1171              CUP$SpecParser$result = new java_cup.runtime.Symbol(7/*code_part*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1172            }
1173          return CUP$SpecParser$result;
1174
1175          /*. . . . . . . . . . . . . . . . . . . .*/
1176          case 12: // code_part ::= parser_code_part
1177
{
1178              Object JavaDoc RESULT = null;
1179
1180              CUP$SpecParser$result = new java_cup.runtime.Symbol(7/*code_part*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1181            }
1182          return CUP$SpecParser$result;
1183
1184          /*. . . . . . . . . . . . . . . . . . . .*/
1185          case 11: // code_part ::= action_code_part
1186
{
1187              Object JavaDoc RESULT = null;
1188
1189              CUP$SpecParser$result = new java_cup.runtime.Symbol(7/*code_part*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1190            }
1191          return CUP$SpecParser$result;
1192
1193          /*. . . . . . . . . . . . . . . . . . . .*/
1194          case 10: // code_parts ::= empty
1195
{
1196              Object JavaDoc RESULT = null;
1197
1198              CUP$SpecParser$result = new java_cup.runtime.Symbol(6/*code_parts*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1199            }
1200          return CUP$SpecParser$result;
1201
1202          /*. . . . . . . . . . . . . . . . . . . .*/
1203          case 9: // code_parts ::= code_parts code_part
1204
{
1205              Object JavaDoc RESULT = null;
1206
1207              CUP$SpecParser$result = new java_cup.runtime.Symbol(6/*code_parts*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1208            }
1209          return CUP$SpecParser$result;
1210
1211          /*. . . . . . . . . . . . . . . . . . . .*/
1212          case 8: // import_id ::= multipart_id
1213
{
1214              String JavaDoc RESULT = null;
1215        int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left;
1216        int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right;
1217        String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).value;
1218        
1219        RESULT = id;
1220    
1221              CUP$SpecParser$result = new java_cup.runtime.Symbol(5/*import_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1222            }
1223          return CUP$SpecParser$result;
1224
1225          /*. . . . . . . . . . . . . . . . . . . .*/
1226          case 7: // import_id ::= multipart_id DOT STAR
1227
{
1228              String JavaDoc RESULT = null;
1229        int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left;
1230        int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).right;
1231        String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).value;
1232        
1233        RESULT = id + ".*";
1234    
1235              CUP$SpecParser$result = new java_cup.runtime.Symbol(5/*import_id*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1236            }
1237          return CUP$SpecParser$result;
1238
1239          /*. . . . . . . . . . . . . . . . . . . .*/
1240          case 6: // import_spec ::= IMPORT import_id SEMI
1241
{
1242              Object JavaDoc RESULT = null;
1243        int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left;
1244        int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).right;
1245        String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
1246        
1247        importsList.add(id);
1248    
1249              CUP$SpecParser$result = new java_cup.runtime.Symbol(4/*import_spec*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1250            }
1251          return CUP$SpecParser$result;
1252
1253          /*. . . . . . . . . . . . . . . . . . . .*/
1254          case 5: // import_list ::= empty
1255
{
1256              Object JavaDoc RESULT = null;
1257
1258              CUP$SpecParser$result = new java_cup.runtime.Symbol(3/*import_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1259            }
1260          return CUP$SpecParser$result;
1261
1262          /*. . . . . . . . . . . . . . . . . . . .*/
1263          case 4: // import_list ::= import_list import_spec
1264
{
1265              Object JavaDoc RESULT = null;
1266
1267              CUP$SpecParser$result = new java_cup.runtime.Symbol(3/*import_list*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1268            }
1269          return CUP$SpecParser$result;
1270
1271          /*. . . . . . . . . . . . . . . . . . . .*/
1272          case 3: // package_spec ::= empty
1273
{
1274              Object JavaDoc RESULT = null;
1275
1276              CUP$SpecParser$result = new java_cup.runtime.Symbol(2/*package_spec*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1277            }
1278          return CUP$SpecParser$result;
1279
1280          /*. . . . . . . . . . . . . . . . . . . .*/
1281          case 2: // package_spec ::= PACKAGE multipart_id SEMI
1282
{
1283              Object JavaDoc RESULT = null;
1284        int idleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left;
1285        int idright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).right;
1286        String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
1287        
1288        packageName = id;
1289    
1290              CUP$SpecParser$result = new java_cup.runtime.Symbol(2/*package_spec*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1291            }
1292          return CUP$SpecParser$result;
1293
1294          /*. . . . . . . . . . . . . . . . . . . .*/
1295          case 1: // $START ::= spec EOF
1296
{
1297              Object JavaDoc RESULT = null;
1298        int start_valleft = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left;
1299        int start_valright = ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).right;
1300        ParserSpec start_val = (ParserSpec)((java_cup.runtime.Symbol) CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).value;
1301        RESULT = start_val;
1302              CUP$SpecParser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1303            }
1304          /* ACCEPT */
1305          CUP$SpecParser$parser.done_parsing();
1306          return CUP$SpecParser$result;
1307
1308          /*. . . . . . . . . . . . . . . . . . . .*/
1309          case 0: // spec ::= package_spec import_list code_parts symbol_list precedence_list start_spec production_list
1310
{
1311              ParserSpec RESULT = null;
1312        
1313        RESULT = new ParserSpec(packageName, importsList, actionCode,
1314            parserCode, initCode, scanCode, new CFG(v, t, s, p));
1315    
1316              CUP$SpecParser$result = new java_cup.runtime.Symbol(1/*spec*/, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-6)).left, ((java_cup.runtime.Symbol)CUP$SpecParser$stack.elementAt(CUP$SpecParser$top-0)).right, RESULT);
1317            }
1318          return CUP$SpecParser$result;
1319
1320          /* . . . . . .*/
1321          default:
1322            throw new Exception JavaDoc(
1323               "Invalid action number found in internal parse table");
1324
1325        }
1326    }
1327}
1328
1329
Popular Tags