KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tonbeller > jpivot > olap > mdxparse > parser


1
2 //----------------------------------------------------
3
//The following code was generated by CUP v0.10k
4
//Thu Feb 03 16:03:33 EST 2005
5
//----------------------------------------------------
6

7 package com.tonbeller.jpivot.olap.mdxparse;
8
9 import java.util.ArrayList JavaDoc;
10 import java.util.List JavaDoc;
11 import org.apache.log4j.Logger;
12 import java_cup.runtime.Symbol;
13
14 /** CUP v0.10k generated parser.
15 * @version Thu Feb 03 16:03:33 EST 2005
16 */

17 public class parser extends java_cup.runtime.lr_parser {
18
19 /** Default constructor. */
20 public parser() {super();}
21
22 /** Constructor which sets the default scanner. */
23 public parser(java_cup.runtime.Scanner s) {super(s);}
24
25 /** Production table. */
26 protected static final short _production_table[][] =
27   unpackFromStrings(new String JavaDoc[] {
28   "\000\135\000\002\002\004\000\002\003\011\000\002\011" +
29   "\003\000\002\011\004\000\002\010\002\000\002\010\004" +
30   "\000\002\016\002\000\002\016\003\000\002\017\003\000" +
31   "\002\017\005\000\002\020\007\000\002\051\002\000\002" +
32   "\051\005\000\002\052\003\000\002\052\005\000\002\036" +
33   "\002\000\002\036\004\000\002\040\003\000\002\004\003" +
34   "\000\002\005\002\000\002\005\004\000\002\006\002\000" +
35   "\002\006\005\000\002\007\003\000\002\053\002\000\002" +
36   "\007\006\000\002\012\003\000\002\012\004\000\002\013" +
37   "\003\000\002\013\003\000\002\014\011\000\002\014\007" +
38   "\000\002\041\002\000\002\041\004\000\002\042\003\000" +
39   "\002\042\005\000\002\046\005\000\002\015\010\000\002" +
40   "\015\006\000\002\047\003\000\002\047\005\000\002\037" +
41   "\003\000\002\037\003\000\002\021\005\000\002\021\003" +
42   "\000\002\043\002\000\002\043\003\000\002\044\003\000" +
43   "\002\044\005\000\002\022\003\000\002\022\005\000\002" +
44   "\022\005\000\002\026\003\000\002\026\005\000\002\027" +
45   "\003\000\002\027\004\000\002\030\003\000\002\030\005" +
46   "\000\002\031\003\000\002\031\005\000\002\031\005\000" +
47   "\002\031\005\000\002\032\003\000\002\032\005\000\002" +
48   "\032\005\000\002\033\003\000\002\033\004\000\002\033" +
49   "\004\000\002\025\003\000\002\025\003\000\002\025\003" +
50   "\000\002\025\005\000\002\025\005\000\002\025\005\000" +
51   "\002\025\010\000\002\025\006\000\002\025\005\000\002" +
52   "\025\005\000\002\025\003\000\002\024\007\000\002\023" +
53   "\002\000\002\023\003\000\002\045\002\000\002\045\004" +
54   "\000\002\035\006\000\002\034\002\000\002\034\004\000" +
55   "\002\050\003\000\002\050\003\000\002\050\003\000\002" +
56   "\050\003\000\002\050\003\000\002\050\003" });
57
58 /** Access to production table. */
59 public short[][] production_table() {return _production_table;}
60
61 /** Parse-action table. */
62 protected static final short[][] _action_table =
63   unpackFromStrings(new String JavaDoc[] {
64   "\000\232\000\010\012\ufffd\026\ufffd\034\006\001\002\000" +
65   "\004\002\234\001\002\000\006\012\167\026\171\001\002" +
66   "\000\006\017\014\027\013\001\002\000\012\012\uffe5\017" +
67   "\uffe5\026\uffe5\027\uffe5\001\002\000\012\012\uffe7\017\014" +
68   "\026\uffe7\027\013\001\002\000\006\012\ufffc\026\ufffc\001" +
69   "\002\000\012\012\uffe4\017\uffe4\026\uffe4\027\uffe4\001\002" +
70   "\000\006\060\015\061\017\001\002\000\006\060\015\061" +
71   "\017\001\002\000\112\002\uffd8\004\uffd8\005\uffd8\007\uffd8" +
72   "\011\uffd8\012\uffd8\013\uffd8\015\uffd8\016\uffd8\017\uffd8\022" +
73   "\uffd8\023\uffd8\025\uffd8\026\uffd8\027\uffd8\030\uffd8\031\uffd8" +
74   "\032\uffd8\033\uffd8\035\uffd8\036\uffd8\037\uffd8\040\uffd8\041" +
75   "\uffd8\042\uffd8\043\uffd8\044\uffd8\046\uffd8\047\uffd8\050\uffd8" +
76   "\051\uffd8\052\uffd8\053\uffd8\054\uffd8\055\uffd8\056\uffd8\001" +
77   "\002\000\012\005\uffda\022\uffda\037\uffda\041\uffda\001\002" +
78   "\000\112\002\uffd7\004\uffd7\005\uffd7\007\uffd7\011\uffd7\012" +
79   "\uffd7\013\uffd7\015\uffd7\016\uffd7\017\uffd7\022\uffd7\023\uffd7" +
80   "\025\uffd7\026\uffd7\027\uffd7\030\uffd7\031\uffd7\032\uffd7\033" +
81   "\uffd7\035\uffd7\036\uffd7\037\uffd7\040\uffd7\041\uffd7\042\uffd7" +
82   "\043\uffd7\044\uffd7\046\uffd7\047\uffd7\050\uffd7\051\uffd7\052" +
83   "\uffd7\053\uffd7\054\uffd7\055\uffd7\056\uffd7\001\002\000\006" +
84   "\005\021\041\022\001\002\000\030\006\044\021\027\025" +
85   "\032\045\031\047\030\051\043\053\024\057\034\060\015" +
86   "\061\017\063\033\001\002\000\006\060\015\061\017\001" +
87   "\002\000\012\005\uffd9\022\uffd9\037\uffd9\041\uffd9\001\002" +
88   "\000\020\006\044\045\031\047\030\057\034\060\015\061" +
89   "\017\063\033\001\002\000\104\002\uffbb\004\uffbb\007\uffbb" +
90   "\011\uffbb\012\uffbb\013\uffbb\015\uffbb\017\uffbb\022\uffbb\023" +
91   "\uffbb\025\uffbb\026\uffbb\027\uffbb\030\uffbb\031\uffbb\033\uffbb" +
92   "\035\uffbb\036\uffbb\037\uffbb\040\uffbb\041\uffbb\042\uffbb\043" +
93   "\uffbb\044\uffbb\046\uffbb\047\154\050\uffbb\051\uffbb\052\uffbb" +
94   "\053\uffbb\054\uffbb\055\uffbb\056\uffbb\001\002\000\102\002" +
95   "\uffb3\004\uffb3\007\uffb3\011\uffb3\012\uffb3\013\uffb3\015\uffb3" +
96   "\017\uffb3\022\uffb3\023\uffb3\025\uffb3\026\uffb3\027\uffb3\030" +
97   "\uffb3\031\uffb3\033\uffb3\035\uffb3\036\uffb3\037\uffb3\040\uffb3" +
98   "\041\uffb3\042\uffb3\043\uffb3\044\uffb3\046\uffb3\050\uffb3\051" +
99   "\uffb3\052\uffb3\053\uffb3\054\uffb3\055\uffb3\056\uffb3\001\002" +
100   "\000\026\006\044\021\027\045\031\047\030\051\043\053" +
101   "\024\057\034\060\015\061\017\063\033\001\002\000\026" +
102   "\006\044\021\027\045\031\047\030\051\043\053\024\057" +
103   "\034\060\015\061\017\063\033\001\002\000\030\006\044" +
104   "\021\027\045\031\047\030\051\043\053\024\054\uffd4\057" +
105   "\034\060\015\061\017\063\033\001\002\000\026\006\044" +
106   "\021\027\045\031\047\030\051\043\053\024\057\034\060" +
107   "\015\061\017\063\033\001\002\000\102\002\uffbd\004\uffbd" +
108   "\007\uffbd\011\uffbd\012\uffbd\013\uffbd\015\uffbd\017\uffbd\022" +
109   "\uffbd\023\uffbd\025\uffbd\026\uffbd\027\uffbd\030\uffbd\031\uffbd" +
110   "\033\uffbd\035\uffbd\036\uffbd\037\uffbd\040\uffbd\041\uffbd\042" +
111   "\uffbd\043\uffbd\044\uffbd\046\uffbd\050\uffbd\051\uffbd\052\uffbd" +
112   "\053\uffbd\054\uffbd\055\uffbd\056\uffbd\001\002\000\102\002" +
113   "\uffbc\004\uffbc\007\uffbc\011\uffbc\012\uffbc\013\uffbc\015\uffbc" +
114   "\017\uffbc\022\uffbc\023\uffbc\025\uffbc\026\uffbc\027\uffbc\030" +
115   "\uffbc\031\uffbc\033\uffbc\035\uffbc\036\uffbc\037\uffbc\040\uffbc" +
116   "\041\uffbc\042\uffbc\043\uffbc\044\uffbc\046\uffbc\050\uffbc\051" +
117   "\uffbc\052\uffbc\053\uffbc\054\uffbc\055\uffbc\056\uffbc\001\002" +
118   "\000\020\012\uffe1\017\uffe1\023\061\026\uffe1\027\uffe1\033" +
119   "\062\037\133\001\002\000\100\002\uffc3\004\uffc3\007\uffc3" +
120   "\011\uffc3\012\uffc3\013\uffc3\015\uffc3\017\uffc3\022\uffc3\023" +
121   "\uffc3\025\uffc3\026\uffc3\027\uffc3\030\uffc3\031\uffc3\033\uffc3" +
122   "\035\uffc3\036\uffc3\037\uffc3\040\uffc3\042\uffc3\043\uffc3\044" +
123   "\uffc3\046\uffc3\050\uffc3\051\uffc3\052\uffc3\053\uffc3\054\uffc3" +
124   "\055\uffc3\056\uffc3\001\002\000\100\002\uffc7\004\uffc7\007" +
125   "\uffc7\011\uffc7\012\uffc7\013\uffc7\015\uffc7\017\uffc7\022\uffc7" +
126   "\023\uffc7\025\uffc7\026\uffc7\027\uffc7\030\uffc7\031\uffc7\033" +
127   "\uffc7\035\100\036\uffc7\037\uffc7\040\uffc7\042\uffc7\043\uffc7" +
128   "\044\uffc7\046\uffc7\050\uffc7\051\uffc7\052\uffc7\053\uffc7\054" +
129   "\uffc7\055\uffc7\056\101\001\002\000\052\002\uffd0\004\064" +
130   "\007\uffd0\011\uffd0\012\uffd0\013\uffd0\015\uffd0\017\uffd0\022" +
131   "\uffd0\023\uffd0\025\uffd0\026\uffd0\027\uffd0\030\uffd0\031\uffd0" +
132   "\033\uffd0\036\uffd0\037\uffd0\054\uffd0\055\uffd0\001\002\000" +
133   "\052\002\uffcd\004\uffcd\007\uffcd\011\uffcd\012\uffcd\013\uffcd" +
134   "\015\uffcd\017\uffcd\022\uffcd\023\uffcd\025\uffcd\026\uffcd\027" +
135   "\uffcd\030\uffcd\031\uffcd\033\uffcd\036\uffcd\037\uffcd\054\uffcd" +
136   "\055\uffcd\001\002\000\066\002\uffcb\004\uffcb\007\uffcb\011" +
137   "\uffcb\012\uffcb\013\uffcb\015\uffcb\017\uffcb\022\uffcb\023\uffcb" +
138   "\025\uffcb\026\uffcb\027\uffcb\030\uffcb\031\uffcb\033\uffcb\036" +
139   "\uffcb\037\uffcb\042\124\043\127\044\125\046\126\050\123" +
140   "\052\130\054\uffcb\055\uffcb\001\002\000\020\006\044\045" +
141   "\031\047\030\057\034\060\015\061\017\063\033\001\002" +
142   "\000\034\006\044\013\uffb1\015\uffb1\021\027\031\uffb1\045" +
143   "\031\047\030\051\043\053\024\057\034\060\015\061\017" +
144   "\063\033\001\002\000\074\002\uffc9\004\uffc9\007\uffc9\011" +
145   "\uffc9\012\uffc9\013\uffc9\015\uffc9\017\uffc9\022\uffc9\023\uffc9" +
146   "\025\uffc9\026\uffc9\027\uffc9\030\uffc9\031\uffc9\033\uffc9\036" +
147   "\uffc9\037\uffc9\040\075\042\uffc9\043\uffc9\044\uffc9\046\uffc9" +
148   "\050\uffc9\051\076\052\uffc9\053\074\054\uffc9\055\uffc9\001" +
149   "\002\000\102\002\uffc0\004\uffc0\007\uffc0\011\uffc0\012\uffc0" +
150   "\013\uffc0\015\uffc0\017\uffc0\022\uffc0\023\uffc0\025\uffc0\026" +
151   "\uffc0\027\uffc0\030\uffc0\031\uffc0\033\uffc0\035\uffc0\036\uffc0" +
152   "\037\uffc0\040\uffc0\041\047\042\uffc0\043\uffc0\044\uffc0\046" +
153   "\uffc0\050\uffc0\051\uffc0\052\uffc0\053\uffc0\054\uffc0\055\uffc0" +
154   "\056\uffc0\001\002\000\010\060\050\061\053\062\051\001" +
155   "\002\000\104\002\uffba\004\uffba\007\uffba\011\uffba\012\uffba" +
156   "\013\uffba\015\uffba\017\uffba\022\uffba\023\uffba\025\uffba\026" +
157   "\uffba\027\uffba\030\uffba\031\uffba\033\uffba\035\uffba\036\uffba" +
158   "\037\uffba\040\uffba\041\uffba\042\uffba\043\uffba\044\uffba\046" +
159   "\uffba\047\uffd8\050\uffba\051\uffba\052\uffba\053\uffba\054\uffba" +
160   "\055\uffba\056\uffba\001\002\000\102\002\uffb8\004\uffb8\007" +
161   "\uffb8\011\uffb8\012\uffb8\013\uffb8\015\uffb8\017\uffb8\022\uffb8" +
162   "\023\uffb8\025\uffb8\026\uffb8\027\uffb8\030\uffb8\031\uffb8\033" +
163   "\uffb8\035\uffb8\036\uffb8\037\uffb8\040\uffb8\041\uffb8\042\uffb8" +
164   "\043\uffb8\044\uffb8\046\uffb8\050\uffb8\051\uffb8\052\uffb8\053" +
165   "\uffb8\054\uffb8\055\uffb8\056\uffb8\001\002\000\004\047\054" +
166   "\001\002\000\104\002\uffb9\004\uffb9\007\uffb9\011\uffb9\012" +
167   "\uffb9\013\uffb9\015\uffb9\017\uffb9\022\uffb9\023\uffb9\025\uffb9" +
168   "\026\uffb9\027\uffb9\030\uffb9\031\uffb9\033\uffb9\035\uffb9\036" +
169   "\uffb9\037\uffb9\040\uffb9\041\uffb9\042\uffb9\043\uffb9\044\uffb9" +
170   "\046\uffb9\047\uffd7\050\uffb9\051\uffb9\052\uffb9\053\uffb9\054" +
171   "\uffb9\055\uffb9\056\uffb9\001\002\000\030\006\044\021\027" +
172   "\045\031\047\030\051\043\053\024\055\uffd4\057\034\060" +
173   "\015\061\017\063\033\001\002\000\004\055\073\001\002" +
174   "\000\006\054\uffd3\055\uffd3\001\002\000\012\036\070\037" +
175   "\067\054\uffd2\055\uffd2\001\002\000\040\002\uffd5\007\uffd5" +
176   "\011\uffd5\012\uffd5\017\uffd5\022\uffd5\023\061\025\uffd5\026" +
177   "\uffd5\027\uffd5\033\062\036\uffd5\037\uffd5\054\uffd5\055\uffd5" +
178   "\001\002\000\026\006\044\021\027\045\031\047\030\051" +
179   "\043\053\024\057\034\060\015\061\017\063\033\001\002" +
180   "\000\026\006\044\021\027\045\031\047\030\051\043\053" +
181   "\024\057\034\060\015\061\017\063\033\001\002\000\052" +
182   "\002\uffce\004\064\007\uffce\011\uffce\012\uffce\013\uffce\015" +
183   "\uffce\017\uffce\022\uffce\023\uffce\025\uffce\026\uffce\027\uffce" +
184   "\030\uffce\031\uffce\033\uffce\036\uffce\037\uffce\054\uffce\055" +
185   "\uffce\001\002\000\026\006\044\021\027\045\031\047\030" +
186   "\051\043\053\024\057\034\060\015\061\017\063\033\001" +
187   "\002\000\052\002\uffcc\004\uffcc\007\uffcc\011\uffcc\012\uffcc" +
188   "\013\uffcc\015\uffcc\017\uffcc\022\uffcc\023\uffcc\025\uffcc\026" +
189   "\uffcc\027\uffcc\030\uffcc\031\uffcc\033\uffcc\036\uffcc\037\uffcc" +
190   "\054\uffcc\055\uffcc\001\002\000\052\002\uffcf\004\064\007" +
191   "\uffcf\011\uffcf\012\uffcf\013\uffcf\015\uffcf\017\uffcf\022\uffcf" +
192   "\023\uffcf\025\uffcf\026\uffcf\027\uffcf\030\uffcf\031\uffcf\033" +
193   "\uffcf\036\uffcf\037\uffcf\054\uffcf\055\uffcf\001\002\000\026" +
194   "\006\044\021\027\045\031\047\030\051\043\053\024\057" +
195   "\034\060\015\061\017\063\033\001\002\000\026\006\044" +
196   "\021\027\045\031\047\030\051\043\053\024\057\034\060" +
197   "\015\061\017\063\033\001\002\000\040\002\uffd6\007\uffd6" +
198   "\011\uffd6\012\uffd6\017\uffd6\022\uffd6\023\061\025\uffd6\026" +
199   "\uffd6\027\uffd6\033\062\036\uffd6\037\uffd6\054\uffd6\055\uffd6" +
200   "\001\002\000\006\054\uffd1\055\uffd1\001\002\000\102\002" +
201   "\uffb7\004\uffb7\007\uffb7\011\uffb7\012\uffb7\013\uffb7\015\uffb7" +
202   "\017\uffb7\022\uffb7\023\uffb7\025\uffb7\026\uffb7\027\uffb7\030" +
203   "\uffb7\031\uffb7\033\uffb7\035\uffb7\036\uffb7\037\uffb7\040\uffb7" +
204   "\041\uffb7\042\uffb7\043\uffb7\044\uffb7\046\uffb7\050\uffb7\051" +
205   "\uffb7\052\uffb7\053\uffb7\054\uffb7\055\uffb7\056\uffb7\001\002" +
206   "\000\024\006\044\045\031\047\030\051\043\053\024\057" +
207   "\034\060\015\061\017\063\033\001\002\000\024\006\044" +
208   "\045\031\047\030\051\043\053\024\057\034\060\015\061" +
209   "\017\063\033\001\002\000\024\006\044\045\031\047\030" +
210   "\051\043\053\024\057\034\060\015\061\017\063\033\001" +
211   "\002\000\100\002\uffc5\004\uffc5\007\uffc5\011\uffc5\012\uffc5" +
212   "\013\uffc5\015\uffc5\017\uffc5\022\uffc5\023\uffc5\025\uffc5\026" +
213   "\uffc5\027\uffc5\030\uffc5\031\uffc5\033\uffc5\035\100\036\uffc5" +
214   "\037\uffc5\040\uffc5\042\uffc5\043\uffc5\044\uffc5\046\uffc5\050" +
215   "\uffc5\051\uffc5\052\uffc5\053\uffc5\054\uffc5\055\uffc5\056\101" +
216   "\001\002\000\024\006\044\045\031\047\030\051\043\053" +
217   "\024\057\034\060\015\061\017\063\033\001\002\000\024" +
218   "\006\044\045\031\047\030\051\043\053\024\057\034\060" +
219   "\015\061\017\063\033\001\002\000\100\002\uffc1\004\uffc1" +
220   "\007\uffc1\011\uffc1\012\uffc1\013\uffc1\015\uffc1\017\uffc1\022" +
221   "\uffc1\023\uffc1\025\uffc1\026\uffc1\027\uffc1\030\uffc1\031\uffc1" +
222   "\033\uffc1\035\uffc1\036\uffc1\037\uffc1\040\uffc1\042\uffc1\043" +
223   "\uffc1\044\uffc1\046\uffc1\050\uffc1\051\uffc1\052\uffc1\053\uffc1" +
224   "\054\uffc1\055\uffc1\056\uffc1\001\002\000\100\002\uffc2\004" +
225   "\uffc2\007\uffc2\011\uffc2\012\uffc2\013\uffc2\015\uffc2\017\uffc2" +
226   "\022\uffc2\023\uffc2\025\uffc2\026\uffc2\027\uffc2\030\uffc2\031" +
227   "\uffc2\033\uffc2\035\uffc2\036\uffc2\037\uffc2\040\uffc2\042\uffc2" +
228   "\043\uffc2\044\uffc2\046\uffc2\050\uffc2\051\uffc2\052\uffc2\053" +
229   "\uffc2\054\uffc2\055\uffc2\056\uffc2\001\002\000\100\002\uffc4" +
230   "\004\uffc4\007\uffc4\011\uffc4\012\uffc4\013\uffc4\015\uffc4\017" +
231   "\uffc4\022\uffc4\023\uffc4\025\uffc4\026\uffc4\027\uffc4\030\uffc4" +
232   "\031\uffc4\033\uffc4\035\100\036\uffc4\037\uffc4\040\uffc4\042" +
233   "\uffc4\043\uffc4\044\uffc4\046\uffc4\050\uffc4\051\uffc4\052\uffc4" +
234   "\053\uffc4\054\uffc4\055\uffc4\056\101\001\002\000\100\002" +
235   "\uffc6\004\uffc6\007\uffc6\011\uffc6\012\uffc6\013\uffc6\015\uffc6" +
236   "\017\uffc6\022\uffc6\023\uffc6\025\uffc6\026\uffc6\027\uffc6\030" +
237   "\uffc6\031\uffc6\033\uffc6\035\100\036\uffc6\037\uffc6\040\uffc6" +
238   "\042\uffc6\043\uffc6\044\uffc6\046\uffc6\050\uffc6\051\uffc6\052" +
239   "\uffc6\053\uffc6\054\uffc6\055\uffc6\056\101\001\002\000\014" +
240   "\013\uffb0\015\uffb0\023\061\031\uffb0\033\062\001\002\000" +
241   "\010\013\uffaf\015\uffaf\031\uffaf\001\002\000\010\013\112" +
242   "\015\uffac\031\113\001\002\000\004\015\121\001\002\000" +
243   "\026\006\044\021\027\045\031\047\030\051\043\053\024" +
244   "\057\034\060\015\061\017\063\033\001\002\000\026\006" +
245   "\044\021\027\045\031\047\030\051\043\053\024\057\034" +
246   "\060\015\061\017\063\033\001\002\000\010\013\uffae\015" +
247   "\uffae\031\uffae\001\002\000\010\023\061\030\116\033\062" +
248   "\001\002\000\026\006\044\021\027\045\031\047\030\051" +
249   "\043\053\024\057\034\060\015\061\017\063\033\001\002" +
250   "\000\014\013\uffad\015\uffad\023\061\031\uffad\033\062\001" +
251   "\002\000\010\015\uffab\023\061\033\062\001\002\000\102" +
252   "\002\uffb2\004\uffb2\007\uffb2\011\uffb2\012\uffb2\013\uffb2\015" +
253   "\uffb2\017\uffb2\022\uffb2\023\uffb2\025\uffb2\026\uffb2\027\uffb2" +
254   "\030\uffb2\031\uffb2\033\uffb2\035\uffb2\036\uffb2\037\uffb2\040" +
255   "\uffb2\041\uffb2\042\uffb2\043\uffb2\044\uffb2\046\uffb2\050\uffb2" +
256   "\051\uffb2\052\uffb2\053\uffb2\054\uffb2\055\uffb2\056\uffb2\001" +
257   "\002\000\102\002\uffbe\004\uffbe\007\uffbe\011\uffbe\012\uffbe" +
258   "\013\uffbe\015\uffbe\017\uffbe\022\uffbe\023\uffbe\025\uffbe\026" +
259   "\uffbe\027\uffbe\030\uffbe\031\uffbe\033\uffbe\035\uffbe\036\uffbe" +
260   "\037\uffbe\040\uffbe\041\047\042\uffbe\043\uffbe\044\uffbe\046" +
261   "\uffbe\050\uffbe\051\uffbe\052\uffbe\053\uffbe\054\uffbe\055\uffbe" +
262   "\056\uffbe\001\002\000\024\006\uffa8\045\uffa8\047\uffa8\051" +
263   "\uffa8\053\uffa8\057\uffa8\060\uffa8\061\uffa8\063\uffa8\001\002" +
264   "\000\024\006\uffaa\045\uffaa\047\uffaa\051\uffaa\053\uffaa\057" +
265   "\uffaa\060\uffaa\061\uffaa\063\uffaa\001\002\000\024\006\uffa7" +
266   "\045\uffa7\047\uffa7\051\uffa7\053\uffa7\057\uffa7\060\uffa7\061" +
267   "\uffa7\063\uffa7\001\002\000\024\006\uffa6\045\uffa6\047\uffa6" +
268   "\051\uffa6\053\uffa6\057\uffa6\060\uffa6\061\uffa6\063\uffa6\001" +
269   "\002\000\024\006\uffa5\045\uffa5\047\uffa5\051\uffa5\053\uffa5" +
270   "\057\uffa5\060\uffa5\061\uffa5\063\uffa5\001\002\000\024\006" +
271   "\uffa9\045\uffa9\047\uffa9\051\uffa9\053\uffa9\057\uffa9\060\uffa9" +
272   "\061\uffa9\063\uffa9\001\002\000\024\006\044\045\031\047" +
273   "\030\051\043\053\024\057\034\060\015\061\017\063\033" +
274   "\001\002\000\074\002\uffc8\004\uffc8\007\uffc8\011\uffc8\012" +
275   "\uffc8\013\uffc8\015\uffc8\017\uffc8\022\uffc8\023\uffc8\025\uffc8" +
276   "\026\uffc8\027\uffc8\030\uffc8\031\uffc8\033\uffc8\036\uffc8\037" +
277   "\uffc8\040\075\042\uffc8\043\uffc8\044\uffc8\046\uffc8\050\uffc8" +
278   "\051\076\052\uffc8\053\074\054\uffc8\055\uffc8\001\002\000" +
279   "\006\060\015\061\017\001\002\000\012\012\uffe2\017\uffe2" +
280   "\026\uffe2\027\uffe2\001\002\000\004\042\142\001\002\000" +
281   "\014\012\uffdf\017\uffdf\026\uffdf\027\uffdf\037\140\001\002" +
282   "\000\012\012\uffe0\017\uffe0\026\uffe0\027\uffe0\001\002\000" +
283   "\006\060\015\061\017\001\002\000\012\012\uffde\017\uffde" +
284   "\026\uffde\027\uffde\001\002\000\026\006\044\021\027\045" +
285   "\031\047\030\051\043\053\024\057\034\060\015\061\017" +
286   "\063\033\001\002\000\020\012\uffdd\017\uffdd\023\061\026" +
287   "\uffdd\027\uffdd\033\062\037\uffdd\001\002\000\010\023\061" +
288   "\025\145\033\062\001\002\000\014\012\uffe1\017\uffe1\026" +
289   "\uffe1\027\uffe1\037\133\001\002\000\012\012\uffe3\017\uffe3" +
290   "\026\uffe3\027\uffe3\001\002\000\004\054\150\001\002\000" +
291   "\102\002\uffb4\004\uffb4\007\uffb4\011\uffb4\012\uffb4\013\uffb4" +
292   "\015\uffb4\017\uffb4\022\uffb4\023\uffb4\025\uffb4\026\uffb4\027" +
293   "\uffb4\030\uffb4\031\uffb4\033\uffb4\035\uffb4\036\uffb4\037\uffb4" +
294   "\040\uffb4\041\uffb4\042\uffb4\043\uffb4\044\uffb4\046\uffb4\050" +
295   "\uffb4\051\uffb4\052\uffb4\053\uffb4\054\uffb4\055\uffb4\056\uffb4" +
296   "\001\002\000\004\055\152\001\002\000\102\002\uffb5\004" +
297   "\uffb5\007\uffb5\011\uffb5\012\uffb5\013\uffb5\015\uffb5\017\uffb5" +
298   "\022\uffb5\023\uffb5\025\uffb5\026\uffb5\027\uffb5\030\uffb5\031" +
299   "\uffb5\033\uffb5\035\uffb5\036\uffb5\037\uffb5\040\uffb5\041\uffb5" +
300   "\042\uffb5\043\uffb5\044\uffb5\046\uffb5\050\uffb5\051\uffb5\052" +
301   "\uffb5\053\uffb5\054\uffb5\055\uffb5\056\uffb5\001\002\000\052" +
302   "\002\uffca\004\uffca\007\uffca\011\uffca\012\uffca\013\uffca\015" +
303   "\uffca\017\uffca\022\uffca\023\uffca\025\uffca\026\uffca\027\uffca" +
304   "\030\uffca\031\uffca\033\uffca\036\uffca\037\uffca\054\uffca\055" +
305   "\uffca\001\002\000\030\006\044\021\027\045\031\047\030" +
306   "\051\043\053\024\055\uffd4\057\034\060\015\061\017\063" +
307   "\033\001\002\000\004\055\156\001\002\000\102\002\uffb6" +
308   "\004\uffb6\007\uffb6\011\uffb6\012\uffb6\013\uffb6\015\uffb6\017" +
309   "\uffb6\022\uffb6\023\uffb6\025\uffb6\026\uffb6\027\uffb6\030\uffb6" +
310   "\031\uffb6\033\uffb6\035\uffb6\036\uffb6\037\uffb6\040\uffb6\041" +
311   "\uffb6\042\uffb6\043\uffb6\044\uffb6\046\uffb6\050\uffb6\051\uffb6" +
312   "\052\uffb6\053\uffb6\054\uffb6\055\uffb6\056\uffb6\001\002\000" +
313   "\102\002\uffbf\004\uffbf\007\uffbf\011\uffbf\012\uffbf\013\uffbf" +
314   "\015\uffbf\017\uffbf\022\uffbf\023\uffbf\025\uffbf\026\uffbf\027" +
315   "\uffbf\030\uffbf\031\uffbf\033\uffbf\035\uffbf\036\uffbf\037\uffbf" +
316   "\040\uffbf\041\047\042\uffbf\043\uffbf\044\uffbf\046\uffbf\050" +
317   "\uffbf\051\uffbf\052\uffbf\053\uffbf\054\uffbf\055\uffbf\056\uffbf" +
318   "\001\002\000\006\005\161\041\022\001\002\000\030\006" +
319   "\044\021\027\025\162\045\031\047\030\051\043\053\024" +
320   "\057\034\060\015\061\017\063\033\001\002\000\026\006" +
321   "\044\021\027\045\031\047\030\051\043\053\024\057\034" +
322   "\060\015\061\017\063\033\001\002\000\014\012\uffdb\017" +
323   "\uffdb\026\uffdb\027\uffdb\036\070\001\002\000\006\025\165" +
324   "\036\070\001\002\000\012\012\uffdc\017\uffdc\026\uffdc\027" +
325   "\uffdc\001\002\000\006\012\uffe6\026\uffe6\001\002\000\004" +
326   "\026\233\001\002\000\032\006\ufff2\016\ufffb\020\176\021" +
327   "\ufff2\045\ufff2\047\ufff2\051\ufff2\053\ufff2\057\ufff2\060\ufff2" +
328   "\061\ufff2\063\ufff2\001\002\000\032\006\uffff\016\uffff\020" +
329   "\uffff\021\uffff\045\uffff\047\uffff\051\uffff\053\uffff\057\uffff" +
330   "\060\uffff\061\uffff\063\uffff\001\002\000\004\016\ufffa\001" +
331   "\002\000\026\006\044\021\027\045\031\047\030\051\043" +
332   "\053\024\057\034\060\015\061\017\063\033\001\002\000" +
333   "\004\016\202\001\002\000\006\016\ufff9\037\200\001\002" +
334   "\000\004\014\177\001\002\000\026\006\ufff1\021\ufff1\045" +
335   "\ufff1\047\ufff1\051\ufff1\053\ufff1\057\ufff1\060\ufff1\061\ufff1" +
336   "\063\ufff1\001\002\000\030\006\ufff2\020\176\021\ufff2\045" +
337   "\ufff2\047\ufff2\051\ufff2\053\ufff2\057\ufff2\060\ufff2\061\ufff2" +
338   "\063\ufff2\001\002\000\004\016\ufff8\001\002\000\006\060" +
339   "\015\061\017\001\002\000\010\002\uffef\007\uffef\032\uffef" +
340   "\001\002\000\010\002\uffee\007\uffee\032\205\001\002\000" +
341   "\026\006\044\021\027\045\031\047\030\051\043\053\024" +
342   "\057\034\060\015\061\017\063\033\001\002\000\006\002" +
343   "\uffec\007\207\001\002\000\004\024\211\001\002\000\004" +
344   "\002\000\001\002\000\006\060\015\061\017\001\002\000" +
345   "\006\002\uffea\037\uffe9\001\002\000\004\002\uffeb\001\002" +
346   "\000\004\037\215\001\002\000\006\060\015\061\017\001" +
347   "\002\000\004\002\uffe8\001\002\000\010\002\uffed\007\uffed" +
348   "\036\070\001\002\000\010\011\222\022\ufff6\036\070\001" +
349   "\002\000\004\022\230\001\002\000\004\024\223\001\002" +
350   "\000\006\060\015\061\017\001\002\000\004\022\ufff5\001" +
351   "\002\000\010\022\ufff4\037\226\041\022\001\002\000\006" +
352   "\060\015\061\017\001\002\000\004\022\ufff3\001\002\000" +
353   "\006\060\015\061\017\001\002\000\006\016\ufff0\037\ufff0" +
354   "\001\002\000\006\016\ufff7\037\ufff7\001\002\000\032\006" +
355   "\ufffe\016\ufffe\020\ufffe\021\ufffe\045\ufffe\047\ufffe\051\ufffe" +
356   "\053\ufffe\057\ufffe\060\ufffe\061\ufffe\063\ufffe\001\002\000" +
357   "\004\002\001\001\002" });
358
359 /** Access to parse-action table. */
360 public short[][] action_table() {return _action_table;}
361
362 /** <code>reduce_goto</code> table. */
363 protected static final short[][] _reduce_table =
364   unpackFromStrings(new String JavaDoc[] {
365   "\000\232\000\006\003\003\010\004\001\001\000\002\001" +
366   "\001\000\004\011\167\001\001\000\012\012\010\013\007" +
367   "\014\006\015\011\001\001\000\002\001\001\000\012\012" +
368   "\165\013\007\014\006\015\011\001\001\000\002\001\001" +
369   "\000\002\001\001\000\006\037\015\047\157\001\001\000" +
370   "\006\037\015\047\017\001\001\000\002\001\001\000\002" +
371   "\001\001\000\002\001\001\000\002\001\001\000\026\022" +
372   "\034\024\025\025\045\026\037\027\040\030\041\031\044" +
373   "\032\036\033\035\037\024\001\001\000\004\037\022\001" +
374   "\001\000\002\001\001\000\010\024\025\025\156\037\024" +
375   "\001\001\000\002\001\001\000\002\001\001\000\022\024" +
376   "\025\025\045\027\152\030\041\031\044\032\036\033\035" +
377   "\037\024\001\001\000\032\021\056\022\057\024\025\025" +
378   "\045\026\037\027\040\030\041\031\044\032\036\033\035" +
379   "\037\024\044\150\001\001\000\034\021\056\022\057\024" +
380   "\025\025\045\026\037\027\040\030\041\031\044\032\036" +
381   "\033\035\037\024\043\146\044\055\001\001\000\026\022" +
382   "\143\024\025\025\045\026\037\027\040\030\041\031\044" +
383   "\032\036\033\035\037\024\001\001\000\002\001\001\000" +
384   "\002\001\001\000\004\041\133\001\001\000\002\001\001" +
385   "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
386   "\004\050\130\001\001\000\010\024\025\025\121\037\024" +
387   "\001\001\000\030\022\105\023\106\024\025\025\045\026" +
388   "\037\027\040\030\041\031\044\032\036\033\035\037\024" +
389   "\001\001\000\002\001\001\000\002\001\001\000\004\037" +
390   "\051\001\001\000\002\001\001\000\002\001\001\000\002" +
391   "\001\001\000\002\001\001\000\034\021\056\022\057\024" +
392   "\025\025\045\026\037\027\040\030\041\031\044\032\036" +
393   "\033\035\037\024\043\054\044\055\001\001\000\002\001" +
394   "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
395   "\000\024\024\025\025\045\026\065\027\040\030\041\031" +
396   "\044\032\036\033\035\037\024\001\001\000\024\024\025" +
397   "\025\045\026\062\027\040\030\041\031\044\032\036\033" +
398   "\035\037\024\001\001\000\002\001\001\000\022\024\025" +
399   "\025\045\027\064\030\041\031\044\032\036\033\035\037" +
400   "\024\001\001\000\002\001\001\000\002\001\001\000\032" +
401   "\021\056\022\057\024\025\025\045\026\037\027\040\030" +
402   "\041\031\044\032\036\033\035\037\024\044\071\001\001" +
403   "\000\026\022\070\024\025\025\045\026\037\027\040\030" +
404   "\041\031\044\032\036\033\035\037\024\001\001\000\002" +
405   "\001\001\000\002\001\001\000\002\001\001\000\014\024" +
406   "\025\025\045\032\104\033\035\037\024\001\001\000\014" +
407   "\024\025\025\045\032\103\033\035\037\024\001\001\000" +
408   "\014\024\025\025\045\032\076\033\035\037\024\001\001" +
409   "\000\002\001\001\000\012\024\025\025\045\033\102\037" +
410   "\024\001\001\000\012\024\025\025\045\033\101\037\024" +
411   "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
412   "\001\000\002\001\001\000\002\001\001\000\004\045\107" +
413   "\001\001\000\006\034\110\035\113\001\001\000\002\001" +
414   "\001\000\026\022\117\024\025\025\045\026\037\027\040" +
415   "\030\041\031\044\032\036\033\035\037\024\001\001\000" +
416   "\026\022\114\024\025\025\045\026\037\027\040\030\041" +
417   "\031\044\032\036\033\035\037\024\001\001\000\002\001" +
418   "\001\000\002\001\001\000\026\022\116\024\025\025\045" +
419   "\026\037\027\040\030\041\031\044\032\036\033\035\037" +
420   "\024\001\001\000\002\001\001\000\002\001\001\000\002" +
421   "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
422   "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
423   "\000\002\001\001\000\016\024\025\025\045\031\131\032" +
424   "\036\033\035\037\024\001\001\000\002\001\001\000\010" +
425   "\037\134\042\136\046\135\001\001\000\002\001\001\000" +
426   "\002\001\001\000\002\001\001\000\002\001\001\000\010" +
427   "\037\134\042\140\046\135\001\001\000\002\001\001\000" +
428   "\026\022\142\024\025\025\045\026\037\027\040\030\041" +
429   "\031\044\032\036\033\035\037\024\001\001\000\002\001" +
430   "\001\000\002\001\001\000\004\041\145\001\001\000\002" +
431   "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
432   "\001\000\002\001\001\000\002\001\001\000\034\021\056" +
433   "\022\057\024\025\025\045\026\037\027\040\030\041\031" +
434   "\044\032\036\033\035\037\024\043\154\044\055\001\001" +
435   "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
436   "\002\001\001\000\030\021\162\022\057\024\025\025\045" +
437   "\026\037\027\040\030\041\031\044\032\036\033\035\037" +
438   "\024\001\001\000\030\021\163\022\057\024\025\025\045" +
439   "\026\037\027\040\030\041\031\044\032\036\033\035\037" +
440   "\024\001\001\000\002\001\001\000\002\001\001\000\002" +
441   "\001\001\000\002\001\001\000\002\001\001\000\012\016" +
442   "\173\017\171\020\174\036\172\001\001\000\002\001\001" +
443   "\000\002\001\001\000\030\021\217\022\057\024\025\025" +
444   "\045\026\037\027\040\030\041\031\044\032\036\033\035" +
445   "\037\024\001\001\000\002\001\001\000\002\001\001\000" +
446   "\002\001\001\000\002\001\001\000\010\017\200\020\174" +
447   "\036\172\001\001\000\002\001\001\000\006\004\203\037" +
448   "\202\001\001\000\002\001\001\000\004\005\205\001\001" +
449   "\000\030\021\216\022\057\024\025\025\045\026\037\027" +
450   "\040\030\041\031\044\032\036\033\035\037\024\001\001" +
451   "\000\004\006\207\001\001\000\002\001\001\000\002\001" +
452   "\001\000\006\007\212\037\211\001\001\000\004\053\213" +
453   "\001\001\000\002\001\001\000\002\001\001\000\006\007" +
454   "\215\037\211\001\001\000\002\001\001\000\002\001\001" +
455   "\000\004\051\220\001\001\000\002\001\001\000\002\001" +
456   "\001\000\010\037\015\047\224\052\223\001\001\000\002" +
457   "\001\001\000\002\001\001\000\010\037\015\047\224\052" +
458   "\226\001\001\000\002\001\001\000\006\037\230\040\231" +
459   "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
460   "\001\000\002\001\001" });
461
462 /** Access to <code>reduce_goto</code> table. */
463 public short[][] reduce_table() {return _reduce_table;}
464
465 /** Instance of action encapsulation class. */
466 protected CUP$parser$actions action_obj;
467
468 /** Action encapsulation object initializer. */
469 protected void init_actions()
470   {
471     action_obj = new CUP$parser$actions(this);
472   }
473
474 /** Invoke a user supplied parse action. */
475 public java_cup.runtime.Symbol do_action(
476   int act_num,
477   java_cup.runtime.lr_parser parser,
478   java.util.Stack JavaDoc stack,
479   int top)
480   throws java.lang.Exception JavaDoc
481 {
482   /* call code in generated class */
483   return action_obj.CUP$parser$do_action(act_num, parser, stack, top);
484 }
485
486 /** Indicates start state. */
487 public int start_state() {return 0;}
488 /** Indicates start production. */
489 public int start_production() {return 0;}
490
491 /** <code>EOF</code> Symbol index. */
492 public int EOF_sym() {return 0;}
493
494 /** <code>error</code> Symbol index. */
495 public int error_sym() {return 1;}
496
497
498
499 static Logger logger = Logger.getLogger(parser.class);
500   
501 /**
502  * report_error
503  */

504 public void report_error(String JavaDoc message, Object JavaDoc info) {
505   logger.warn("Parsing MDX:" +message);
506   if (info instanceof Symbol) {
507       if (((Symbol)info).left != -1) {
508          logger.warn("at character " + ((Symbol)info).left + " of input");
509       }
510     }
511 }
512     
513 /**
514  * report_fatal_error
515  */

516 public void report_fatal_error(String JavaDoc message, Object JavaDoc info) throws Exception JavaDoc {
517   String JavaDoc err;
518   err = "Fatal error parsing MDX:" +message;
519   if (info instanceof Symbol) {
520       if (((Symbol)info).left != -1) {
521          err += "\n at character " + ((Symbol)info).left + " of input";
522       } else {
523         err += "\n invalid symbol \"" + ((Symbol)info).value +"\"";
524       }
525     } else
526       err += "\n" + info.toString();
527     logger.error("Fatal error parsing MDX:" +err);
528     throw new Exception JavaDoc(err);
529 }
530
531           
532 }
533
534 /** Cup generated class to encapsulate user supplied action code.*/
535 class CUP$parser$actions {
536
537 ParsedQuery pQuery = new ParsedQuery();
538 private final parser parser;
539
540 /** Constructor */
541 CUP$parser$actions(parser parser) {
542   this.parser = parser;
543 }
544
545 /** Method with the actual generated action code. */
546 public final java_cup.runtime.Symbol CUP$parser$do_action(
547   int CUP$parser$act_num,
548   java_cup.runtime.lr_parser CUP$parser$parser,
549   java.util.Stack JavaDoc CUP$parser$stack,
550   int CUP$parser$top)
551   throws java.lang.Exception JavaDoc
552   {
553     /* Symbol object for return from actions */
554     java_cup.runtime.Symbol CUP$parser$result;
555
556     /* select the action based on the action number */
557     switch (CUP$parser$act_num)
558       {
559         /*. . . . . . . . . . . . . . . . . . . .*/
560         case 92: // comp_op ::= GE
561
{
562             String JavaDoc RESULT = null;
563          RESULT = ">=";
564             CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((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);
565           }
566         return CUP$parser$result;
567
568         /*. . . . . . . . . . . . . . . . . . . .*/
569         case 91: // comp_op ::= LE
570
{
571             String JavaDoc RESULT = null;
572          RESULT = "<=";
573             CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((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);
574           }
575         return CUP$parser$result;
576
577         /*. . . . . . . . . . . . . . . . . . . .*/
578         case 90: // comp_op ::= GT
579
{
580             String JavaDoc RESULT = null;
581          RESULT = ">";
582             CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((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);
583           }
584         return CUP$parser$result;
585
586         /*. . . . . . . . . . . . . . . . . . . .*/
587         case 89: // comp_op ::= LT
588
{
589             String JavaDoc RESULT = null;
590          RESULT = "<";
591             CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((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);
592           }
593         return CUP$parser$result;
594
595         /*. . . . . . . . . . . . . . . . . . . .*/
596         case 88: // comp_op ::= NE
597
{
598             String JavaDoc RESULT = null;
599          RESULT = "<>";
600             CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((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);
601           }
602         return CUP$parser$result;
603
604         /*. . . . . . . . . . . . . . . . . . . .*/
605         case 87: // comp_op ::= EQ
606
{
607             String JavaDoc RESULT = null;
608          RESULT = "=";
609             CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((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);
610           }
611         return CUP$parser$result;
612
613         /*. . . . . . . . . . . . . . . . . . . .*/
614         case 86: // else_clause_opt ::= ELSE value_expression
615
{
616             Exp RESULT = null;
617         int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
618         int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
619         Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
620          RESULT = x;
621             CUP$parser$result = new java_cup.runtime.Symbol(26/*else_clause_opt*/, ((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);
622           }
623         return CUP$parser$result;
624
625         /*. . . . . . . . . . . . . . . . . . . .*/
626         case 85: // else_clause_opt ::=
627
{
628             Exp RESULT = null;
629
630             CUP$parser$result = new java_cup.runtime.Symbol(26/*else_clause_opt*/, ((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);
631           }
632         return CUP$parser$result;
633
634         /*. . . . . . . . . . . . . . . . . . . .*/
635         case 84: // when_clause ::= WHEN value_expression THEN value_expression
636
{
637             Exp[] RESULT = null;
638         int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
639         int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
640         Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
641         int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
642         int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
643         Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
644          RESULT = new Exp[] { x, y };
645             CUP$parser$result = new java_cup.runtime.Symbol(27/*when_clause*/, ((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);
646           }
647         return CUP$parser$result;
648
649         /*. . . . . . . . . . . . . . . . . . . .*/
650         case 83: // when_list ::= when_list when_clause
651
{
652             ArrayList JavaDoc RESULT = null;
653         int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
654         int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
655         ArrayList JavaDoc x = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
656         int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
657         int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
658         Exp[] y = (Exp[])((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
659          RESULT = x; x.add(y);
660             CUP$parser$result = new java_cup.runtime.Symbol(35/*when_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);
661           }
662         return CUP$parser$result;
663
664         /*. . . . . . . . . . . . . . . . . . . .*/
665         case 82: // when_list ::=
666
{
667             ArrayList JavaDoc RESULT = null;
668         RESULT = new ArrayList JavaDoc();
669             CUP$parser$result = new java_cup.runtime.Symbol(35/*when_list*/, ((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);
670           }
671         return CUP$parser$result;
672
673         /*. . . . . . . . . . . . . . . . . . . .*/
674         case 81: // value_expression_opt ::= value_expression
675
{
676             Exp RESULT = null;
677
678         // Default action for single-symbol production
679
RESULT = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top)).value;
680             CUP$parser$result = new java_cup.runtime.Symbol(17/*value_expression_opt*/, ((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);
681           }
682         return CUP$parser$result;
683
684         /*. . . . . . . . . . . . . . . . . . . .*/
685         case 80: // value_expression_opt ::=
686
{
687             Exp RESULT = null;
688
689             CUP$parser$result = new java_cup.runtime.Symbol(17/*value_expression_opt*/, ((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);
690           }
691         return CUP$parser$result;
692
693         /*. . . . . . . . . . . . . . . . . . . .*/
694         case 79: // case_expression ::= CASE value_expression_opt when_list else_clause_opt END
695
{
696             Exp RESULT = null;
697         int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
698         int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
699         Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
700         int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
701         int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
702         ArrayList JavaDoc y = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
703         int zleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
704         int zright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
705         Exp z = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
706          ArrayList JavaDoc v = new ArrayList JavaDoc();
707     if (x != null) {
708     v.add(x);
709     }
710     for (int i = 0; i < y.size(); i++) {
711     Exp[] exps = (Exp[]) y.get(i);
712     // Util.assertTrue(exps.length == 2);
713
v.add(exps[0]);
714     v.add(exps[1]);
715     }
716     if (z != null) {
717     v.add(z);
718     }
719     if (x == null) {
720     RESULT = new FunCall("_CaseTest", (Exp[]) v.toArray(new Exp[0]), FunCall.TypeCase);
721     } else {
722     RESULT = new FunCall("_CaseMatch", (Exp[]) v.toArray(new Exp[0]), FunCall.TypeCase);
723     }
724
725             CUP$parser$result = new java_cup.runtime.Symbol(18/*case_expression*/, ((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);
726           }
727         return CUP$parser$result;
728
729         /*. . . . . . . . . . . . . . . . . . . .*/
730         case 78: // value_expression_primary ::= case_expression
731
{
732             Exp RESULT = null;
733
734         // Default action for single-symbol production
735
RESULT = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top)).value;
736             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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           }
738         return CUP$parser$result;
739
740         /*. . . . . . . . . . . . . . . . . . . .*/
741         case 77: // value_expression_primary ::= LBRACE exp_list_opt RBRACE
742
{
743             Exp RESULT = null;
744         int lisleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
745         int lisright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
746         ArrayList JavaDoc lis = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
747          // set built from sets/tuples
748
RESULT = new FunCall("{}", (Exp[]) lis.toArray(new Exp[0]), FunCall.TypeBraces);
749     
750             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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);
751           }
752         return CUP$parser$result;
753
754         /*. . . . . . . . . . . . . . . . . . . .*/
755         case 76: // value_expression_primary ::= LPAREN exp_list RPAREN
756
{
757             Exp RESULT = null;
758         int lisleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
759         int lisright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
760         ArrayList JavaDoc lis = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
761         
762           // Whereas ([Sales],[Time]) and () are tuples, ([Sales]) and (5)
763
// are just expressions.
764
RESULT = new FunCall("()", (Exp[]) lis.toArray(new Exp[0]), FunCall.TypeParentheses);
765         
766             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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);
767           }
768         return CUP$parser$result;
769
770         /*. . . . . . . . . . . . . . . . . . . .*/
771         case 75: // value_expression_primary ::= identifier LPAREN exp_list_opt RPAREN
772
{
773             Exp RESULT = null;
774         int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
775         int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
776         String JavaDoc i = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
777         int lisleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
778         int lisright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
779         ArrayList JavaDoc lis = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
780          RESULT = new FunCall(i, (Exp[]) lis.toArray(new Exp[0]), FunCall.TypeFunction);
781             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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);
782           }
783         return CUP$parser$result;
784
785         /*. . . . . . . . . . . . . . . . . . . .*/
786         case 74: // value_expression_primary ::= value_expression_primary DOT identifier LPAREN exp_list_opt RPAREN
787
{
788             Exp RESULT = null;
789         int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
790         int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
791         Exp i = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
792         int jleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
793         int jright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
794         String JavaDoc j = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
795         int lisleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
796         int lisright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
797         ArrayList JavaDoc lis = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
798          lis.add(0, i); RESULT = new FunCall(j, (Exp[]) lis.toArray(new Exp[0]), FunCall.TypeMethod);
799             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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);
800           }
801         return CUP$parser$result;
802
803         /*. . . . . . . . . . . . . . . . . . . .*/
804         case 73: // value_expression_primary ::= value_expression_primary DOT AMP_QUOTED_ID
805
{
806             Exp RESULT = null;
807         int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
808         int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
809         Exp i = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
810         int jleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
811         int jright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
812         String JavaDoc j = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
813         
814           if (i instanceof CompoundId) {
815             ((CompoundId) i).append(j, true);
816             RESULT = i;
817           } else {
818             RESULT = new FunCall(j, new Exp[] { i }, FunCall.TypePropertyAmpQuoted);
819           }
820      
821             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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);
822           }
823         return CUP$parser$result;
824
825         /*. . . . . . . . . . . . . . . . . . . .*/
826         case 72: // value_expression_primary ::= value_expression_primary DOT QUOTED_ID
827
{
828             Exp RESULT = null;
829         int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
830         int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
831         Exp i = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
832         int jleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
833         int jright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
834         String JavaDoc j = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
835         
836           if (i instanceof CompoundId) {
837             ((CompoundId) i).append(j);
838             RESULT = i;
839           } else {
840             RESULT = new FunCall(j, new Exp[] { i }, FunCall.TypePropertyQuoted);
841           }
842       
843             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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);
844           }
845         return CUP$parser$result;
846
847         /*. . . . . . . . . . . . . . . . . . . .*/
848         case 71: // value_expression_primary ::= value_expression_primary DOT ID
849
{
850             Exp RESULT = null;
851         int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
852         int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
853         Exp i = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
854         int jleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
855         int jright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
856         String JavaDoc j = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
857          RESULT = new FunCall(j, new Exp[] { i }, FunCall.TypeProperty);
858             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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);
859           }
860         return CUP$parser$result;
861
862         /*. . . . . . . . . . . . . . . . . . . .*/
863         case 70: // value_expression_primary ::= identifier
864
{
865             Exp RESULT = null;
866         int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
867         int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
868         String JavaDoc i = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
869          RESULT = new CompoundId(i);
870             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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);
871           }
872         return CUP$parser$result;
873
874         /*. . . . . . . . . . . . . . . . . . . .*/
875         case 69: // value_expression_primary ::= NUMBER
876
{
877             Exp RESULT = null;
878         int dleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
879         int dright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
880         Double JavaDoc d = (Double JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
881          RESULT = Literal.create(d);
882             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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);
883           }
884         return CUP$parser$result;
885
886         /*. . . . . . . . . . . . . . . . . . . .*/
887         case 68: // value_expression_primary ::= STRING
888
{
889             Exp RESULT = null;
890         int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
891         int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
892         String JavaDoc s = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
893          RESULT = Literal.createString(s);
894             CUP$parser$result = new java_cup.runtime.Symbol(19/*value_expression_primary*/, ((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           }
896         return CUP$parser$result;
897
898         /*. . . . . . . . . . . . . . . . . . . .*/
899         case 67: // factor ::= MINUS value_expression_primary
900
{
901             Exp RESULT = null;
902         int pleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
903         int pright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
904         Exp p = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
905          RESULT = new FunCall("-", new Exp[] { p }, FunCall.TypePrefix);
906             CUP$parser$result = new java_cup.runtime.Symbol(25/*factor*/, ((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           }
908         return CUP$parser$result;
909
910         /*. . . . . . . . . . . . . . . . . . . .*/
911         case 66: // factor ::= PLUS value_expression_primary
912
{
913             Exp RESULT = null;
914         int pleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
915         int pright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
916         Exp p = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
917          RESULT = p;
918             CUP$parser$result = new java_cup.runtime.Symbol(25/*factor*/, ((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);
919           }
920         return CUP$parser$result;
921
922         /*. . . . . . . . . . . . . . . . . . . .*/
923         case 65: // factor ::= value_expression_primary
924
{
925             Exp RESULT = null;
926         int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
927         int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
928         Exp t = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
929          RESULT = t;
930             CUP$parser$result = new java_cup.runtime.Symbol(25/*factor*/, ((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);
931           }
932         return CUP$parser$result;
933
934         /*. . . . . . . . . . . . . . . . . . . .*/
935         case 64: // term ::= term SOLIDUS factor
936
{
937             Exp RESULT = null;
938         int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
939         int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
940         Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
941         int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
942         int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
943         Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
944          RESULT = new FunCall("/", new Exp[] { x, y }, FunCall.TypeInfix);
945             CUP$parser$result = new java_cup.runtime.Symbol(24/*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);
946           }
947         return CUP$parser$result;
948
949         /*. . . . . . . . . . . . . . . . . . . .*/
950         case 63: // term ::= term ASTERISK factor
951
{
952             Exp RESULT = null;
953         int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
954         int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
955         Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
956         int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
957         int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
958         Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
959          RESULT = new FunCall("*", new Exp[] { x, y }, FunCall.TypeInfix);
960             CUP$parser$result = new java_cup.runtime.Symbol(24/*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);
961           }
962         return CUP$parser$result;
963
964         /*. . . . . . . . . . . . . . . . . . . .*/
965         case 62: // term ::= factor
966
{
967             Exp RESULT = null;
968         int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
969         int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
970         Exp t = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
971          RESULT = t;
972             CUP$parser$result = new java_cup.runtime.Symbol(24/*term*/, ((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);
973           }
974         return CUP$parser$result;
975
976         /*. . . . . . . . . . . . . . . . . . . .*/
977         case 61: // term2 ::= term2 CONCAT term
978
{
979             Exp RESULT = null;
980         int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
981         int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
982         Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
983         int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
984         int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
985         Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
986          RESULT = new FunCall("||", new Exp[] { x, y }, FunCall.TypeInfix);
987             CUP$parser$result = new java_cup.runtime.Symbol(23/*term2*/, ((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);
988           }
989         return CUP$parser$result;
990
991         /*. . . . . . . . . . . . . . . . . . . .*/
992         case 60: // term2 ::= term2 MINUS term
993
{
994             Exp RESULT = null;
995         int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
996         int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
997         Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
998         int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
999         int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1000        Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1001         RESULT = new FunCall("-", new Exp[] { x, y }, FunCall.TypeInfix);
1002            CUP$parser$result = new java_cup.runtime.Symbol(23/*term2*/, ((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);
1003          }
1004        return CUP$parser$result;
1005
1006        /*. . . . . . . . . . . . . . . . . . . .*/
1007        case 59: // term2 ::= term2 PLUS term
1008
{
1009            Exp RESULT = null;
1010        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1011        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1012        Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1013        int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1014        int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1015        Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1016         RESULT = new FunCall("+", new Exp[] { x, y }, FunCall.TypeInfix);
1017            CUP$parser$result = new java_cup.runtime.Symbol(23/*term2*/, ((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);
1018          }
1019        return CUP$parser$result;
1020
1021        /*. . . . . . . . . . . . . . . . . . . .*/
1022        case 58: // term2 ::= term
1023
{
1024            Exp RESULT = null;
1025        int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1026        int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1027        Exp t = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1028         RESULT = t;
1029            CUP$parser$result = new java_cup.runtime.Symbol(23/*term2*/, ((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);
1030          }
1031        return CUP$parser$result;
1032
1033        /*. . . . . . . . . . . . . . . . . . . .*/
1034        case 57: // term3 ::= term3 comp_op term2
1035
{
1036            Exp RESULT = null;
1037        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1038        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1039        Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1040        int opleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1041        int opright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1042        String JavaDoc op = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1043        int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1044        int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1045        Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1046         RESULT = new FunCall(op, new Exp[] { x, y }, FunCall.TypeInfix);
1047            CUP$parser$result = new java_cup.runtime.Symbol(22/*term3*/, ((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);
1048          }
1049        return CUP$parser$result;
1050
1051        /*. . . . . . . . . . . . . . . . . . . .*/
1052        case 56: // term3 ::= term2
1053
{
1054            Exp RESULT = null;
1055        int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1056        int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1057        Exp t = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1058         RESULT = t;
1059            CUP$parser$result = new java_cup.runtime.Symbol(22/*term3*/, ((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);
1060          }
1061        return CUP$parser$result;
1062
1063        /*. . . . . . . . . . . . . . . . . . . .*/
1064        case 55: // term4 ::= NOT term4
1065
{
1066            Exp RESULT = null;
1067        int pleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1068        int pright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1069        Exp p = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1070         RESULT = new FunCall("NOT", new Exp[] { p }, FunCall.TypePrefix);
1071            CUP$parser$result = new java_cup.runtime.Symbol(21/*term4*/, ((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);
1072          }
1073        return CUP$parser$result;
1074
1075        /*. . . . . . . . . . . . . . . . . . . .*/
1076        case 54: // term4 ::= term3
1077
{
1078            Exp RESULT = null;
1079        int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1080        int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1081        Exp t = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1082         RESULT = t;
1083            CUP$parser$result = new java_cup.runtime.Symbol(21/*term4*/, ((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);
1084          }
1085        return CUP$parser$result;
1086
1087        /*. . . . . . . . . . . . . . . . . . . .*/
1088        case 53: // term5 ::= term5 AND term4
1089
{
1090            Exp RESULT = null;
1091        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1092        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1093        Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1094        int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1095        int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1096        Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1097         RESULT = new FunCall("AND", new Exp[] { x, y }, FunCall.TypeInfix);
1098            CUP$parser$result = new java_cup.runtime.Symbol(20/*term5*/, ((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);
1099          }
1100        return CUP$parser$result;
1101
1102        /*. . . . . . . . . . . . . . . . . . . .*/
1103        case 52: // term5 ::= term4
1104
{
1105            Exp RESULT = null;
1106        int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1107        int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1108        Exp t = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1109         RESULT = t;
1110            CUP$parser$result = new java_cup.runtime.Symbol(20/*term5*/, ((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);
1111          }
1112        return CUP$parser$result;
1113
1114        /*. . . . . . . . . . . . . . . . . . . .*/
1115        case 51: // value_expression ::= value_expression XOR term5
1116
{
1117            Exp RESULT = null;
1118        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1119        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1120        Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1121        int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1122        int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1123        Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1124         RESULT = new FunCall("XOR", new Exp[] { x, y }, FunCall.TypeInfix);
1125            CUP$parser$result = new java_cup.runtime.Symbol(16/*value_expression*/, ((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);
1126          }
1127        return CUP$parser$result;
1128
1129        /*. . . . . . . . . . . . . . . . . . . .*/
1130        case 50: // value_expression ::= value_expression OR term5
1131
{
1132            Exp RESULT = null;
1133        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1134        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1135        Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1136        int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1137        int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1138        Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1139         RESULT = new FunCall("OR", new Exp[] { x, y }, FunCall.TypeInfix);
1140            CUP$parser$result = new java_cup.runtime.Symbol(16/*value_expression*/, ((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);
1141          }
1142        return CUP$parser$result;
1143
1144        /*. . . . . . . . . . . . . . . . . . . .*/
1145        case 49: // value_expression ::= term5
1146
{
1147            Exp RESULT = null;
1148        int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1149        int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1150        Exp t = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1151         RESULT = t;
1152            CUP$parser$result = new java_cup.runtime.Symbol(16/*value_expression*/, ((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);
1153          }
1154        return CUP$parser$result;
1155
1156        /*. . . . . . . . . . . . . . . . . . . .*/
1157        case 48: // exp_list ::= expression COMMA exp_list
1158
{
1159            ArrayList JavaDoc RESULT = null;
1160        int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1161        int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1162        Exp e = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1163        int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1164        int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1165        ArrayList JavaDoc list = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1166         list.add(0, e); RESULT = list;
1167            CUP$parser$result = new java_cup.runtime.Symbol(34/*exp_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);
1168          }
1169        return CUP$parser$result;
1170
1171        /*. . . . . . . . . . . . . . . . . . . .*/
1172        case 47: // exp_list ::= expression
1173
{
1174            ArrayList JavaDoc RESULT = null;
1175        int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1176        int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1177        Exp e = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1178         RESULT = new ArrayList JavaDoc(); RESULT.add(e);
1179            CUP$parser$result = new java_cup.runtime.Symbol(34/*exp_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);
1180          }
1181        return CUP$parser$result;
1182
1183        /*. . . . . . . . . . . . . . . . . . . .*/
1184        case 46: // exp_list_opt ::= exp_list
1185
{
1186            ArrayList JavaDoc RESULT = null;
1187        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1188        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1189        ArrayList JavaDoc x = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1190         RESULT=x;
1191            CUP$parser$result = new java_cup.runtime.Symbol(33/*exp_list_opt*/, ((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          }
1193        return CUP$parser$result;
1194
1195        /*. . . . . . . . . . . . . . . . . . . .*/
1196        case 45: // exp_list_opt ::=
1197
{
1198            ArrayList JavaDoc RESULT = null;
1199        RESULT = new ArrayList JavaDoc();
1200            CUP$parser$result = new java_cup.runtime.Symbol(33/*exp_list_opt*/, ((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);
1201          }
1202        return CUP$parser$result;
1203
1204        /*. . . . . . . . . . . . . . . . . . . .*/
1205        case 44: // expression ::= value_expression
1206
{
1207            Exp RESULT = null;
1208        int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1209        int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1210        Exp v = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1211         RESULT = v;
1212            CUP$parser$result = new java_cup.runtime.Symbol(15/*expression*/, ((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);
1213          }
1214        return CUP$parser$result;
1215
1216        /*. . . . . . . . . . . . . . . . . . . .*/
1217        case 43: // expression ::= expression COLON value_expression
1218
{
1219            Exp RESULT = null;
1220        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1221        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1222        Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1223        int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1224        int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1225        Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1226         // range yields set
1227
RESULT = new FunCall(":", new Exp[] { x, y }, FunCall.TypeInfix);
1228     
1229            CUP$parser$result = new java_cup.runtime.Symbol(15/*expression*/, ((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);
1230          }
1231        return CUP$parser$result;
1232
1233        /*. . . . . . . . . . . . . . . . . . . .*/
1234        case 42: // identifier ::= QUOTED_ID
1235
{
1236            String JavaDoc RESULT = null;
1237        int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1238        int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1239        String JavaDoc y = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1240         RESULT=y;
1241            CUP$parser$result = new java_cup.runtime.Symbol(29/*identifier*/, ((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);
1242          }
1243        return CUP$parser$result;
1244
1245        /*. . . . . . . . . . . . . . . . . . . .*/
1246        case 41: // identifier ::= ID
1247
{
1248            String JavaDoc RESULT = null;
1249        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1250        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1251        String JavaDoc x = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1252         RESULT=x;
1253            CUP$parser$result = new java_cup.runtime.Symbol(29/*identifier*/, ((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);
1254          }
1255        return CUP$parser$result;
1256
1257        /*. . . . . . . . . . . . . . . . . . . .*/
1258        case 40: // compound_id ::= compound_id DOT identifier
1259
{
1260            CompoundId RESULT = null;
1261        int hdleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1262        int hdright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1263        CompoundId hd = (CompoundId)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1264        int tlleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1265        int tlright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1266        String JavaDoc tl = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1267         hd.append(tl); RESULT = hd;
1268            CUP$parser$result = new java_cup.runtime.Symbol(37/*compound_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);
1269          }
1270        return CUP$parser$result;
1271
1272        /*. . . . . . . . . . . . . . . . . . . .*/
1273        case 39: // compound_id ::= identifier
1274
{
1275            CompoundId RESULT = null;
1276        int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1277        int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1278        String JavaDoc i = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1279         RESULT = new CompoundId(i);
1280            CUP$parser$result = new java_cup.runtime.Symbol(37/*compound_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);
1281          }
1282        return CUP$parser$result;
1283
1284        /*. . . . . . . . . . . . . . . . . . . .*/
1285        case 38: // set_spec ::= SET compound_id AS expression
1286
{
1287            Formula RESULT = null;
1288        int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1289        int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1290        CompoundId s = (CompoundId)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1291        int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1292        int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1293        Exp e = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1294        RESULT = new Formula(s.toStringArray(), e);
1295            CUP$parser$result = new java_cup.runtime.Symbol(11/*set_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);
1296          }
1297        return CUP$parser$result;
1298
1299        /*. . . . . . . . . . . . . . . . . . . .*/
1300        case 37: // set_spec ::= SET compound_id AS QUOTE expression QUOTE
1301
{
1302            Formula RESULT = null;
1303        int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
1304        int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
1305        CompoundId s = (CompoundId)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1306        int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1307        int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1308        Exp e = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1309         RESULT = new Formula(s.toStringArray(), e);
1310            CUP$parser$result = new java_cup.runtime.Symbol(11/*set_spec*/, ((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);
1311          }
1312        return CUP$parser$result;
1313
1314        /*. . . . . . . . . . . . . . . . . . . .*/
1315        case 36: // member_property_definition ::= identifier EQ value_expression
1316
{
1317            MemberProperty RESULT = null;
1318        int idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1319        int idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1320        String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1321        int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1322        int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1323        Exp e = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1324         RESULT = new MemberProperty(id, e);
1325            CUP$parser$result = new java_cup.runtime.Symbol(36/*member_property_definition*/, ((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);
1326          }
1327        return CUP$parser$result;
1328
1329        /*. . . . . . . . . . . . . . . . . . . .*/
1330        case 35: // member_property_def_list ::= member_property_definition COMMA member_property_def_list
1331
{
1332            ArrayList JavaDoc RESULT = null;
1333        int hdleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1334        int hdright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1335        MemberProperty hd = (MemberProperty)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1336        int tlleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1337        int tlright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1338        ArrayList JavaDoc tl = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1339         RESULT = tl; RESULT.add(0, hd);
1340            CUP$parser$result = new java_cup.runtime.Symbol(32/*member_property_def_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);
1341          }
1342        return CUP$parser$result;
1343
1344        /*. . . . . . . . . . . . . . . . . . . .*/
1345        case 34: // member_property_def_list ::= member_property_definition
1346
{
1347            ArrayList JavaDoc RESULT = null;
1348        int mleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1349        int mright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1350        MemberProperty m = (MemberProperty)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1351         RESULT = new ArrayList JavaDoc(); RESULT.add(m);
1352            CUP$parser$result = new java_cup.runtime.Symbol(32/*member_property_def_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);
1353          }
1354        return CUP$parser$result;
1355
1356        /*. . . . . . . . . . . . . . . . . . . .*/
1357        case 33: // comma_member_property_def_list_opt ::= COMMA member_property_def_list
1358
{
1359            ArrayList JavaDoc RESULT = null;
1360        int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1361        int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1362        ArrayList JavaDoc l = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1363         RESULT = l;
1364            CUP$parser$result = new java_cup.runtime.Symbol(31/*comma_member_property_def_list_opt*/, ((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);
1365          }
1366        return CUP$parser$result;
1367
1368        /*. . . . . . . . . . . . . . . . . . . .*/
1369        case 32: // comma_member_property_def_list_opt ::=
1370
{
1371            ArrayList JavaDoc RESULT = null;
1372        RESULT = new ArrayList JavaDoc();
1373            CUP$parser$result = new java_cup.runtime.Symbol(31/*comma_member_property_def_list_opt*/, ((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);
1374          }
1375        return CUP$parser$result;
1376
1377        /*. . . . . . . . . . . . . . . . . . . .*/
1378        case 31: // member_spec ::= MEMBER compound_id AS value_expression comma_member_property_def_list_opt
1379
{
1380            Formula RESULT = null;
1381        int mleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
1382        int mright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
1383        CompoundId m = (CompoundId)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1384        int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1385        int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1386        Exp e = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1387        int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1388        int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1389        ArrayList JavaDoc l = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1390         RESULT = new Formula(m.toStringArray(), e, (MemberProperty[]) l.toArray(new MemberProperty[0]));
1391            CUP$parser$result = new java_cup.runtime.Symbol(10/*member_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);
1392          }
1393        return CUP$parser$result;
1394
1395        /*. . . . . . . . . . . . . . . . . . . .*/
1396        case 30: // member_spec ::= MEMBER compound_id AS QUOTE value_expression QUOTE comma_member_property_def_list_opt
1397
{
1398            Formula RESULT = null;
1399        int mleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
1400        int mright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
1401        CompoundId m = (CompoundId)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
1402        int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1403        int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1404        Exp e = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1405        int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1406        int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1407        ArrayList JavaDoc l = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1408         RESULT = new Formula(m.toStringArray(), e, (MemberProperty[]) l.toArray(new MemberProperty[0]));
1409            CUP$parser$result = new java_cup.runtime.Symbol(10/*member_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1410          }
1411        return CUP$parser$result;
1412
1413        /*. . . . . . . . . . . . . . . . . . . .*/
1414        case 29: // single_formula_spec ::= set_spec
1415
{
1416            Formula RESULT = null;
1417        int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1418        int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1419        Formula s = (Formula)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1420         RESULT = s;
1421            CUP$parser$result = new java_cup.runtime.Symbol(9/*single_formula_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);
1422          }
1423        return CUP$parser$result;
1424
1425        /*. . . . . . . . . . . . . . . . . . . .*/
1426        case 28: // single_formula_spec ::= member_spec
1427
{
1428            Formula RESULT = null;
1429        int mleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1430        int mright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1431        Formula m = (Formula)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1432         RESULT = m;
1433            CUP$parser$result = new java_cup.runtime.Symbol(9/*single_formula_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);
1434          }
1435        return CUP$parser$result;
1436
1437        /*. . . . . . . . . . . . . . . . . . . .*/
1438        case 27: // formula_spec ::= single_formula_spec formula_spec
1439
{
1440            ArrayList JavaDoc RESULT = null;
1441        int hdleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1442        int hdright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1443        Formula hd = (Formula)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1444        int tlleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1445        int tlright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1446        ArrayList JavaDoc tl = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1447         tl.add(0, hd); RESULT = tl;
1448            CUP$parser$result = new java_cup.runtime.Symbol(8/*formula_spec*/, ((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);
1449          }
1450        return CUP$parser$result;
1451
1452        /*. . . . . . . . . . . . . . . . . . . .*/
1453        case 26: // formula_spec ::= single_formula_spec
1454
{
1455            ArrayList JavaDoc RESULT = null;
1456        int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1457        int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1458        Formula e = (Formula)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1459         RESULT = new ArrayList JavaDoc(); RESULT.add(e);
1460            CUP$parser$result = new java_cup.runtime.Symbol(8/*formula_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);
1461          }
1462        return CUP$parser$result;
1463
1464        /*. . . . . . . . . . . . . . . . . . . .*/
1465        case 25: // cell_prop_list ::= identifier NT$0 COMMA cell_prop_list
1466
{
1467            Object JavaDoc RESULT = null;
1468            // propagate RESULT from NT$0
1469
if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null )
1470              RESULT = (Object JavaDoc) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1471        int idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
1472        int idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
1473        String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1474        int clleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1475        int clright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1476        Object JavaDoc cl = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1477
1478            CUP$parser$result = new java_cup.runtime.Symbol(5/*cell_prop_list*/, ((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);
1479          }
1480        return CUP$parser$result;
1481
1482        /*. . . . . . . . . . . . . . . . . . . .*/
1483        case 24: // NT$0 ::=
1484
{
1485            Object JavaDoc RESULT = null;
1486        int idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1487        int idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1488        String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1489pQuery.cellProps.add(new CompoundId(id));
1490            CUP$parser$result = new java_cup.runtime.Symbol(41/*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);
1491          }
1492        return CUP$parser$result;
1493
1494        /*. . . . . . . . . . . . . . . . . . . .*/
1495        case 23: // cell_prop_list ::= identifier
1496
{
1497            Object JavaDoc RESULT = null;
1498        int idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1499        int idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1500        String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1501         pQuery.cellProps.add(new CompoundId(id));
1502            CUP$parser$result = new java_cup.runtime.Symbol(5/*cell_prop_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);
1503          }
1504        return CUP$parser$result;
1505
1506        /*. . . . . . . . . . . . . . . . . . . .*/
1507        case 22: // cell_prop_def ::= CELL PROPERTIES cell_prop_list
1508
{
1509            Object JavaDoc RESULT = null;
1510
1511            CUP$parser$result = new java_cup.runtime.Symbol(4/*cell_prop_def*/, ((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);
1512          }
1513        return CUP$parser$result;
1514
1515        /*. . . . . . . . . . . . . . . . . . . .*/
1516        case 21: // cell_prop_def ::=
1517
{
1518            Object JavaDoc RESULT = null;
1519         pQuery.cellProps.clear() ;
1520            CUP$parser$result = new java_cup.runtime.Symbol(4/*cell_prop_def*/, ((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);
1521          }
1522        return CUP$parser$result;
1523
1524        /*. . . . . . . . . . . . . . . . . . . .*/
1525        case 20: // slicer_def ::= WHERE expression
1526
{
1527            Object JavaDoc RESULT = null;
1528        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1529        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1530        Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1531         pQuery.slicer = x;
1532            CUP$parser$result = new java_cup.runtime.Symbol(3/*slicer_def*/, ((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);
1533          }
1534        return CUP$parser$result;
1535
1536        /*. . . . . . . . . . . . . . . . . . . .*/
1537        case 19: // slicer_def ::=
1538
{
1539            Object JavaDoc RESULT = null;
1540         pQuery.slicer = null;
1541            CUP$parser$result = new java_cup.runtime.Symbol(3/*slicer_def*/, ((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);
1542          }
1543        return CUP$parser$result;
1544
1545        /*. . . . . . . . . . . . . . . . . . . .*/
1546        case 18: // cube_def ::= identifier
1547
{
1548            Object JavaDoc RESULT = null;
1549        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1550        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1551        String JavaDoc x = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1552         pQuery.setCube(x);
1553            CUP$parser$result = new java_cup.runtime.Symbol(2/*cube_def*/, ((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);
1554          }
1555        return CUP$parser$result;
1556
1557        /*. . . . . . . . . . . . . . . . . . . .*/
1558        case 17: // axis_name ::= identifier
1559
{
1560            String JavaDoc RESULT = null;
1561        int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1562        int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1563        String JavaDoc x = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1564         RESULT = x;
1565            CUP$parser$result = new java_cup.runtime.Symbol(30/*axis_name*/, ((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);
1566          }
1567        return CUP$parser$result;
1568
1569        /*. . . . . . . . . . . . . . . . . . . .*/
1570        case 16: // non_empty_opt ::= NON EMPTY
1571
{
1572            Boolean JavaDoc RESULT = null;
1573         RESULT = new Boolean JavaDoc(true);
1574            CUP$parser$result = new java_cup.runtime.Symbol(28/*non_empty_opt*/, ((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);
1575          }
1576        return CUP$parser$result;
1577
1578        /*. . . . . . . . . . . . . . . . . . . .*/
1579        case 15: // non_empty_opt ::=
1580
{
1581            Boolean JavaDoc RESULT = null;
1582        RESULT = new Boolean JavaDoc(false);
1583            CUP$parser$result = new java_cup.runtime.Symbol(28/*non_empty_opt*/, ((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);
1584          }
1585        return CUP$parser$result;
1586
1587        /*. . . . . . . . . . . . . . . . . . . .*/
1588        case 14: // dim_prop_list ::= compound_id COMMA dim_prop_list
1589
{
1590            List JavaDoc RESULT = null;
1591        int cid2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1592        int cid2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1593        CompoundId cid2 = (CompoundId)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1594        int dplleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1595        int dplright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1596        List JavaDoc dpl = (List JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1597         RESULT = dpl; dpl.add(cid2);
1598            CUP$parser$result = new java_cup.runtime.Symbol(40/*dim_prop_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);
1599          }
1600        return CUP$parser$result;
1601
1602        /*. . . . . . . . . . . . . . . . . . . .*/
1603        case 13: // dim_prop_list ::= compound_id
1604
{
1605            List JavaDoc RESULT = null;
1606        int cidleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1607        int cidright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1608        CompoundId cid = (CompoundId)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1609         List JavaDoc lst = new ArrayList JavaDoc();
1610                                 lst.add(cid); RESULT = lst;
1611            CUP$parser$result = new java_cup.runtime.Symbol(40/*dim_prop_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);
1612          }
1613        return CUP$parser$result;
1614
1615        /*. . . . . . . . . . . . . . . . . . . .*/
1616        case 12: // dim_props ::= DIMENSION PROPERTIES dim_prop_list
1617
{
1618            List JavaDoc RESULT = null;
1619        int dplistleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1620        int dplistright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1621        List JavaDoc dplist = (List JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1622         RESULT = dplist;
1623            CUP$parser$result = new java_cup.runtime.Symbol(39/*dim_props*/, ((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);
1624          }
1625        return CUP$parser$result;
1626
1627        /*. . . . . . . . . . . . . . . . . . . .*/
1628        case 11: // dim_props ::=
1629
{
1630            List JavaDoc RESULT = null;
1631         RESULT = new ArrayList JavaDoc();
1632            CUP$parser$result = new java_cup.runtime.Symbol(39/*dim_props*/, ((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);
1633          }
1634        return CUP$parser$result;
1635
1636        /*. . . . . . . . . . . . . . . . . . . .*/
1637        case 10: // axis_spec ::= non_empty_opt expression dim_props ON axis_name
1638
{
1639            QueryAxis RESULT = null;
1640        int bleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
1641        int bright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
1642        Boolean JavaDoc b = (Boolean JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1643        int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
1644        int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
1645        Exp s = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1646        int dpropsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1647        int dpropsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1648        List JavaDoc dprops = (List JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1649        int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1650        int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1651        String JavaDoc a = (String JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1652         RESULT = new QueryAxis(b.booleanValue(), s, a);
1653           RESULT.setDimProps(dprops);
1654            CUP$parser$result = new java_cup.runtime.Symbol(14/*axis_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);
1655          }
1656        return CUP$parser$result;
1657
1658        /*. . . . . . . . . . . . . . . . . . . .*/
1659        case 9: // axis_spec_list ::= axis_spec COMMA axis_spec_list
1660
{
1661            ArrayList JavaDoc RESULT = null;
1662        int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1663        int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1664        QueryAxis e = (QueryAxis)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1665        int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1666        int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1667        ArrayList JavaDoc list = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1668         list.add(0, e); RESULT = list;
1669            CUP$parser$result = new java_cup.runtime.Symbol(13/*axis_spec_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);
1670          }
1671        return CUP$parser$result;
1672
1673        /*. . . . . . . . . . . . . . . . . . . .*/
1674        case 8: // axis_spec_list ::= axis_spec
1675
{
1676            ArrayList JavaDoc RESULT = null;
1677        int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1678        int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1679        QueryAxis i = (QueryAxis)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1680         RESULT = new ArrayList JavaDoc(); RESULT.add(i);
1681            CUP$parser$result = new java_cup.runtime.Symbol(13/*axis_spec_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);
1682          }
1683        return CUP$parser$result;
1684
1685        /*. . . . . . . . . . . . . . . . . . . .*/
1686        case 7: // axis_def ::= axis_spec_list
1687
{
1688            ArrayList JavaDoc RESULT = null;
1689        int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1690        int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1691        ArrayList JavaDoc l = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1692         pQuery.axisDef = l;
1693            CUP$parser$result = new java_cup.runtime.Symbol(12/*axis_def*/, ((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);
1694          }
1695        return CUP$parser$result;
1696
1697        /*. . . . . . . . . . . . . . . . . . . .*/
1698        case 6: // axis_def ::=
1699
{
1700            ArrayList JavaDoc RESULT = null;
1701         pQuery.axisDef = new ArrayList JavaDoc();
1702            CUP$parser$result = new java_cup.runtime.Symbol(12/*axis_def*/, ((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);
1703          }
1704        return CUP$parser$result;
1705
1706        /*. . . . . . . . . . . . . . . . . . . .*/
1707        case 5: // with_clause ::= WITH formula_spec
1708
{
1709            Object JavaDoc RESULT = null;
1710        int fleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1711        int fright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1712        ArrayList JavaDoc f = (ArrayList JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1713         pQuery.formulas = f;
1714            CUP$parser$result = new java_cup.runtime.Symbol(6/*with_clause*/, ((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);
1715          }
1716        return CUP$parser$result;
1717
1718        /*. . . . . . . . . . . . . . . . . . . .*/
1719        case 4: // with_clause ::=
1720
{
1721            Object JavaDoc RESULT = null;
1722         pQuery.formulas = new ArrayList JavaDoc(); /* empty */
1723            CUP$parser$result = new java_cup.runtime.Symbol(6/*with_clause*/, ((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);
1724          }
1725        return CUP$parser$result;
1726
1727        /*. . . . . . . . . . . . . . . . . . . .*/
1728        case 3: // sel_clause ::= DRILLTHROUGH SELECT
1729
{
1730            Object JavaDoc RESULT = null;
1731
1732            CUP$parser$result = new java_cup.runtime.Symbol(7/*sel_clause*/, ((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);
1733          }
1734        return CUP$parser$result;
1735
1736        /*. . . . . . . . . . . . . . . . . . . .*/
1737        case 2: // sel_clause ::= SELECT
1738
{
1739            Object JavaDoc RESULT = null;
1740
1741        // Default action for single-symbol production
1742
RESULT = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top)).value;
1743            CUP$parser$result = new java_cup.runtime.Symbol(7/*sel_clause*/, ((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          }
1745        return CUP$parser$result;
1746
1747        /*. . . . . . . . . . . . . . . . . . . .*/
1748        case 1: // mdx_statement ::= with_clause sel_clause axis_def FROM cube_def slicer_def cell_prop_def
1749
{
1750            ParsedQuery RESULT = null;
1751         RESULT = pQuery;
1752            CUP$parser$result = new java_cup.runtime.Symbol(1/*mdx_statement*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
1753          }
1754        return CUP$parser$result;
1755
1756        /*. . . . . . . . . . . . . . . . . . . .*/
1757        case 0: // $START ::= mdx_statement EOF
1758
{
1759            Object JavaDoc RESULT = null;
1760        int start_valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1761        int start_valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1762        ParsedQuery start_val = (ParsedQuery)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1763        RESULT = start_val;
1764            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);
1765          }
1766        /* ACCEPT */
1767        CUP$parser$parser.done_parsing();
1768        return CUP$parser$result;
1769
1770        /* . . . . . .*/
1771        default:
1772          throw new Exception JavaDoc(
1773             "Invalid action number found in internal parse table");
1774
1775      }
1776  }
1777}
1778
1779
Popular Tags