2 //----------------------------------------------------
3 // The following code was generated by CUP v0.10k
4 // Sun Jul 25 13:35:26 EDT 1999
5 //----------------------------------------------------
9 import java_cup.runtime.*;
10 import java.util.Hashtable;
12 /** CUP v0.10k generated parser.
13 * @version Sun Jul 25 13:35:26 EDT 1999
15 public class parser extends java_cup.runtime.lr_parser {
17 /** Default constructor. */
18 public parser() {super();}
20 /** Constructor which sets the default scanner. */
21 public parser(java_cup.runtime.Scanner s) {super(s);}
23 /** Production table. */
24 protected static final short _production_table[][] =
25 unpackFromStrings(new String[] {
26 "\000\153\000\002\002\004\000\002\055\002\000\002\003" +
27 "\012\000\002\003\007\000\002\056\002\000\002\004\006" +
28 "\000\002\004\003\000\002\005\004\000\002\005\003\000" +
29 "\002\057\002\000\002\020\006\000\002\010\003\000\002" +
30 "\010\003\000\002\010\003\000\002\010\003\000\002\007" +
31 "\002\000\002\007\004\000\002\006\006\000\002\013\006" +
32 "\000\002\022\006\000\002\023\006\000\002\014\004\000" +
33 "\002\014\003\000\002\024\005\000\002\024\004\000\002" +
34 "\024\005\000\002\024\004\000\002\060\002\000\002\024" +
35 "\006\000\002\061\002\000\002\024\006\000\002\062\002" +
36 "\000\002\044\005\000\002\063\002\000\002\045\005\000" +
37 "\002\026\005\000\002\026\003\000\002\027\005\000\002" +
38 "\027\003\000\002\040\003\000\002\040\003\000\002\043" +
39 "\004\000\002\043\003\000\002\064\002\000\002\041\007" +
40 "\000\002\065\002\000\002\041\007\000\002\066\002\000" +
41 "\002\041\007\000\002\042\005\000\002\042\003\000\002" +
42 "\052\003\000\002\053\003\000\002\067\002\000\002\015" +
43 "\007\000\002\015\003\000\002\016\004\000\002\016\003" +
44 "\000\002\070\002\000\002\071\002\000\002\030\010\000" +
45 "\002\072\002\000\002\030\005\000\002\035\005\000\002" +
46 "\035\003\000\002\036\005\000\002\036\003\000\002\031" +
47 "\004\000\002\031\003\000\002\032\004\000\002\032\003" +
48 "\000\002\051\004\000\002\051\003\000\002\017\005\000" +
49 "\002\017\003\000\002\021\005\000\002\021\003\000\002" +
50 "\025\003\000\002\025\005\000\002\033\003\000\002\034" +
51 "\003\000\002\046\003\000\002\046\003\000\002\047\003" +
52 "\000\002\047\003\000\002\050\003\000\002\054\003\000" +
53 "\002\054\003\000\002\054\003\000\002\054\003\000\002" +
54 "\054\003\000\002\054\003\000\002\054\003\000\002\054" +
55 "\003\000\002\054\003\000\002\054\003\000\002\054\003" +
56 "\000\002\054\003\000\002\054\003\000\002\054\003\000" +
57 "\002\054\003\000\002\054\003\000\002\012\004\000\002" +
58 "\012\003\000\002\011\002\000\002\011\003\000\002\037" +
61 /** Access to production table. */
62 public short[][] production_table() {return _production_table;}
64 /** Parse-action table. */
65 protected static final short[][] _action_table =
66 unpackFromStrings(new String[] {
67 "\000\247\000\026\003\006\004\000\005\000\007\000\010" +
68 "\000\011\000\012\000\013\000\014\000\035\000\001\002" +
69 "\000\004\002\251\001\002\000\024\004\200\005\uff97\007" +
70 "\uff97\010\uff97\011\uff97\012\uff97\013\uff97\014\uff97\035\uff97" +
71 "\001\002\000\010\011\007\012\012\035\014\001\002\000" +
72 "\042\003\163\006\026\007\027\010\040\011\036\012\022" +
73 "\013\042\014\030\015\017\016\015\026\033\027\023\030" +
74 "\035\031\041\035\025\036\160\001\002\000\020\003\uffeb" +
75 "\011\uffeb\012\uffeb\016\uffeb\026\uffeb\035\uffeb\036\uffeb\001" +
76 "\002\000\020\003\uff97\011\007\012\012\016\uff97\026\065" +
77 "\035\014\036\uff97\001\002\000\004\011\061\001\002\000" +
78 "\042\003\034\006\026\007\027\010\040\011\036\012\022" +
79 "\013\042\014\030\015\017\016\015\026\033\027\023\030" +
80 "\035\031\041\035\025\036\016\001\002\000\042\003\uff9a" +
81 "\006\uff9a\007\uff9a\010\uff9a\011\uff9a\012\uff9a\013\uff9a\014" +
82 "\uff9a\015\uff9a\016\uff9a\026\uff9a\027\uff9a\030\uff9a\031\uff9a" +
83 "\035\uff9a\036\uff9a\001\002\000\022\003\uffa1\017\uffa1\022" +
84 "\uffa1\025\uffa1\032\uffa1\033\uffa1\036\uffa1\037\uffa1\001\002" +
85 "\000\014\017\uffb1\020\uffb1\022\uffab\033\uffab\036\uffab\001" +
86 "\002\000\022\003\uffa2\017\uffa2\022\uffa2\025\uffa2\032\uffa2" +
87 "\033\uffa2\036\uffa2\037\uffa2\001\002\000\006\017\uffe0\020" +
88 "\055\001\002\000\010\022\051\033\uffb4\036\uffb4\001\002" +
89 "\000\022\003\uffa6\017\uffa6\022\uffa6\025\uffa6\032\uffa6\033" +
90 "\uffa6\036\uffa6\037\uffa6\001\002\000\022\003\uff9f\017\uff9f" +
91 "\022\uff9f\025\uff9f\032\uff9f\033\uff9f\036\uff9f\037\uff9f\001" +
92 "\002\000\006\033\047\036\045\001\002\000\022\003\uffa5" +
93 "\017\uffa5\022\uffa5\025\uffa5\032\uffa5\033\uffa5\036\uffa5\037" +
94 "\uffa5\001\002\000\022\003\uffaa\017\uffaa\022\uffaa\025\uffaa" +
95 "\032\uffaa\033\uffaa\036\uffaa\037\uffaa\001\002\000\022\003" +
96 "\uffa9\017\uffa9\022\uffa9\025\uffa9\032\uffa9\033\uffa9\036\uffa9" +
97 "\037\uffa9\001\002\000\022\003\uffa3\017\uffa3\022\uffa3\025" +
98 "\uffa3\032\uffa3\033\uffa3\036\uffa3\037\uffa3\001\002\000\012" +
99 "\017\uffb7\022\uffb7\033\uffb7\036\uffb7\001\002\000\020\003" +
100 "\uffe7\011\uffe7\012\uffe7\016\uffe7\026\uffe7\035\uffe7\036\uffe7" +
101 "\001\002\000\022\003\uffa0\017\uffa0\022\uffa0\025\uffa0\032" +
102 "\uffa0\033\uffa0\036\uffa0\037\uffa0\001\002\000\012\017\uffe4" +
103 "\022\uff9c\033\uff9c\036\uff9c\001\002\000\022\003\uff9e\017" +
104 "\uff9e\022\uff9e\025\uff9e\032\uff9e\033\uff9e\036\uff9e\037\uff9e" +
105 "\001\002\000\022\003\uffa7\017\uffa7\022\uffa7\025\uffa7\032" +
106 "\uffa7\033\uffa7\036\uffa7\037\uffa7\001\002\000\006\017\uffdb" +
107 "\020\uffdb\001\002\000\022\003\uffa8\017\uffa8\022\uffa8\025" +
108 "\uffa8\032\uffa8\033\uffa8\036\uffa8\037\uffa8\001\002\000\022" +
109 "\003\uff9d\017\uff9d\022\uff9d\025\uff9d\032\uff9d\033\uff9d\036" +
110 "\uff9d\037\uff9d\001\002\000\022\003\uffa4\017\uffa4\022\uffa4" +
111 "\025\uffa4\032\uffa4\033\uffa4\036\uffa4\037\uffa4\001\002\000" +
112 "\004\017\044\001\002\000\020\003\uffe3\011\uffe3\012\uffe3" +
113 "\016\uffe3\026\uffe3\035\uffe3\036\uffe3\001\002\000\006\017" +
114 "\uffb1\020\uffb1\001\002\000\020\003\uffe8\011\uffe8\012\uffe8" +
115 "\016\uffe8\026\uffe8\035\uffe8\036\uffe8\001\002\000\004\034" +
116 "\050\001\002\000\006\033\uffb3\036\uffb3\001\002\000\042" +
117 "\003\054\006\026\007\027\010\040\011\036\012\022\013" +
118 "\042\014\030\015\017\016\015\026\033\027\023\030\035" +
119 "\031\041\035\025\036\053\001\002\000\012\017\uffb8\022" +
120 "\uffb8\033\uffb8\036\uffb8\001\002\000\022\003\uffab\017\uffab" +
121 "\022\uffab\025\uffab\032\uffab\033\uffab\036\uffab\037\uffab\001" +
122 "\002\000\022\003\uff9c\017\uff9c\022\uff9c\025\uff9c\032\uff9c" +
123 "\033\uff9c\036\uff9c\037\uff9c\001\002\000\004\036\045\001" +
124 "\002\000\004\017\057\001\002\000\020\003\uffdf\011\uffdf" +
125 "\012\uffdf\016\uffdf\026\uffdf\035\uffdf\036\uffdf\001\002\000" +
126 "\006\017\uffdc\020\uffdc\001\002\000\042\003\uff9b\006\uff9b" +
127 "\007\uff9b\010\uff9b\011\uff9b\012\uff9b\013\uff9b\014\uff9b\015" +
128 "\uff9b\016\uff9b\026\uff9b\027\uff9b\030\uff9b\031\uff9b\035\uff9b" +
129 "\036\uff9b\001\002\000\010\003\uff97\016\116\036\uff97\001" +
130 "\002\000\012\003\uffda\016\uffda\026\065\036\uffda\001\002" +
131 "\000\010\003\uffd9\016\uffd9\036\uffd9\001\002\000\010\027" +
132 "\071\030\072\031\070\001\002\000\020\003\uffec\011\uffec" +
133 "\012\uffec\016\uffec\026\uffec\035\uffec\036\uffec\001\002\000" +
134 "\012\003\uffd7\016\uffd7\026\uffd7\036\uffd7\001\002\000\006" +
135 "\003\uffd2\036\uffd2\001\002\000\006\003\uffd6\036\uffd6\001" +
136 "\002\000\006\003\uffd4\036\uffd4\001\002\000\006\003\077" +
137 "\036\074\001\002\000\022\003\uffae\017\uffae\020\uffae\023" +
138 "\uffae\025\uffae\032\uffae\036\uffae\037\uffae\001\002\000\010" +
139 "\017\uffcd\020\uffcd\025\uffcd\001\002\000\006\017\uffce\020" +
140 "\uffce\001\002\000\022\003\uffad\017\uffad\020\uffad\023\uffad" +
141 "\025\uffad\032\uffad\036\uffad\037\uffad\001\002\000\006\017" +
142 "\102\020\103\001\002\000\006\017\uffcf\020\uffcf\001\002" +
143 "\000\012\003\uffd3\016\uffd3\026\uffd3\036\uffd3\001\002\000" +
144 "\006\003\077\036\074\001\002\000\006\017\uffd0\020\uffd0" +
145 "\001\002\000\006\003\077\036\074\001\002\000\006\017" +
146 "\107\020\103\001\002\000\012\003\uffd5\016\uffd5\026\uffd5" +
147 "\036\uffd5\001\002\000\006\003\077\036\074\001\002\000" +
148 "\006\017\112\020\103\001\002\000\012\003\uffd1\016\uffd1" +
149 "\026\uffd1\036\uffd1\001\002\000\012\003\uffd8\016\uffd8\026" +
150 "\uffd8\036\uffd8\001\002\000\006\003\uffca\036\uffca\001\002" +
151 "\000\006\003\126\036\120\001\002\000\004\015\117\001" +
152 "\002\000\006\003\122\036\120\001\002\000\006\017\uffb0" +
153 "\024\uffb0\001\002\000\004\017\uffcc\001\002\000\004\017" +
154 "\uffaf\001\002\000\004\017\124\001\002\000\006\003\uffcb" +
155 "\036\uffcb\001\002\000\004\024\uffc7\001\002\000\006\017" +
156 "\uffc4\024\uffaf\001\002\000\010\002\ufffe\003\126\036\120" +
157 "\001\002\000\010\002\uffc8\003\uffc8\036\uffc8\001\002\000" +
158 "\010\002\uffc9\003\uffc9\036\uffc9\001\002\000\004\017\133" +
159 "\001\002\000\010\002\uffc3\003\uffc3\036\uffc3\001\002\000" +
160 "\004\024\135\001\002\000\016\003\uffc6\017\uffc6\025\uffc6" +
161 "\032\uffc6\036\uffc6\037\uffc6\001\002\000\016\003\uff97\017" +
162 "\uff97\025\uff97\032\uff97\036\uff97\037\uff97\001\002\000\016" +
163 "\003\uffbd\017\uffbd\025\uffbd\032\uffbd\036\uffbd\037\uffbd\001" +
164 "\002\000\016\003\077\017\uffbf\025\uffbf\032\147\036\074" +
165 "\037\146\001\002\000\006\017\uffc1\025\uffc1\001\002\000" +
166 "\006\017\143\025\144\001\002\000\010\002\uffc5\003\uffc5" +
167 "\036\uffc5\001\002\000\016\003\uff97\017\uff97\025\uff97\032" +
168 "\uff97\036\uff97\037\uff97\001\002\000\006\017\uffc2\025\uffc2" +
169 "\001\002\000\016\003\uffbb\017\uffbb\025\uffbb\032\uffbb\036" +
170 "\uffbb\037\uffbb\001\002\000\006\003\077\036\074\001\002" +
171 "\000\020\003\uff97\017\uff97\023\154\025\uff97\032\uff97\036" +
172 "\uff97\037\uff97\001\002\000\016\003\uffbe\017\uffbe\025\uffbe" +
173 "\032\uffbe\036\uffbe\037\uffbe\001\002\000\016\003\uffb9\017" +
174 "\uffb9\025\uffb9\032\uffb9\036\uffb9\037\uffb9\001\002\000\016" +
175 "\003\uffbc\017\uffbc\025\uffbc\032\uffbc\036\uffbc\037\uffbc\001" +
176 "\002\000\042\003\054\006\026\007\027\010\040\011\036" +
177 "\012\022\013\042\014\030\015\017\016\015\026\033\027" +
178 "\023\030\035\031\041\035\025\036\053\001\002\000\016" +
179 "\003\uffba\017\uffba\025\uffba\032\uffba\036\uffba\037\uffba\001" +
180 "\002\000\016\003\uffac\017\uffac\025\uffac\032\uffac\036\uffac" +
181 "\037\uffac\001\002\000\006\017\uffc0\025\uffc0\001\002\000" +
182 "\014\017\uffb2\020\uffb2\022\uffab\033\uffab\036\uffab\001\002" +
183 "\000\006\033\047\036\170\001\002\000\006\017\uffdd\020" +
184 "\uffdd\001\002\000\012\017\uffe6\022\uff9c\033\uff9c\036\uff9c" +
185 "\001\002\000\020\003\uffe9\011\uffe9\012\uffe9\016\uffe9\026" +
186 "\uffe9\035\uffe9\036\uffe9\001\002\000\006\017\uffe2\020\167" +
187 "\001\002\000\004\017\172\001\002\000\004\036\170\001" +
188 "\002\000\006\017\uffb2\020\uffb2\001\002\000\006\017\uffde" +
189 "\020\uffde\001\002\000\020\003\uffe1\011\uffe1\012\uffe1\016" +
190 "\uffe1\026\uffe1\035\uffe1\036\uffe1\001\002\000\004\017\174" +
191 "\001\002\000\020\003\uffe5\011\uffe5\012\uffe5\016\uffe5\026" +
192 "\uffe5\035\uffe5\036\uffe5\001\002\000\020\003\uffea\011\uffea" +
193 "\012\uffea\016\uffea\026\uffea\035\uffea\036\uffea\001\002\000" +
194 "\022\005\ufffb\007\ufffb\010\ufffb\011\ufffb\012\ufffb\013\ufffb" +
195 "\014\ufffb\035\ufffb\001\002\000\022\005\uff97\007\uff97\010" +
196 "\uff97\011\uff97\012\uff97\013\uff97\014\uff97\035\uff97\001\002" +
197 "\000\042\003\054\006\026\007\027\010\040\011\036\012" +
198 "\022\013\042\014\030\015\017\016\015\026\033\027\023" +
199 "\030\035\031\041\035\025\036\053\001\002\000\006\017" +
200 "\ufffd\022\051\001\002\000\004\017\203\001\002\000\022" +
201 "\005\ufffc\007\ufffc\010\ufffc\011\ufffc\012\ufffc\013\ufffc\014" +
202 "\ufffc\035\ufffc\001\002\000\022\005\210\007\ufff2\010\ufff2" +
203 "\011\ufff2\012\ufff2\013\ufff2\014\ufff2\035\ufff2\001\002\000" +
204 "\022\005\ufff9\007\ufff9\010\ufff9\011\ufff9\012\ufff9\013\ufff9" +
205 "\014\ufff9\035\ufff9\001\002\000\020\007\223\010\224\011" +
206 "\007\012\012\013\227\014\225\035\014\001\002\000\022" +
207 "\005\ufffa\007\ufffa\010\ufffa\011\ufffa\012\ufffa\013\ufffa\014" +
208 "\ufffa\035\ufffa\001\002\000\042\003\054\006\026\007\027" +
209 "\010\040\011\036\012\022\013\042\014\030\015\017\016" +
210 "\015\026\033\027\023\030\035\031\041\035\025\036\053" +
211 "\001\002\000\006\017\uffb5\022\215\001\002\000\004\017" +
212 "\ufff8\001\002\000\004\017\214\001\002\000\022\005\ufff7" +
213 "\007\ufff7\010\ufff7\011\ufff7\012\ufff7\013\ufff7\014\ufff7\035" +
214 "\ufff7\001\002\000\044\003\054\006\026\007\027\010\040" +
215 "\011\036\012\022\013\042\014\030\015\017\016\015\021" +
216 "\216\026\033\027\023\030\035\031\041\035\025\036\053" +
217 "\001\002\000\004\017\uffb6\001\002\000\020\007\ufff3\010" +
218 "\ufff3\011\ufff3\012\ufff3\013\ufff3\014\ufff3\035\ufff3\001\002" +
219 "\000\020\007\ufff5\010\ufff5\011\ufff5\012\ufff5\013\ufff5\014" +
220 "\ufff5\035\ufff5\001\002\000\020\007\ufff1\010\ufff1\011\ufff1" +
221 "\012\ufff1\013\ufff1\014\ufff1\035\ufff1\001\002\000\020\007" +
222 "\ufff4\010\ufff4\011\ufff4\012\ufff4\013\ufff4\014\ufff4\035\ufff4" +
223 "\001\002\000\004\006\246\001\002\000\004\006\243\001" +
224 "\002\000\004\015\240\001\002\000\020\007\ufff6\010\ufff6" +
225 "\011\ufff6\012\ufff6\013\ufff6\014\ufff6\035\ufff6\001\002\000" +
226 "\004\015\234\001\002\000\020\003\uff97\011\007\012\012" +
227 "\016\uff97\026\065\035\014\036\uff97\001\002\000\010\003" +
228 "\uff97\016\116\036\uff97\001\002\000\006\003\126\036\120" +
229 "\001\002\000\010\002\uffff\003\126\036\120\001\002\000" +
230 "\004\037\235\001\002\000\022\007\uff99\010\uff99\011\uff99" +
231 "\012\uff99\013\uff99\014\uff99\017\236\035\uff99\001\002\000" +
232 "\020\007\uff98\010\uff98\011\uff98\012\uff98\013\uff98\014\uff98" +
233 "\035\uff98\001\002\000\020\007\uffee\010\uffee\011\uffee\012" +
234 "\uffee\013\uffee\014\uffee\035\uffee\001\002\000\004\037\241" +
235 "\001\002\000\022\007\uff99\010\uff99\011\uff99\012\uff99\013" +
236 "\uff99\014\uff99\017\236\035\uff99\001\002\000\020\007\uffed" +
237 "\010\uffed\011\uffed\012\uffed\013\uffed\014\uffed\035\uffed\001" +
238 "\002\000\004\037\244\001\002\000\022\007\uff99\010\uff99" +
239 "\011\uff99\012\uff99\013\uff99\014\uff99\017\236\035\uff99\001" +
240 "\002\000\020\007\uffef\010\uffef\011\uffef\012\uffef\013\uffef" +
241 "\014\uffef\035\uffef\001\002\000\004\037\247\001\002\000" +
242 "\022\007\uff99\010\uff99\011\uff99\012\uff99\013\uff99\014\uff99" +
243 "\017\236\035\uff99\001\002\000\020\007\ufff0\010\ufff0\011" +
244 "\ufff0\012\ufff0\013\ufff0\014\ufff0\035\ufff0\001\002\000\004" +
245 "\002\001\001\002" });
247 /** Access to parse-action table. */
248 public short[][] action_table() {return _action_table;}
250 /** <code>reduce_goto</code> table. */
251 protected static final short[][] _reduce_table =
252 unpackFromStrings(new String[] {
253 "\000\247\000\006\003\003\055\004\001\001\000\002\001" +
254 "\001\000\006\004\176\037\175\001\001\000\010\012\012" +
255 "\014\010\024\007\001\001\000\016\017\020\025\160\026" +
256 "\164\033\161\044\163\054\030\001\001\000\002\001\001" +
257 "\000\016\012\012\024\065\037\063\040\061\041\066\043" +
258 "\062\001\001\000\002\001\001\000\016\017\020\025\023" +
259 "\027\017\034\036\045\031\054\030\001\001\000\002\001" +
260 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
261 "\000\004\063\055\001\001\000\002\001\001\000\002\001" +
262 "\001\000\002\001\001\000\010\027\017\034\036\045\045" +
263 "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
264 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
265 "\000\002\001\001\000\004\061\042\001\001\000\002\001" +
266 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
267 "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
268 "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
269 "\001\001\000\002\001\001\000\004\054\051\001\001\000" +
270 "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
271 "\034\057\001\001\000\002\001\001\000\002\001\001\000" +
272 "\002\001\001\000\002\001\001\000\006\015\114\037\113" +
273 "\001\001\000\004\041\112\001\001\000\002\001\001\000" +
274 "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
275 "\066\107\001\001\000\004\064\104\001\001\000\004\065" +
276 "\072\001\001\000\012\042\077\047\074\052\100\053\075" +
277 "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
278 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
279 "\000\002\001\001\000\010\047\074\052\103\053\075\001" +
280 "\001\000\002\001\001\000\012\042\105\047\074\052\100" +
281 "\053\075\001\001\000\002\001\001\000\002\001\001\000" +
282 "\012\042\110\047\074\052\100\053\075\001\001\000\002" +
283 "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
284 "\001\000\010\016\126\030\127\046\124\001\001\000\002" +
285 "\001\001\000\004\046\120\001\001\000\002\001\001\000" +
286 "\004\067\122\001\001\000\002\001\001\000\002\001\001" +
287 "\000\002\001\001\000\004\070\133\001\001\000\004\072" +
288 "\131\001\001\000\006\030\130\046\124\001\001\000\002" +
289 "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
290 "\001\000\002\001\001\000\004\071\135\001\001\000\012" +
291 "\031\137\035\141\036\140\037\136\001\001\000\002\001" +
292 "\001\000\006\032\150\047\147\001\001\000\002\001\001" +
293 "\000\002\001\001\000\002\001\001\000\010\031\137\036" +
294 "\144\037\136\001\001\000\002\001\001\000\002\001\001" +
295 "\000\006\047\074\053\156\001\001\000\006\037\151\051" +
296 "\152\001\001\000\002\001\001\000\002\001\001\000\002" +
297 "\001\001\000\006\050\154\054\155\001\001\000\002\001" +
298 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
299 "\000\010\026\164\033\161\044\174\001\001\000\002\001" +
300 "\001\000\004\060\172\001\001\000\002\001\001\000\004" +
301 "\062\165\001\001\000\002\001\001\000\004\033\170\001" +
302 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
303 "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
304 "\002\001\001\000\006\005\203\037\204\001\001\000\006" +
305 "\017\200\054\030\001\001\000\004\056\201\001\001\000" +
306 "\002\001\001\000\002\001\001\000\006\007\205\020\206" +
307 "\001\001\000\002\001\001\000\022\006\225\010\220\012" +
308 "\012\013\217\014\227\022\221\023\216\024\007\001\001" +
309 "\000\002\001\001\000\010\017\210\021\211\054\030\001" +
310 "\001\000\002\001\001\000\004\057\212\001\001\000\002" +
311 "\001\001\000\002\001\001\000\004\054\051\001\001\000" +
312 "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
313 "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
314 "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
315 "\000\016\012\012\024\065\037\063\040\230\041\066\043" +
316 "\062\001\001\000\006\015\231\037\113\001\001\000\010" +
317 "\016\232\030\127\046\124\001\001\000\006\030\130\046" +
318 "\124\001\001\000\002\001\001\000\004\011\236\001\001" +
319 "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
320 "\004\011\241\001\001\000\002\001\001\000\002\001\001" +
321 "\000\004\011\244\001\001\000\002\001\001\000\002\001" +
322 "\001\000\004\011\247\001\001\000\002\001\001\000\002" +
325 /** Access to <code>reduce_goto</code> table. */
326 public short[][] reduce_table() {return _reduce_table;}
328 /** Instance of action encapsulation class. */
329 protected CUP$parser$actions action_obj;
331 /** Action encapsulation object initializer. */
332 protected void init_actions()
334 action_obj = new CUP$parser$actions(this);
337 /** Invoke a user supplied parse action. */
338 public java_cup.runtime.Symbol do_action(
340 java_cup.runtime.lr_parser parser,
341 java.util.Stack stack,
343 throws java.lang.Exception
345 /* call code in generated class */
346 return action_obj.CUP$parser$do_action(act_num, parser, stack, top);
349 /** Indicates start state. */
350 public int start_state() {return 0;}
351 /** Indicates start production. */
352 public int start_production() {return 0;}
354 /** <code>EOF</code> Symbol index. */
355 public int EOF_sym() {return 0;}
357 /** <code>error</code> Symbol index. */
358 public int error_sym() {return 1;}
361 /** User initialization code. */
362 public void user_init() throws java.lang.Exception
367 /** Scan to get the next Symbol. */
368 public java_cup.runtime.Symbol scan()
369 throws java.lang.Exception
371 return lexer.next_token();
376 /* override error routines */
378 public void report_fatal_error(
383 lexer.emit_error(message);
384 System.err.println("Can't recover from previous error(s), giving up.");
388 public void report_error(String message, Object info)
390 lexer.emit_error(message);
395 /** Cup generated class to encapsulate user supplied action code.*/
396 class CUP$parser$actions {
399 /** helper routine to clone a new production part adding a given label */
400 protected production_part add_lab(production_part part, String lab)
401 throws internal_error
403 /* if there is no label, or this is an action, just return the original */
404 if (lab == null || part.is_action()) return part;
406 /* otherwise build a new one with the given label attached */
407 return new symbol_part(((symbol_part)part).the_symbol(),lab);
410 /** max size of right hand side we will support */
411 protected final int MAX_RHS = 200;
413 /** array for accumulating right hand side parts */
414 protected production_part[] rhs_parts = new production_part[MAX_RHS];
416 /** where we are currently in building a right hand side */
417 protected int rhs_pos = 0;
419 /** start a new right hand side */
420 protected void new_rhs() {rhs_pos = 0; }
422 /** add a new right hand side part */
423 protected void add_rhs_part(production_part part) throws java.lang.Exception
425 if (rhs_pos >= MAX_RHS)
426 throw new Exception("Internal Error: Productions limited to " +
427 MAX_RHS + " symbols and actions");
429 rhs_parts[rhs_pos] = part;
433 /** string to build up multiple part names */
434 protected String multipart_name = new String();
436 /** append a new name segment to the accumulated multipart name */
437 protected void append_multipart(String name)
441 /* if we aren't just starting out, put on a dot */
442 if (multipart_name.length() != 0) dot = ".";
444 multipart_name = multipart_name.concat(dot + name);
447 /** table of declared symbols -- contains production parts indexed by name */
448 protected Hashtable symbols = new Hashtable();
450 /** table of just non terminals -- contains non_terminals indexed by name */
451 protected Hashtable non_terms = new Hashtable();
453 /** declared start non_terminal */
454 protected non_terminal start_nt = null;
456 /** left hand side non terminal of the current production */
457 protected non_terminal lhs_nt;
459 /** Current precedence number */
462 /** Current precedence side */
463 int _cur_side = assoc.no_prec;
465 /** update the precedences we are declaring */
466 protected void update_precedence(int p) {
470 /** add relevant data to terminals */
471 protected void add_precedence(String term) {
473 System.err.println("Unable to add precedence to nonexistent terminal");
475 symbol_part sp = (symbol_part)symbols.get(term);
477 System.err.println("Could find terminal " + term + " while declaring precedence");
479 java_cup.symbol sym = sp.the_symbol();
480 if (sym instanceof terminal)
481 ((terminal)sym).set_precedence(_cur_side, _cur_prec);
482 else System.err.println("Precedence declaration: Can't find terminal " + term);
487 private final parser parser;
490 CUP$parser$actions(parser parser) {
491 this.parser = parser;
494 /** Method with the actual generated action code. */
495 public final java_cup.runtime.Symbol CUP$parser$do_action(
496 int CUP$parser$act_num,
497 java_cup.runtime.lr_parser CUP$parser$parser,
498 java.util.Stack CUP$parser$stack,
500 throws java.lang.Exception
502 /* Symbol object for return from actions */
503 java_cup.runtime.Symbol CUP$parser$result;
505 /* select the action based on the action number */
506 switch (CUP$parser$act_num)
508 /*. . . . . . . . . . . . . . . . . . . .*/
509 case 106: // empty ::=
511 Object RESULT = null;
513 CUP$parser$result = new java_cup.runtime.Symbol(29/*empty*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
515 return CUP$parser$result;
517 /*. . . . . . . . . . . . . . . . . . . .*/
518 case 105: // opt_semi ::= SEMI
520 Object RESULT = null;
522 CUP$parser$result = new java_cup.runtime.Symbol(7/*opt_semi*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
524 return CUP$parser$result;
526 /*. . . . . . . . . . . . . . . . . . . .*/
527 case 104: // opt_semi ::=
529 Object RESULT = null;
531 CUP$parser$result = new java_cup.runtime.Symbol(7/*opt_semi*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
533 return CUP$parser$result;
535 /*. . . . . . . . . . . . . . . . . . . .*/
536 case 103: // non_terminal ::= NONTERMINAL
538 Object RESULT = null;
540 CUP$parser$result = new java_cup.runtime.Symbol(8/*non_terminal*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
542 return CUP$parser$result;
544 /*. . . . . . . . . . . . . . . . . . . .*/
545 case 102: // non_terminal ::= NON TERMINAL
547 Object RESULT = null;
549 CUP$parser$result = new java_cup.runtime.Symbol(8/*non_terminal*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
551 return CUP$parser$result;
553 /*. . . . . . . . . . . . . . . . . . . .*/
554 case 101: // robust_id ::= error
556 String RESULT = null;
558 lexer.emit_error("Illegal use of reserved word");
561 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
563 return CUP$parser$result;
565 /*. . . . . . . . . . . . . . . . . . . .*/
566 case 100: // robust_id ::= NONASSOC
568 String RESULT = null;
570 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
572 return CUP$parser$result;
574 /*. . . . . . . . . . . . . . . . . . . .*/
575 case 99: // robust_id ::= RIGHT
577 String RESULT = null;
579 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
581 return CUP$parser$result;
583 /*. . . . . . . . . . . . . . . . . . . .*/
584 case 98: // robust_id ::= LEFT
586 String RESULT = null;
588 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
590 return CUP$parser$result;
592 /*. . . . . . . . . . . . . . . . . . . .*/
593 case 97: // robust_id ::= PRECEDENCE
595 String RESULT = null;
596 RESULT = "precedence";
597 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
599 return CUP$parser$result;
601 /*. . . . . . . . . . . . . . . . . . . .*/
602 case 96: // robust_id ::= START
604 String RESULT = null;
606 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
608 return CUP$parser$result;
610 /*. . . . . . . . . . . . . . . . . . . .*/
611 case 95: // robust_id ::= WITH
613 String RESULT = null;
615 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
617 return CUP$parser$result;
619 /*. . . . . . . . . . . . . . . . . . . .*/
620 case 94: // robust_id ::= SCAN
622 String RESULT = null;
624 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
626 return CUP$parser$result;
628 /*. . . . . . . . . . . . . . . . . . . .*/
629 case 93: // robust_id ::= INIT
631 String RESULT = null;
633 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
635 return CUP$parser$result;
637 /*. . . . . . . . . . . . . . . . . . . .*/
638 case 92: // robust_id ::= NONTERMINAL
640 String RESULT = null;
641 RESULT = "nonterminal";
642 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
644 return CUP$parser$result;
646 /*. . . . . . . . . . . . . . . . . . . .*/
647 case 91: // robust_id ::= NON
649 String RESULT = null;
651 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
653 return CUP$parser$result;
655 /*. . . . . . . . . . . . . . . . . . . .*/
656 case 90: // robust_id ::= TERMINAL
658 String RESULT = null;
660 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
662 return CUP$parser$result;
664 /*. . . . . . . . . . . . . . . . . . . .*/
665 case 89: // robust_id ::= PARSER
667 String RESULT = null;
669 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
671 return CUP$parser$result;
673 /*. . . . . . . . . . . . . . . . . . . .*/
674 case 88: // robust_id ::= ACTION
676 String RESULT = null;
678 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
680 return CUP$parser$result;
682 /*. . . . . . . . . . . . . . . . . . . .*/
683 case 87: // robust_id ::= CODE
685 String RESULT = null;
687 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
689 return CUP$parser$result;
691 /*. . . . . . . . . . . . . . . . . . . .*/
692 case 86: // robust_id ::= ID
694 String RESULT = null;
695 int the_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
696 int the_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
697 String the_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
699 CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
701 return CUP$parser$result;
703 /*. . . . . . . . . . . . . . . . . . . .*/
704 case 85: // label_id ::= robust_id
706 String RESULT = null;
707 int the_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
708 int the_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
709 String the_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
711 CUP$parser$result = new java_cup.runtime.Symbol(38/*label_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
713 return CUP$parser$result;
715 /*. . . . . . . . . . . . . . . . . . . .*/
716 case 84: // symbol_id ::= error
718 String RESULT = null;
720 lexer.emit_error("Illegal use of reserved word");
723 CUP$parser$result = new java_cup.runtime.Symbol(37/*symbol_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
725 return CUP$parser$result;
727 /*. . . . . . . . . . . . . . . . . . . .*/
728 case 83: // symbol_id ::= ID
730 String RESULT = null;
731 int the_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
732 int the_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
733 String the_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
735 CUP$parser$result = new java_cup.runtime.Symbol(37/*symbol_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
737 return CUP$parser$result;
739 /*. . . . . . . . . . . . . . . . . . . .*/
740 case 82: // nt_id ::= error
742 String RESULT = null;
744 lexer.emit_error("Illegal use of reserved word");
747 CUP$parser$result = new java_cup.runtime.Symbol(36/*nt_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
749 return CUP$parser$result;
751 /*. . . . . . . . . . . . . . . . . . . .*/
752 case 81: // nt_id ::= ID
754 String RESULT = null;
755 int the_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
756 int the_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
757 String the_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
759 CUP$parser$result = new java_cup.runtime.Symbol(36/*nt_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
761 return CUP$parser$result;
763 /*. . . . . . . . . . . . . . . . . . . .*/
764 case 80: // new_non_term_id ::= ID
766 Object RESULT = null;
767 int non_term_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
768 int non_term_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
769 String non_term_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
771 /* see if this non terminal has been declared before */
772 if (symbols.get(non_term_id) != null)
774 /* issue a message */
775 lexer.emit_error( "java_cup.runtime.Symbol \"" + non_term_id +
776 "\" has already been declared");
780 if (multipart_name.equals("")) {
781 append_multipart("Object");
783 /* build the non terminal object */
784 non_terminal this_nt =
785 new non_terminal(non_term_id, multipart_name);
787 /* put it in the non_terms table */
788 non_terms.put(non_term_id, this_nt);
790 /* build a production_part and put it in the symbols table */
791 symbols.put(non_term_id, new symbol_part(this_nt));
794 CUP$parser$result = new java_cup.runtime.Symbol(26/*new_non_term_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
796 return CUP$parser$result;
798 /*. . . . . . . . . . . . . . . . . . . .*/
799 case 79: // new_term_id ::= ID
801 Object RESULT = null;
802 int term_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
803 int term_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
804 String term_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
806 /* see if this terminal has been declared before */
807 if (symbols.get(term_id) != null)
809 /* issue a message */
810 lexer.emit_error("java_cup.runtime.Symbol \"" + term_id +
811 "\" has already been declared");
815 /* if no type declared, declare one */
816 if (multipart_name.equals("")) {
817 append_multipart("Object");
819 /* build a production_part and put it in the table */
821 new symbol_part(new terminal(term_id, multipart_name)));
824 CUP$parser$result = new java_cup.runtime.Symbol(25/*new_term_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
826 return CUP$parser$result;
828 /*. . . . . . . . . . . . . . . . . . . .*/
829 case 78: // type_id ::= type_id LBRACK RBRACK
831 Object RESULT = null;
832 multipart_name = multipart_name.concat("[]");
833 CUP$parser$result = new java_cup.runtime.Symbol(19/*type_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
835 return CUP$parser$result;
837 /*. . . . . . . . . . . . . . . . . . . .*/
838 case 77: // type_id ::= multipart_id
840 Object RESULT = null;
842 CUP$parser$result = new java_cup.runtime.Symbol(19/*type_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
844 return CUP$parser$result;
846 /*. . . . . . . . . . . . . . . . . . . .*/
847 case 76: // import_id ::= multipart_id
849 Object RESULT = null;
851 CUP$parser$result = new java_cup.runtime.Symbol(15/*import_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
853 return CUP$parser$result;
855 /*. . . . . . . . . . . . . . . . . . . .*/
856 case 75: // import_id ::= multipart_id DOT STAR
858 Object RESULT = null;
859 append_multipart("*");
860 CUP$parser$result = new java_cup.runtime.Symbol(15/*import_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
862 return CUP$parser$result;
864 /*. . . . . . . . . . . . . . . . . . . .*/
865 case 74: // multipart_id ::= robust_id
867 Object RESULT = null;
868 int an_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
869 int an_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
870 String an_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
871 append_multipart(an_id);
872 CUP$parser$result = new java_cup.runtime.Symbol(13/*multipart_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
874 return CUP$parser$result;
876 /*. . . . . . . . . . . . . . . . . . . .*/
877 case 73: // multipart_id ::= multipart_id DOT robust_id
879 Object RESULT = null;
880 int another_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
881 int another_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
882 String another_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
883 append_multipart(another_id);
884 CUP$parser$result = new java_cup.runtime.Symbol(13/*multipart_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
886 return CUP$parser$result;
888 /*. . . . . . . . . . . . . . . . . . . .*/
889 case 72: // opt_label ::= empty
891 String RESULT = null;
893 CUP$parser$result = new java_cup.runtime.Symbol(39/*opt_label*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
895 return CUP$parser$result;
897 /*. . . . . . . . . . . . . . . . . . . .*/
898 case 71: // opt_label ::= COLON label_id
900 String RESULT = null;
901 int labidleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
902 int labidright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
903 String labid = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
905 CUP$parser$result = new java_cup.runtime.Symbol(39/*opt_label*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
907 return CUP$parser$result;
909 /*. . . . . . . . . . . . . . . . . . . .*/
910 case 70: // prod_part ::= CODE_STRING
912 Object RESULT = null;
913 int code_strleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
914 int code_strright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
915 String code_str = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
917 /* add a new production part */
918 add_rhs_part(new action_part(code_str));
920 CUP$parser$result = new java_cup.runtime.Symbol(24/*prod_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
922 return CUP$parser$result;
924 /*. . . . . . . . . . . . . . . . . . . .*/
925 case 69: // prod_part ::= symbol_id opt_label
927 Object RESULT = null;
928 int symidleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
929 int symidright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
930 String symid = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
931 int labidleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
932 int labidright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
933 String labid = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
935 /* try to look up the id */
936 production_part symb = (production_part)symbols.get(symid);
938 /* if that fails, symbol is undeclared */
941 if (lexer.error_count == 0)
942 lexer.emit_error("java_cup.runtime.Symbol \"" + symid +
943 "\" has not been declared");
947 /* add a labeled production part */
948 add_rhs_part(add_lab(symb, labid));
951 CUP$parser$result = new java_cup.runtime.Symbol(24/*prod_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
953 return CUP$parser$result;
955 /*. . . . . . . . . . . . . . . . . . . .*/
956 case 68: // prod_part_list ::= empty
958 Object RESULT = null;
960 CUP$parser$result = new java_cup.runtime.Symbol(23/*prod_part_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
962 return CUP$parser$result;
964 /*. . . . . . . . . . . . . . . . . . . .*/
965 case 67: // prod_part_list ::= prod_part_list prod_part
967 Object RESULT = null;
969 CUP$parser$result = new java_cup.runtime.Symbol(23/*prod_part_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
971 return CUP$parser$result;
973 /*. . . . . . . . . . . . . . . . . . . .*/
974 case 66: // rhs ::= prod_part_list
976 Object RESULT = null;
980 /* build the production */
981 production p = new production(lhs_nt, rhs_parts, rhs_pos);
983 /* if we have no start non-terminal declared and this is
984 the first production, make its lhs nt the start_nt
985 and build a special start production for it. */
986 if (start_nt == null)
990 /* build a special start production */
992 add_rhs_part(add_lab(new symbol_part(start_nt),"start_val"));
993 add_rhs_part(new symbol_part(terminal.EOF));
994 add_rhs_part(new action_part("RESULT = start_val;"));
995 emit.start_production =
996 new production(non_terminal.START_nt, rhs_parts, rhs_pos);
1002 /* reset the rhs accumulation in any case */
1005 CUP$parser$result = new java_cup.runtime.Symbol(28/*rhs*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1007 return CUP$parser$result;
1009 /*. . . . . . . . . . . . . . . . . . . .*/
1010 case 65: // rhs ::= prod_part_list PERCENT_PREC term_id
1012 Object RESULT = null;
1013 int term_nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1014 int term_nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1015 String term_name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1017 java_cup.symbol sym = null;
1020 /* Find the precedence symbol */
1021 if (term_name == null) {
1022 System.err.println("No terminal for contextual precedence");
1025 sym = ((symbol_part)symbols.get(term_name)).the_symbol();
1027 /* build the production */
1029 if ((sym!=null) && (sym instanceof terminal)) {
1030 p = new production(lhs_nt, rhs_parts, rhs_pos,
1031 ((terminal)sym).precedence_num(),
1032 ((terminal)sym).precedence_side());
1033 ((symbol_part)symbols.get(term_name)).the_symbol().note_use();
1035 System.err.println("Invalid terminal " + term_name +
1036 " for contextual precedence assignment");
1037 p = new production(lhs_nt, rhs_parts, rhs_pos);
1040 /* if we have no start non-terminal declared and this is
1041 the first production, make its lhs nt the start_nt
1042 and build a special start production for it. */
1043 if (start_nt == null)
1047 /* build a special start production */
1049 add_rhs_part(add_lab(new symbol_part(start_nt),"start_val"));
1050 add_rhs_part(new symbol_part(terminal.EOF));
1051 add_rhs_part(new action_part("RESULT = start_val;"));
1052 if ((sym!=null) && (sym instanceof terminal)) {
1053 emit.start_production =
1054 new production(non_terminal.START_nt, rhs_parts,
1055 rhs_pos, ((terminal)sym).precedence_num(),
1056 ((terminal)sym).precedence_side());
1058 emit.start_production =
1059 new production(non_terminal.START_nt, rhs_parts, rhs_pos);
1065 /* reset the rhs accumulation in any case */
1068 CUP$parser$result = new java_cup.runtime.Symbol(28/*rhs*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1070 return CUP$parser$result;
1072 /*. . . . . . . . . . . . . . . . . . . .*/
1073 case 64: // rhs_list ::= rhs
1075 Object RESULT = null;
1077 CUP$parser$result = new java_cup.runtime.Symbol(27/*rhs_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1079 return CUP$parser$result;
1081 /*. . . . . . . . . . . . . . . . . . . .*/
1082 case 63: // rhs_list ::= rhs_list BAR rhs
1084 Object RESULT = null;
1086 CUP$parser$result = new java_cup.runtime.Symbol(27/*rhs_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1088 return CUP$parser$result;
1090 /*. . . . . . . . . . . . . . . . . . . .*/
1091 case 62: // production ::= error NT$13 SEMI
1093 Object RESULT = null;
1094 // propagate RESULT from NT$13
1095 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
1096 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1098 CUP$parser$result = new java_cup.runtime.Symbol(22/*production*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1100 return CUP$parser$result;
1102 /*. . . . . . . . . . . . . . . . . . . .*/
1103 case 61: // NT$13 ::=
1105 Object RESULT = null;
1106 lexer.emit_error("Syntax Error");
1107 CUP$parser$result = new java_cup.runtime.Symbol(56/*NT$13*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1109 return CUP$parser$result;
1111 /*. . . . . . . . . . . . . . . . . . . .*/
1112 case 60: // production ::= nt_id NT$11 COLON_COLON_EQUALS NT$12 rhs_list SEMI
1114 Object RESULT = null;
1115 // propagate RESULT from NT$11
1116 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value != null )
1117 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1118 // propagate RESULT from NT$12
1119 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null )
1120 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1121 int lhs_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
1122 int lhs_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
1123 String lhs_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
1125 CUP$parser$result = new java_cup.runtime.Symbol(22/*production*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1127 return CUP$parser$result;
1129 /*. . . . . . . . . . . . . . . . . . . .*/
1130 case 59: // NT$12 ::=
1132 Object RESULT = null;
1133 int lhs_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1134 int lhs_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1135 String lhs_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1137 CUP$parser$result = new java_cup.runtime.Symbol(55/*NT$12*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1139 return CUP$parser$result;
1141 /*. . . . . . . . . . . . . . . . . . . .*/
1142 case 58: // NT$11 ::=
1144 Object RESULT = null;
1145 int lhs_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1146 int lhs_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1147 String lhs_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1149 /* lookup the lhs nt */
1150 lhs_nt = (non_terminal)non_terms.get(lhs_id);
1152 /* if it wasn't declared, emit a message */
1155 if (lexer.error_count == 0)
1156 lexer.emit_error("LHS non terminal \"" + lhs_id +
1157 "\" has not been declared");
1160 /* reset the rhs accumulation */
1163 CUP$parser$result = new java_cup.runtime.Symbol(54/*NT$11*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1165 return CUP$parser$result;
1167 /*. . . . . . . . . . . . . . . . . . . .*/
1168 case 57: // production_list ::= production
1170 Object RESULT = null;
1172 CUP$parser$result = new java_cup.runtime.Symbol(12/*production_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1174 return CUP$parser$result;
1176 /*. . . . . . . . . . . . . . . . . . . .*/
1177 case 56: // production_list ::= production_list production
1179 Object RESULT = null;
1181 CUP$parser$result = new java_cup.runtime.Symbol(12/*production_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1183 return CUP$parser$result;
1185 /*. . . . . . . . . . . . . . . . . . . .*/
1186 case 55: // start_spec ::= empty
1188 Object RESULT = null;
1190 CUP$parser$result = new java_cup.runtime.Symbol(11/*start_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1192 return CUP$parser$result;
1194 /*. . . . . . . . . . . . . . . . . . . .*/
1195 case 54: // start_spec ::= START WITH nt_id NT$10 SEMI
1197 Object RESULT = null;
1198 // propagate RESULT from NT$10
1199 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
1200 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1201 int start_nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1202 int start_nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1203 String start_name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1205 CUP$parser$result = new java_cup.runtime.Symbol(11/*start_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1207 return CUP$parser$result;
1209 /*. . . . . . . . . . . . . . . . . . . .*/
1210 case 53: // NT$10 ::=
1212 Object RESULT = null;
1213 int start_nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1214 int start_nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1215 String start_name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1217 /* verify that the name has been declared as a non terminal */
1218 non_terminal nt = (non_terminal)non_terms.get(start_name);
1221 lexer.emit_error( "Start non terminal \"" + start_name +
1222 "\" has not been declared");
1226 /* remember the non-terminal for later */
1229 /* build a special start production */
1231 add_rhs_part(add_lab(new symbol_part(start_nt), "start_val"));
1232 add_rhs_part(new symbol_part(terminal.EOF));
1233 add_rhs_part(new action_part("RESULT = start_val;"));
1234 emit.start_production =
1235 new production(non_terminal.START_nt, rhs_parts, rhs_pos);
1239 CUP$parser$result = new java_cup.runtime.Symbol(53/*NT$10*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1241 return CUP$parser$result;
1243 /*. . . . . . . . . . . . . . . . . . . .*/
1244 case 52: // term_id ::= symbol_id
1246 String RESULT = null;
1247 int symleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1248 int symright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1249 String sym = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1251 /* check that the symbol_id is a terminal */
1252 if (symbols.get(sym) == null)
1254 /* issue a message */
1255 lexer.emit_error("Terminal \"" + sym +
1256 "\" has not been declared");
1260 CUP$parser$result = new java_cup.runtime.Symbol(41/*term_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1262 return CUP$parser$result;
1264 /*. . . . . . . . . . . . . . . . . . . .*/
1265 case 51: // terminal_id ::= term_id
1267 String RESULT = null;
1268 int symleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1269 int symright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1270 String sym = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1272 add_precedence(sym);
1275 CUP$parser$result = new java_cup.runtime.Symbol(40/*terminal_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1277 return CUP$parser$result;
1279 /*. . . . . . . . . . . . . . . . . . . .*/
1280 case 50: // terminal_list ::= terminal_id
1282 Object RESULT = null;
1284 CUP$parser$result = new java_cup.runtime.Symbol(32/*terminal_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1286 return CUP$parser$result;
1288 /*. . . . . . . . . . . . . . . . . . . .*/
1289 case 49: // terminal_list ::= terminal_list COMMA terminal_id
1291 Object RESULT = null;
1293 CUP$parser$result = new java_cup.runtime.Symbol(32/*terminal_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1295 return CUP$parser$result;
1297 /*. . . . . . . . . . . . . . . . . . . .*/
1298 case 48: // preced ::= PRECEDENCE NONASSOC NT$9 terminal_list SEMI
1300 Object RESULT = null;
1301 // propagate RESULT from NT$9
1302 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null )
1303 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1305 CUP$parser$result = new java_cup.runtime.Symbol(31/*preced*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1307 return CUP$parser$result;
1309 /*. . . . . . . . . . . . . . . . . . . .*/
1310 case 47: // NT$9 ::=
1312 Object RESULT = null;
1314 update_precedence(assoc.nonassoc);
1316 CUP$parser$result = new java_cup.runtime.Symbol(52/*NT$9*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1318 return CUP$parser$result;
1320 /*. . . . . . . . . . . . . . . . . . . .*/
1321 case 46: // preced ::= PRECEDENCE RIGHT NT$8 terminal_list SEMI
1323 Object RESULT = null;
1324 // propagate RESULT from NT$8
1325 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null )
1326 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1328 CUP$parser$result = new java_cup.runtime.Symbol(31/*preced*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1330 return CUP$parser$result;
1332 /*. . . . . . . . . . . . . . . . . . . .*/
1333 case 45: // NT$8 ::=
1335 Object RESULT = null;
1337 update_precedence(assoc.right);
1339 CUP$parser$result = new java_cup.runtime.Symbol(51/*NT$8*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1341 return CUP$parser$result;
1343 /*. . . . . . . . . . . . . . . . . . . .*/
1344 case 44: // preced ::= PRECEDENCE LEFT NT$7 terminal_list SEMI
1346 Object RESULT = null;
1347 // propagate RESULT from NT$7
1348 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null )
1349 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1351 CUP$parser$result = new java_cup.runtime.Symbol(31/*preced*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1353 return CUP$parser$result;
1355 /*. . . . . . . . . . . . . . . . . . . .*/
1356 case 43: // NT$7 ::=
1358 Object RESULT = null;
1360 update_precedence(assoc.left);
1362 CUP$parser$result = new java_cup.runtime.Symbol(50/*NT$7*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1364 return CUP$parser$result;
1366 /*. . . . . . . . . . . . . . . . . . . .*/
1367 case 42: // precedence_l ::= preced
1369 Object RESULT = null;
1371 CUP$parser$result = new java_cup.runtime.Symbol(33/*precedence_l*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1373 return CUP$parser$result;
1375 /*. . . . . . . . . . . . . . . . . . . .*/
1376 case 41: // precedence_l ::= precedence_l preced
1378 Object RESULT = null;
1380 CUP$parser$result = new java_cup.runtime.Symbol(33/*precedence_l*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1382 return CUP$parser$result;
1384 /*. . . . . . . . . . . . . . . . . . . .*/
1385 case 40: // precedence_list ::= empty
1387 Object RESULT = null;
1389 CUP$parser$result = new java_cup.runtime.Symbol(30/*precedence_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1391 return CUP$parser$result;
1393 /*. . . . . . . . . . . . . . . . . . . .*/
1394 case 39: // precedence_list ::= precedence_l
1396 Object RESULT = null;
1398 CUP$parser$result = new java_cup.runtime.Symbol(30/*precedence_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1400 return CUP$parser$result;
1402 /*. . . . . . . . . . . . . . . . . . . .*/
1403 case 38: // non_term_name_list ::= new_non_term_id
1405 Object RESULT = null;
1407 CUP$parser$result = new java_cup.runtime.Symbol(21/*non_term_name_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1409 return CUP$parser$result;
1411 /*. . . . . . . . . . . . . . . . . . . .*/
1412 case 37: // non_term_name_list ::= non_term_name_list COMMA new_non_term_id
1414 Object RESULT = null;
1416 CUP$parser$result = new java_cup.runtime.Symbol(21/*non_term_name_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1418 return CUP$parser$result;
1420 /*. . . . . . . . . . . . . . . . . . . .*/
1421 case 36: // term_name_list ::= new_term_id
1423 Object RESULT = null;
1425 CUP$parser$result = new java_cup.runtime.Symbol(20/*term_name_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1427 return CUP$parser$result;
1429 /*. . . . . . . . . . . . . . . . . . . .*/
1430 case 35: // term_name_list ::= term_name_list COMMA new_term_id
1432 Object RESULT = null;
1434 CUP$parser$result = new java_cup.runtime.Symbol(20/*term_name_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1436 return CUP$parser$result;
1438 /*. . . . . . . . . . . . . . . . . . . .*/
1439 case 34: // declares_non_term ::= non_term_name_list NT$6 SEMI
1441 Object RESULT = null;
1442 // propagate RESULT from NT$6
1443 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
1444 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1446 CUP$parser$result = new java_cup.runtime.Symbol(35/*declares_non_term*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1448 return CUP$parser$result;
1450 /*. . . . . . . . . . . . . . . . . . . .*/
1451 case 33: // NT$6 ::=
1453 Object RESULT = null;
1455 /* reset the accumulated multipart name */
1456 multipart_name = new String();
1458 CUP$parser$result = new java_cup.runtime.Symbol(49/*NT$6*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1460 return CUP$parser$result;
1462 /*. . . . . . . . . . . . . . . . . . . .*/
1463 case 32: // declares_term ::= term_name_list NT$5 SEMI
1465 Object RESULT = null;
1466 // propagate RESULT from NT$5
1467 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
1468 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1470 CUP$parser$result = new java_cup.runtime.Symbol(34/*declares_term*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1472 return CUP$parser$result;
1474 /*. . . . . . . . . . . . . . . . . . . .*/
1475 case 31: // NT$5 ::=
1477 Object RESULT = null;
1479 /* reset the accumulated multipart name */
1480 multipart_name = new String();
1482 CUP$parser$result = new java_cup.runtime.Symbol(48/*NT$5*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1484 return CUP$parser$result;
1486 /*. . . . . . . . . . . . . . . . . . . .*/
1487 case 30: // symbol ::= non_terminal error NT$4 SEMI
1489 Object RESULT = null;
1490 // propagate RESULT from NT$4
1491 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
1492 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1494 CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1496 return CUP$parser$result;
1498 /*. . . . . . . . . . . . . . . . . . . .*/
1499 case 29: // NT$4 ::=
1501 Object RESULT = null;
1503 /* reset the accumulated multipart name */
1504 multipart_name = new String();
1506 CUP$parser$result = new java_cup.runtime.Symbol(47/*NT$4*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1508 return CUP$parser$result;
1510 /*. . . . . . . . . . . . . . . . . . . .*/
1511 case 28: // symbol ::= TERMINAL error NT$3 SEMI
1513 Object RESULT = null;
1514 // propagate RESULT from NT$3
1515 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
1516 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1518 CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1520 return CUP$parser$result;
1522 /*. . . . . . . . . . . . . . . . . . . .*/
1523 case 27: // NT$3 ::=
1525 Object RESULT = null;
1527 /* reset the accumulated multipart name */
1528 multipart_name = new String();
1530 CUP$parser$result = new java_cup.runtime.Symbol(46/*NT$3*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1532 return CUP$parser$result;
1534 /*. . . . . . . . . . . . . . . . . . . .*/
1535 case 26: // symbol ::= non_terminal declares_non_term
1537 Object RESULT = null;
1539 CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1541 return CUP$parser$result;
1543 /*. . . . . . . . . . . . . . . . . . . .*/
1544 case 25: // symbol ::= non_terminal type_id declares_non_term
1546 Object RESULT = null;
1548 CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1550 return CUP$parser$result;
1552 /*. . . . . . . . . . . . . . . . . . . .*/
1553 case 24: // symbol ::= TERMINAL declares_term
1555 Object RESULT = null;
1557 CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1559 return CUP$parser$result;
1561 /*. . . . . . . . . . . . . . . . . . . .*/
1562 case 23: // symbol ::= TERMINAL type_id declares_term
1564 Object RESULT = null;
1566 CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1568 return CUP$parser$result;
1570 /*. . . . . . . . . . . . . . . . . . . .*/
1571 case 22: // symbol_list ::= symbol
1573 Object RESULT = null;
1575 CUP$parser$result = new java_cup.runtime.Symbol(10/*symbol_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1577 return CUP$parser$result;
1579 /*. . . . . . . . . . . . . . . . . . . .*/
1580 case 21: // symbol_list ::= symbol_list symbol
1582 Object RESULT = null;
1584 CUP$parser$result = new java_cup.runtime.Symbol(10/*symbol_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1586 return CUP$parser$result;
1588 /*. . . . . . . . . . . . . . . . . . . .*/
1589 case 20: // scan_code ::= SCAN WITH CODE_STRING opt_semi
1591 Object RESULT = null;
1592 int user_codeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1593 int user_coderight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1594 String user_code = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1596 if (emit.scan_code!=null)
1597 lexer.emit_error("Redundant scan code (skipping)");
1598 else /* save the user code */
1599 emit.scan_code = user_code;
1601 CUP$parser$result = new java_cup.runtime.Symbol(17/*scan_code*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1603 return CUP$parser$result;
1605 /*. . . . . . . . . . . . . . . . . . . .*/
1606 case 19: // init_code ::= INIT WITH CODE_STRING opt_semi
1608 Object RESULT = null;
1609 int user_codeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1610 int user_coderight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1611 String user_code = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1613 if (emit.init_code!=null)
1614 lexer.emit_error("Redundant init code (skipping)");
1615 else /* save the user code */
1616 emit.init_code = user_code;
1618 CUP$parser$result = new java_cup.runtime.Symbol(16/*init_code*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1620 return CUP$parser$result;
1622 /*. . . . . . . . . . . . . . . . . . . .*/
1623 case 18: // parser_code_part ::= PARSER CODE CODE_STRING opt_semi
1625 Object RESULT = null;
1626 int user_codeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1627 int user_coderight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1628 String user_code = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1630 if (emit.parser_code!=null)
1631 lexer.emit_error("Redundant parser code (skipping)");
1632 else /* save the user included code string */
1633 emit.parser_code = user_code;
1635 CUP$parser$result = new java_cup.runtime.Symbol(9/*parser_code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1637 return CUP$parser$result;
1639 /*. . . . . . . . . . . . . . . . . . . .*/
1640 case 17: // action_code_part ::= ACTION CODE CODE_STRING opt_semi
1642 Object RESULT = null;
1643 int user_codeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1644 int user_coderight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1645 String user_code = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1647 if (emit.action_code!=null)
1648 lexer.emit_error("Redundant action code (skipping)");
1649 else /* save the user included code string */
1650 emit.action_code = user_code;
1652 CUP$parser$result = new java_cup.runtime.Symbol(4/*action_code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1654 return CUP$parser$result;
1656 /*. . . . . . . . . . . . . . . . . . . .*/
1657 case 16: // code_parts ::= code_parts code_part
1659 Object RESULT = null;
1661 CUP$parser$result = new java_cup.runtime.Symbol(5/*code_parts*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1663 return CUP$parser$result;
1665 /*. . . . . . . . . . . . . . . . . . . .*/
1666 case 15: // code_parts ::=
1668 Object RESULT = null;
1670 CUP$parser$result = new java_cup.runtime.Symbol(5/*code_parts*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1672 return CUP$parser$result;
1674 /*. . . . . . . . . . . . . . . . . . . .*/
1675 case 14: // code_part ::= scan_code
1677 Object RESULT = null;
1679 CUP$parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1681 return CUP$parser$result;
1683 /*. . . . . . . . . . . . . . . . . . . .*/
1684 case 13: // code_part ::= init_code
1686 Object RESULT = null;
1688 CUP$parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1690 return CUP$parser$result;
1692 /*. . . . . . . . . . . . . . . . . . . .*/
1693 case 12: // code_part ::= parser_code_part
1695 Object RESULT = null;
1697 CUP$parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1699 return CUP$parser$result;
1701 /*. . . . . . . . . . . . . . . . . . . .*/
1702 case 11: // code_part ::= action_code_part
1704 Object RESULT = null;
1706 CUP$parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1708 return CUP$parser$result;
1710 /*. . . . . . . . . . . . . . . . . . . .*/
1711 case 10: // import_spec ::= IMPORT import_id NT$2 SEMI
1713 Object RESULT = null;
1714 // propagate RESULT from NT$2
1715 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
1716 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1718 CUP$parser$result = new java_cup.runtime.Symbol(14/*import_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1720 return CUP$parser$result;
1722 /*. . . . . . . . . . . . . . . . . . . .*/
1725 Object RESULT = null;
1727 /* save this import on the imports list */
1728 emit.import_list.push(multipart_name);
1730 /* reset the accumulated multipart name */
1731 multipart_name = new String();
1733 CUP$parser$result = new java_cup.runtime.Symbol(45/*NT$2*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1735 return CUP$parser$result;
1737 /*. . . . . . . . . . . . . . . . . . . .*/
1738 case 8: // import_list ::= empty
1740 Object RESULT = null;
1742 CUP$parser$result = new java_cup.runtime.Symbol(3/*import_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1744 return CUP$parser$result;
1746 /*. . . . . . . . . . . . . . . . . . . .*/
1747 case 7: // import_list ::= import_list import_spec
1749 Object RESULT = null;
1751 CUP$parser$result = new java_cup.runtime.Symbol(3/*import_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1753 return CUP$parser$result;
1755 /*. . . . . . . . . . . . . . . . . . . .*/
1756 case 6: // package_spec ::= empty
1758 Object RESULT = null;
1760 CUP$parser$result = new java_cup.runtime.Symbol(2/*package_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1762 return CUP$parser$result;
1764 /*. . . . . . . . . . . . . . . . . . . .*/
1765 case 5: // package_spec ::= PACKAGE multipart_id NT$1 SEMI
1767 Object RESULT = null;
1768 // propagate RESULT from NT$1
1769 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
1770 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1772 CUP$parser$result = new java_cup.runtime.Symbol(2/*package_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1774 return CUP$parser$result;
1776 /*. . . . . . . . . . . . . . . . . . . .*/
1779 Object RESULT = null;
1781 /* save the package name */
1782 emit.package_name = multipart_name;
1784 /* reset the accumulated multipart name */
1785 multipart_name = new String();
1787 CUP$parser$result = new java_cup.runtime.Symbol(44/*NT$1*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1789 return CUP$parser$result;
1791 /*. . . . . . . . . . . . . . . . . . . .*/
1792 case 3: // spec ::= error symbol_list precedence_list start_spec production_list
1794 Object RESULT = null;
1796 CUP$parser$result = new java_cup.runtime.Symbol(1/*spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1798 return CUP$parser$result;
1800 /*. . . . . . . . . . . . . . . . . . . .*/
1801 case 2: // spec ::= NT$0 package_spec import_list code_parts symbol_list precedence_list start_spec production_list
1803 Object RESULT = null;
1804 // propagate RESULT from NT$0
1805 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value != null )
1806 RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value;
1808 CUP$parser$result = new java_cup.runtime.Symbol(1/*spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1810 return CUP$parser$result;
1812 /*. . . . . . . . . . . . . . . . . . . .*/
1815 Object RESULT = null;
1817 /* declare "error" as a terminal */
1818 symbols.put("error", new symbol_part(terminal.error));
1820 /* declare start non terminal */
1821 non_terms.put("$START", non_terminal.START_nt);
1823 CUP$parser$result = new java_cup.runtime.Symbol(43/*NT$0*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1825 return CUP$parser$result;
1827 /*. . . . . . . . . . . . . . . . . . . .*/
1828 case 0: // $START ::= spec EOF
1830 Object RESULT = null;
1831 int start_valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1832 int start_valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1833 Object start_val = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1835 CUP$parser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1838 CUP$parser$parser.done_parsing();
1839 return CUP$parser$result;
1843 throw new Exception(
1844 "Invalid action number found in internal parse table");