001
002//----------------------------------------------------
003// The following code was generated by CUP v0.10k TUM Edition 20050516
004// Tue Apr 14 14:51:42 CEST 2015
005//----------------------------------------------------
006
007package org.nuxeo.ecm.core.query.sql.parser;
008
009import org.nuxeo.ecm.core.query.QueryParseException;
010import org.nuxeo.ecm.core.query.sql.model.DateLiteral;
011import org.nuxeo.ecm.core.query.sql.model.DoubleLiteral;
012import org.nuxeo.ecm.core.query.sql.model.EsHint;
013import org.nuxeo.ecm.core.query.sql.model.EsIdentifierList;
014import org.nuxeo.ecm.core.query.sql.model.Expression;
015import org.nuxeo.ecm.core.query.sql.model.FromClause;
016import org.nuxeo.ecm.core.query.sql.model.FromList;
017import org.nuxeo.ecm.core.query.sql.model.Function;
018import org.nuxeo.ecm.core.query.sql.model.IntegerLiteral;
019import org.nuxeo.ecm.core.query.sql.model.Literal;
020import org.nuxeo.ecm.core.query.sql.model.LiteralList;
021import org.nuxeo.ecm.core.query.sql.model.Operand;
022import org.nuxeo.ecm.core.query.sql.model.OperandList;
023import org.nuxeo.ecm.core.query.sql.model.Operator;
024import org.nuxeo.ecm.core.query.sql.model.OrderByClause;
025import org.nuxeo.ecm.core.query.sql.model.OrderByExpr;
026import org.nuxeo.ecm.core.query.sql.model.OrderByList;
027import org.nuxeo.ecm.core.query.sql.model.Predicate;
028import org.nuxeo.ecm.core.query.sql.model.Reference;
029import org.nuxeo.ecm.core.query.sql.model.SQLQuery;
030import org.nuxeo.ecm.core.query.sql.model.SelectClause;
031import org.nuxeo.ecm.core.query.sql.model.SelectList;
032import org.nuxeo.ecm.core.query.sql.model.StringLiteral;
033import org.nuxeo.ecm.core.query.sql.model.WhereClause;
034
035import java_cup.runtime.Symbol;
036
037/** CUP v0.10k TUM Edition 20050516 generated parser.
038  * @version Tue Apr 14 14:51:42 CEST 2015
039  */
040public class parser extends java_cup.runtime.lr_parser {
041
042  /** Default constructor. */
043  public parser() {super();}
044
045  /** Constructor which sets the default scanner. */
046  public parser(java_cup.runtime.Scanner s) {super(s);}
047
048  /** Production table. */
049  protected static final short _production_table[][] = 
050    unpackFromStrings(new String[] {
051    "\000\145\000\002\002\004\000\002\003\004\000\002\003" +
052    "\005\000\002\003\006\000\002\003\005\000\002\003\005" +
053    "\000\002\003\007\000\002\015\004\000\002\015\005\000" +
054    "\002\015\005\000\002\023\005\000\002\023\007\000\002" +
055    "\023\003\000\002\023\005\000\002\023\003\000\002\016" +
056    "\004\000\002\016\005\000\002\016\005\000\002\030\003" +
057    "\000\002\030\003\000\002\024\005\000\002\024\007\000" +
058    "\002\024\003\000\002\024\005\000\002\017\004\000\002" +
059    "\020\004\000\002\026\003\000\002\026\005\000\002\027" +
060    "\003\000\002\027\004\000\002\027\004\000\002\012\005" +
061    "\000\002\012\005\000\002\012\005\000\002\012\005\000" +
062    "\002\012\005\000\002\012\005\000\002\012\005\000\002" +
063    "\012\005\000\002\012\005\000\002\012\005\000\002\012" +
064    "\005\000\002\012\005\000\002\012\005\000\002\012\004" +
065    "\000\002\012\007\000\002\012\010\000\002\012\007\000" +
066    "\002\012\010\000\002\012\005\000\002\012\005\000\002" +
067    "\012\006\000\002\012\006\000\002\012\005\000\002\012" +
068    "\006\000\002\012\005\000\002\005\003\000\002\005\003" +
069    "\000\002\011\005\000\002\011\005\000\002\011\005\000" +
070    "\002\011\005\000\002\011\005\000\002\011\005\000\002" +
071    "\011\005\000\002\011\005\000\002\011\005\000\002\010" +
072    "\003\000\002\010\006\000\002\010\004\000\002\007\003" +
073    "\000\002\007\003\000\002\004\003\000\002\004\003\000" +
074    "\002\004\003\000\002\006\003\000\002\006\003\000\002" +
075    "\006\004\000\002\006\003\000\002\006\004\000\002\006" +
076    "\004\000\002\006\004\000\002\025\003\000\002\025\005" +
077    "\000\002\013\005\000\002\013\006\000\002\014\003\000" +
078    "\002\014\005\000\002\034\003\000\002\034\005\000\002" +
079    "\035\006\000\002\032\006\000\002\033\006\000\002\031" +
080    "\005\000\002\031\005\000\002\031\005\000\002\031\006" +
081    "\000\002\031\006\000\002\031\006\000\002\031\007\000" +
082    "\002\031\004" });
083
084  /** Access to production table. */
085  public short[][] production_table() {return _production_table;}
086
087  /** Parse-action table. */
088  protected static final short[][] _action_table = 
089    unpackFromStrings(new String[] {
090    "\000\311\000\004\004\006\001\002\000\004\005\153\001" +
091    "\002\000\006\002\147\023\146\001\002\000\032\024\022" +
092    "\025\007\034\015\036\030\053\010\054\026\062\017\067" +
093    "\012\071\014\072\016\073\025\074\031\001\002\000\026" +
094    "\034\015\036\030\053\010\054\026\062\017\067\012\071" +
095    "\014\072\016\073\025\074\031\001\002\000\006\046\142" +
096    "\072\141\001\002\000\050\002\uffb7\005\uffb7\007\uffb7\020" +
097    "\uffb7\023\uffb7\030\uffb7\031\uffb7\033\uffb7\034\uffb7\035\uffb7" +
098    "\036\uffb7\037\uffb7\040\uffb7\041\uffb7\042\uffb7\043\uffb7\044" +
099    "\uffb7\045\uffb7\047\uffb7\001\002\000\070\002\uffbb\005\uffbb" +
100    "\007\uffbb\010\uffbb\011\uffbb\012\uffbb\013\uffbb\020\uffbb\023" +
101    "\uffbb\030\uffbb\031\uffbb\032\uffbb\033\uffbb\034\uffbb\035\uffbb" +
102    "\036\uffbb\037\uffbb\040\uffbb\041\uffbb\042\uffbb\043\uffbb\044" +
103    "\uffbb\045\uffbb\046\104\047\uffbb\051\uffbb\056\uffbb\001\002" +
104    "\000\050\002\uffb8\005\uffb8\007\uffb8\020\uffb8\023\uffb8\030" +
105    "\uffb8\031\uffb8\033\uffb8\034\uffb8\035\uffb8\036\uffb8\037\uffb8" +
106    "\040\uffb8\041\uffb8\042\uffb8\043\uffb8\044\uffb8\045\uffb8\047" +
107    "\uffb8\001\002\000\072\002\uffba\005\uffba\007\uffba\010\uffba" +
108    "\011\uffba\012\uffba\013\uffba\020\uffba\023\uffba\026\uffba\027" +
109    "\uffba\030\uffba\031\uffba\032\uffba\033\uffba\034\uffba\035\uffba" +
110    "\036\uffba\037\uffba\040\uffba\041\uffba\042\uffba\043\uffba\044" +
111    "\uffba\045\uffba\047\uffba\051\uffba\056\uffba\001\002\000\006" +
112    "\073\102\074\103\001\002\000\050\002\uffb6\005\uffb6\007" +
113    "\uffb6\020\uffb6\023\uffb6\030\uffb6\031\uffb6\033\uffb6\034\uffb6" +
114    "\035\uffb6\036\uffb6\037\uffb6\040\uffb6\041\uffb6\042\uffb6\043" +
115    "\uffb6\044\uffb6\045\uffb6\047\uffb6\001\002\000\012\063\045" +
116    "\064\046\065\050\066\044\001\002\000\006\005\ufffa\045" +
117    "\040\001\002\000\072\002\uffbe\005\uffbe\007\uffbe\010\uffbe" +
118    "\011\uffbe\012\uffbe\013\uffbe\020\uffbe\023\uffbe\026\uffbe\027" +
119    "\uffbe\030\uffbe\031\uffbe\032\uffbe\033\uffbe\034\uffbe\035\uffbe" +
120    "\036\uffbe\037\uffbe\040\uffbe\041\uffbe\042\uffbe\043\uffbe\044" +
121    "\uffbe\045\uffbe\047\uffbe\051\uffbe\056\uffbe\001\002\000\026" +
122    "\034\015\036\030\053\010\054\026\062\017\067\012\071" +
123    "\014\072\016\073\025\074\031\001\002\000\006\067\036" +
124    "\071\014\001\002\000\050\002\uffb9\005\uffb9\007\uffb9\020" +
125    "\uffb9\023\uffb9\030\uffb9\031\uffb9\033\uffb9\034\uffb9\035\uffb9" +
126    "\036\uffb9\037\uffb9\040\uffb9\041\uffb9\042\uffb9\043\uffb9\044" +
127    "\uffb9\045\uffb9\047\uffb9\001\002\000\050\002\uffb5\005\uffb5" +
128    "\007\uffb5\020\uffb5\023\uffb5\030\uffb5\031\uffb5\033\uffb5\034" +
129    "\uffb5\035\uffb5\036\uffb5\037\uffb5\040\uffb5\041\uffb5\042\uffb5" +
130    "\043\uffb5\044\uffb5\045\uffb5\047\uffb5\001\002\000\004\072" +
131    "\034\001\002\000\010\005\ufff5\007\032\045\ufff5\001\002" +
132    "\000\006\005\ufff3\045\ufff3\001\002\000\050\002\uffb3\005" +
133    "\uffb3\007\uffb3\020\uffb3\023\uffb3\030\uffb3\031\uffb3\033\uffb3" +
134    "\034\uffb3\035\uffb3\036\uffb3\037\uffb3\040\uffb3\041\uffb3\042" +
135    "\uffb3\043\uffb3\044\uffb3\045\uffb3\047\uffb3\001\002\000\004" +
136    "\067\033\001\002\000\006\005\ufff4\045\ufff4\001\002\000" +
137    "\050\002\uffb0\005\uffb0\007\uffb0\020\uffb0\023\uffb0\030\uffb0" +
138    "\031\uffb0\033\uffb0\034\uffb0\035\uffb0\036\uffb0\037\uffb0\040" +
139    "\uffb0\041\uffb0\042\uffb0\043\uffb0\044\uffb0\045\uffb0\047\uffb0" +
140    "\001\002\000\072\002\uffbc\005\uffbc\007\uffbc\010\uffbc\011" +
141    "\uffbc\012\uffbc\013\uffbc\020\uffbc\023\uffbc\026\uffbc\027\uffbc" +
142    "\030\uffbc\031\uffbc\032\uffbc\033\uffbc\034\uffbc\035\uffbc\036" +
143    "\uffbc\037\uffbc\040\uffbc\041\uffbc\042\uffbc\043\uffbc\044\uffbc" +
144    "\045\uffbc\047\uffbc\051\uffbc\056\uffbc\001\002\000\072\002" +
145    "\uffbb\005\uffbb\007\uffbb\010\uffbb\011\uffbb\012\uffbb\013\uffbb" +
146    "\020\uffbb\023\uffbb\026\uffbb\027\uffbb\030\uffbb\031\uffbb\032" +
147    "\uffbb\033\uffbb\034\uffbb\035\uffbb\036\uffbb\037\uffbb\040\uffbb" +
148    "\041\uffbb\042\uffbb\043\uffbb\044\uffbb\045\uffbb\047\uffbb\051" +
149    "\uffbb\056\uffbb\001\002\000\006\005\ufff9\045\040\001\002" +
150    "\000\024\034\015\053\010\054\026\062\017\067\012\071" +
151    "\014\072\016\073\025\074\031\001\002\000\010\005\ufff7" +
152    "\007\042\045\ufff7\001\002\000\004\067\043\001\002\000" +
153    "\006\005\ufff6\045\ufff6\001\002\000\004\046\077\001\002" +
154    "\000\006\067\uff9d\071\uff9d\001\002\000\004\046\071\001" +
155    "\002\000\004\063\070\001\002\000\004\046\065\001\002" +
156    "\000\010\063\056\065\050\066\044\001\002\000\006\063" +
157    "\053\066\044\001\002\000\006\067\uffa3\071\uffa3\001\002" +
158    "\000\004\063\055\001\002\000\006\067\uff9f\071\uff9f\001" +
159    "\002\000\006\067\uffa4\071\uffa4\001\002\000\004\063\064" +
160    "\001\002\000\006\063\061\066\044\001\002\000\006\067" +
161    "\uffa1\071\uffa1\001\002\000\004\063\063\001\002\000\006" +
162    "\067\uff9e\071\uff9e\001\002\000\006\067\uffa0\071\uffa0\001" +
163    "\002\000\004\075\066\001\002\000\004\047\067\001\002" +
164    "\000\006\063\uffa6\066\uffa6\001\002\000\006\067\uffa2\071" +
165    "\uffa2\001\002\000\004\075\073\001\002\000\006\045\074" +
166    "\047\075\001\002\000\006\045\uffa9\047\uffa9\001\002\000" +
167    "\004\075\076\001\002\000\010\063\uffa7\065\uffa7\066\uffa7" +
168    "\001\002\000\006\045\uffa8\047\uffa8\001\002\000\004\075" +
169    "\100\001\002\000\004\047\101\001\002\000\004\063\uffa5" +
170    "\001\002\000\050\002\uffb4\005\uffb4\007\uffb4\020\uffb4\023" +
171    "\uffb4\030\uffb4\031\uffb4\033\uffb4\034\uffb4\035\uffb4\036\uffb4" +
172    "\037\uffb4\040\uffb4\041\uffb4\042\uffb4\043\uffb4\044\uffb4\045" +
173    "\uffb4\047\uffb4\001\002\000\050\002\uffb2\005\uffb2\007\uffb2" +
174    "\020\uffb2\023\uffb2\030\uffb2\031\uffb2\033\uffb2\034\uffb2\035" +
175    "\uffb2\036\uffb2\037\uffb2\040\uffb2\041\uffb2\042\uffb2\043\uffb2" +
176    "\044\uffb2\045\uffb2\047\uffb2\001\002\000\030\034\015\046" +
177    "\105\047\112\053\010\054\026\062\017\067\012\071\014" +
178    "\072\016\073\025\074\031\001\002\000\026\034\015\046" +
179    "\105\053\010\054\026\062\017\067\012\071\014\072\016" +
180    "\073\025\074\031\001\002\000\006\045\uffab\047\uffab\001" +
181    "\002\000\044\002\uffc8\020\uffc8\023\uffc8\030\uffc8\031\uffc8" +
182    "\033\126\034\127\035\131\036\130\037\uffc8\040\uffc8\041" +
183    "\uffc8\042\uffc8\043\uffc8\044\uffc8\045\uffc8\047\uffc8\001\002" +
184    "\000\006\045\123\047\124\001\002\000\044\002\uffc9\020" +
185    "\uffc9\023\uffc9\030\uffc9\031\uffc9\033\114\034\113\035\116" +
186    "\036\115\037\uffc9\040\uffc9\041\uffc9\042\uffc9\043\uffc9\044" +
187    "\uffc9\045\uffc9\047\uffc9\001\002\000\050\002\uffad\005\uffad" +
188    "\007\uffad\020\uffad\023\uffad\030\uffad\031\uffad\033\uffad\034" +
189    "\uffad\035\uffad\036\uffad\037\uffad\040\uffad\041\uffad\042\uffad" +
190    "\043\uffad\044\uffad\045\uffad\047\uffad\001\002\000\024\034" +
191    "\015\053\010\054\026\062\017\067\012\071\014\072\016" +
192    "\073\025\074\031\001\002\000\024\034\015\053\010\054" +
193    "\026\062\017\067\012\071\014\072\016\073\025\074\031" +
194    "\001\002\000\024\034\015\053\010\054\026\062\017\067" +
195    "\012\071\014\072\016\073\025\074\031\001\002\000\024" +
196    "\034\015\053\010\054\026\062\017\067\012\071\014\072" +
197    "\016\073\025\074\031\001\002\000\044\002\uffc0\020\uffc0" +
198    "\023\uffc0\030\uffc0\031\uffc0\033\uffc0\034\uffc0\035\uffc0\036" +
199    "\uffc0\037\uffc0\040\uffc0\041\uffc0\042\uffc0\043\uffc0\044\uffc0" +
200    "\045\uffc0\047\uffc0\001\002\000\044\002\uffc1\020\uffc1\023" +
201    "\uffc1\030\uffc1\031\uffc1\033\uffc1\034\uffc1\035\uffc1\036\uffc1" +
202    "\037\uffc1\040\uffc1\041\uffc1\042\uffc1\043\uffc1\044\uffc1\045" +
203    "\uffc1\047\uffc1\001\002\000\044\002\uffc3\020\uffc3\023\uffc3" +
204    "\030\uffc3\031\uffc3\033\uffc3\034\uffc3\035\uffc3\036\uffc3\037" +
205    "\uffc3\040\uffc3\041\uffc3\042\uffc3\043\uffc3\044\uffc3\045\uffc3" +
206    "\047\uffc3\001\002\000\044\002\uffc2\020\uffc2\023\uffc2\030" +
207    "\uffc2\031\uffc2\033\uffc2\034\uffc2\035\uffc2\036\uffc2\037\uffc2" +
208    "\040\uffc2\041\uffc2\042\uffc2\043\uffc2\044\uffc2\045\uffc2\047" +
209    "\uffc2\001\002\000\026\034\015\046\105\053\010\054\026" +
210    "\062\017\067\012\071\014\072\016\073\025\074\031\001" +
211    "\002\000\050\002\uffac\005\uffac\007\uffac\020\uffac\023\uffac" +
212    "\030\uffac\031\uffac\033\uffac\034\uffac\035\uffac\036\uffac\037" +
213    "\uffac\040\uffac\041\uffac\042\uffac\043\uffac\044\uffac\045\uffac" +
214    "\047\uffac\001\002\000\006\045\uffaa\047\uffaa\001\002\000" +
215    "\024\034\015\053\010\054\026\062\017\067\012\071\014" +
216    "\072\016\073\025\074\031\001\002\000\024\034\015\053" +
217    "\010\054\026\062\017\067\012\071\014\072\016\073\025" +
218    "\074\031\001\002\000\024\034\015\053\010\054\026\062" +
219    "\017\067\012\071\014\072\016\073\025\074\031\001\002" +
220    "\000\024\034\015\053\010\054\026\062\017\067\012\071" +
221    "\014\072\016\073\025\074\031\001\002\000\044\002\uffc4" +
222    "\020\uffc4\023\uffc4\030\uffc4\031\uffc4\033\uffc4\034\uffc4\035" +
223    "\uffc4\036\uffc4\037\uffc4\040\uffc4\041\uffc4\042\uffc4\043\uffc4" +
224    "\044\uffc4\045\uffc4\047\uffc4\001\002\000\044\002\uffc5\020" +
225    "\uffc5\023\uffc5\030\uffc5\031\uffc5\033\uffc5\034\uffc5\035\uffc5" +
226    "\036\uffc5\037\uffc5\040\uffc5\041\uffc5\042\uffc5\043\uffc5\044" +
227    "\uffc5\045\uffc5\047\uffc5\001\002\000\044\002\uffc6\020\uffc6" +
228    "\023\uffc6\030\uffc6\031\uffc6\033\uffc6\034\uffc6\035\uffc6\036" +
229    "\uffc6\037\uffc6\040\uffc6\041\uffc6\042\uffc6\043\uffc6\044\uffc6" +
230    "\045\uffc6\047\uffc6\001\002\000\044\002\uffc7\020\uffc7\023" +
231    "\uffc7\030\uffc7\031\uffc7\033\uffc7\034\uffc7\035\uffc7\036\uffc7" +
232    "\037\uffc7\040\uffc7\041\uffc7\042\uffc7\043\uffc7\044\uffc7\045" +
233    "\uffc7\047\uffc7\001\002\000\012\033\114\034\113\035\116" +
234    "\036\115\001\002\000\014\033\126\034\127\035\131\036" +
235    "\130\047\140\001\002\000\044\002\uffbf\020\uffbf\023\uffbf" +
236    "\030\uffbf\031\uffbf\033\uffbf\034\uffbf\035\uffbf\036\uffbf\037" +
237    "\uffbf\040\uffbf\041\uffbf\042\uffbf\043\uffbf\044\uffbf\045\uffbf" +
238    "\047\uffbf\001\002\000\050\002\uffb1\005\uffb1\007\uffb1\020" +
239    "\uffb1\023\uffb1\030\uffb1\031\uffb1\033\uffb1\034\uffb1\035\uffb1" +
240    "\036\uffb1\037\uffb1\040\uffb1\041\uffb1\042\uffb1\043\uffb1\044" +
241    "\uffb1\045\uffb1\047\uffb1\001\002\000\006\067\036\071\014" +
242    "\001\002\000\004\047\144\001\002\000\072\002\uffbd\005" +
243    "\uffbd\007\uffbd\010\uffbd\011\uffbd\012\uffbd\013\uffbd\020\uffbd" +
244    "\023\uffbd\026\uffbd\027\uffbd\030\uffbd\031\uffbd\032\uffbd\033" +
245    "\uffbd\034\uffbd\035\uffbd\036\uffbd\037\uffbd\040\uffbd\041\uffbd" +
246    "\042\uffbd\043\uffbd\044\uffbd\045\uffbd\047\uffbd\051\uffbd\056" +
247    "\uffbd\001\002\000\006\005\ufff8\045\040\001\002\000\004" +
248    "\073\150\001\002\000\004\002\001\001\002\000\010\002" +
249    "\ufffc\023\ufffc\055\151\001\002\000\004\073\152\001\002" +
250    "\000\006\002\ufffb\023\ufffb\001\002\000\012\050\303\052" +
251    "\302\067\300\070\276\001\002\000\012\002\000\006\160" +
252    "\020\156\023\000\001\002\000\010\002\uffff\020\156\023" +
253    "\uffff\001\002\000\012\053\265\062\017\067\036\071\014" +
254    "\001\002\000\006\002\ufffd\023\ufffd\001\002\000\030\032" +
255    "\162\034\015\046\163\053\010\054\026\062\017\067\012" +
256    "\071\014\072\016\073\025\074\031\001\002\000\020\002" +
257    "\uffe9\020\uffe9\023\uffe9\030\255\031\257\037\253\040\256" +
258    "\001\002\000\030\032\162\034\015\046\163\053\010\054" +
259    "\026\062\017\067\012\071\014\072\016\073\025\074\031" +
260    "\001\002\000\030\032\162\034\015\046\163\053\010\054" +
261    "\026\062\017\067\012\071\014\072\016\073\025\074\031" +
262    "\001\002\000\050\010\207\011\206\012\213\013\210\030" +
263    "\uffb8\031\uffb8\032\211\033\uffb8\034\uffb8\035\uffb8\036\uffb8" +
264    "\037\uffb8\040\uffb8\041\uffb8\042\uffb8\043\uffb8\044\uffb8\051" +
265    "\214\056\212\001\002\000\022\030\172\031\175\037\167" +
266    "\040\173\041\166\042\171\043\174\044\170\001\002\000" +
267    "\026\034\015\046\105\053\010\054\026\062\017\067\012" +
268    "\071\014\072\016\073\025\074\031\001\002\000\026\034" +
269    "\015\046\105\053\010\054\026\062\017\067\012\071\014" +
270    "\072\016\073\025\074\031\001\002\000\026\034\015\046" +
271    "\105\053\010\054\026\062\017\067\012\071\014\072\016" +
272    "\073\025\074\031\001\002\000\026\034\015\046\105\053" +
273    "\010\054\026\062\017\067\012\071\014\072\016\073\025" +
274    "\074\031\001\002\000\026\034\015\046\105\053\010\054" +
275    "\026\062\017\067\012\071\014\072\016\073\025\074\031" +
276    "\001\002\000\026\034\015\046\105\053\010\054\026\062" +
277    "\017\067\012\071\014\072\016\073\025\074\031\001\002" +
278    "\000\026\034\015\046\105\053\010\054\026\062\017\067" +
279    "\012\071\014\072\016\073\025\074\031\001\002\000\026" +
280    "\034\015\046\105\053\010\054\026\062\017\067\012\071" +
281    "\014\072\016\073\025\074\031\001\002\000\022\002\uffdd" +
282    "\020\uffdd\023\uffdd\030\uffdd\031\uffdd\037\uffdd\040\uffdd\047" +
283    "\uffdd\001\002\000\022\002\uffd8\020\uffd8\023\uffd8\030\uffd8" +
284    "\031\uffd8\037\uffd8\040\uffd8\047\uffd8\001\002\000\022\002" +
285    "\uffdb\020\uffdb\023\uffdb\030\uffdb\031\uffdb\037\uffdb\040\uffdb" +
286    "\047\uffdb\001\002\000\022\002\uffde\020\uffde\023\uffde\030" +
287    "\uffde\031\uffde\037\uffde\040\uffde\047\uffde\001\002\000\022" +
288    "\002\uffd9\020\uffd9\023\uffd9\030\uffd9\031\uffd9\037\uffd9\040" +
289    "\uffd9\047\uffd9\001\002\000\022\002\uffd7\020\uffd7\023\uffd7" +
290    "\030\uffd7\031\uffd7\037\uffd7\040\uffd7\047\uffd7\001\002\000" +
291    "\022\002\uffdc\020\uffdc\023\uffdc\030\uffdc\031\uffdc\037\uffdc" +
292    "\040\uffdc\047\uffdc\001\002\000\022\002\uffda\020\uffda\023" +
293    "\uffda\030\uffda\031\uffda\037\uffda\040\uffda\047\uffda\001\002" +
294    "\000\004\072\250\001\002\000\004\046\245\001\002\000" +
295    "\016\034\015\053\230\054\026\072\016\073\025\074\031" +
296    "\001\002\000\012\010\223\011\222\012\225\013\224\001" +
297    "\002\000\006\032\217\057\220\001\002\000\004\072\216" +
298    "\001\002\000\004\072\215\001\002\000\022\002\uffca\020" +
299    "\uffca\023\uffca\030\uffca\031\uffca\037\uffca\040\uffca\047\uffca" +
300    "\001\002\000\022\002\uffcf\020\uffcf\023\uffcf\030\uffcf\031" +
301    "\uffcf\037\uffcf\040\uffcf\047\uffcf\001\002\000\004\057\221" +
302    "\001\002\000\022\002\uffcc\020\uffcc\023\uffcc\030\uffcc\031" +
303    "\uffcc\037\uffcc\040\uffcc\047\uffcc\001\002\000\022\002\uffcb" +
304    "\020\uffcb\023\uffcb\030\uffcb\031\uffcb\037\uffcb\040\uffcb\047" +
305    "\uffcb\001\002\000\004\072\241\001\002\000\004\046\233" +
306    "\001\002\000\016\034\015\053\230\054\026\072\016\073" +
307    "\025\074\031\001\002\000\004\072\226\001\002\000\022" +
308    "\002\uffcd\020\uffcd\023\uffcd\030\uffcd\031\uffcd\037\uffcd\040" +
309    "\uffcd\047\uffcd\001\002\000\004\030\231\001\002\000\004" +
310    "\072\141\001\002\000\016\034\015\053\230\054\026\072" +
311    "\016\073\025\074\031\001\002\000\022\002\uffd1\020\uffd1" +
312    "\023\uffd1\030\uffd1\031\uffd1\037\uffd1\040\uffd1\047\uffd1\001" +
313    "\002\000\016\034\015\053\230\054\026\072\016\073\025" +
314    "\074\031\001\002\000\006\045\uffaf\047\uffaf\001\002\000" +
315    "\006\045\236\047\237\001\002\000\016\034\015\053\230" +
316    "\054\026\072\016\073\025\074\031\001\002\000\022\002" +
317    "\uffd3\020\uffd3\023\uffd3\030\uffd3\031\uffd3\037\uffd3\040\uffd3" +
318    "\047\uffd3\001\002\000\006\045\uffae\047\uffae\001\002\000" +
319    "\022\002\uffce\020\uffce\023\uffce\030\uffce\031\uffce\037\uffce" +
320    "\040\uffce\047\uffce\001\002\000\004\030\243\001\002\000" +
321    "\016\034\015\053\230\054\026\072\016\073\025\074\031" +
322    "\001\002\000\022\002\uffd2\020\uffd2\023\uffd2\030\uffd2\031" +
323    "\uffd2\037\uffd2\040\uffd2\047\uffd2\001\002\000\016\034\015" +
324    "\053\230\054\026\072\016\073\025\074\031\001\002\000" +
325    "\006\045\236\047\247\001\002\000\022\002\uffd4\020\uffd4" +
326    "\023\uffd4\030\uffd4\031\uffd4\037\uffd4\040\uffd4\047\uffd4\001" +
327    "\002\000\022\002\uffd0\020\uffd0\023\uffd0\030\uffd0\031\uffd0" +
328    "\037\uffd0\040\uffd0\047\uffd0\001\002\000\014\030\255\031" +
329    "\257\037\253\040\256\047\254\001\002\000\034\030\uffc8" +
330    "\031\uffc8\033\126\034\127\035\131\036\130\037\uffc8\040" +
331    "\uffc8\041\uffc8\042\uffc8\043\uffc8\044\uffc8\047\140\001\002" +
332    "\000\030\032\162\034\015\046\163\053\010\054\026\062" +
333    "\017\067\012\071\014\072\016\073\025\074\031\001\002" +
334    "\000\022\002\uffd6\020\uffd6\023\uffd6\030\uffd6\031\uffd6\037" +
335    "\uffd6\040\uffd6\047\uffd6\001\002\000\030\032\162\034\015" +
336    "\046\163\053\010\054\026\062\017\067\012\071\014\072" +
337    "\016\073\025\074\031\001\002\000\030\032\162\034\015" +
338    "\046\163\053\010\054\026\062\017\067\012\071\014\072" +
339    "\016\073\025\074\031\001\002\000\030\032\162\034\015" +
340    "\046\163\053\010\054\026\062\017\067\012\071\014\072" +
341    "\016\073\025\074\031\001\002\000\022\002\uffe1\020\uffe1" +
342    "\023\uffe1\030\255\031\uffe1\037\253\040\256\047\uffe1\001" +
343    "\002\000\016\002\uffdf\020\uffdf\023\uffdf\030\uffdf\031\uffdf" +
344    "\047\uffdf\001\002\000\022\002\uffe2\020\uffe2\023\uffe2\030" +
345    "\uffe2\031\uffe2\037\253\040\256\047\uffe2\001\002\000\016" +
346    "\002\uffe0\020\uffe0\023\uffe0\030\uffe0\031\uffe0\047\uffe0\001" +
347    "\002\000\022\002\uffd5\020\uffd5\023\uffd5\030\uffd5\031\uffd5" +
348    "\037\253\040\256\047\uffd5\001\002\000\004\046\142\001" +
349    "\002\000\014\002\uffe5\023\uffe5\026\274\027\273\045\uffe5" +
350    "\001\002\000\010\002\uffe8\023\uffe8\045\271\001\002\000" +
351    "\010\002\uffe7\023\uffe7\045\uffe7\001\002\000\012\053\265" +
352    "\062\017\067\036\071\014\001\002\000\010\002\uffe6\023" +
353    "\uffe6\045\uffe6\001\002\000\010\002\uffe3\023\uffe3\045\uffe3" +
354    "\001\002\000\010\002\uffe4\023\uffe4\045\uffe4\001\002\000" +
355    "\006\002\ufffe\023\ufffe\001\002\000\016\002\uffee\006\uffee" +
356    "\007\uffee\020\uffee\023\uffee\045\uffee\001\002\000\014\002" +
357    "\ufff2\006\ufff2\020\ufff2\023\ufff2\045\305\001\002\000\016" +
358    "\002\uffef\006\uffef\007\uffef\020\uffef\023\uffef\045\uffef\001" +
359    "\002\000\016\002\uffeb\006\uffeb\007\312\020\uffeb\023\uffeb" +
360    "\045\uffeb\001\002\000\006\067\300\070\276\001\002\000" +
361    "\006\067\300\070\276\001\002\000\014\002\ufff0\006\ufff0" +
362    "\020\ufff0\023\ufff0\045\305\001\002\000\006\067\300\070" +
363    "\276\001\002\000\016\002\uffed\006\uffed\007\307\020\uffed" +
364    "\023\uffed\045\uffed\001\002\000\004\067\310\001\002\000" +
365    "\014\002\uffec\006\uffec\020\uffec\023\uffec\045\uffec\001\002" +
366    "\000\014\002\ufff1\006\ufff1\020\ufff1\023\ufff1\045\305\001" +
367    "\002\000\004\067\313\001\002\000\014\002\uffea\006\uffea" +
368    "\020\uffea\023\uffea\045\uffea\001\002" });
369
370  /** Access to parse-action table. */
371  public short[][] action_table() {return _action_table;}
372
373  /** <code>reduce_goto</code> table. */
374  protected static final short[][] _reduce_table = 
375    unpackFromStrings(new String[] {
376    "\000\311\000\006\003\004\015\003\001\001\000\004\016" +
377    "\153\001\001\000\002\001\001\000\020\004\026\006\023" +
378    "\007\020\010\012\013\010\023\017\031\022\001\001\000" +
379    "\020\004\026\006\023\007\020\010\012\013\010\023\144" +
380    "\031\022\001\001\000\002\001\001\000\002\001\001\000" +
381    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
382    "\001\001\000\002\001\001\000\010\032\051\033\046\035" +
383    "\050\001\001\000\002\001\001\000\002\001\001\000\020" +
384    "\004\026\006\023\007\020\010\012\013\010\023\036\031" +
385    "\022\001\001\000\004\007\034\001\001\000\002\001\001" +
386    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
387    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
388    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
389    "\001\000\002\001\001\000\016\004\040\006\023\007\020" +
390    "\010\012\013\010\031\022\001\001\000\002\001\001\000" +
391    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
392    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
393    "\001\000\006\032\057\033\056\001\001\000\004\033\053" +
394    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
395    "\001\000\002\001\001\000\002\001\001\000\004\033\061" +
396    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
397    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
398    "\000\002\001\001\000\002\001\001\000\004\034\071\001" +
399    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
400    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
401    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
402    "\001\001\000\024\004\110\005\105\006\023\007\020\010" +
403    "\012\011\106\013\010\014\107\031\022\001\001\000\020" +
404    "\004\135\006\023\007\020\010\012\011\136\013\010\031" +
405    "\022\001\001\000\002\001\001\000\002\001\001\000\002" +
406    "\001\001\000\002\001\001\000\002\001\001\000\016\004" +
407    "\121\006\023\007\020\010\012\013\010\031\022\001\001" +
408    "\000\016\004\120\006\023\007\020\010\012\013\010\031" +
409    "\022\001\001\000\016\004\117\006\023\007\020\010\012" +
410    "\013\010\031\022\001\001\000\016\004\116\006\023\007" +
411    "\020\010\012\013\010\031\022\001\001\000\002\001\001" +
412    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
413    "\022\004\110\005\124\006\023\007\020\010\012\011\106" +
414    "\013\010\031\022\001\001\000\002\001\001\000\002\001" +
415    "\001\000\016\004\134\006\023\007\020\010\012\013\010" +
416    "\031\022\001\001\000\016\004\133\006\023\007\020\010" +
417    "\012\013\010\031\022\001\001\000\016\004\132\006\023" +
418    "\007\020\010\012\013\010\031\022\001\001\000\016\004" +
419    "\131\006\023\007\020\010\012\013\010\031\022\001\001" +
420    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
421    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
422    "\001\001\000\002\001\001\000\004\007\142\001\001\000" +
423    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
424    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
425    "\001\000\002\001\001\000\006\024\276\030\300\001\001" +
426    "\000\006\017\154\020\156\001\001\000\004\020\274\001" +
427    "\001\000\014\007\020\010\265\026\266\027\267\031\022" +
428    "\001\001\000\002\001\001\000\024\004\110\005\164\006" +
429    "\023\007\020\010\163\011\106\012\160\013\010\031\022" +
430    "\001\001\000\002\001\001\000\024\004\110\005\164\006" +
431    "\023\007\020\010\163\011\106\012\263\013\010\031\022" +
432    "\001\001\000\024\004\110\005\164\006\023\007\020\010" +
433    "\163\011\251\012\250\013\010\031\022\001\001\000\002" +
434    "\001\001\000\002\001\001\000\022\004\110\005\204\006" +
435    "\023\007\020\010\012\011\106\013\010\031\022\001\001" +
436    "\000\022\004\110\005\203\006\023\007\020\010\012\011" +
437    "\106\013\010\031\022\001\001\000\022\004\110\005\202" +
438    "\006\023\007\020\010\012\011\106\013\010\031\022\001" +
439    "\001\000\022\004\110\005\201\006\023\007\020\010\012" +
440    "\011\106\013\010\031\022\001\001\000\022\004\110\005" +
441    "\200\006\023\007\020\010\012\011\106\013\010\031\022" +
442    "\001\001\000\022\004\110\005\177\006\023\007\020\010" +
443    "\012\011\106\013\010\031\022\001\001\000\022\004\110" +
444    "\005\176\006\023\007\020\010\012\011\106\013\010\031" +
445    "\022\001\001\000\022\004\110\005\175\006\023\007\020" +
446    "\010\012\011\106\013\010\031\022\001\001\000\002\001" +
447    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
448    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
449    "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
450    "\006\241\001\001\000\002\001\001\000\002\001\001\000" +
451    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
452    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
453    "\001\000\002\001\001\000\002\001\001\000\004\006\226" +
454    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
455    "\001\000\002\001\001\000\004\006\231\001\001\000\002" +
456    "\001\001\000\006\006\233\025\234\001\001\000\002\001" +
457    "\001\000\002\001\001\000\004\006\237\001\001\000\002" +
458    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
459    "\001\000\004\006\243\001\001\000\002\001\001\000\006" +
460    "\006\233\025\245\001\001\000\002\001\001\000\002\001" +
461    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
462    "\000\024\004\110\005\164\006\023\007\020\010\163\011" +
463    "\106\012\262\013\010\031\022\001\001\000\002\001\001" +
464    "\000\024\004\110\005\164\006\023\007\020\010\163\011" +
465    "\106\012\261\013\010\031\022\001\001\000\024\004\110" +
466    "\005\164\006\023\007\020\010\163\011\106\012\260\013" +
467    "\010\031\022\001\001\000\024\004\110\005\164\006\023" +
468    "\007\020\010\163\011\106\012\257\013\010\031\022\001" +
469    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
470    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
471    "\002\001\001\000\002\001\001\000\002\001\001\000\012" +
472    "\007\020\010\265\027\271\031\022\001\001\000\002\001" +
473    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
474    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
475    "\002\001\001\000\006\024\310\030\300\001\001\000\006" +
476    "\024\303\030\300\001\001\000\002\001\001\000\004\030" +
477    "\305\001\001\000\002\001\001\000\002\001\001\000\002" +
478    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
479    "\001" });
480
481  /** Access to <code>reduce_goto</code> table. */
482  public short[][] reduce_table() {return _reduce_table;}
483
484  /** Instance of action encapsulation class. */
485  protected CUP$parser$actions action_obj;
486
487  /** Action encapsulation object initializer. */
488  protected void init_actions()
489    {
490      action_obj = new CUP$parser$actions(this);
491    }
492
493  /** Invoke a user supplied parse action. */
494  public java_cup.runtime.Symbol do_action(
495    int                        act_num,
496    java_cup.runtime.lr_parser parser,
497    java.util.Stack            stack,
498    int                        top)
499    throws java.lang.Exception
500  {
501    /* call code in generated class */
502    return action_obj.CUP$parser$do_action(act_num, parser, stack, top);
503  }
504
505  /** Indicates start state. */
506  public int start_state() {return 0;}
507  /** Indicates start production. */
508  public int start_production() {return 0;}
509
510  /** <code>EOF</code> Symbol index. */
511  public int EOF_sym() {return 0;}
512
513  /** <code>error</code> Symbol index. */
514  public int error_sym() {return 1;}
515
516
517
518
519 public void report_error(String message, Object info) {
520     // do nothing
521 }
522
523 public void report_fatal_error(String message, Object info) throws QueryParseException {
524     if (info instanceof Symbol) parseFailed(message, (Symbol)info);
525     else parseFailed(message, null);
526 }
527
528 public void syntax_error(Symbol cur_token) {
529     // do nothing
530 }
531
532 public void unrecovered_syntax_error(Symbol cur_token) throws QueryParseException {
533     parseFailed("Syntax error", cur_token);
534 }
535
536 public void parseFailed(String message, Symbol token) throws QueryParseException {
537     done_parsing();
538     if (token != null) {
539         StringBuffer buf = new StringBuffer(message);
540         message = buf.append(": Invalid token <").append(token.value).append("> at offset ").append(token.right).toString();
541     }
542     throw new QueryParseException(message);
543 }
544
545
546}
547
548/** Cup generated class to encapsulate user supplied action code.*/
549class CUP$parser$actions {
550  private final parser parser;
551
552  /** Constructor */
553  CUP$parser$actions(parser parser) {
554    this.parser = parser;
555  }
556
557  /** Method with the actual generated action code. */
558  public final java_cup.runtime.Symbol CUP$parser$do_action(
559    int                        CUP$parser$act_num,
560    java_cup.runtime.lr_parser CUP$parser$parser,
561    java.util.Stack            CUP$parser$stack,
562    int                        CUP$parser$top)
563    throws java.lang.Exception
564    {
565      /* Symbol object for return from actions */
566      java_cup.runtime.Symbol CUP$parser$result;
567
568      /* select the action based on the action number */
569      switch (CUP$parser$act_num)
570        {
571          /*. . . . . . . . . . . . . . . . . . . .*/
572          case 100: // es_hint ::= LHINT_ES RHINT 
573            {
574              EsHint RESULT = null;
575                 RESULT = null; 
576              CUP$parser$result = new java_cup.runtime.Symbol(23/*es_hint*/, ((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);
577            }
578          return CUP$parser$result;
579
580          /*. . . . . . . . . . . . . . . . . . . .*/
581          case 99: // es_hint ::= LHINT_ES es_index es_analyzer es_operator RHINT 
582            {
583              EsHint RESULT = null;
584                int indexleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
585                int indexright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
586                EsIdentifierList index = (EsIdentifierList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
587                int analyzerleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
588                int analyzerright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
589                String analyzer = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
590                int operatorleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
591                int operatorright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
592                String operator = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
593                 RESULT = new EsHint(index, analyzer, operator); 
594              CUP$parser$result = new java_cup.runtime.Symbol(23/*es_hint*/, ((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);
595            }
596          return CUP$parser$result;
597
598          /*. . . . . . . . . . . . . . . . . . . .*/
599          case 98: // es_hint ::= LHINT_ES es_analyzer es_operator RHINT 
600            {
601              EsHint RESULT = null;
602                int analyzerleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
603                int analyzerright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
604                String analyzer = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
605                int operatorleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
606                int operatorright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
607                String operator = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
608                 RESULT = new EsHint(null, analyzer, operator); 
609              CUP$parser$result = new java_cup.runtime.Symbol(23/*es_hint*/, ((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);
610            }
611          return CUP$parser$result;
612
613          /*. . . . . . . . . . . . . . . . . . . .*/
614          case 97: // es_hint ::= LHINT_ES es_index es_operator RHINT 
615            {
616              EsHint RESULT = null;
617                int indexleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
618                int indexright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
619                EsIdentifierList index = (EsIdentifierList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
620                int operatorleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
621                int operatorright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
622                String operator = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
623                 RESULT = new EsHint(index, null, operator); 
624              CUP$parser$result = new java_cup.runtime.Symbol(23/*es_hint*/, ((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);
625            }
626          return CUP$parser$result;
627
628          /*. . . . . . . . . . . . . . . . . . . .*/
629          case 96: // es_hint ::= LHINT_ES es_index es_analyzer RHINT 
630            {
631              EsHint RESULT = null;
632                int indexleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
633                int indexright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
634                EsIdentifierList index = (EsIdentifierList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
635                int analyzerleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
636                int analyzerright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
637                String analyzer = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
638                 RESULT = new EsHint(index, analyzer, null); 
639              CUP$parser$result = new java_cup.runtime.Symbol(23/*es_hint*/, ((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);
640            }
641          return CUP$parser$result;
642
643          /*. . . . . . . . . . . . . . . . . . . .*/
644          case 95: // es_hint ::= LHINT_ES es_operator RHINT 
645            {
646              EsHint RESULT = null;
647                int operatorleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
648                int operatorright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
649                String operator = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
650                 RESULT = new EsHint(null, null, operator); 
651              CUP$parser$result = new java_cup.runtime.Symbol(23/*es_hint*/, ((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);
652            }
653          return CUP$parser$result;
654
655          /*. . . . . . . . . . . . . . . . . . . .*/
656          case 94: // es_hint ::= LHINT_ES es_analyzer RHINT 
657            {
658              EsHint RESULT = null;
659                int analyzerleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
660                int analyzerright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
661                String analyzer = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
662                 RESULT = new EsHint(null, analyzer, null); 
663              CUP$parser$result = new java_cup.runtime.Symbol(23/*es_hint*/, ((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);
664            }
665          return CUP$parser$result;
666
667          /*. . . . . . . . . . . . . . . . . . . .*/
668          case 93: // es_hint ::= LHINT_ES es_index RHINT 
669            {
670              EsHint RESULT = null;
671                int indexleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
672                int indexright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
673                EsIdentifierList index = (EsIdentifierList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
674                 RESULT = new EsHint(index, null, null); 
675              CUP$parser$result = new java_cup.runtime.Symbol(23/*es_hint*/, ((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);
676            }
677          return CUP$parser$result;
678
679          /*. . . . . . . . . . . . . . . . . . . .*/
680          case 92: // es_operator ::= OPERATOR LPARA ES_IDENTIFIER RPARA 
681            {
682              String RESULT = null;
683                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
684                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
685                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
686                 RESULT = v; 
687              CUP$parser$result = new java_cup.runtime.Symbol(25/*es_operator*/, ((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);
688            }
689          return CUP$parser$result;
690
691          /*. . . . . . . . . . . . . . . . . . . .*/
692          case 91: // es_analyzer ::= ANALYZER LPARA ES_IDENTIFIER RPARA 
693            {
694              String RESULT = null;
695                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
696                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
697                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
698                 RESULT = v; 
699              CUP$parser$result = new java_cup.runtime.Symbol(24/*es_analyzer*/, ((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);
700            }
701          return CUP$parser$result;
702
703          /*. . . . . . . . . . . . . . . . . . . .*/
704          case 90: // es_index ::= INDEX LPARA es_identifier_list RPARA 
705            {
706              EsIdentifierList RESULT = null;
707                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
708                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
709                EsIdentifierList v = (EsIdentifierList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
710                 RESULT = v; 
711              CUP$parser$result = new java_cup.runtime.Symbol(27/*es_index*/, ((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);
712            }
713          return CUP$parser$result;
714
715          /*. . . . . . . . . . . . . . . . . . . .*/
716          case 89: // es_identifier_list ::= es_identifier_list COMMA ES_IDENTIFIER 
717            {
718              EsIdentifierList RESULT = null;
719                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
720                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
721                EsIdentifierList l = (EsIdentifierList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
722                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
723                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
724                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
725                 l.add(v); RESULT = l; 
726              CUP$parser$result = new java_cup.runtime.Symbol(26/*es_identifier_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);
727            }
728          return CUP$parser$result;
729
730          /*. . . . . . . . . . . . . . . . . . . .*/
731          case 88: // es_identifier_list ::= ES_IDENTIFIER 
732            {
733              EsIdentifierList RESULT = null;
734                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
735                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
736                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
737                 RESULT = new EsIdentifierList(); RESULT.add(v); 
738              CUP$parser$result = new java_cup.runtime.Symbol(26/*es_identifier_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);
739            }
740          return CUP$parser$result;
741
742          /*. . . . . . . . . . . . . . . . . . . .*/
743          case 87: // function_args ::= function_args COMMA predicate_operand 
744            {
745              OperandList RESULT = null;
746                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
747                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
748                OperandList l = (OperandList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
749                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
750                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
751                Operand v = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
752                 l.add(v); RESULT = l; 
753              CUP$parser$result = new java_cup.runtime.Symbol(10/*function_args*/, ((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);
754            }
755          return CUP$parser$result;
756
757          /*. . . . . . . . . . . . . . . . . . . .*/
758          case 86: // function_args ::= predicate_operand 
759            {
760              OperandList RESULT = null;
761                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
762                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
763                Operand v = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
764                 RESULT = new OperandList(); RESULT.add(v); 
765              CUP$parser$result = new java_cup.runtime.Symbol(10/*function_args*/, ((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);
766            }
767          return CUP$parser$result;
768
769          /*. . . . . . . . . . . . . . . . . . . .*/
770          case 85: // function ::= IDENTIFIER LPARA function_args RPARA 
771            {
772              Function RESULT = null;
773                int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
774                int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
775                String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
776                int argsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
777                int argsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
778                OperandList args = (OperandList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
779                 RESULT = new Function(name, args); 
780              CUP$parser$result = new java_cup.runtime.Symbol(9/*function*/, ((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);
781            }
782          return CUP$parser$result;
783
784          /*. . . . . . . . . . . . . . . . . . . .*/
785          case 84: // function ::= IDENTIFIER LPARA RPARA 
786            {
787              Function RESULT = null;
788                int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
789                int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
790                String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
791                 RESULT = new Function(name);
792              CUP$parser$result = new java_cup.runtime.Symbol(9/*function*/, ((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);
793            }
794          return CUP$parser$result;
795
796          /*. . . . . . . . . . . . . . . . . . . .*/
797          case 83: // literal_list ::= literal_list COMMA literal 
798            {
799              LiteralList RESULT = null;
800                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
801                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
802                LiteralList l = (LiteralList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
803                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
804                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
805                Literal v = (Literal)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
806                 l.add(v); RESULT = l; 
807              CUP$parser$result = new java_cup.runtime.Symbol(19/*literal_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);
808            }
809          return CUP$parser$result;
810
811          /*. . . . . . . . . . . . . . . . . . . .*/
812          case 82: // literal_list ::= literal 
813            {
814              LiteralList RESULT = null;
815                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
816                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
817                Literal v = (Literal)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
818                 RESULT = new LiteralList(); RESULT.add(v); 
819              CUP$parser$result = new java_cup.runtime.Symbol(19/*literal_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);
820            }
821          return CUP$parser$result;
822
823          /*. . . . . . . . . . . . . . . . . . . .*/
824          case 81: // literal ::= TIMESTAMP STRING 
825            {
826              Literal RESULT = null;
827                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
828                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
829                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
830                 RESULT = new DateLiteral(v, false); 
831              CUP$parser$result = new java_cup.runtime.Symbol(4/*literal*/, ((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);
832            }
833          return CUP$parser$result;
834
835          /*. . . . . . . . . . . . . . . . . . . .*/
836          case 80: // literal ::= DATE STRING 
837            {
838              Literal RESULT = null;
839                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
840                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
841                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
842                 RESULT = new DateLiteral(v, true); 
843              CUP$parser$result = new java_cup.runtime.Symbol(4/*literal*/, ((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);
844            }
845          return CUP$parser$result;
846
847          /*. . . . . . . . . . . . . . . . . . . .*/
848          case 79: // literal ::= SUB DOUBLE 
849            {
850              Literal RESULT = null;
851                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
852                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
853                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
854                 RESULT = new DoubleLiteral('-'+v); 
855              CUP$parser$result = new java_cup.runtime.Symbol(4/*literal*/, ((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);
856            }
857          return CUP$parser$result;
858
859          /*. . . . . . . . . . . . . . . . . . . .*/
860          case 78: // literal ::= DOUBLE 
861            {
862              Literal RESULT = null;
863                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
864                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
865                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
866                 RESULT = new DoubleLiteral(v); 
867              CUP$parser$result = new java_cup.runtime.Symbol(4/*literal*/, ((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);
868            }
869          return CUP$parser$result;
870
871          /*. . . . . . . . . . . . . . . . . . . .*/
872          case 77: // literal ::= SUB INTEGER 
873            {
874              Literal RESULT = null;
875                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
876                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
877                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
878                 RESULT = new IntegerLiteral('-'+v); 
879              CUP$parser$result = new java_cup.runtime.Symbol(4/*literal*/, ((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);
880            }
881          return CUP$parser$result;
882
883          /*. . . . . . . . . . . . . . . . . . . .*/
884          case 76: // literal ::= INTEGER 
885            {
886              Literal RESULT = null;
887                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
888                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
889                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
890                 RESULT = new IntegerLiteral(v); 
891              CUP$parser$result = new java_cup.runtime.Symbol(4/*literal*/, ((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);
892            }
893          return CUP$parser$result;
894
895          /*. . . . . . . . . . . . . . . . . . . .*/
896          case 75: // literal ::= STRING 
897            {
898              Literal RESULT = null;
899                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
900                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
901                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
902                 RESULT = new StringLiteral(v); 
903              CUP$parser$result = new java_cup.runtime.Symbol(4/*literal*/, ((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);
904            }
905          return CUP$parser$result;
906
907          /*. . . . . . . . . . . . . . . . . . . .*/
908          case 74: // operand ::= function 
909            {
910              Operand RESULT = null;
911                int fleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
912                int fright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
913                Function f = (Function)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
914                 RESULT = f; 
915              CUP$parser$result = new java_cup.runtime.Symbol(2/*operand*/, ((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);
916            }
917          return CUP$parser$result;
918
919          /*. . . . . . . . . . . . . . . . . . . .*/
920          case 73: // operand ::= reference 
921            {
922              Operand RESULT = null;
923                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
924                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
925                Reference r = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
926                 RESULT = r; 
927              CUP$parser$result = new java_cup.runtime.Symbol(2/*operand*/, ((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);
928            }
929          return CUP$parser$result;
930
931          /*. . . . . . . . . . . . . . . . . . . .*/
932          case 72: // operand ::= literal 
933            {
934              Operand RESULT = null;
935                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
936                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
937                Literal v = (Literal)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
938                 RESULT = v; 
939              CUP$parser$result = new java_cup.runtime.Symbol(2/*operand*/, ((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);
940            }
941          return CUP$parser$result;
942
943          /*. . . . . . . . . . . . . . . . . . . .*/
944          case 71: // simple_reference ::= PATH_IDENTIFIER 
945            {
946              Reference RESULT = null;
947                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
948                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
949                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
950                 RESULT = new Reference(v); 
951              CUP$parser$result = new java_cup.runtime.Symbol(5/*simple_reference*/, ((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);
952            }
953          return CUP$parser$result;
954
955          /*. . . . . . . . . . . . . . . . . . . .*/
956          case 70: // simple_reference ::= IDENTIFIER 
957            {
958              Reference RESULT = null;
959                int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
960                int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
961                String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
962                 RESULT = new Reference(v); 
963              CUP$parser$result = new java_cup.runtime.Symbol(5/*simple_reference*/, ((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);
964            }
965          return CUP$parser$result;
966
967          /*. . . . . . . . . . . . . . . . . . . .*/
968          case 69: // reference ::= es_hint simple_reference 
969            {
970              Reference RESULT = null;
971                int hintleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
972                int hintright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
973                EsHint hint = (EsHint)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
974                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
975                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
976                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
977                 RESULT = new Reference(ref, hint); 
978              CUP$parser$result = new java_cup.runtime.Symbol(6/*reference*/, ((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);
979            }
980          return CUP$parser$result;
981
982          /*. . . . . . . . . . . . . . . . . . . .*/
983          case 68: // reference ::= DATE LPARA simple_reference RPARA 
984            {
985              Reference RESULT = null;
986                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
987                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
988                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
989                 RESULT = new Reference(ref, "DATE"); 
990              CUP$parser$result = new java_cup.runtime.Symbol(6/*reference*/, ((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);
991            }
992          return CUP$parser$result;
993
994          /*. . . . . . . . . . . . . . . . . . . .*/
995          case 67: // reference ::= simple_reference 
996            {
997              Reference RESULT = null;
998                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
999                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1000                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1001                 RESULT = ref; 
1002              CUP$parser$result = new java_cup.runtime.Symbol(6/*reference*/, ((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);
1003            }
1004          return CUP$parser$result;
1005
1006          /*. . . . . . . . . . . . . . . . . . . .*/
1007          case 66: // expression ::= LPARA expression RPARA 
1008            {
1009              Expression RESULT = null;
1010                int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1011                int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1012                Expression e = (Expression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1013                 RESULT = e; 
1014              CUP$parser$result = new java_cup.runtime.Symbol(7/*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);
1015            }
1016          return CUP$parser$result;
1017
1018          /*. . . . . . . . . . . . . . . . . . . .*/
1019          case 65: // expression ::= operand DIV operand 
1020            {
1021              Expression RESULT = null;
1022                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1023                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1024                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1025                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1026                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1027                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1028                 RESULT = new Expression(l, Operator.DIV, r); 
1029              CUP$parser$result = new java_cup.runtime.Symbol(7/*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);
1030            }
1031          return CUP$parser$result;
1032
1033          /*. . . . . . . . . . . . . . . . . . . .*/
1034          case 64: // expression ::= operand MUL operand 
1035            {
1036              Expression RESULT = null;
1037                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1038                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1039                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1040                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1041                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1042                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1043                 RESULT = new Expression(l, Operator.MUL, r); 
1044              CUP$parser$result = new java_cup.runtime.Symbol(7/*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);
1045            }
1046          return CUP$parser$result;
1047
1048          /*. . . . . . . . . . . . . . . . . . . .*/
1049          case 63: // expression ::= operand SUB operand 
1050            {
1051              Expression RESULT = null;
1052                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1053                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1054                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1055                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1056                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1057                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1058                 RESULT = new Expression(l, Operator.SUB, r); 
1059              CUP$parser$result = new java_cup.runtime.Symbol(7/*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);
1060            }
1061          return CUP$parser$result;
1062
1063          /*. . . . . . . . . . . . . . . . . . . .*/
1064          case 62: // expression ::= operand SUM operand 
1065            {
1066              Expression RESULT = null;
1067                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1068                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1069                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1070                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1071                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1072                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1073                 RESULT = new Expression(l, Operator.SUM, r); 
1074              CUP$parser$result = new java_cup.runtime.Symbol(7/*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);
1075            }
1076          return CUP$parser$result;
1077
1078          /*. . . . . . . . . . . . . . . . . . . .*/
1079          case 61: // expression ::= expression DIV operand 
1080            {
1081              Expression RESULT = null;
1082                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1083                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1084                Expression l = (Expression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1085                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1086                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1087                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1088                 RESULT = new Expression(l, Operator.DIV, r); 
1089              CUP$parser$result = new java_cup.runtime.Symbol(7/*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);
1090            }
1091          return CUP$parser$result;
1092
1093          /*. . . . . . . . . . . . . . . . . . . .*/
1094          case 60: // expression ::= expression MUL operand 
1095            {
1096              Expression RESULT = null;
1097                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1098                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1099                Expression l = (Expression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1100                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1101                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1102                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1103                 RESULT = new Expression(l, Operator.MUL, r); 
1104              CUP$parser$result = new java_cup.runtime.Symbol(7/*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);
1105            }
1106          return CUP$parser$result;
1107
1108          /*. . . . . . . . . . . . . . . . . . . .*/
1109          case 59: // expression ::= expression SUB operand 
1110            {
1111              Expression RESULT = null;
1112                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1113                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1114                Expression l = (Expression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1115                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1116                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1117                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1118                 RESULT = new Expression(l, Operator.SUB, r); 
1119              CUP$parser$result = new java_cup.runtime.Symbol(7/*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);
1120            }
1121          return CUP$parser$result;
1122
1123          /*. . . . . . . . . . . . . . . . . . . .*/
1124          case 58: // expression ::= expression SUM operand 
1125            {
1126              Expression RESULT = null;
1127                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1128                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1129                Expression l = (Expression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1130                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1131                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1132                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1133                 RESULT = new Expression(l, Operator.SUM, r); 
1134              CUP$parser$result = new java_cup.runtime.Symbol(7/*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);
1135            }
1136          return CUP$parser$result;
1137
1138          /*. . . . . . . . . . . . . . . . . . . .*/
1139          case 57: // predicate_operand ::= expression 
1140            {
1141              Operand RESULT = null;
1142                int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1143                int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1144                Expression e = (Expression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1145                 RESULT = e; 
1146              CUP$parser$result = new java_cup.runtime.Symbol(3/*predicate_operand*/, ((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);
1147            }
1148          return CUP$parser$result;
1149
1150          /*. . . . . . . . . . . . . . . . . . . .*/
1151          case 56: // predicate_operand ::= operand 
1152            {
1153              Operand RESULT = null;
1154                int oleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1155                int oright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1156                Operand o = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1157                 RESULT = o; 
1158              CUP$parser$result = new java_cup.runtime.Symbol(3/*predicate_operand*/, ((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);
1159            }
1160          return CUP$parser$result;
1161
1162          /*. . . . . . . . . . . . . . . . . . . .*/
1163          case 55: // predicate ::= reference STARTSWITH STRING 
1164            {
1165              Predicate RESULT = null;
1166                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1167                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1168                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1169                int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1170                int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1171                String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1172                 RESULT = new Predicate(ref, Operator.STARTSWITH, new StringLiteral(s)); 
1173              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1174            }
1175          return CUP$parser$result;
1176
1177          /*. . . . . . . . . . . . . . . . . . . .*/
1178          case 54: // predicate ::= reference IS NOT NULL 
1179            {
1180              Predicate RESULT = null;
1181                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
1182                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
1183                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1184                 RESULT = new Predicate(ref, Operator.ISNOTNULL, null); 
1185              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1186            }
1187          return CUP$parser$result;
1188
1189          /*. . . . . . . . . . . . . . . . . . . .*/
1190          case 53: // predicate ::= reference IS NULL 
1191            {
1192              Predicate RESULT = null;
1193                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1194                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1195                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1196                 RESULT = new Predicate(ref, Operator.ISNULL, null); 
1197              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1198            }
1199          return CUP$parser$result;
1200
1201          /*. . . . . . . . . . . . . . . . . . . .*/
1202          case 52: // predicate ::= reference NOT ILIKE STRING 
1203            {
1204              Predicate RESULT = null;
1205                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
1206                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
1207                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1208                int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1209                int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1210                String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1211                 RESULT = new Predicate(ref, Operator.NOTILIKE, new StringLiteral(s)); 
1212              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1213            }
1214          return CUP$parser$result;
1215
1216          /*. . . . . . . . . . . . . . . . . . . .*/
1217          case 51: // predicate ::= reference NOT LIKE STRING 
1218            {
1219              Predicate RESULT = null;
1220                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
1221                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
1222                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1223                int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1224                int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1225                String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1226                 RESULT = new Predicate(ref, Operator.NOTLIKE, new StringLiteral(s)); 
1227              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1228            }
1229          return CUP$parser$result;
1230
1231          /*. . . . . . . . . . . . . . . . . . . .*/
1232          case 50: // predicate ::= reference ILIKE STRING 
1233            {
1234              Predicate RESULT = null;
1235                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1236                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1237                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1238                int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1239                int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1240                String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1241                 RESULT = new Predicate(ref, Operator.ILIKE, new StringLiteral(s)); 
1242              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1243            }
1244          return CUP$parser$result;
1245
1246          /*. . . . . . . . . . . . . . . . . . . .*/
1247          case 49: // predicate ::= reference LIKE STRING 
1248            {
1249              Predicate RESULT = null;
1250                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1251                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1252                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1253                int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1254                int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1255                String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1256                 RESULT = new Predicate(ref, Operator.LIKE, new StringLiteral(s)); 
1257              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1258            }
1259          return CUP$parser$result;
1260
1261          /*. . . . . . . . . . . . . . . . . . . .*/
1262          case 48: // predicate ::= reference NOT BETWEEN literal AND literal 
1263            {
1264              Predicate RESULT = null;
1265                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
1266                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
1267                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
1268                int minleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1269                int minright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1270                Literal min = (Literal)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1271                int maxleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1272                int maxright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1273                Literal max = (Literal)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1274                
1275                LiteralList range = new LiteralList();
1276                range.add(min); range.add(max);
1277                RESULT = new Predicate(ref, Operator.NOTBETWEEN, range);
1278                
1279              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1280            }
1281          return CUP$parser$result;
1282
1283          /*. . . . . . . . . . . . . . . . . . . .*/
1284          case 47: // predicate ::= reference BETWEEN literal AND literal 
1285            {
1286              Predicate RESULT = null;
1287                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
1288                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
1289                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1290                int minleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1291                int minright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1292                Literal min = (Literal)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1293                int maxleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1294                int maxright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1295                Literal max = (Literal)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1296                
1297                LiteralList range = new LiteralList();
1298                range.add(min); range.add(max);
1299                RESULT = new Predicate(ref, Operator.BETWEEN, range);
1300                
1301              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1302            }
1303          return CUP$parser$result;
1304
1305          /*. . . . . . . . . . . . . . . . . . . .*/
1306          case 46: // predicate ::= reference NOT IN LPARA literal_list RPARA 
1307            {
1308              Predicate RESULT = null;
1309                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
1310                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
1311                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
1312                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1313                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1314                LiteralList list = (LiteralList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1315                 RESULT = new Predicate(ref, Operator.NOTIN, list); 
1316              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1317            }
1318          return CUP$parser$result;
1319
1320          /*. . . . . . . . . . . . . . . . . . . .*/
1321          case 45: // predicate ::= reference IN LPARA literal_list RPARA 
1322            {
1323              Predicate RESULT = null;
1324                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
1325                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
1326                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1327                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1328                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1329                LiteralList list = (LiteralList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1330                 RESULT = new Predicate(ref, Operator.IN, list); 
1331              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1332            }
1333          return CUP$parser$result;
1334
1335          /*. . . . . . . . . . . . . . . . . . . .*/
1336          case 44: // predicate ::= NOT predicate 
1337            {
1338              Predicate RESULT = null;
1339                int pleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1340                int pright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1341                Predicate p = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1342                 RESULT = new Predicate(p, Operator.NOT, null); 
1343              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1344            }
1345          return CUP$parser$result;
1346
1347          /*. . . . . . . . . . . . . . . . . . . .*/
1348          case 43: // predicate ::= LPARA predicate RPARA 
1349            {
1350              Predicate RESULT = null;
1351                int pleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1352                int pright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1353                Predicate p = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1354                 RESULT = p; 
1355              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1356            }
1357          return CUP$parser$result;
1358
1359          /*. . . . . . . . . . . . . . . . . . . .*/
1360          case 42: // predicate ::= predicate_operand GTEQ predicate_operand 
1361            {
1362              Predicate RESULT = null;
1363                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1364                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1365                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1366                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1367                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1368                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1369                 RESULT = new Predicate(l, Operator.GTEQ, r); 
1370              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1371            }
1372          return CUP$parser$result;
1373
1374          /*. . . . . . . . . . . . . . . . . . . .*/
1375          case 41: // predicate ::= predicate_operand LTEQ predicate_operand 
1376            {
1377              Predicate RESULT = null;
1378                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1379                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1380                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1381                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1382                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1383                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1384                 RESULT = new Predicate(l, Operator.LTEQ, r); 
1385              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1386            }
1387          return CUP$parser$result;
1388
1389          /*. . . . . . . . . . . . . . . . . . . .*/
1390          case 40: // predicate ::= predicate_operand GT predicate_operand 
1391            {
1392              Predicate RESULT = null;
1393                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1394                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1395                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1396                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1397                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1398                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1399                 RESULT = new Predicate(l, Operator.GT, r); 
1400              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1401            }
1402          return CUP$parser$result;
1403
1404          /*. . . . . . . . . . . . . . . . . . . .*/
1405          case 39: // predicate ::= predicate_operand LT predicate_operand 
1406            {
1407              Predicate RESULT = null;
1408                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1409                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1410                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1411                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1412                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1413                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1414                 RESULT = new Predicate(l, Operator.LT, r); 
1415              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1416            }
1417          return CUP$parser$result;
1418
1419          /*. . . . . . . . . . . . . . . . . . . .*/
1420          case 38: // predicate ::= predicate_operand NOTEQ predicate_operand 
1421            {
1422              Predicate RESULT = null;
1423                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1424                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1425                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1426                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1427                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1428                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1429                 RESULT = new Predicate(l, Operator.NOTEQ, r); 
1430              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1431            }
1432          return CUP$parser$result;
1433
1434          /*. . . . . . . . . . . . . . . . . . . .*/
1435          case 37: // predicate ::= predicate_operand EQ predicate_operand 
1436            {
1437              Predicate RESULT = null;
1438                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1439                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1440                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1441                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1442                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1443                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1444                 RESULT = new Predicate(l, Operator.EQ, r); 
1445              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1446            }
1447          return CUP$parser$result;
1448
1449          /*. . . . . . . . . . . . . . . . . . . .*/
1450          case 36: // predicate ::= predicate_operand OR predicate_operand 
1451            {
1452              Predicate RESULT = null;
1453                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1454                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1455                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1456                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1457                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1458                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1459                 RESULT = new Predicate(l, Operator.OR, r); 
1460              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1461            }
1462          return CUP$parser$result;
1463
1464          /*. . . . . . . . . . . . . . . . . . . .*/
1465          case 35: // predicate ::= predicate_operand AND predicate_operand 
1466            {
1467              Predicate RESULT = null;
1468                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1469                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1470                Operand l = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1471                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1472                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1473                Operand r = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1474                 RESULT = new Predicate(l, Operator.AND, r); 
1475              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1476            }
1477          return CUP$parser$result;
1478
1479          /*. . . . . . . . . . . . . . . . . . . .*/
1480          case 34: // predicate ::= predicate NOTEQ predicate 
1481            {
1482              Predicate RESULT = null;
1483                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1484                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1485                Predicate l = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1486                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1487                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1488                Predicate r = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1489                 RESULT = new Predicate(l, Operator.NOTEQ, r); 
1490              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1491            }
1492          return CUP$parser$result;
1493
1494          /*. . . . . . . . . . . . . . . . . . . .*/
1495          case 33: // predicate ::= predicate EQ predicate 
1496            {
1497              Predicate RESULT = null;
1498                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1499                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1500                Predicate l = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1501                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1502                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1503                Predicate r = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1504                 RESULT = new Predicate(l, Operator.EQ, r); 
1505              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1506            }
1507          return CUP$parser$result;
1508
1509          /*. . . . . . . . . . . . . . . . . . . .*/
1510          case 32: // predicate ::= predicate OR predicate 
1511            {
1512              Predicate RESULT = null;
1513                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1514                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1515                Predicate l = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1516                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1517                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1518                Predicate r = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1519                 RESULT = new Predicate(l, Operator.OR, r); 
1520              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1521            }
1522          return CUP$parser$result;
1523
1524          /*. . . . . . . . . . . . . . . . . . . .*/
1525          case 31: // predicate ::= predicate AND predicate 
1526            {
1527              Predicate RESULT = null;
1528                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1529                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1530                Predicate l = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1531                int rleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1532                int rright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1533                Predicate r = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1534                 RESULT = new Predicate(l, Operator.AND, r); 
1535              CUP$parser$result = new java_cup.runtime.Symbol(8/*predicate*/, ((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);
1536            }
1537          return CUP$parser$result;
1538
1539          /*. . . . . . . . . . . . . . . . . . . .*/
1540          case 30: // order_by_expr ::= reference DESC 
1541            {
1542              OrderByExpr RESULT = null;
1543                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1544                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1545                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1546                 RESULT = new OrderByExpr(ref, true); 
1547              CUP$parser$result = new java_cup.runtime.Symbol(21/*order_by_expr*/, ((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);
1548            }
1549          return CUP$parser$result;
1550
1551          /*. . . . . . . . . . . . . . . . . . . .*/
1552          case 29: // order_by_expr ::= reference ASC 
1553            {
1554              OrderByExpr RESULT = null;
1555                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1556                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1557                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1558                 RESULT = new OrderByExpr(ref, false); 
1559              CUP$parser$result = new java_cup.runtime.Symbol(21/*order_by_expr*/, ((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);
1560            }
1561          return CUP$parser$result;
1562
1563          /*. . . . . . . . . . . . . . . . . . . .*/
1564          case 28: // order_by_expr ::= reference 
1565            {
1566              OrderByExpr RESULT = null;
1567                int refleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1568                int refright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1569                Reference ref = (Reference)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1570                 RESULT = new OrderByExpr(ref, false); 
1571              CUP$parser$result = new java_cup.runtime.Symbol(21/*order_by_expr*/, ((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);
1572            }
1573          return CUP$parser$result;
1574
1575          /*. . . . . . . . . . . . . . . . . . . .*/
1576          case 27: // order_by_list ::= order_by_list COMMA order_by_expr 
1577            {
1578              OrderByList RESULT = null;
1579                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1580                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1581                OrderByList l = (OrderByList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1582                int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1583                int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1584                OrderByExpr e = (OrderByExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1585                 l.add(e); RESULT = l; 
1586              CUP$parser$result = new java_cup.runtime.Symbol(20/*order_by_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);
1587            }
1588          return CUP$parser$result;
1589
1590          /*. . . . . . . . . . . . . . . . . . . .*/
1591          case 26: // order_by_list ::= order_by_expr 
1592            {
1593              OrderByList RESULT = null;
1594                int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1595                int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1596                OrderByExpr e = (OrderByExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1597                 RESULT = new OrderByList(e); 
1598              CUP$parser$result = new java_cup.runtime.Symbol(20/*order_by_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);
1599            }
1600          return CUP$parser$result;
1601
1602          /*. . . . . . . . . . . . . . . . . . . .*/
1603          case 25: // order_by_clause ::= ORDERBY order_by_list 
1604            {
1605              OrderByClause RESULT = null;
1606                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1607                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1608                OrderByList l = (OrderByList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1609                 RESULT = new OrderByClause(l); 
1610              CUP$parser$result = new java_cup.runtime.Symbol(14/*order_by_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);
1611            }
1612          return CUP$parser$result;
1613
1614          /*. . . . . . . . . . . . . . . . . . . .*/
1615          case 24: // where_clause ::= WHERE predicate 
1616            {
1617              WhereClause RESULT = null;
1618                int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1619                int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1620                Predicate e = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1621                 RESULT = new WhereClause(e); 
1622              CUP$parser$result = new java_cup.runtime.Symbol(13/*where_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);
1623            }
1624          return CUP$parser$result;
1625
1626          /*. . . . . . . . . . . . . . . . . . . .*/
1627          case 23: // from_list ::= from_key AS IDENTIFIER 
1628            {
1629              FromList RESULT = null;
1630                int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1631                int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1632                String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1633                int aliasleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1634                int aliasright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1635                String alias = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1636                
1637                RESULT = new FromList();
1638                RESULT.put(alias, name);
1639                
1640              CUP$parser$result = new java_cup.runtime.Symbol(18/*from_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);
1641            }
1642          return CUP$parser$result;
1643
1644          /*. . . . . . . . . . . . . . . . . . . .*/
1645          case 22: // from_list ::= from_key 
1646            {
1647              FromList RESULT = null;
1648                int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1649                int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1650                String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1651                
1652                RESULT = new FromList();
1653                RESULT.put(name, name);
1654                
1655              CUP$parser$result = new java_cup.runtime.Symbol(18/*from_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);
1656            }
1657          return CUP$parser$result;
1658
1659          /*. . . . . . . . . . . . . . . . . . . .*/
1660          case 21: // from_list ::= from_list COMMA from_key AS IDENTIFIER 
1661            {
1662              FromList RESULT = null;
1663                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
1664                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
1665                FromList list = (FromList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1666                int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1667                int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1668                String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1669                int aliasleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1670                int aliasright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1671                String alias = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1672                
1673                list.put(alias, name);
1674                RESULT = list;
1675                
1676              CUP$parser$result = new java_cup.runtime.Symbol(18/*from_list*/, ((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);
1677            }
1678          return CUP$parser$result;
1679
1680          /*. . . . . . . . . . . . . . . . . . . .*/
1681          case 20: // from_list ::= from_list COMMA from_key 
1682            {
1683              FromList RESULT = null;
1684                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1685                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1686                FromList list = (FromList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1687                int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1688                int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1689                String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1690                
1691                list.put(name, name);
1692                RESULT = list;
1693                
1694              CUP$parser$result = new java_cup.runtime.Symbol(18/*from_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);
1695            }
1696          return CUP$parser$result;
1697
1698          /*. . . . . . . . . . . . . . . . . . . .*/
1699          case 19: // from_key ::= FROM_IDENTIFIER 
1700            {
1701              String RESULT = null;
1702                int idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1703                int idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1704                String id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1705                 RESULT = id; 
1706              CUP$parser$result = new java_cup.runtime.Symbol(22/*from_key*/, ((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);
1707            }
1708          return CUP$parser$result;
1709
1710          /*. . . . . . . . . . . . . . . . . . . .*/
1711          case 18: // from_key ::= IDENTIFIER 
1712            {
1713              String RESULT = null;
1714                int idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1715                int idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1716                String id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1717                 RESULT = id; 
1718              CUP$parser$result = new java_cup.runtime.Symbol(22/*from_key*/, ((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);
1719            }
1720          return CUP$parser$result;
1721
1722          /*. . . . . . . . . . . . . . . . . . . .*/
1723          case 17: // from_clause ::= FROM LOCATION from_list 
1724            {
1725              FromClause RESULT = null;
1726                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1727                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1728                FromList list = (FromList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1729                 RESULT = new FromClause(FromClause.LOCATION, list); 
1730              CUP$parser$result = new java_cup.runtime.Symbol(12/*from_clause*/, ((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);
1731            }
1732          return CUP$parser$result;
1733
1734          /*. . . . . . . . . . . . . . . . . . . .*/
1735          case 16: // from_clause ::= FROM TYPE from_list 
1736            {
1737              FromClause RESULT = null;
1738                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1739                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1740                FromList list = (FromList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1741                 RESULT = new FromClause(FromClause.DOCTYPE, list); 
1742              CUP$parser$result = new java_cup.runtime.Symbol(12/*from_clause*/, ((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);
1743            }
1744          return CUP$parser$result;
1745
1746          /*. . . . . . . . . . . . . . . . . . . .*/
1747          case 15: // from_clause ::= FROM from_list 
1748            {
1749              FromClause RESULT = null;
1750                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1751                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1752                FromList list = (FromList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1753                 RESULT = new FromClause(list); 
1754              CUP$parser$result = new java_cup.runtime.Symbol(12/*from_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);
1755            }
1756          return CUP$parser$result;
1757
1758          /*. . . . . . . . . . . . . . . . . . . .*/
1759          case 14: // select_list ::= MUL 
1760            {
1761              SelectList RESULT = null;
1762                 RESULT = new SelectList(); 
1763              CUP$parser$result = new java_cup.runtime.Symbol(17/*select_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);
1764            }
1765          return CUP$parser$result;
1766
1767          /*. . . . . . . . . . . . . . . . . . . .*/
1768          case 13: // select_list ::= operand AS IDENTIFIER 
1769            {
1770              SelectList RESULT = null;
1771                int oleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1772                int oright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1773                Operand o = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1774                int aliasleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1775                int aliasright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1776                String alias = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1777                
1778                  RESULT = new SelectList();
1779                  RESULT.put(alias, o);
1780                  
1781              CUP$parser$result = new java_cup.runtime.Symbol(17/*select_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);
1782            }
1783          return CUP$parser$result;
1784
1785          /*. . . . . . . . . . . . . . . . . . . .*/
1786          case 12: // select_list ::= operand 
1787            {
1788              SelectList RESULT = null;
1789                int oleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1790                int oright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1791                Operand o = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1792                
1793                  RESULT = new SelectList();
1794                  RESULT.put(o.toString(), o);
1795                  
1796              CUP$parser$result = new java_cup.runtime.Symbol(17/*select_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);
1797            }
1798          return CUP$parser$result;
1799
1800          /*. . . . . . . . . . . . . . . . . . . .*/
1801          case 11: // select_list ::= select_list COMMA operand AS IDENTIFIER 
1802            {
1803              SelectList RESULT = null;
1804                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
1805                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
1806                SelectList list = (SelectList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1807                int oleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1808                int oright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1809                Operand o = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1810                int aliasleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1811                int aliasright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1812                String alias = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1813                
1814                  list.put(alias, o);
1815                  RESULT = list;
1816                  
1817              CUP$parser$result = new java_cup.runtime.Symbol(17/*select_list*/, ((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);
1818            }
1819          return CUP$parser$result;
1820
1821          /*. . . . . . . . . . . . . . . . . . . .*/
1822          case 10: // select_list ::= select_list COMMA operand 
1823            {
1824              SelectList RESULT = null;
1825                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1826                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1827                SelectList list = (SelectList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1828                int oleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1829                int oright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1830                Operand o = (Operand)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1831                
1832                  list.put(o.toString(), o);
1833                  RESULT = list;
1834                  
1835              CUP$parser$result = new java_cup.runtime.Symbol(17/*select_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);
1836            }
1837          return CUP$parser$result;
1838
1839          /*. . . . . . . . . . . . . . . . . . . .*/
1840          case 9: // select_clause ::= SELECT ALL select_list 
1841            {
1842              SelectClause RESULT = null;
1843                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1844                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1845                SelectList list = (SelectList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1846                 RESULT = new SelectClause(list, false); 
1847              CUP$parser$result = new java_cup.runtime.Symbol(11/*select_clause*/, ((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);
1848            }
1849          return CUP$parser$result;
1850
1851          /*. . . . . . . . . . . . . . . . . . . .*/
1852          case 8: // select_clause ::= SELECT DISTINCT select_list 
1853            {
1854              SelectClause RESULT = null;
1855                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1856                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1857                SelectList list = (SelectList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1858                 RESULT = new SelectClause(list, true); 
1859              CUP$parser$result = new java_cup.runtime.Symbol(11/*select_clause*/, ((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);
1860            }
1861          return CUP$parser$result;
1862
1863          /*. . . . . . . . . . . . . . . . . . . .*/
1864          case 7: // select_clause ::= SELECT select_list 
1865            {
1866              SelectClause RESULT = null;
1867                int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1868                int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1869                SelectList list = (SelectList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1870                 RESULT = new SelectClause(list); 
1871              CUP$parser$result = new java_cup.runtime.Symbol(11/*select_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);
1872            }
1873          return CUP$parser$result;
1874
1875          /*. . . . . . . . . . . . . . . . . . . .*/
1876          case 6: // query ::= query LIMIT INTEGER OFFSET INTEGER 
1877            {
1878              SQLQuery RESULT = null;
1879                int qleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
1880                int qright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
1881                SQLQuery q = (SQLQuery)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1882                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1883                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1884                String l = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1885                int oleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1886                int oright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1887                String o = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1888                 q.limit = Long.parseLong(l); q.offset = Long.parseLong(o); RESULT = q; 
1889              CUP$parser$result = new java_cup.runtime.Symbol(1/*query*/, ((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);
1890            }
1891          return CUP$parser$result;
1892
1893          /*. . . . . . . . . . . . . . . . . . . .*/
1894          case 5: // query ::= query LIMIT INTEGER 
1895            {
1896              SQLQuery RESULT = null;
1897                int qleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1898                int qright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1899                SQLQuery q = (SQLQuery)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1900                int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1901                int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1902                String l = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1903                 q.limit = Long.parseLong(l); RESULT = q; 
1904              CUP$parser$result = new java_cup.runtime.Symbol(1/*query*/, ((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);
1905            }
1906          return CUP$parser$result;
1907
1908          /*. . . . . . . . . . . . . . . . . . . .*/
1909          case 4: // query ::= select_clause from_clause order_by_clause 
1910            {
1911              SQLQuery RESULT = null;
1912                int selectleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1913                int selectright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1914                SelectClause select = (SelectClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1915                int fromleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1916                int fromright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1917                FromClause from = (FromClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1918                int orderleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1919                int orderright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1920                OrderByClause order = (OrderByClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1921                 RESULT = new SQLQuery(select, from, null, order); 
1922              CUP$parser$result = new java_cup.runtime.Symbol(1/*query*/, ((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);
1923            }
1924          return CUP$parser$result;
1925
1926          /*. . . . . . . . . . . . . . . . . . . .*/
1927          case 3: // query ::= select_clause from_clause where_clause order_by_clause 
1928            {
1929              SQLQuery RESULT = null;
1930                int selectleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
1931                int selectright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
1932                SelectClause select = (SelectClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1933                int fromleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1934                int fromright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1935                FromClause from = (FromClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1936                int whereleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1937                int whereright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1938                WhereClause where = (WhereClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1939                int orderleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1940                int orderright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1941                OrderByClause order = (OrderByClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1942                 RESULT = new SQLQuery(select, from, where, order); 
1943              CUP$parser$result = new java_cup.runtime.Symbol(1/*query*/, ((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);
1944            }
1945          return CUP$parser$result;
1946
1947          /*. . . . . . . . . . . . . . . . . . . .*/
1948          case 2: // query ::= select_clause from_clause where_clause 
1949            {
1950              SQLQuery RESULT = null;
1951                int selectleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
1952                int selectright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
1953                SelectClause select = (SelectClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1954                int fromleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1955                int fromright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1956                FromClause from = (FromClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1957                int whereleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1958                int whereright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1959                WhereClause where = (WhereClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1960                 RESULT = new SQLQuery(select, from, where); 
1961              CUP$parser$result = new java_cup.runtime.Symbol(1/*query*/, ((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);
1962            }
1963          return CUP$parser$result;
1964
1965          /*. . . . . . . . . . . . . . . . . . . .*/
1966          case 1: // query ::= select_clause from_clause 
1967            {
1968              SQLQuery RESULT = null;
1969                int selectleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1970                int selectright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1971                SelectClause select = (SelectClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1972                int fromleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
1973                int fromright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
1974                FromClause from = (FromClause)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
1975                 RESULT = new SQLQuery(select, from); 
1976              CUP$parser$result = new java_cup.runtime.Symbol(1/*query*/, ((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);
1977            }
1978          return CUP$parser$result;
1979
1980          /*. . . . . . . . . . . . . . . . . . . .*/
1981          case 0: // $START ::= query EOF 
1982            {
1983              Object RESULT = null;
1984                int start_valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
1985                int start_valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
1986                SQLQuery start_val = (SQLQuery)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1987                RESULT = start_val;
1988              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);
1989            }
1990          /* ACCEPT */
1991          CUP$parser$parser.done_parsing();
1992          return CUP$parser$result;
1993
1994          /* . . . . . .*/
1995          default:
1996            throw new Exception(
1997               "Invalid action number found in internal parse table");
1998
1999        }
2000    }
2001}
2002