Update Reference Sources to .NET Framework 4.6.1
[mono.git] / mcs / class / referencesource / System.Data.Entity / System / Data / Common / EntitySql / CqlParser.cs
1 //### This file created by BYACC 1.9(/C# extension  0.9)
2 //### C# capabilities added 11 Sep 2000
3 //### static char yysccsid[] = "@(#)yaccpar     1.9 (Berkeley) 02/21/93";
4
5
6
7 // the current file was generated on 06/16/2010 at 16:57 
8
9
10 //#line 2 "CqlGrammar.y"
11
12 /*#define YYDEBUG*/
13
14 /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15 !!                                                                           !!
16 !!         ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION       !!
17 !!                                                                           !!
18 !!                 DO NOT CHANGE THIS FILE (CqlParser.cs) BY HAND!!!!        !!
19 !!                          YOU HAVE BEEN WARNED !!!!                        !!
20 !!                                                                           !!
21 !!         ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION       !!
22 !!                                                                           !!
23 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
24
25 /*-----------------------------------------------------------------------------
26 // <copyright file="CqlGrammar.y" company="Microsoft">
27 //      Copyright (c) Microsoft Corporation.  All rights reserved.
28 // </copyright>
29 //
30 // @owner  [....]
31 // @backupOwner [....]
32 //---------------------------------------------------------------------------*/
33
34 using System;
35 using System.Data.Common.EntitySql.AST;
36 using System.Data.Entity;
37
38 /*//////////////////////////////////////////////////////////////////////////////
39
40  This pragma is needed since symbols used for defining precedence are not always
41  code generated by yacc
42
43 ///////////////////////////////////////////////////////////////////////////////*/
44 #pragma warning disable 414
45
46
47
48
49 //#####################################################################
50 // namespace: System.Data.Common.EntitySql
51 //#####################################################################
52 namespace System.Data.Common.EntitySql {
53 //#####################################################################
54 // class: CqlParser
55 // does : encapsulates yacc() parser functionality in a C# class
56 //#####################################################################
57 internal partial class CqlParser{
58
59 Boolean yydebug;        //do I want debug output?
60 static int YYMAJOR = 1;
61 static int YYMINOR = 9;
62 int yynerrs;            //number of errors so far
63 int yyerrflag;          //was there an error?
64 int yychar;             //the current working character
65
66 //########## MESSAGES ##########
67 //###############################################################
68 // method: debug
69 //###############################################################
70 void debug(String msg)
71 {
72   if (yydebug)
73     Console.WriteLine(msg);
74 }
75
76 //########## STATE STACK ##########
77 static int YYSTACKSIZE = 500;  //maximum stack size
78 int[] statestk; int stateptr;             //state stack
79 //###############################################################
80 // methods: state stack push,pop,drop,peek
81 //###############################################################
82 void state_push(int state)
83 {
84   if (stateptr>=YYSTACKSIZE-1)         //overflowed?
85     yyerror_stackoverflow();
86   statestk[++stateptr]=state;
87 }
88 int state_pop()
89 {
90   if (stateptr<0)                    //underflowed?
91     return -1;
92   return statestk[stateptr--];
93 }
94 void state_drop(int cnt)
95 {
96 int ptr;
97   ptr=stateptr-cnt;
98   if (ptr<0)
99     return;
100   stateptr = ptr;
101 }
102 int state_peek(int relative)
103 {
104 int ptr;
105   ptr=stateptr-relative;
106   if (ptr<0)
107     return -1;
108   return statestk[ptr];
109 }
110 //###############################################################
111 // method: init_stacks : allocate and prepare stacks
112 //###############################################################
113 Boolean init_stacks()
114 {
115   statestk = new int[YYSTACKSIZE];
116   stateptr = -1;
117   val_init();
118   return true;
119 }
120 //###############################################################
121 // method: dump_stacks : show n levels of the stacks
122 //###############################################################
123 void dump_stacks(int count)
124 {
125 int i;
126   Console.WriteLine("=index==state====value=     s:"+stateptr+"  v:"+valptr);
127   for (i=0;i<count;i++)
128     Console.WriteLine(" "+i+"    "+statestk[i]+"      "+valstk[i]);
129   Console.WriteLine("======================");
130 }
131
132
133 //########## SEMANTIC VALUES ##########
134 //## **default:object
135 //String   yytext;//user variable to return contextual strings
136 object yyval; //used to return semantic vals from action routines
137 object yylval;//the 'lval' (result) I got from yylex()
138 object [] valstk;
139 int valptr;
140 //###############################################################
141 // methods: value stack push,pop,drop,peek.
142 //###############################################################
143 void val_init()
144 {
145   valstk=new object[YYSTACKSIZE];
146   yyval=(object)0;
147   yylval=(object)0;
148   valptr=-1;
149 }
150 void val_push(object val)
151 {
152   if (valptr>=YYSTACKSIZE)
153     return;
154   valstk[++valptr]=val;
155 }
156 object val_pop()
157 {
158   if (valptr<0)
159     return (object)-1;
160   return valstk[valptr--];
161 }
162 void val_drop(int cnt)
163 {
164 int ptr;
165   ptr=valptr-cnt;
166   if (ptr<0)
167     return;
168   valptr = ptr;
169 }
170 object val_peek(int relative)
171 {
172 int ptr;
173   ptr=valptr-relative;
174   if (ptr<0)
175     return (object)-1;
176   return valstk[ptr];
177 }
178 //#### end semantic value section ####
179 public static short IDENTIFIER=257;
180 public static short ESCAPED_IDENTIFIER=258;
181 public static short PARAMETER=259;
182 public static short LITERAL=260;
183 public static short ALL=261;
184 public static short AND=262;
185 public static short ANYELEMENT=263;
186 public static short APPLY=264;
187 public static short AS=265;
188 public static short ASC=266;
189 public static short BETWEEN=267;
190 public static short BY=268;
191 public static short CASE=269;
192 public static short CAST=270;
193 public static short COLLATE=271;
194 public static short COLLECTION=272;
195 public static short CROSS=273;
196 public static short CREATEREF=274;
197 public static short DEREF=275;
198 public static short DESC=276;
199 public static short DISTINCT=277;
200 public static short ELEMENT=278;
201 public static short ELSE=279;
202 public static short END=280;
203 public static short EXCEPT=281;
204 public static short EXISTS=282;
205 public static short ESCAPE=283;
206 public static short FLATTEN=284;
207 public static short FROM=285;
208 public static short FULL=286;
209 public static short FUNCTION=287;
210 public static short GROUP=288;
211 public static short GROUPPARTITION=289;
212 public static short HAVING=290;
213 public static short IN=291;
214 public static short INNER=292;
215 public static short INTERSECT=293;
216 public static short IS=294;
217 public static short JOIN=295;
218 public static short KEY=296;
219 public static short LEFT=297;
220 public static short LIKE=298;
221 public static short LIMIT=299;
222 public static short MULTISET=300;
223 public static short NAVIGATE=301;
224 public static short NOT=302;
225 public static short NULL=303;
226 public static short OF=304;
227 public static short OFTYPE=305;
228 public static short ON=306;
229 public static short OR=307;
230 public static short ORDER=308;
231 public static short OUTER=309;
232 public static short OVERLAPS=310;
233 public static short ONLY=311;
234 public static short QMARK=312;
235 public static short REF=313;
236 public static short RELATIONSHIP=314;
237 public static short RIGHT=315;
238 public static short ROW=316;
239 public static short SELECT=317;
240 public static short SET=318;
241 public static short SKIP=319;
242 public static short THEN=320;
243 public static short TOP=321;
244 public static short TREAT=322;
245 public static short UNION=323;
246 public static short USING=324;
247 public static short VALUE=325;
248 public static short WHEN=326;
249 public static short WHERE=327;
250 public static short WITH=328;
251 public static short COMMA=329;
252 public static short COLON=330;
253 public static short SCOLON=331;
254 public static short DOT=332;
255 public static short EQUAL=333;
256 public static short L_PAREN=334;
257 public static short R_PAREN=335;
258 public static short L_BRACE=336;
259 public static short R_BRACE=337;
260 public static short L_CURLY=338;
261 public static short R_CURLY=339;
262 public static short PLUS=340;
263 public static short MINUS=341;
264 public static short STAR=342;
265 public static short FSLASH=343;
266 public static short PERCENT=344;
267 public static short OP_EQ=345;
268 public static short OP_NEQ=346;
269 public static short OP_LT=347;
270 public static short OP_LE=348;
271 public static short OP_GT=349;
272 public static short OP_GE=350;
273 public static short UNARYPLUS=351;
274 public static short UNARYMINUS=352;
275 public static short YYERRCODE=256;
276 static short [] yylhs = {                           -1,
277     0,    0,    1,    2,    2,    4,    4,    5,    5,    5,
278     3,    9,    9,   12,   12,   13,   14,   14,   15,   15,
279    16,   10,   10,   11,   11,   18,   27,   20,   30,   20,
280    26,   26,   26,   28,   28,   21,   31,   31,   32,   32,
281    32,   32,   32,   34,   34,   35,   36,   36,   36,   36,
282    36,   36,   36,   36,   36,   36,   37,   37,   22,   22,
283    38,   23,   23,   39,   24,   24,   41,   40,   25,   25,
284    44,   42,   45,   45,   46,   46,   43,   43,   47,   47,
285    48,   48,   48,   50,   50,   19,   19,   19,   19,   19,
286    19,   19,   19,   19,   19,   19,   19,   19,   19,   51,
287    62,   63,   52,   52,   52,   52,   52,   52,   52,   52,
288    52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
289    52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
290    52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
291    52,   52,   52,   52,   52,   52,   52,   66,   66,    8,
292    67,   33,   33,   29,   29,   64,   64,   68,   68,   69,
293    58,   58,   58,    7,   53,   59,   54,   54,   55,   56,
294    57,   57,   57,   57,   57,   57,   60,   60,   60,   70,
295    70,   71,   71,   72,   72,   72,   65,   65,   65,   65,
296    65,   73,   74,   74,   74,   74,    6,    6,   49,   61,
297    61,   17,   17,   17,   17,   75,   76,   77,   78,   78,
298    79,
299 };
300 static short [] yylen = {                            2,
301     0,    1,    2,    0,    1,    1,    2,    3,    3,    3,
302     3,    0,    1,    1,    2,    7,    2,    3,    1,    3,
303     2,    1,    1,    0,    1,    6,    0,    5,    0,    6,
304     0,    1,    1,    0,    4,    2,    1,    3,    1,    3,
305     1,    3,    1,    3,    5,    3,    2,    3,    2,    3,
306     2,    1,    2,    2,    3,    2,    2,    2,    0,    1,
307     2,    0,    1,    3,    0,    1,    0,    3,    0,    1,
308     0,    6,    0,    2,    0,    2,    1,    3,    2,    4,
309     0,    1,    1,    1,    3,    1,    1,    1,    1,    1,
310     1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
311     3,    4,    3,    3,    3,    3,    3,    2,    2,    3,
312     3,    3,    3,    3,    3,    3,    4,    3,    3,    3,
313     4,    4,    4,    4,    4,    4,    3,    4,    1,    6,
314     6,    6,    7,    6,    7,    7,    8,    3,    4,    5,
315     6,    3,    3,    3,    2,    3,    1,    1,    1,    3,
316     3,    3,    1,    1,    3,    3,    4,    4,    5,    2,
317     4,    4,    3,    3,    4,    4,    6,    8,    4,    5,
318     3,    6,    6,    3,    6,    6,    6,    8,   10,    0,
319     1,    2,    2,    6,    8,   10,    1,    1,    2,    2,
320     1,    3,    3,    4,    3,    4,    1,    1,    1,    1,
321     1,    1,    1,    1,    1,    4,    4,    4,    1,    3,
322     2,
323 };
324 static short [] yydefred = {                         0,
325     0,    0,    2,    0,    0,    6,  199,  197,   87,  200,
326     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
327     0,    0,    0,  201,    0,    0,    0,    0,    0,    0,
328     0,    0,    0,    0,    0,    0,    0,  198,   86,   89,
329    91,   92,   93,   94,   95,   96,   97,   98,   99,    0,
330     0,  129,  147,  149,    0,    3,    0,    0,   14,    7,
331     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
332     0,    0,    0,    0,    0,  148,    0,    0,    0,    0,
333     0,    0,    0,    0,   22,    0,    0,    0,    0,    0,
334     0,    8,    0,    9,    0,   10,    0,    0,    0,    0,
335     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
336     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
337     0,    0,    0,    0,   15,    0,    0,    0,  156,    0,
338     0,    0,    0,    0,    0,    0,    0,   32,   33,    0,
339     0,    0,    0,    0,    0,    0,    0,  154,    0,    0,
340     0,    0,  100,    0,    0,    0,  163,  174,    0,  171,
341     0,    0,    0,    0,    0,    0,    0,  127,    0,    0,
342     0,    0,    0,    0,    0,    0,    0,  164,    0,    0,
343     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
344     0,    0,    0,    0,   25,   11,  123,    0,    0,    0,
345   157,    0,    0,  166,  124,  122,  125,    0,  169,  162,
346     0,    0,  165,    0,    0,  161,  126,    0,    0,    0,
347     0,    0,    0,   39,   41,   43,    0,    0,   60,    0,
348     0,    0,    0,    0,  128,    0,    0,    0,    0,    0,
349     0,    0,   17,    0,    0,   19,    0,    0,    0,    0,
350     0,    0,  191,    0,  170,    0,    0,    0,  152,  155,
351     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
352     0,    0,   52,    0,    0,    0,    0,    0,    0,    0,
353     0,   63,    0,    0,    0,    0,    0,    0,    0,    0,
354     0,    0,    0,    0,   21,    0,  203,  204,  205,    0,
355    18,    0,    0,  189,    0,    0,  131,  190,    0,    0,
356   167,    0,  177,    0,  132,  130,    0,    0,    0,   40,
357    42,    0,   57,   47,   54,    0,   53,   49,    0,   58,
358    51,    0,    0,   46,    0,   67,    0,   66,    0,  176,
359     0,  175,  173,  172,    0,    0,    0,  134,    0,    0,
360     0,    0,   20,    0,  195,    0,  192,  193,    0,    0,
361     0,  133,    0,    0,   55,   48,   50,    0,    0,    0,
362     0,   26,   70,    0,  182,  183,    0,  135,  136,    0,
363     0,    0,    0,  209,   16,  196,  194,  168,    0,  178,
364    35,    0,    0,   71,    0,  137,  206,  207,  211,    0,
365   208,    0,    0,    0,  210,  179,    0,    0,   77,    0,
366    82,    0,   83,   79,    0,    0,    0,    0,    0,    0,
367    78,    0,   72,    0,  184,   80,    0,    0,    0,  185,
368     0,  186,
369 };
370 static short [] yydgoto = {                          2,
371     3,    4,   56,    5,    6,   74,   75,   76,   57,   84,
372   196,   58,   59,  194,  245,  246,  295,   85,   86,   87,
373   155,  228,  281,  337,  372,  140,  151,  263,  147,  152,
374   222,  223,  224,  225,  226,  277,  278,  229,  282,  338,
375   370,  373,  408,  403,  417,  423,  409,  414,   38,   89,
376    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
377    49,   50,   51,   52,  296,   53,   54,   63,  131,  340,
378   341,  375,  252,  253,  297,  298,  299,  383,  384,
379 };
380 static short [] yysindex = {                      -321,
381  4723,    0,    0, -269, -321,    0,    0,    0,    0,    0,
382  -309, -271, -284, -204, -176, -162, -155, -131, -118,  -94,
383   -84,  -75, 4723,    0,  -73,  -51,  -46,  -42,  -37, 4054,
384  4723, 4723, 4723, -182, -181, -211, 3614,    0,    0,    0,
385     0,    0,    0,    0,    0,    0,    0,    0,    0, -111,
386    14,    0,    0,    0, -171,    0, 4054, -269,    0,    0,
387  4054, 4723, -207, 4723, 4723, 4054, 4054, 4054, 4054, -225,
388  4054, 4723, 4723,  -36,  -28,    0, 5025, 4723, 4054, 4723,
389  4054, 4723,    0,  -13,    0, 3614,   22, 3614, -291,   -8,
390    -8,    0, -232,    0, -226,    0, 4723, 4723, 4723, 4723,
391  4723,  174, 4723, -186, 4723, 4723, 4139, -171, 4723, 4723,
392  4723, 4723, 4723, 4723, 4723, 4723, 4723, 4723, 4723, 4723,
393  4723, 4723,   -6,   -5,    0,   -3, 3098, 4723,    0, 4723,
394    53, 3170, 3198,    3,   13,   18,   19,    0,    0, 4054,
395    41, -213, 3270, 3298,   42, 3370, -159,    0,   47, 3442,
396  -225,   62,    0, 4796,   68, 4723,    0,    0, 4054,    0,
397  4054, 5025, 4955, 5124, 5053, 3413, -141,    0,   59, 2998,
398  4723, 4723, 4723, 3814, 2926, 4723, 3341,    0, 4037, -177,
399  -177,   -8,   -8,   -8, 4037, 4037, 1461, 1461, 1461, 1461,
400  5025, 5025, -256,  160,    0,    0,    0, 4723, 3614, 3514,
401     0, -171, 4723,    0,    0,    0,    0,   99,    0,    0,
402  -171, -241,    0, -171, 4723,    0,    0, -171,  124, -225,
403  4212,  122,  -58,    0,    0,    0, 4723,  167,    0, 3614,
404   125, -110,  127,  -81,    0,  123, -194, 4723, 4955, 5053,
405  3786, 3341,    0, -216,  -69,    0,  135, 3614, 4723, -254,
406  -161, -245,    0, 3026,    0, -214, -171, -128,    0,    0,
407  -127,  139, 4723,  124, 3370,  -58,  149,  151, 4796, -249,
408  -272,  179,    0, -265,  223, -248, 4796, 4796, 3614,  226,
409   207,    0,  170,  170,  170,  170, -183, -171, -112, 5096,
410  4723,  161,  175,  176,    0,  169,    0,    0,    0, -171,
411     0, 4054, 3614,    0, 4285, -171,    0,    0, 4358, -171,
412     0, -171,    0, -102,    0,    0, 4054,  178, 4723,    0,
413     0,  -58,    0,    0,    0,  216,    0,    0,  230,    0,
414     0,  236,  228,    0, 4723,    0,  229,    0,  222,    0,
415   222,    0,    0,    0, -171, -100,  -39,    0, 5096, -216,
416  -171, -171,    0,  204,    0,  -66,    0,    0,  -61,  -20,
417   -57,    0,  209,  178,    0,    0,    0, 4723,  178, 4723,
418   272,    0,    0,  212,    0,    0,   73,    0,    0,  214,
419   115, -216,  -56,    0,    0,    0,    0,    0, -171,    0,
420     0, 3614, 3614,    0, 4723,    0,    0,    0,    0, -171,
421     0,  227, 4723, 3542,    0,    0, 2954, -276,    0, -171,
422     0,  294,    0,    0, 4723, 4723,  259, -151, -199, 3614,
423     0, 4723,    0, -171,    0,    0, 3614,  -45, -171,    0,
424   231,    0,
425 };
426 static short [] yyrindex = {                      1510,
427     0,    0,    0, 4431, 3981,    0,    0,    0,    0,    0,
428     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430     0,    0,    0, 3642, 3714, 3742,    0,    0,    0,    0,
431     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432     0,    0,    0,    0,    0,    0,    0, 4504,    0,    0,
433     0,    0,    0,    0,    0,    0,    0,    0,    0, 4577,
434     0,    0,    0,  173,  262,    0, 2591,    0,    0,    0,
435     0,    0, 3908,    0,    0,   76,    0, -117,    0,  532,
436   621,    0, 4577,    0, 4577,    0,    0,    0,    0,    0,
437     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439     0,    0,    0,  563,    0,    0,    0,    0,    0,    0,
440     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441     0,    0,    0,    0,    0,   28,    0,    0,    0,    0,
442  4650,    0,    0,    0,   39,    0,    0,    0,    0,    0,
443     0, 2662,  303, 2023, 2307, 1576,    0,    0,    0, 2378,
444     0,    0,    0, 2861, 2094,    0, 1876,    0, 1647,  979,
445  1068,  711,  800,  889, 1723, 1798, 1157, 1242, 1331, 1420,
446  2733, 2804,    0,    0,    0,    0,    0,    0,  287,    0,
447     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448     0,    0,    0,    0,    0,    0,    0,    0, 4869, 4650,
449     0, 1185,   31,    0,    0,    0,    0,   82,    0, -108,
450     0,    0,    0,    0,    0,    0,    0,    0,  311, 2449,
451  2520, 1947,    0,    0,    0,    0,    0, -169,    0, -139,
452     0,  -83,    0,    0,    0,    0,    0,    0,    0,    0,
453     0,    0,    0, 4869, -109,    0,  -15, 1294,    0,    0,
454     0,    0,    0,    0,    0,    0,    0,    0,   96,    0,
455    33,    0,  352,  352,  352,  352,    0,    0,    0, 2165,
456     0,    0,    0,    0,    0,  -44,    0,    0,    0,    0,
457     0,    0, -166,    0,    0,    0,    0,    0,    0,    0,
458     0,    0,    0,    0,    0,    0,    0,  289,    0,    0,
459     0,   95,    0,    0,    0, 4942,    0,    0,    0,    0,
460     0,    0, 2909,    0,    0,    0,   84,    0,    0,    0,
461   443,    0,    0,    0,    0,    0,    0,    0, 2236,    0,
462     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
463     0,    0,    0,  290,    0,    0,    0,    0,  195,    0,
464     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
465     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
466     0,   83,   71,    0,    0,    0,    0,    0,    0,    0,
467     0,    0,    0,    0,    0,    0,   11,   66,    0,    0,
468     0,    0,    0,    0,    0,    0,   85,    0,   11,  101,
469     0,    0,    0,    0,    0,    0,  102,    0,    0,    0,
470     0,    0,
471 };
472 static short [] yygindex = {                         0,
473     0,    0,    0,    0,  571,   -1,  577,  578,    0,  -47,
474     0,    0,  522,    0,    0,  283, -342,   30,   26,    0,
475     0,    0,    0,    0,    0,  -86,    0,  320, -257,    0,
476     0, -209,  -54,  365,  366,    0,    0,    0,    0,    0,
477     0,    0,    0,    0,    0,    0,  180,  171,  186,  -67,
478     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
479     0,    0,    0,    0,  -43,    0,    0,    0,    0,  205,
480     0,  251,    0,    0,    0,    0,    0,    0,  199,
481 };
482 static int YYTABLESIZE=5474;
483 static short[] yytable = {                         34,
484     7,    8,    1,  304,  142,  318,  159,  380,  161,  124,
485    81,  266,  308,  126,  323,    7,    8,   55,  134,  135,
486   136,  137,  325,  141,   61,  148,   37,  153,  138,  328,
487    37,  145,   65,  149,  138,  138,  326,  156,   59,  399,
488     7,    8,  415,  329,  139,  324,  331,  157,   77,   64,
489   139,  139,  416,  123,   62,  292,   88,   90,   91,  322,
490   332,  364,    7,    8,  219,   73,  411,  333,  334,  257,
491    68,  128,  129,    7,    8,   23,  413,  369,  243,  305,
492   171,   62,   45,   69,   75,    7,    8,  127,  309,  132,
493   133,  232,  208,  234,   38,   61,  293,   88,  143,  294,
494    74,   76,  158,  144,  172,  146,  178,  150,  160,  158,
495   158,  173,  159,  159,  312,  156,  288,  306,  130,   96,
496   313,  210,  162,  163,  164,  165,  166,  345,  170,   65,
497   174,  175,  177,  264,  179,  180,  181,  182,  183,  184,
498   185,  186,  187,  188,  189,  190,  191,  192,   92,   94,
499   121,   93,   95,  199,  108,  200,  158,   66,  251,  159,
500   260,  235,  236,  153,  112,  113,  114,  256,  258,  215,
501   306,   67,   88,  307,  261,  216,  153,  424,   68,  146,
502   306,  230,  153,  425,   88,  153,   88,  153,  231,  187,
503   233,  244,  187,  289,   64,  187,  239,  240,  241,  153,
504   250,  242,   69,  306,  306,  153,  315,  316,  148,  250,
505   250,   84,  259,  314,  270,   70,  250,   84,  156,  306,
506    85,   84,  348,  248,  284,   23,   85,  271,  254,  306,
507    85,  306,  362,  272,  378,  250,  273,  356,  274,   71,
508   146,  359,  250,  346,  347,  188,  265,  156,  188,   72,
509   275,  188,  279,  286,  354,  250,  276,   41,   73,  300,
510    78,   90,  156,  290,  148,  301,  360,  156,  386,  363,
511    41,  389,  400,  387,  303,  122,   41,  390,  401,   41,
512   148,   41,   79,  429,  202,  250,  250,   80,  146,  430,
513   202,   81,  306,   41,  146,  379,   82,   93,  244,   41,
514   153,  377,  146,  146,  357,   95,  154,  381,  250,   81,
515   361,  306,  153,  153,  388,  153,  349,  153,   37,  153,
516    37,  153,  153,  108,  153,  195,   59,  193,   59,   81,
517    88,  197,  201,  153,   88,  153,  153,  204,   37,   81,
518    65,   81,  153,  250,  146,   81,   59,  205,  250,  250,
519   382,  180,  206,  207,  153,   45,  153,   37,  153,   37,
520   146,   37,  153,   65,   73,   37,  418,   65,   45,   59,
521    45,   62,   45,   59,   45,  209,  213,   45,   68,   45,
522   250,  217,   38,   61,   38,   61,  220,  402,   45,   62,
523    45,   45,  237,  392,  227,  393,   73,   45,  382,   74,
524    73,   68,   38,   61,  306,   68,   23,  396,  250,   45,
525    23,   45,   62,   45,   69,   75,   62,   45,   69,   75,
526   404,   38,  428,   38,  247,   38,   61,  431,  407,   38,
527    61,   74,   76,  255,   88,   74,   76,   88,   88,   88,
528   420,  407,  181,   88,  262,   88,  306,  427,   88,  398,
529   269,   88,   88,   88,  280,   88,  287,   88,   88,  283,
530    88,  285,   88,   88,   88,   88,   88,   88,  302,   88,
531    88,   88,  317,  327,   88,  167,  168,  169,   88,   88,
532    88,   88,   88,  320,   64,  321,  330,   88,  342,  343,
533   344,   88,   88,  335,  350,   88,  336,  339,   88,   88,
534   306,   88,   64,   88,   88,   88,  215,   88,  351,  352,
535   365,   88,   88,   88,   88,   88,   88,   88,   88,   88,
536    88,   88,   88,   90,  366,   64,   90,   90,   90,   64,
537   367,  109,   90,  368,   90,  374,  371,   90,  385,  394,
538    90,   90,   90,  391,   90,  395,   90,   90,  397,   90,
539     7,   90,   90,   90,   90,   90,   90,  422,   90,   90,
540    90,  406,   24,   90,  101,  432,  160,   90,   90,   90,
541    90,   90,  102,   28,   30,   60,   90,   35,   36,  125,
542    90,   90,  353,  319,   90,  267,  268,   90,   90,  426,
543    90,  376,   90,   90,   90,  421,   90,  419,  405,    0,
544    90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
545    90,   90,    0,  180,    0,    0,  180,  180,  180,    0,
546   108,    0,  180,    0,  180,    0,    0,  180,    0,    0,
547   180,  180,  180,    0,  180,    0,  180,  180,    0,  180,
548     0,  180,  180,  180,  180,  180,  180,    0,  180,  180,
549   180,    0,    0,  180,    0,    0,    0,  180,  180,  180,
550   180,  180,    0,    0,    0,    0,  180,    0,    0,    0,
551   180,  180,    0,    0,  180,    0,    0,  180,  180,    0,
552   180,    0,  180,  180,  180,    0,  180,    0,    0,    0,
553   180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
554   180,  180,    0,    0,  181,    0,    0,  181,  181,  181,
555   105,    0,    0,  181,    0,  181,    0,    0,  181,    0,
556     0,  181,  181,  181,    0,  181,    0,  181,  181,    0,
557   181,    0,  181,  181,  181,  181,  181,  181,    0,  181,
558   181,  181,    0,    0,  181,    0,    0,    0,  181,  181,
559   181,  181,  181,    0,    0,    0,    0,  181,    0,    0,
560     0,  181,  181,    0,    0,  181,    0,    0,  181,  181,
561     0,  181,    0,  181,  181,  181,    0,  181,    0,    0,
562     0,  181,  181,  181,  181,  181,  181,  181,  181,  181,
563   181,  181,  181,  109,    0,    0,  109,  109,  109,  106,
564     0,    0,  109,    0,  109,    0,    0,  109,    0,    0,
565   109,  109,  109,    0,  109,    0,  109,  109,    0,  109,
566     0,  109,  109,  109,  109,  109,  109,    0,  109,  109,
567   109,    0,    0,  109,    0,    0,    0,  109,  109,  109,
568   109,  109,    0,    0,    0,    0,  109,    0,    0,    0,
569   109,  109,    0,    0,  109,    0,    0,  109,  109,    0,
570   109,    0,  109,    0,  109,    0,  109,    0,    0,    0,
571   109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
572   109,  109,  108,    0,    0,  108,  108,  108,  107,    0,
573     0,  108,    0,  108,    0,    0,  108,    0,    0,  108,
574   108,  108,    0,  108,    0,  108,  108,    0,  108,    0,
575   108,  108,  108,  108,  108,  108,    0,  108,  108,  108,
576     0,    0,  108,    0,    0,    0,  108,  108,  108,  108,
577   108,    0,    0,    0,    0,  108,    0,    0,    0,  108,
578   108,    0,    0,  108,    0,    0,  108,  108,    0,  108,
579     0,  108,    0,  108,    0,  108,    0,    0,    0,  108,
580   108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
581   108,    0,  105,    0,    0,  105,  105,  105,  103,    0,
582     0,  105,    0,  105,    0,    0,  105,    0,    0,  105,
583   105,  105,    0,  105,    0,  105,  105,    0,  105,    0,
584   105,  105,  105,  105,  105,  105,    0,  105,  105,  105,
585     0,    0,  105,    0,    0,    0,  105,  105,  105,  105,
586   105,    0,    0,    0,    0,  105,    0,    0,    0,  105,
587   105,    0,    0,  105,    0,    0,  105,  105,    0,  105,
588     0,  105,    0,  105,    0,  105,    0,    0,    0,  105,
589   105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
590   105,  106,    0,    0,  106,  106,  106,  104,    0,    0,
591   106,    0,  106,    0,    0,  106,    0,    0,  106,  106,
592   106,    0,  106,    0,  106,  106,    0,  106,    0,  106,
593   106,  106,  106,  106,  106,    0,  106,  106,  106,    0,
594     0,  106,    0,    0,    0,  106,  106,  106,  106,  106,
595     0,    0,    0,    0,  106,    0,    0,    0,  106,  106,
596     0,    0,  106,    0,    0,  106,  106,    0,  106,    0,
597   106,    0,  106,    0,  106,    0,    0,    0,  106,  106,
598   106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
599   107,    0,    0,  107,  107,  107,  113,    0,    0,  107,
600     0,  107,    0,    0,  107,    0,    0,  107,  107,  107,
601     0,  107,    0,  107,  107,    0,  107,    0,  107,  107,
602   107,  107,  107,  107,   36,  107,  107,  107,    0,    0,
603   107,    0,    0,    0,  107,  107,  107,  107,  107,    0,
604     0,    0,    0,  107,    0,    0,    0,  107,  107,    0,
605     0,  107,    0,    0,  107,  107,    0,  107,    0,  107,
606     0,  107,    0,  107,    0,    0,    0,  107,  107,  107,
607   107,  107,  107,  107,  107,  107,  107,  107,  107,    0,
608   103,  114,    0,  103,  103,  103,    0,    0,    0,  103,
609     0,  103,    0,    0,  103,    0,    0,  103,  103,  103,
610     0,  103,    0,  103,  103,    0,  103,    0,  103,  103,
611   103,  103,  103,  103,    0,  103,  103,  103,    0,    0,
612   103,    0,    0,    0,  103,  103,  103,  103,  103,    0,
613     0,    0,    0,  103,    0,    0,    0,  103,  103,    0,
614     0,  103,    0,    0,  103,  103,    0,  103,    0,  103,
615     0,  103,    0,  103,    0,    0,    0,  103,  103,  103,
616     0,    0,    0,  103,  103,  103,  103,  103,  103,  104,
617   111,    0,  104,  104,  104,    0,    0,    0,  104,    0,
618   104,    0,    0,  104,    0,    0,  104,  104,  104,    0,
619   104,    0,  104,  104,    0,  104,    0,  104,  104,  104,
620   104,  104,  104,    0,  104,  104,  104,    0,    0,  104,
621     0,    0,    0,  104,  104,  104,  104,  104,    0,    0,
622     0,    0,  104,    0,    0,    0,  104,  104,    0,    0,
623   104,    0,    0,  104,  104,    0,  104,    0,  104,    0,
624   104,    0,  104,    0,    0,    0,  104,  104,  104,    0,
625     0,    0,  104,  104,  104,  104,  104,  104,  113,  112,
626     0,  113,  113,  113,    0,    0,    0,  113,    0,  113,
627     0,    0,  113,    0,    0,  113,  113,  113,    0,  113,
628     0,  113,  113,    0,  113,    0,  113,  113,  113,  113,
629   113,  113,    0,  113,  113,  113,    0,    0,  113,    0,
630     0,    0,  113,  113,  113,  113,  113,    0,    0,    0,
631     0,  113,   36,    0,   36,  113,  113,    0,    0,  113,
632     0,    0,  113,  113,    0,  113,    0,  113,    0,  113,
633     0,  113,   36,    0,    0,  113,    0,    0,    0,    0,
634     0,  113,  113,  114,    0,    0,  114,  114,  114,    1,
635     0,   36,  114,    0,  114,   36,    0,  114,    0,   36,
636   114,  114,  114,    0,  114,    0,  114,  114,    0,  114,
637     0,  114,  114,  114,  114,  114,  114,    0,  114,  114,
638   114,    0,    0,  114,    0,    0,    0,  114,  114,  114,
639   114,  114,    0,    0,    0,    0,  114,    0,    0,    0,
640   114,  114,    0,    0,  114,    0,   43,  114,  114,    0,
641   114,    0,  114,    0,  114,  115,  114,    0,    0,   43,
642   114,    0,    0,    0,    0,   43,  114,  114,   43,    0,
643    43,    0,  111,    0,    0,  111,  111,  111,    0,    0,
644     0,  111,   43,  111,    0,    0,  111,    0,   43,  111,
645   111,  111,    0,  111,    0,  111,  111,    0,  111,    0,
646   111,  111,  111,  111,  111,  111,    0,  111,  111,  111,
647     0,    0,  111,    0,    0,    0,  111,  111,  111,  111,
648   111,    0,    0,    0,    0,  111,  150,    0,    0,  111,
649   111,    0,    0,  111,    0,    0,  111,  111,    0,  111,
650     0,  111,    0,  111,    0,  111,    0,    0,    0,  111,
651     0,    0,    0,    0,    0,  111,  111,    0,    0,    0,
652     0,  112,    0,    0,  112,  112,  112,    0,    0,    0,
653   112,    0,  112,    0,    0,  112,    0,    0,  112,  112,
654   112,    0,  112,    0,  112,  112,    0,  112,    0,  112,
655   112,  112,  112,  112,  112,    0,  112,  112,  112,    0,
656     0,  112,  151,    0,    0,  112,  112,  112,  112,  112,
657     0,    0,    0,    0,  112,    0,    0,    0,  112,  112,
658     0,    0,  112,    0,    0,  112,  112,    0,  112,    0,
659   112,    0,  112,    0,  112,    0,    0,    0,  112,    0,
660     0,    0,    0,    0,  112,  112,    4,    4,    4,    4,
661     0,    0,    4,    0,    0,    0,    0,    0,    4,    4,
662     0,    0,    0,    4,    4,    0,    0,    4,    0,    0,
663     0,    4,  108,    4,    0,    0,    4,  110,    4,    0,
664   110,  111,  112,  113,  114,    4,    0,    0,    0,    4,
665     4,    4,    4,    0,    4,    0,    0,    0,    0,    0,
666     0,    0,    4,    0,    0,    4,    4,    4,    0,    0,
667     0,    4,    0,    0,    0,    0,    0,  115,    0,    0,
668   115,  115,  115,    4,    0,    0,  115,    4,  115,    4,
669     4,  115,    0,    0,  115,  115,  115,    0,  115,    0,
670   115,  115,    0,  115,    0,  115,  115,  115,  115,  115,
671   115,    0,  115,  115,  115,  116,    0,  115,    0,    0,
672     0,  115,  115,  115,  115,  115,    0,    0,    0,    0,
673   115,    0,    0,    0,  115,  115,    0,    0,  115,    0,
674     0,  115,  115,    0,  115,    0,  115,    0,  150,    0,
675   115,  150,  150,  150,  115,    0,    0,  150,    0,  150,
676     0,    0,  150,    0,    0,  150,  150,  150,    0,  150,
677     0,  150,  150,    0,  150,    0,  150,  150,  150,  150,
678   150,  150,    0,  150,  150,  150,  117,    0,  150,    0,
679     0,    0,  150,  150,  150,  150,  150,    0,    0,    0,
680     0,  150,    0,    0,    0,  150,  150,    0,    0,  150,
681     0,    0,  150,  150,    0,  150,    0,  150,    0,    0,
682     0,  150,    0,    0,  151,  150,    0,  151,  151,  151,
683     0,    0,    0,  151,    0,  151,    0,    0,  151,    0,
684     0,  151,  151,  151,    0,  151,    0,  151,  151,    0,
685   151,    0,  151,  151,  151,  151,  151,  151,    0,  151,
686   151,  151,  118,    0,  151,    0,    0,    0,  151,  151,
687   151,  151,  151,    0,    0,    0,    0,  151,    0,    0,
688     0,  151,  151,    0,    0,  151,    0,    0,  151,  151,
689     0,  151,    0,  151,    0,    0,    0,  151,    0,  110,
690     0,  151,  110,  110,  110,    0,    0,    0,  110,    0,
691   110,    0,    0,  110,    0,    0,  110,  110,  110,    0,
692   110,    0,  110,  110,    0,  110,    0,  110,  110,  110,
693   110,  110,  110,  119,  110,  110,  110,    0,    0,  110,
694     0,    0,    0,  110,  110,  110,  110,  110,    0,    0,
695     0,    0,  110,    0,    0,    0,  110,  110,    0,    0,
696   110,    0,    0,  110,  110,    0,  110,    0,  110,    0,
697     0,    0,  110,    0,    0,    0,  110,  116,    0,    0,
698   116,  116,  116,    0,    0,    0,  116,    0,  116,    0,
699     0,  116,    0,    0,  116,  116,  116,    0,  116,    0,
700   116,  116,    0,  116,  140,  116,  116,  116,    0,  116,
701   116,    0,  116,  116,  116,    0,    0,  116,    0,    0,
702     0,  116,  116,  116,  116,  116,    0,    0,    0,    0,
703   116,    0,    0,    0,  116,  116,    0,    0,  116,    0,
704     0,  116,  116,    0,  116,    0,  116,    0,  117,    0,
705   116,  117,  117,  117,  116,    0,    0,  117,    0,  117,
706     0,    0,  117,    0,    0,  117,  117,  117,    0,  117,
707     0,  117,  117,    0,  117,  141,  117,  117,  117,    0,
708   117,  117,    0,  117,  117,  117,    0,    0,  117,    0,
709     0,    0,  117,  117,  117,  117,  117,    0,    0,    0,
710     0,  117,    0,    0,    0,  117,  117,    0,    0,  117,
711     0,    0,  117,  117,    0,  117,    0,  117,    0,    0,
712     0,  117,    0,    0,  118,  117,    0,  118,  118,  118,
713     0,    0,    0,  118,    0,  118,    0,    0,  118,    0,
714     0,  118,  118,  118,    0,  118,  120,  118,  118,    0,
715   118,    0,  118,  118,  118,    0,  118,  118,    0,  118,
716   118,  118,    0,    0,  118,    0,    0,    0,  118,  118,
717   118,  118,  118,    0,    0,    0,    0,  118,    0,    0,
718     0,  118,  118,    0,    0,    0,    0,    0,  118,  118,
719     0,  118,    0,  118,    0,  119,    0,  118,  119,  119,
720   119,  118,    0,    0,  119,    0,  119,    0,    0,  119,
721     0,    0,  119,  119,    0,    0,  119,  138,  119,  119,
722     0,  119,    0,  119,  119,  119,    0,  119,  119,    0,
723   119,  119,  119,    0,    0,  119,    0,    0,    0,  119,
724   119,  119,  119,  119,    0,    0,    0,    0,  119,    0,
725     0,    0,  119,  119,    0,    0,    0,    0,    0,  119,
726   119,    0,  119,    0,  119,    0,  140,    0,  119,  140,
727   140,  140,  119,    0,    0,  140,    0,  140,    0,    0,
728   140,    0,    0,  140,  140,    0,    0,  140,  121,  140,
729   140,    0,  140,    0,  140,  140,  140,    0,  140,  140,
730     0,  140,  140,  140,    0,    0,  140,    0,    0,    0,
731   140,  140,  140,  140,    0,    0,    0,    0,    0,  140,
732     0,    0,    0,  140,  140,    0,    0,    0,    0,    0,
733   140,  140,    0,  140,    0,  140,    0,  141,    0,  140,
734   141,  141,  141,  140,    0,    0,  141,    0,  141,    0,
735     0,  141,    0,    0,  141,  141,    0,    0,  141,  139,
736   141,  141,    0,  141,    0,  141,  141,  141,    0,  141,
737   141,    0,  141,  141,  141,    0,    0,  141,    0,    0,
738     0,  141,  141,  141,  141,    0,    0,    0,    0,    0,
739   141,    0,    0,    0,  141,  141,    0,    0,    0,    0,
740     0,  141,  141,    0,  141,    0,  141,    0,  120,    0,
741   141,  120,  120,  120,  141,    0,    0,  120,    0,  120,
742     0,    0,  120,    0,    0,  120,  120,    0,    0,  120,
743   145,  120,  120,    0,  120,    0,  120,    0,  120,    0,
744   120,  120,    0,  120,    0,  120,    0,    0,  120,    0,
745     0,    0,  120,  120,  120,  120,    0,    0,    0,    0,
746     0,  120,    0,    0,    0,  120,  120,    0,    0,    0,
747     0,    0,  120,  120,    0,  120,    0,  120,    0,  138,
748     0,  120,  138,  138,  138,  120,    0,    0,  138,    0,
749   138,    0,    0,  138,    0,    0,  138,  138,    0,    0,
750     0,  146,  138,  138,    0,  138,    0,  138,  138,  138,
751     0,  138,  138,    0,  138,    0,  138,    0,    0,  138,
752     0,    0,    0,  138,  138,  138,  138,    0,    0,    0,
753     0,    0,  138,    0,    0,    0,  138,  138,    0,    0,
754     0,    0,    0,  138,  138,    0,  138,    0,  138,    0,
755   121,    0,  138,  121,  121,  121,  138,    0,    0,  121,
756     0,  121,    0,    0,  121,    0,    0,  121,  121,    0,
757     0,  121,  142,  121,  121,    0,  121,    0,  121,    0,
758   121,    0,  121,  121,    0,  121,    0,  121,    0,    0,
759   121,    0,    0,    0,  121,  121,  121,  121,    0,    0,
760     0,    0,    0,  121,    0,    0,    0,  121,  121,    0,
761     0,    0,    0,    0,  121,  121,    0,  121,    0,  121,
762     0,  139,    0,  121,  139,  139,  139,  121,    0,    0,
763   139,    0,  139,    0,    0,  139,    0,    0,  139,  139,
764     0,    0,    0,  143,  139,  139,    0,  139,    0,  139,
765   139,  139,    0,  139,  139,    0,  139,    0,  139,    0,
766     0,  139,    0,    0,    0,  139,  139,  139,  139,    0,
767     0,    0,    0,    0,  139,    0,    0,    0,  139,  139,
768     0,    0,    0,    0,    0,  139,  139,    0,  139,    0,
769   139,    0,  145,    0,  139,  145,  145,    0,  139,    0,
770   144,  145,    0,  145,    0,    0,  145,    0,    0,  145,
771   145,    0,    0,  145,    0,  145,  145,    0,  145,    0,
772   145,    0,  145,    0,    0,  145,    0,  145,    0,  145,
773     0,    0,    0,    0,    0,    0,  145,  145,  145,  145,
774     0,    0,    0,    0,    0,  145,    0,    0,   44,  145,
775   145,    0,    0,    0,    0,    0,  145,  145,    0,  145,
776     0,  145,    0,  146,    0,  145,  146,  146,    0,  145,
777     0,    0,  146,    0,  146,    0,    0,  146,    0,    0,
778   146,  146,    0,    0,  146,    0,  146,  146,    0,  146,
779     0,  146,    0,  146,    0,    0,  146,    0,  146,    0,
780   146,    0,    0,    0,    0,    0,    0,  146,  146,  146,
781   146,    0,    0,    0,    0,    0,  146,    0,    0,    0,
782   146,  146,    0,    0,    0,    0,    0,  146,  146,    0,
783   146,    0,  146,    0,  142,    0,  146,  142,  142,    0,
784   146,    0,    0,  142,    0,  142,    0,    0,  142,    0,
785     0,  142,  142,    0,    0,  142,    0,  142,  142,    0,
786   142,    0,  142,    0,  142,    0,    0,  142,    0,  142,
787     0,  142,    0,    0,    0,    0,    0,    0,  142,  142,
788   142,  142,    0,    0,    0,    0,    0,  142,    0,    0,
789     0,  142,  142,    0,    0,    0,    0,    0,  142,  142,
790     0,  142,    0,  142,    0,  143,    0,  142,  143,  143,
791     0,  142,    0,    0,  143,    0,  143,    0,    0,  143,
792     0,    0,  143,  143,    0,    0,  143,    0,  143,  143,
793     0,  143,    0,  143,    0,  143,    0,    0,  143,    0,
794   143,    0,  143,    0,    0,    0,    0,    0,    0,  143,
795   143,  143,  143,    0,    0,    0,    0,    0,  143,    0,
796     0,    0,  143,  143,    0,  144,  144,    0,    0,  143,
797   143,  144,  143,  144,  143,    0,  144,    0,  143,  144,
798   144,    0,  143,  144,    0,  144,  144,    0,  144,    0,
799   144,    0,  144,    0,    0,  144,    0,  144,    0,  144,
800     0,    0,    0,    0,    0,    0,  144,  144,  144,  144,
801     0,    0,    0,    0,    0,  144,    0,    0,    0,  144,
802   144,   44,    0,    0,    0,    0,  144,  144,    0,  144,
803     0,  144,    0,    0,   44,  144,   44,    0,   44,  144,
804    44,    0,    0,   44,    0,   44,   99,    0,    0,    0,
805     0,    0,    0,    0,    0,   97,   44,   44,  101,  411,
806    98,    0,    0,   44,  412,    0,    0,    0,    0,  413,
807     0,    0,    0,    0,   99,   44,    0,   44,    0,   44,
808     0,    0,    0,   44,  100,    0,  101,  102,  107,    0,
809     0,  103,    0,    0,    0,  104,    0,  108,  109,    0,
810   105,    0,    0,  106,    0,  110,  111,  112,  113,  114,
811   115,  116,  117,  118,  119,  120,  107,    0,   99,    0,
812   238,    0,    0,    0,    0,  108,  109,   97,    0,    0,
813   101,    0,   98,  110,  111,  112,  113,  114,  115,  116,
814   117,  118,  119,  120,    0,    0,   99,  106,    0,    0,
815     0,    0,    0,    0,    0,    0,  100,    0,  101,  102,
816   107,    0,    0,  103,    0,    0,    0,  104,    0,  108,
817   109,    0,  105,    0,    0,  106,    0,  110,  111,  112,
818   113,  114,  115,  116,  117,  118,  119,  120,  107,    0,
819     0,    0,    0,    0,  310,    0,    0,  108,  109,   97,
820   311,    0,    0,    0,   98,  110,  111,  112,  113,  114,
821   115,  116,  117,  118,  119,  120,    0,    0,   99,    0,
822     0,    0,    0,    0,    0,    0,    0,    0,  100,    0,
823   101,  102,    0,    0,    0,  103,    0,    0,    0,  104,
824     0,    0,    0,    0,  105,    0,    0,  106,    0,    0,
825     0,    0,    0,    0,    0,    0,    0,  198,    0,    0,
826   107,    0,    0,    0,    0,    0,    0,    0,    0,  108,
827   109,   97,    0,    0,  202,    0,   98,  110,  111,  112,
828   113,  114,  115,  116,  117,  118,  119,  120,    0,    0,
829    99,    0,    0,    0,    0,    0,    0,    0,    0,   97,
830   100,    0,  101,  102,   98,    0,    0,  103,    0,    0,
831     0,  104,    0,    0,    0,    0,  105,    0,   99,  106,
832     0,    0,    0,    0,    0,    0,    0,    0,  100,    0,
833   101,  102,  107,    0,    0,  103,    0,    0,    0,  104,
834     0,  108,  109,    0,  105,    0,    0,  106,    0,  110,
835   111,  112,  113,  114,  115,  116,  117,  118,  119,  120,
836   107,    0,    0,    0,    0,    0,  203,    0,    0,  108,
837   109,   97,    0,    0,    0,    0,   98,  110,  111,  112,
838   113,  114,  115,  116,  117,  118,  119,  120,    0,    0,
839    99,    0,    0,    0,    0,    0,    0,    0,    0,   97,
840   100,    0,  101,  102,   98,    0,    0,  103,    0,    0,
841     0,  104,    0,    0,    0,    0,  105,    0,   99,  106,
842     0,    0,    0,    0,    0,    0,    0,    0,  100,    0,
843   101,  102,  107,    0,    0,  103,    0,    0,  211,  104,
844     0,  108,  109,    0,  105,    0,    0,  106,    0,  110,
845   111,  112,  113,  114,  115,  116,  117,  118,  119,  120,
846   107,    0,    0,    0,    0,    0,  212,    0,    0,  108,
847   109,   97,    0,  101,  214,    0,   98,  110,  111,  112,
848   113,  114,  115,  116,  117,  118,  119,  120,    0,    0,
849    99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
850   100,    0,  101,  102,    0,    0,    0,  103,    0,    0,
851     0,  104,  108,  109,    0,    0,  105,    0,    0,  106,
852   110,  111,  112,  113,  114,  115,  116,  117,  118,  119,
853   120,    0,  107,    0,    0,    0,    0,    0,    0,    0,
854     0,  108,  109,   97,    0,    0,  218,    0,   98,  110,
855   111,  112,  113,  114,  115,  116,  117,  118,  119,  120,
856     0,    0,   99,    0,    0,    0,    0,    0,    0,    0,
857     0,    0,  100,    0,  101,  102,    0,    0,    0,  103,
858     0,    0,    0,  104,  108,  109,    0,    0,  105,    0,
859     0,  106,  110,  111,  112,  113,  114,  115,  116,  117,
860   118,  119,  120,    0,  107,    0,    0,    0,    0,    0,
861     0,    0,    0,  108,  109,   97,    0,    0,    0,    0,
862    98,  110,  111,  112,  113,  114,  115,  116,  117,  118,
863   119,  120,    0,    0,   99,    0,    0,    0,    0,    0,
864     0,    0,    0,   97,  100,    0,  101,  102,   98,    0,
865     0,  103,    0,    0,    0,  104,    0,    0,    0,    0,
866   105,    0,   99,  106,    0,    0,    0,    0,    0,    0,
867     0,    0,  100,  249,  101,  102,  107,    0,    0,  103,
868     0,    0,    0,  104,    0,  108,  109,    0,  105,    0,
869     0,  106,    0,  110,  111,  112,  113,  114,  115,  116,
870   117,  118,  119,  120,  107,    0,    0,    0,    0,    0,
871   410,    0,    0,  108,  109,   97,    0,    0,    0,    0,
872    98,  110,  111,  112,  113,  114,  115,  116,  117,  118,
873   119,  120,    0,    0,   99,    0,    0,    0,    0,    0,
874     0,    0,    0,   88,  100,    0,  101,  102,   88,    0,
875     0,  103,    0,    0,    0,  104,    0,    0,    0,    0,
876   105,    0,   88,  106,    0,    0,    0,    0,    0,    0,
877     0,    0,   88,    0,   88,   88,  107,    0,    0,   88,
878     0,    0,    0,   88,    0,  108,  109,    0,   88,    0,
879     0,   88,    0,  110,  111,  112,  113,  114,  115,  116,
880   117,  118,  119,  120,   88,    0,    0,    0,    0,    0,
881     0,    0,    0,   88,   88,   90,    0,    0,    0,    0,
882    90,   88,   88,   88,   88,   88,   88,   88,   88,   88,
883    88,   88,    0,    0,   90,    0,    0,    0,    0,    0,
884     0,    0,    0,  148,   90,    0,   90,   90,  148,    0,
885     0,   90,    0,    0,    0,   90,    0,    0,    0,    0,
886    90,    0,  148,   90,    0,    0,    0,    0,    0,    0,
887     0,    0,  148,    0,  148,  148,   90,    0,    0,  148,
888     0,    0,    0,  148,    0,   90,   90,    0,  148,    0,
889     0,  148,    0,   90,   90,   90,   90,   90,   90,   90,
890    90,   90,   90,   90,  148,    0,   99,    0,  291,    0,
891     0,    0,    0,  148,  148,   97,    0,    0,  101,    0,
892    98,  148,  148,  148,  148,  148,  148,  148,  148,  148,
893   148,  148,    0,    0,   99,  106,    0,    0,    0,    0,
894     0,    0,    0,    0,  100,    0,  101,  102,  107,    0,
895     0,  103,    0,    0,    0,  104,    0,  108,  109,    0,
896     0,    0,    0,  106,    0,  110,  111,  112,  113,  114,
897   115,  116,  117,  118,  119,  120,  107,    0,    0,    0,
898     0,    0,    0,    0,    0,  108,  109,    0,    0,    0,
899     0,    0,    0,  110,  111,  112,  113,  114,  115,  116,
900   117,  118,  119,  120,   27,   27,   27,   27,   27,    0,
901    27,    0,    0,    0,    0,    0,   27,   27,    0,    0,
902     0,   27,   27,    0,   27,   27,    0,    0,    0,   27,
903     0,   27,    0,    0,    0,    0,   27,    0,    0,    0,
904     0,    0,    0,   27,    0,    0,    0,   27,   27,   27,
905    27,    0,   27,    0,    0,    0,    0,    0,    0,    0,
906    27,    0,    0,   27,    0,   27,    0,    0,   27,   27,
907     0,    0,   29,    0,    0,    0,    0,    5,    5,    5,
908     5,   27,    0,    5,    0,   27,    0,   27,   27,    5,
909     5,    0,    0,    0,    5,    5,    0,    0,    5,    0,
910     0,    0,    5,    0,    5,    0,    0,    5,    0,    5,
911     0,    0,    0,    0,    0,    0,    5,    0,    0,    0,
912     5,    5,    5,    5,    0,    5,    0,    0,    0,    0,
913     0,    0,    0,    5,    0,    0,    5,    5,    5,    0,
914     0,    0,    5,    0,    0,    0,    0,    0,    0,    0,
915     7,    8,    9,   10,    5,    0,   11,    0,    5,    0,
916     5,    5,   12,   13,    0,    0,    0,   14,   15,    0,
917     0,   16,    0,    0,    0,   17,    0,   18,    0,    0,
918     0,    0,   19,    0,    0,    0,    0,    0,    0,   20,
919     0,    0,    0,   21,   22,   23,   24,    0,   25,    0,
920     0,    0,    0,    0,    0,    0,   26,    0,  108,   27,
921    83,   28,    0,    0,    0,   29,  110,  111,  112,  113,
922   114,    0,    0,  117,  118,  119,  120,   30,    0,    0,
923     0,   31,    0,   32,   33,    7,    8,    9,   10,  176,
924     0,   11,    0,    0,    0,    0,    0,   12,   13,    0,
925     0,    0,   14,   15,    0,    0,   16,    0,    0,    0,
926    17,    0,   18,    0,    0,    0,    0,   19,    0,    0,
927     0,    0,    0,    0,   20,    0,    0,    0,   21,   22,
928    23,   24,    0,   25,    0,    0,    0,    0,    0,    0,
929     0,   26,    0,    0,   27,    0,   28,    0,    0,    0,
930    29,    0,    0,    0,    0,    0,    0,    0,    7,    8,
931     9,   10,   30,    0,   11,    0,   31,    0,   32,   33,
932    12,   13,    0,    0,    0,   14,   15,    0,    0,   16,
933     0,    0,    0,   17,    0,   18,    0,    0,    0,    0,
934    19,    0,    0,    0,    0,    0,    0,   20,    0,    0,
935     0,   21,   22,   23,   24,    0,   25,    0,    0,    0,
936     0,    0,    0,    0,   26,    0,    0,   27,   83,   28,
937     0,    0,    0,   29,    0,    0,    0,    0,    0,    0,
938     0,    7,    8,    9,   10,  221,    0,   11,    0,   31,
939     0,   32,   33,   12,   13,    0,    0,    0,   14,   15,
940     0,    0,   16,    0,    0,    0,   17,    0,   18,    0,
941     0,    0,    0,   19,    0,    0,    0,    0,    0,    0,
942    20,    0,    0,    0,   21,   22,   23,   24,    0,   25,
943     0,    0,    0,    0,    0,    0,    0,   26,    0,    0,
944    27,    0,   28,    0,    0,    0,   29,    0,    0,    0,
945     0,    0,    0,    0,    7,    8,    9,   10,   30,  355,
946    11,    0,   31,    0,   32,   33,   12,   13,    0,    0,
947     0,   14,   15,    0,    0,   16,    0,    0,    0,   17,
948     0,   18,    0,    0,    0,    0,   19,    0,    0,    0,
949     0,    0,    0,   20,    0,    0,    0,   21,   22,   23,
950    24,    0,   25,    0,    0,    0,    0,    0,    0,    0,
951    26,    0,    0,   27,    0,   28,    0,    0,    0,   29,
952     0,    0,    0,    0,    0,    0,    0,   12,   12,   12,
953    12,   30,  358,   12,    0,   31,    0,   32,   33,   12,
954    12,    0,    0,    0,   12,   12,    0,    0,   12,    0,
955     0,    0,   12,    0,   12,    0,    0,    0,    0,   12,
956     0,    0,    0,    0,    0,    0,   12,    0,    0,    0,
957    12,   12,   12,   12,    0,   12,    0,    0,    0,    0,
958     0,    0,    0,   12,    0,    0,   12,   12,   12,    0,
959     0,    0,   12,    0,    0,    0,    0,    0,    0,    0,
960    13,   13,   13,   13,   12,    0,   13,    0,   12,    0,
961    12,   12,   13,   13,    0,    0,    0,   13,   13,    0,
962     0,   13,    0,    0,    0,   13,    0,   13,    0,    0,
963     0,    0,   13,    0,    0,    0,    0,    0,    0,   13,
964     0,    0,    0,   13,   13,   13,   13,    0,   13,    0,
965     0,    0,    0,    0,    0,    0,   13,    0,    0,   13,
966    13,   13,    0,    0,    0,   13,    0,    0,    0,    0,
967     0,    0,    0,   31,   31,   31,   31,   13,    0,   31,
968     0,   13,    0,   13,   13,   31,   31,    0,    0,    0,
969    31,   31,    0,    0,   31,    0,    0,    0,   31,    0,
970    31,    0,    0,    0,    0,   31,    0,    0,    0,    0,
971     0,    0,   31,    0,    0,    0,   31,   31,   31,   31,
972     0,   31,    0,    0,    0,    0,    0,    0,    0,   31,
973     0,    0,   31,   31,   31,    0,    0,    0,   31,    0,
974     0,    0,    0,    0,    0,    0,   31,   31,   31,   31,
975    31,    0,   31,    0,   31,    0,   31,   31,   31,   31,
976     0,    0,    0,   31,   31,    0,    0,   31,    0,    0,
977     0,   31,    0,   31,    0,    0,    0,    0,   31,    0,
978     0,    0,    0,    0,    0,   31,    0,    0,    0,   31,
979    31,   31,   31,    0,   31,    0,    0,    0,    0,    0,
980     0,    0,   31,    0,    0,   31,    0,   31,    0,    0,
981    31,   31,    0,    0,    0,    0,    0,    0,    0,    7,
982     8,    9,   10,   31,    0,   11,    0,   31,    0,   31,
983    31,   12,   13,    0,    0,    0,   14,   15,    0,    0,
984    16,    0,    0,    0,   17,    0,   18,    0,    0,    0,
985     0,   19,    0,    0,    0,    0,    0,    0,   20,    0,
986     0,    0,   21,   22,   23,   24,    0,   25,    0,    0,
987     0,    0,    0,    0,    0,   26,    0,    0,   27,    0,
988    28,    0,    0,    0,   29,    0,    0,    0,    0,    0,
989     0,    0,    7,    8,    9,   10,   30,    0,   11,    0,
990    31,    0,   32,   33,   12,   13,    0,    0,    0,   14,
991    15,    0,    0,   16,    0,    0,    0,   17,    0,   18,
992     0,    0,    0,    0,   19,    0,    0,    0,    0,    0,
993     0,   20,    0,    0,    0,   21,   22,   23,   24,    0,
994    25,    0,    0,    0,    0,    0,    0,    0,   26,    0,
995     0,   27,    0,   28,    0,    0,    0,   29,    0,    0,
996     0,    0,    0,    0,    0,   34,   34,   34,   34,  221,
997     0,   34,    0,   31,    0,   32,   33,   34,   34,    0,
998     0,    0,   34,   34,    0,    0,   34,    0,    0,    0,
999    34,    0,   34,    0,    0,    0,    0,   34,    0,    0,
1000     0,    0,    0,    0,   34,    0,    0,    0,   34,   34,
1001    34,   34,    0,   34,    0,    0,    0,    0,    0,    0,
1002     0,   34,    0,    0,   34,    0,   34,    0,    0,    0,
1003    34,    0,    0,    0,    0,    0,    0,    0,   56,   56,
1004    56,   56,   34,    0,   56,    0,   34,    0,   34,   34,
1005    56,   56,    0,    0,    0,   56,   56,    0,    0,   56,
1006     0,   98,    0,   56,    0,   56,    0,    0,    0,    0,
1007    56,    0,    0,    0,    0,   99,    0,   56,    0,    0,
1008     0,   56,   56,   56,   56,  100,   56,  101,  102,    0,
1009     0,    0,  103,    0,   56,    0,  104,   56,    0,   56,
1010     0,  105,    0,   56,  106,    0,    0,    0,    0,    0,
1011     0,    0,    0,    0,    0,   56,    0,  107,    0,   56,
1012     0,   56,   56,    0,    0,    0,  108,  109,    0,    0,
1013     0,   98,    0,    0,  110,  111,  112,  113,  114,  115,
1014   116,  117,  118,  119,  120,   99,    0,    0,    0,    0,
1015     0,    0,    0,    0,    0,  100,    0,  101,  102,    0,
1016     0,    0,  103,    0,    0,    0,  104,    0,    0,    0,
1017     0,    0,    0,   99,  106,    0,    0,    0,    0,    0,
1018     0,    0,    0,    0,    0,  101,    0,  107,    0,    0,
1019   103,    0,    0,    0,    0,    0,  108,  109,    0,    0,
1020     0,    0,  106,    0,  110,  111,  112,  113,  114,  115,
1021   116,  117,  118,  119,  120,  107,   99,    0,    0,    0,
1022     0,    0,    0,    0,  108,  109,    0,    0,  101,    0,
1023     0,    0,  110,  111,  112,  113,  114,  115,  116,  117,
1024   118,  119,  120,    0,    0,  106,    0,    0,    0,    0,
1025     0,    0,    0,    0,    0,    0,  101,    0,  107,    0,
1026     0,    0,    0,    0,    0,    0,    0,  108,  109,    0,
1027     0,    0,    0,    0,    0,  110,  111,  112,  113,  114,
1028   115,  116,  117,  118,  119,  120,  107,    0,    0,    0,
1029     0,    0,    0,    0,    0,  108,  109,    0,    0,    0,
1030     0,    0,    0,  110,  111,  112,  113,  114,  115,  116,
1031   117,  118,  119,  120,
1032 };
1033 static short [] yycheck = {                          1,
1034   257,  258,  324,  258,   72,  263,   93,  350,   95,   57,
1035     0,  221,  258,   61,  264,  257,  258,  287,   66,   67,
1036    68,   69,  295,   71,  334,   80,    1,    0,  261,  295,
1037     0,   79,    0,   81,  261,  261,  309,  329,    0,  382,
1038   257,  258,  319,  309,  277,  295,  295,  339,   23,  334,
1039   277,  277,  329,   55,  326,  272,   31,   32,   33,  269,
1040   309,  319,  257,  258,  151,    0,  266,  277,  278,  311,
1041     0,  279,  280,  257,  258,    0,  276,  335,  335,  334,
1042   267,    0,    0,    0,    0,  257,  258,   62,  334,   64,
1043    65,  159,  140,  161,    0,    0,  313,   72,   73,  316,
1044     0,    0,  335,   78,  291,   80,  108,   82,  335,  279,
1045   280,  298,  279,  280,  329,  329,  311,  332,  326,  331,
1046   335,  335,   97,   98,   99,  100,  101,  311,  103,  334,
1047   105,  106,  107,  220,  109,  110,  111,  112,  113,  114,
1048   115,  116,  117,  118,  119,  120,  121,  122,  331,  331,
1049   262,  334,  334,  128,  332,  130,  326,  334,  202,  326,
1050   215,  303,  304,  273,  342,  343,  344,  211,  212,  329,
1051   332,  334,    0,  335,  218,  335,  286,  329,  334,  154,
1052   332,  156,  292,  335,  159,  295,  161,  297,  159,  329,
1053   161,  193,  332,  237,    0,  335,  171,  172,  173,  309,
1054   202,  176,  334,  332,  332,  315,  335,  335,  263,  211,
1055   212,  329,  214,  257,  273,  334,  218,  335,  329,  332,
1056   329,  339,  335,  198,  335,  335,  335,  286,  203,  332,
1057   339,  332,  335,  292,  335,  237,  295,  305,  297,  334,
1058   215,  309,  244,  287,  288,  329,  221,  329,  332,  334,
1059   309,  335,  227,  335,  302,  257,  315,  273,  334,  329,
1060   334,    0,  329,  238,  319,  335,  310,  329,  335,  317,
1061   286,  329,  329,  335,  249,  262,  292,  335,  335,  295,
1062   335,  297,  334,  329,  329,  287,  288,  334,  263,  335,
1063   335,  334,  332,  309,  269,  335,  334,  334,  300,  315,
1064   273,  345,  277,  278,  306,  334,  285,  351,  310,  299,
1065   312,  332,  285,  286,  335,  288,  291,  290,  288,  292,
1066   290,  335,  295,  332,  297,  331,  288,  334,  290,  319,
1067   305,  335,  280,  306,  309,  308,  309,  335,  308,  329,
1068   308,  331,  315,  345,  319,  335,  308,  335,  350,  351,
1069   352,    0,  335,  335,  327,  273,  329,  327,  331,  329,
1070   335,  331,  335,  331,  299,  335,  410,  335,  286,  331,
1071   288,  290,  290,  335,  292,  335,  335,  295,  308,  297,
1072   382,  335,  288,  288,  290,  290,  325,  389,  306,  308,
1073   308,  309,  334,  368,  327,  370,  331,  315,  400,  299,
1074   335,  331,  308,  308,  332,  335,  331,  335,  410,  327,
1075   335,  329,  331,  331,  331,  331,  335,  335,  335,  335,
1076   395,  327,  424,  329,  265,  331,  331,  429,  403,  335,
1077   335,  331,  331,  335,  262,  335,  335,  265,  266,  267,
1078   415,  416,    0,  271,  321,  273,  332,  422,  276,  335,
1079   329,  279,  280,  281,  288,  283,  334,  285,  286,  335,
1080   288,  335,  290,  291,  292,  293,  294,  295,  334,  297,
1081   298,  299,  334,  295,  302,  302,  303,  304,  306,  307,
1082   308,  309,  310,  335,  290,  335,  264,  315,  284,  285,
1083   286,  319,  320,  268,  334,  323,  290,  328,  326,  327,
1084   332,  329,  308,  331,  332,  333,  329,  335,  334,  334,
1085   295,  339,  340,  341,  342,  343,  344,  345,  346,  347,
1086   348,  349,  350,  262,  295,  331,  265,  266,  267,  335,
1087   295,    0,  271,  306,  273,  314,  308,  276,  335,  268,
1088   279,  280,  281,  335,  283,  334,  285,  286,  335,  288,
1089   257,  290,  291,  292,  293,  294,  295,  299,  297,  298,
1090   299,  335,    0,  302,  262,  335,  280,  306,  307,  308,
1091   309,  310,  262,  285,  285,    5,  315,    1,    1,   58,
1092   319,  320,  300,  264,  323,  221,  221,  326,  327,  419,
1093   329,  341,  331,  332,  333,  416,  335,  412,  400,   -1,
1094   339,  340,  341,  342,  343,  344,  345,  346,  347,  348,
1095   349,  350,   -1,  262,   -1,   -1,  265,  266,  267,   -1,
1096     0,   -1,  271,   -1,  273,   -1,   -1,  276,   -1,   -1,
1097   279,  280,  281,   -1,  283,   -1,  285,  286,   -1,  288,
1098    -1,  290,  291,  292,  293,  294,  295,   -1,  297,  298,
1099   299,   -1,   -1,  302,   -1,   -1,   -1,  306,  307,  308,
1100   309,  310,   -1,   -1,   -1,   -1,  315,   -1,   -1,   -1,
1101   319,  320,   -1,   -1,  323,   -1,   -1,  326,  327,   -1,
1102   329,   -1,  331,  332,  333,   -1,  335,   -1,   -1,   -1,
1103   339,  340,  341,  342,  343,  344,  345,  346,  347,  348,
1104   349,  350,   -1,   -1,  262,   -1,   -1,  265,  266,  267,
1105     0,   -1,   -1,  271,   -1,  273,   -1,   -1,  276,   -1,
1106    -1,  279,  280,  281,   -1,  283,   -1,  285,  286,   -1,
1107   288,   -1,  290,  291,  292,  293,  294,  295,   -1,  297,
1108   298,  299,   -1,   -1,  302,   -1,   -1,   -1,  306,  307,
1109   308,  309,  310,   -1,   -1,   -1,   -1,  315,   -1,   -1,
1110    -1,  319,  320,   -1,   -1,  323,   -1,   -1,  326,  327,
1111    -1,  329,   -1,  331,  332,  333,   -1,  335,   -1,   -1,
1112    -1,  339,  340,  341,  342,  343,  344,  345,  346,  347,
1113   348,  349,  350,  262,   -1,   -1,  265,  266,  267,    0,
1114    -1,   -1,  271,   -1,  273,   -1,   -1,  276,   -1,   -1,
1115   279,  280,  281,   -1,  283,   -1,  285,  286,   -1,  288,
1116    -1,  290,  291,  292,  293,  294,  295,   -1,  297,  298,
1117   299,   -1,   -1,  302,   -1,   -1,   -1,  306,  307,  308,
1118   309,  310,   -1,   -1,   -1,   -1,  315,   -1,   -1,   -1,
1119   319,  320,   -1,   -1,  323,   -1,   -1,  326,  327,   -1,
1120   329,   -1,  331,   -1,  333,   -1,  335,   -1,   -1,   -1,
1121   339,  340,  341,  342,  343,  344,  345,  346,  347,  348,
1122   349,  350,  262,   -1,   -1,  265,  266,  267,    0,   -1,
1123    -1,  271,   -1,  273,   -1,   -1,  276,   -1,   -1,  279,
1124   280,  281,   -1,  283,   -1,  285,  286,   -1,  288,   -1,
1125   290,  291,  292,  293,  294,  295,   -1,  297,  298,  299,
1126    -1,   -1,  302,   -1,   -1,   -1,  306,  307,  308,  309,
1127   310,   -1,   -1,   -1,   -1,  315,   -1,   -1,   -1,  319,
1128   320,   -1,   -1,  323,   -1,   -1,  326,  327,   -1,  329,
1129    -1,  331,   -1,  333,   -1,  335,   -1,   -1,   -1,  339,
1130   340,  341,  342,  343,  344,  345,  346,  347,  348,  349,
1131   350,   -1,  262,   -1,   -1,  265,  266,  267,    0,   -1,
1132    -1,  271,   -1,  273,   -1,   -1,  276,   -1,   -1,  279,
1133   280,  281,   -1,  283,   -1,  285,  286,   -1,  288,   -1,
1134   290,  291,  292,  293,  294,  295,   -1,  297,  298,  299,
1135    -1,   -1,  302,   -1,   -1,   -1,  306,  307,  308,  309,
1136   310,   -1,   -1,   -1,   -1,  315,   -1,   -1,   -1,  319,
1137   320,   -1,   -1,  323,   -1,   -1,  326,  327,   -1,  329,
1138    -1,  331,   -1,  333,   -1,  335,   -1,   -1,   -1,  339,
1139   340,  341,  342,  343,  344,  345,  346,  347,  348,  349,
1140   350,  262,   -1,   -1,  265,  266,  267,    0,   -1,   -1,
1141   271,   -1,  273,   -1,   -1,  276,   -1,   -1,  279,  280,
1142   281,   -1,  283,   -1,  285,  286,   -1,  288,   -1,  290,
1143   291,  292,  293,  294,  295,   -1,  297,  298,  299,   -1,
1144    -1,  302,   -1,   -1,   -1,  306,  307,  308,  309,  310,
1145    -1,   -1,   -1,   -1,  315,   -1,   -1,   -1,  319,  320,
1146    -1,   -1,  323,   -1,   -1,  326,  327,   -1,  329,   -1,
1147   331,   -1,  333,   -1,  335,   -1,   -1,   -1,  339,  340,
1148   341,  342,  343,  344,  345,  346,  347,  348,  349,  350,
1149   262,   -1,   -1,  265,  266,  267,    0,   -1,   -1,  271,
1150    -1,  273,   -1,   -1,  276,   -1,   -1,  279,  280,  281,
1151    -1,  283,   -1,  285,  286,   -1,  288,   -1,  290,  291,
1152   292,  293,  294,  295,    0,  297,  298,  299,   -1,   -1,
1153   302,   -1,   -1,   -1,  306,  307,  308,  309,  310,   -1,
1154    -1,   -1,   -1,  315,   -1,   -1,   -1,  319,  320,   -1,
1155    -1,  323,   -1,   -1,  326,  327,   -1,  329,   -1,  331,
1156    -1,  333,   -1,  335,   -1,   -1,   -1,  339,  340,  341,
1157   342,  343,  344,  345,  346,  347,  348,  349,  350,   -1,
1158   262,    0,   -1,  265,  266,  267,   -1,   -1,   -1,  271,
1159    -1,  273,   -1,   -1,  276,   -1,   -1,  279,  280,  281,
1160    -1,  283,   -1,  285,  286,   -1,  288,   -1,  290,  291,
1161   292,  293,  294,  295,   -1,  297,  298,  299,   -1,   -1,
1162   302,   -1,   -1,   -1,  306,  307,  308,  309,  310,   -1,
1163    -1,   -1,   -1,  315,   -1,   -1,   -1,  319,  320,   -1,
1164    -1,  323,   -1,   -1,  326,  327,   -1,  329,   -1,  331,
1165    -1,  333,   -1,  335,   -1,   -1,   -1,  339,  340,  341,
1166    -1,   -1,   -1,  345,  346,  347,  348,  349,  350,  262,
1167     0,   -1,  265,  266,  267,   -1,   -1,   -1,  271,   -1,
1168   273,   -1,   -1,  276,   -1,   -1,  279,  280,  281,   -1,
1169   283,   -1,  285,  286,   -1,  288,   -1,  290,  291,  292,
1170   293,  294,  295,   -1,  297,  298,  299,   -1,   -1,  302,
1171    -1,   -1,   -1,  306,  307,  308,  309,  310,   -1,   -1,
1172    -1,   -1,  315,   -1,   -1,   -1,  319,  320,   -1,   -1,
1173   323,   -1,   -1,  326,  327,   -1,  329,   -1,  331,   -1,
1174   333,   -1,  335,   -1,   -1,   -1,  339,  340,  341,   -1,
1175    -1,   -1,  345,  346,  347,  348,  349,  350,  262,    0,
1176    -1,  265,  266,  267,   -1,   -1,   -1,  271,   -1,  273,
1177    -1,   -1,  276,   -1,   -1,  279,  280,  281,   -1,  283,
1178    -1,  285,  286,   -1,  288,   -1,  290,  291,  292,  293,
1179   294,  295,   -1,  297,  298,  299,   -1,   -1,  302,   -1,
1180    -1,   -1,  306,  307,  308,  309,  310,   -1,   -1,   -1,
1181    -1,  315,  288,   -1,  290,  319,  320,   -1,   -1,  323,
1182    -1,   -1,  326,  327,   -1,  329,   -1,  331,   -1,  333,
1183    -1,  335,  308,   -1,   -1,  339,   -1,   -1,   -1,   -1,
1184    -1,  345,  346,  262,   -1,   -1,  265,  266,  267,    0,
1185    -1,  327,  271,   -1,  273,  331,   -1,  276,   -1,  335,
1186   279,  280,  281,   -1,  283,   -1,  285,  286,   -1,  288,
1187    -1,  290,  291,  292,  293,  294,  295,   -1,  297,  298,
1188   299,   -1,   -1,  302,   -1,   -1,   -1,  306,  307,  308,
1189   309,  310,   -1,   -1,   -1,   -1,  315,   -1,   -1,   -1,
1190   319,  320,   -1,   -1,  323,   -1,  273,  326,  327,   -1,
1191   329,   -1,  331,   -1,  333,    0,  335,   -1,   -1,  286,
1192   339,   -1,   -1,   -1,   -1,  292,  345,  346,  295,   -1,
1193   297,   -1,  262,   -1,   -1,  265,  266,  267,   -1,   -1,
1194    -1,  271,  309,  273,   -1,   -1,  276,   -1,  315,  279,
1195   280,  281,   -1,  283,   -1,  285,  286,   -1,  288,   -1,
1196   290,  291,  292,  293,  294,  295,   -1,  297,  298,  299,
1197    -1,   -1,  302,   -1,   -1,   -1,  306,  307,  308,  309,
1198   310,   -1,   -1,   -1,   -1,  315,    0,   -1,   -1,  319,
1199   320,   -1,   -1,  323,   -1,   -1,  326,  327,   -1,  329,
1200    -1,  331,   -1,  333,   -1,  335,   -1,   -1,   -1,  339,
1201    -1,   -1,   -1,   -1,   -1,  345,  346,   -1,   -1,   -1,
1202    -1,  262,   -1,   -1,  265,  266,  267,   -1,   -1,   -1,
1203   271,   -1,  273,   -1,   -1,  276,   -1,   -1,  279,  280,
1204   281,   -1,  283,   -1,  285,  286,   -1,  288,   -1,  290,
1205   291,  292,  293,  294,  295,   -1,  297,  298,  299,   -1,
1206    -1,  302,    0,   -1,   -1,  306,  307,  308,  309,  310,
1207    -1,   -1,   -1,   -1,  315,   -1,   -1,   -1,  319,  320,
1208    -1,   -1,  323,   -1,   -1,  326,  327,   -1,  329,   -1,
1209   331,   -1,  333,   -1,  335,   -1,   -1,   -1,  339,   -1,
1210    -1,   -1,   -1,   -1,  345,  346,  257,  258,  259,  260,
1211    -1,   -1,  263,   -1,   -1,   -1,   -1,   -1,  269,  270,
1212    -1,   -1,   -1,  274,  275,   -1,   -1,  278,   -1,   -1,
1213    -1,  282,  332,  284,   -1,   -1,  287,    0,  289,   -1,
1214   340,  341,  342,  343,  344,  296,   -1,   -1,   -1,  300,
1215   301,  302,  303,   -1,  305,   -1,   -1,   -1,   -1,   -1,
1216    -1,   -1,  313,   -1,   -1,  316,  317,  318,   -1,   -1,
1217    -1,  322,   -1,   -1,   -1,   -1,   -1,  262,   -1,   -1,
1218   265,  266,  267,  334,   -1,   -1,  271,  338,  273,  340,
1219   341,  276,   -1,   -1,  279,  280,  281,   -1,  283,   -1,
1220   285,  286,   -1,  288,   -1,  290,  291,  292,  293,  294,
1221   295,   -1,  297,  298,  299,    0,   -1,  302,   -1,   -1,
1222    -1,  306,  307,  308,  309,  310,   -1,   -1,   -1,   -1,
1223   315,   -1,   -1,   -1,  319,  320,   -1,   -1,  323,   -1,
1224    -1,  326,  327,   -1,  329,   -1,  331,   -1,  262,   -1,
1225   335,  265,  266,  267,  339,   -1,   -1,  271,   -1,  273,
1226    -1,   -1,  276,   -1,   -1,  279,  280,  281,   -1,  283,
1227    -1,  285,  286,   -1,  288,   -1,  290,  291,  292,  293,
1228   294,  295,   -1,  297,  298,  299,    0,   -1,  302,   -1,
1229    -1,   -1,  306,  307,  308,  309,  310,   -1,   -1,   -1,
1230    -1,  315,   -1,   -1,   -1,  319,  320,   -1,   -1,  323,
1231    -1,   -1,  326,  327,   -1,  329,   -1,  331,   -1,   -1,
1232    -1,  335,   -1,   -1,  262,  339,   -1,  265,  266,  267,
1233    -1,   -1,   -1,  271,   -1,  273,   -1,   -1,  276,   -1,
1234    -1,  279,  280,  281,   -1,  283,   -1,  285,  286,   -1,
1235   288,   -1,  290,  291,  292,  293,  294,  295,   -1,  297,
1236   298,  299,    0,   -1,  302,   -1,   -1,   -1,  306,  307,
1237   308,  309,  310,   -1,   -1,   -1,   -1,  315,   -1,   -1,
1238    -1,  319,  320,   -1,   -1,  323,   -1,   -1,  326,  327,
1239    -1,  329,   -1,  331,   -1,   -1,   -1,  335,   -1,  262,
1240    -1,  339,  265,  266,  267,   -1,   -1,   -1,  271,   -1,
1241   273,   -1,   -1,  276,   -1,   -1,  279,  280,  281,   -1,
1242   283,   -1,  285,  286,   -1,  288,   -1,  290,  291,  292,
1243   293,  294,  295,    0,  297,  298,  299,   -1,   -1,  302,
1244    -1,   -1,   -1,  306,  307,  308,  309,  310,   -1,   -1,
1245    -1,   -1,  315,   -1,   -1,   -1,  319,  320,   -1,   -1,
1246   323,   -1,   -1,  326,  327,   -1,  329,   -1,  331,   -1,
1247    -1,   -1,  335,   -1,   -1,   -1,  339,  262,   -1,   -1,
1248   265,  266,  267,   -1,   -1,   -1,  271,   -1,  273,   -1,
1249    -1,  276,   -1,   -1,  279,  280,  281,   -1,  283,   -1,
1250   285,  286,   -1,  288,    0,  290,  291,  292,   -1,  294,
1251   295,   -1,  297,  298,  299,   -1,   -1,  302,   -1,   -1,
1252    -1,  306,  307,  308,  309,  310,   -1,   -1,   -1,   -1,
1253   315,   -1,   -1,   -1,  319,  320,   -1,   -1,  323,   -1,
1254    -1,  326,  327,   -1,  329,   -1,  331,   -1,  262,   -1,
1255   335,  265,  266,  267,  339,   -1,   -1,  271,   -1,  273,
1256    -1,   -1,  276,   -1,   -1,  279,  280,  281,   -1,  283,
1257    -1,  285,  286,   -1,  288,    0,  290,  291,  292,   -1,
1258   294,  295,   -1,  297,  298,  299,   -1,   -1,  302,   -1,
1259    -1,   -1,  306,  307,  308,  309,  310,   -1,   -1,   -1,
1260    -1,  315,   -1,   -1,   -1,  319,  320,   -1,   -1,  323,
1261    -1,   -1,  326,  327,   -1,  329,   -1,  331,   -1,   -1,
1262    -1,  335,   -1,   -1,  262,  339,   -1,  265,  266,  267,
1263    -1,   -1,   -1,  271,   -1,  273,   -1,   -1,  276,   -1,
1264    -1,  279,  280,  281,   -1,  283,    0,  285,  286,   -1,
1265   288,   -1,  290,  291,  292,   -1,  294,  295,   -1,  297,
1266   298,  299,   -1,   -1,  302,   -1,   -1,   -1,  306,  307,
1267   308,  309,  310,   -1,   -1,   -1,   -1,  315,   -1,   -1,
1268    -1,  319,  320,   -1,   -1,   -1,   -1,   -1,  326,  327,
1269    -1,  329,   -1,  331,   -1,  262,   -1,  335,  265,  266,
1270   267,  339,   -1,   -1,  271,   -1,  273,   -1,   -1,  276,
1271    -1,   -1,  279,  280,   -1,   -1,  283,    0,  285,  286,
1272    -1,  288,   -1,  290,  291,  292,   -1,  294,  295,   -1,
1273   297,  298,  299,   -1,   -1,  302,   -1,   -1,   -1,  306,
1274   307,  308,  309,  310,   -1,   -1,   -1,   -1,  315,   -1,
1275    -1,   -1,  319,  320,   -1,   -1,   -1,   -1,   -1,  326,
1276   327,   -1,  329,   -1,  331,   -1,  262,   -1,  335,  265,
1277   266,  267,  339,   -1,   -1,  271,   -1,  273,   -1,   -1,
1278   276,   -1,   -1,  279,  280,   -1,   -1,  283,    0,  285,
1279   286,   -1,  288,   -1,  290,  291,  292,   -1,  294,  295,
1280    -1,  297,  298,  299,   -1,   -1,  302,   -1,   -1,   -1,
1281   306,  307,  308,  309,   -1,   -1,   -1,   -1,   -1,  315,
1282    -1,   -1,   -1,  319,  320,   -1,   -1,   -1,   -1,   -1,
1283   326,  327,   -1,  329,   -1,  331,   -1,  262,   -1,  335,
1284   265,  266,  267,  339,   -1,   -1,  271,   -1,  273,   -1,
1285    -1,  276,   -1,   -1,  279,  280,   -1,   -1,  283,    0,
1286   285,  286,   -1,  288,   -1,  290,  291,  292,   -1,  294,
1287   295,   -1,  297,  298,  299,   -1,   -1,  302,   -1,   -1,
1288    -1,  306,  307,  308,  309,   -1,   -1,   -1,   -1,   -1,
1289   315,   -1,   -1,   -1,  319,  320,   -1,   -1,   -1,   -1,
1290    -1,  326,  327,   -1,  329,   -1,  331,   -1,  262,   -1,
1291   335,  265,  266,  267,  339,   -1,   -1,  271,   -1,  273,
1292    -1,   -1,  276,   -1,   -1,  279,  280,   -1,   -1,  283,
1293     0,  285,  286,   -1,  288,   -1,  290,   -1,  292,   -1,
1294   294,  295,   -1,  297,   -1,  299,   -1,   -1,  302,   -1,
1295    -1,   -1,  306,  307,  308,  309,   -1,   -1,   -1,   -1,
1296    -1,  315,   -1,   -1,   -1,  319,  320,   -1,   -1,   -1,
1297    -1,   -1,  326,  327,   -1,  329,   -1,  331,   -1,  262,
1298    -1,  335,  265,  266,  267,  339,   -1,   -1,  271,   -1,
1299   273,   -1,   -1,  276,   -1,   -1,  279,  280,   -1,   -1,
1300    -1,    0,  285,  286,   -1,  288,   -1,  290,  291,  292,
1301    -1,  294,  295,   -1,  297,   -1,  299,   -1,   -1,  302,
1302    -1,   -1,   -1,  306,  307,  308,  309,   -1,   -1,   -1,
1303    -1,   -1,  315,   -1,   -1,   -1,  319,  320,   -1,   -1,
1304    -1,   -1,   -1,  326,  327,   -1,  329,   -1,  331,   -1,
1305   262,   -1,  335,  265,  266,  267,  339,   -1,   -1,  271,
1306    -1,  273,   -1,   -1,  276,   -1,   -1,  279,  280,   -1,
1307    -1,  283,    0,  285,  286,   -1,  288,   -1,  290,   -1,
1308   292,   -1,  294,  295,   -1,  297,   -1,  299,   -1,   -1,
1309   302,   -1,   -1,   -1,  306,  307,  308,  309,   -1,   -1,
1310    -1,   -1,   -1,  315,   -1,   -1,   -1,  319,  320,   -1,
1311    -1,   -1,   -1,   -1,  326,  327,   -1,  329,   -1,  331,
1312    -1,  262,   -1,  335,  265,  266,  267,  339,   -1,   -1,
1313   271,   -1,  273,   -1,   -1,  276,   -1,   -1,  279,  280,
1314    -1,   -1,   -1,    0,  285,  286,   -1,  288,   -1,  290,
1315   291,  292,   -1,  294,  295,   -1,  297,   -1,  299,   -1,
1316    -1,  302,   -1,   -1,   -1,  306,  307,  308,  309,   -1,
1317    -1,   -1,   -1,   -1,  315,   -1,   -1,   -1,  319,  320,
1318    -1,   -1,   -1,   -1,   -1,  326,  327,   -1,  329,   -1,
1319   331,   -1,  262,   -1,  335,  265,  266,   -1,  339,   -1,
1320     0,  271,   -1,  273,   -1,   -1,  276,   -1,   -1,  279,
1321   280,   -1,   -1,  283,   -1,  285,  286,   -1,  288,   -1,
1322   290,   -1,  292,   -1,   -1,  295,   -1,  297,   -1,  299,
1323    -1,   -1,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
1324    -1,   -1,   -1,   -1,   -1,  315,   -1,   -1,    0,  319,
1325   320,   -1,   -1,   -1,   -1,   -1,  326,  327,   -1,  329,
1326    -1,  331,   -1,  262,   -1,  335,  265,  266,   -1,  339,
1327    -1,   -1,  271,   -1,  273,   -1,   -1,  276,   -1,   -1,
1328   279,  280,   -1,   -1,  283,   -1,  285,  286,   -1,  288,
1329    -1,  290,   -1,  292,   -1,   -1,  295,   -1,  297,   -1,
1330   299,   -1,   -1,   -1,   -1,   -1,   -1,  306,  307,  308,
1331   309,   -1,   -1,   -1,   -1,   -1,  315,   -1,   -1,   -1,
1332   319,  320,   -1,   -1,   -1,   -1,   -1,  326,  327,   -1,
1333   329,   -1,  331,   -1,  262,   -1,  335,  265,  266,   -1,
1334   339,   -1,   -1,  271,   -1,  273,   -1,   -1,  276,   -1,
1335    -1,  279,  280,   -1,   -1,  283,   -1,  285,  286,   -1,
1336   288,   -1,  290,   -1,  292,   -1,   -1,  295,   -1,  297,
1337    -1,  299,   -1,   -1,   -1,   -1,   -1,   -1,  306,  307,
1338   308,  309,   -1,   -1,   -1,   -1,   -1,  315,   -1,   -1,
1339    -1,  319,  320,   -1,   -1,   -1,   -1,   -1,  326,  327,
1340    -1,  329,   -1,  331,   -1,  262,   -1,  335,  265,  266,
1341    -1,  339,   -1,   -1,  271,   -1,  273,   -1,   -1,  276,
1342    -1,   -1,  279,  280,   -1,   -1,  283,   -1,  285,  286,
1343    -1,  288,   -1,  290,   -1,  292,   -1,   -1,  295,   -1,
1344   297,   -1,  299,   -1,   -1,   -1,   -1,   -1,   -1,  306,
1345   307,  308,  309,   -1,   -1,   -1,   -1,   -1,  315,   -1,
1346    -1,   -1,  319,  320,   -1,  265,  266,   -1,   -1,  326,
1347   327,  271,  329,  273,  331,   -1,  276,   -1,  335,  279,
1348   280,   -1,  339,  283,   -1,  285,  286,   -1,  288,   -1,
1349   290,   -1,  292,   -1,   -1,  295,   -1,  297,   -1,  299,
1350    -1,   -1,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
1351    -1,   -1,   -1,   -1,   -1,  315,   -1,   -1,   -1,  319,
1352   320,  273,   -1,   -1,   -1,   -1,  326,  327,   -1,  329,
1353    -1,  331,   -1,   -1,  286,  335,  288,   -1,  290,  339,
1354   292,   -1,   -1,  295,   -1,  297,  281,   -1,   -1,   -1,
1355    -1,   -1,   -1,   -1,   -1,  262,  308,  309,  293,  266,
1356   267,   -1,   -1,  315,  271,   -1,   -1,   -1,   -1,  276,
1357    -1,   -1,   -1,   -1,  281,  327,   -1,  329,   -1,  331,
1358    -1,   -1,   -1,  335,  291,   -1,  293,  294,  323,   -1,
1359    -1,  298,   -1,   -1,   -1,  302,   -1,  332,  333,   -1,
1360   307,   -1,   -1,  310,   -1,  340,  341,  342,  343,  344,
1361   345,  346,  347,  348,  349,  350,  323,   -1,  281,   -1,
1362   283,   -1,   -1,   -1,   -1,  332,  333,  262,   -1,   -1,
1363   293,   -1,  267,  340,  341,  342,  343,  344,  345,  346,
1364   347,  348,  349,  350,   -1,   -1,  281,  310,   -1,   -1,
1365    -1,   -1,   -1,   -1,   -1,   -1,  291,   -1,  293,  294,
1366   323,   -1,   -1,  298,   -1,   -1,   -1,  302,   -1,  332,
1367   333,   -1,  307,   -1,   -1,  310,   -1,  340,  341,  342,
1368   343,  344,  345,  346,  347,  348,  349,  350,  323,   -1,
1369    -1,   -1,   -1,   -1,  329,   -1,   -1,  332,  333,  262,
1370   335,   -1,   -1,   -1,  267,  340,  341,  342,  343,  344,
1371   345,  346,  347,  348,  349,  350,   -1,   -1,  281,   -1,
1372    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  291,   -1,
1373   293,  294,   -1,   -1,   -1,  298,   -1,   -1,   -1,  302,
1374    -1,   -1,   -1,   -1,  307,   -1,   -1,  310,   -1,   -1,
1375    -1,   -1,   -1,   -1,   -1,   -1,   -1,  320,   -1,   -1,
1376   323,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  332,
1377   333,  262,   -1,   -1,  265,   -1,  267,  340,  341,  342,
1378   343,  344,  345,  346,  347,  348,  349,  350,   -1,   -1,
1379   281,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  262,
1380   291,   -1,  293,  294,  267,   -1,   -1,  298,   -1,   -1,
1381    -1,  302,   -1,   -1,   -1,   -1,  307,   -1,  281,  310,
1382    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  291,   -1,
1383   293,  294,  323,   -1,   -1,  298,   -1,   -1,   -1,  302,
1384    -1,  332,  333,   -1,  307,   -1,   -1,  310,   -1,  340,
1385   341,  342,  343,  344,  345,  346,  347,  348,  349,  350,
1386   323,   -1,   -1,   -1,   -1,   -1,  329,   -1,   -1,  332,
1387   333,  262,   -1,   -1,   -1,   -1,  267,  340,  341,  342,
1388   343,  344,  345,  346,  347,  348,  349,  350,   -1,   -1,
1389   281,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  262,
1390   291,   -1,  293,  294,  267,   -1,   -1,  298,   -1,   -1,
1391    -1,  302,   -1,   -1,   -1,   -1,  307,   -1,  281,  310,
1392    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  291,   -1,
1393   293,  294,  323,   -1,   -1,  298,   -1,   -1,  329,  302,
1394    -1,  332,  333,   -1,  307,   -1,   -1,  310,   -1,  340,
1395   341,  342,  343,  344,  345,  346,  347,  348,  349,  350,
1396   323,   -1,   -1,   -1,   -1,   -1,  329,   -1,   -1,  332,
1397   333,  262,   -1,  293,  265,   -1,  267,  340,  341,  342,
1398   343,  344,  345,  346,  347,  348,  349,  350,   -1,   -1,
1399   281,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1400   291,   -1,  293,  294,   -1,   -1,   -1,  298,   -1,   -1,
1401    -1,  302,  332,  333,   -1,   -1,  307,   -1,   -1,  310,
1402   340,  341,  342,  343,  344,  345,  346,  347,  348,  349,
1403   350,   -1,  323,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1404    -1,  332,  333,  262,   -1,   -1,  265,   -1,  267,  340,
1405   341,  342,  343,  344,  345,  346,  347,  348,  349,  350,
1406    -1,   -1,  281,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1407    -1,   -1,  291,   -1,  293,  294,   -1,   -1,   -1,  298,
1408    -1,   -1,   -1,  302,  332,  333,   -1,   -1,  307,   -1,
1409    -1,  310,  340,  341,  342,  343,  344,  345,  346,  347,
1410   348,  349,  350,   -1,  323,   -1,   -1,   -1,   -1,   -1,
1411    -1,   -1,   -1,  332,  333,  262,   -1,   -1,   -1,   -1,
1412   267,  340,  341,  342,  343,  344,  345,  346,  347,  348,
1413   349,  350,   -1,   -1,  281,   -1,   -1,   -1,   -1,   -1,
1414    -1,   -1,   -1,  262,  291,   -1,  293,  294,  267,   -1,
1415    -1,  298,   -1,   -1,   -1,  302,   -1,   -1,   -1,   -1,
1416   307,   -1,  281,  310,   -1,   -1,   -1,   -1,   -1,   -1,
1417    -1,   -1,  291,  320,  293,  294,  323,   -1,   -1,  298,
1418    -1,   -1,   -1,  302,   -1,  332,  333,   -1,  307,   -1,
1419    -1,  310,   -1,  340,  341,  342,  343,  344,  345,  346,
1420   347,  348,  349,  350,  323,   -1,   -1,   -1,   -1,   -1,
1421   329,   -1,   -1,  332,  333,  262,   -1,   -1,   -1,   -1,
1422   267,  340,  341,  342,  343,  344,  345,  346,  347,  348,
1423   349,  350,   -1,   -1,  281,   -1,   -1,   -1,   -1,   -1,
1424    -1,   -1,   -1,  262,  291,   -1,  293,  294,  267,   -1,
1425    -1,  298,   -1,   -1,   -1,  302,   -1,   -1,   -1,   -1,
1426   307,   -1,  281,  310,   -1,   -1,   -1,   -1,   -1,   -1,
1427    -1,   -1,  291,   -1,  293,  294,  323,   -1,   -1,  298,
1428    -1,   -1,   -1,  302,   -1,  332,  333,   -1,  307,   -1,
1429    -1,  310,   -1,  340,  341,  342,  343,  344,  345,  346,
1430   347,  348,  349,  350,  323,   -1,   -1,   -1,   -1,   -1,
1431    -1,   -1,   -1,  332,  333,  262,   -1,   -1,   -1,   -1,
1432   267,  340,  341,  342,  343,  344,  345,  346,  347,  348,
1433   349,  350,   -1,   -1,  281,   -1,   -1,   -1,   -1,   -1,
1434    -1,   -1,   -1,  262,  291,   -1,  293,  294,  267,   -1,
1435    -1,  298,   -1,   -1,   -1,  302,   -1,   -1,   -1,   -1,
1436   307,   -1,  281,  310,   -1,   -1,   -1,   -1,   -1,   -1,
1437    -1,   -1,  291,   -1,  293,  294,  323,   -1,   -1,  298,
1438    -1,   -1,   -1,  302,   -1,  332,  333,   -1,  307,   -1,
1439    -1,  310,   -1,  340,  341,  342,  343,  344,  345,  346,
1440   347,  348,  349,  350,  323,   -1,  281,   -1,  283,   -1,
1441    -1,   -1,   -1,  332,  333,  262,   -1,   -1,  293,   -1,
1442   267,  340,  341,  342,  343,  344,  345,  346,  347,  348,
1443   349,  350,   -1,   -1,  281,  310,   -1,   -1,   -1,   -1,
1444    -1,   -1,   -1,   -1,  291,   -1,  293,  294,  323,   -1,
1445    -1,  298,   -1,   -1,   -1,  302,   -1,  332,  333,   -1,
1446    -1,   -1,   -1,  310,   -1,  340,  341,  342,  343,  344,
1447   345,  346,  347,  348,  349,  350,  323,   -1,   -1,   -1,
1448    -1,   -1,   -1,   -1,   -1,  332,  333,   -1,   -1,   -1,
1449    -1,   -1,   -1,  340,  341,  342,  343,  344,  345,  346,
1450   347,  348,  349,  350,  257,  258,  259,  260,  261,   -1,
1451   263,   -1,   -1,   -1,   -1,   -1,  269,  270,   -1,   -1,
1452    -1,  274,  275,   -1,  277,  278,   -1,   -1,   -1,  282,
1453    -1,  284,   -1,   -1,   -1,   -1,  289,   -1,   -1,   -1,
1454    -1,   -1,   -1,  296,   -1,   -1,   -1,  300,  301,  302,
1455   303,   -1,  305,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1456   313,   -1,   -1,  316,   -1,  318,   -1,   -1,  321,  322,
1457    -1,   -1,  325,   -1,   -1,   -1,   -1,  257,  258,  259,
1458   260,  334,   -1,  263,   -1,  338,   -1,  340,  341,  269,
1459   270,   -1,   -1,   -1,  274,  275,   -1,   -1,  278,   -1,
1460    -1,   -1,  282,   -1,  284,   -1,   -1,  287,   -1,  289,
1461    -1,   -1,   -1,   -1,   -1,   -1,  296,   -1,   -1,   -1,
1462   300,  301,  302,  303,   -1,  305,   -1,   -1,   -1,   -1,
1463    -1,   -1,   -1,  313,   -1,   -1,  316,  317,  318,   -1,
1464    -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1465   257,  258,  259,  260,  334,   -1,  263,   -1,  338,   -1,
1466   340,  341,  269,  270,   -1,   -1,   -1,  274,  275,   -1,
1467    -1,  278,   -1,   -1,   -1,  282,   -1,  284,   -1,   -1,
1468    -1,   -1,  289,   -1,   -1,   -1,   -1,   -1,   -1,  296,
1469    -1,   -1,   -1,  300,  301,  302,  303,   -1,  305,   -1,
1470    -1,   -1,   -1,   -1,   -1,   -1,  313,   -1,  332,  316,
1471   317,  318,   -1,   -1,   -1,  322,  340,  341,  342,  343,
1472   344,   -1,   -1,  347,  348,  349,  350,  334,   -1,   -1,
1473    -1,  338,   -1,  340,  341,  257,  258,  259,  260,  261,
1474    -1,  263,   -1,   -1,   -1,   -1,   -1,  269,  270,   -1,
1475    -1,   -1,  274,  275,   -1,   -1,  278,   -1,   -1,   -1,
1476   282,   -1,  284,   -1,   -1,   -1,   -1,  289,   -1,   -1,
1477    -1,   -1,   -1,   -1,  296,   -1,   -1,   -1,  300,  301,
1478   302,  303,   -1,  305,   -1,   -1,   -1,   -1,   -1,   -1,
1479    -1,  313,   -1,   -1,  316,   -1,  318,   -1,   -1,   -1,
1480   322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
1481   259,  260,  334,   -1,  263,   -1,  338,   -1,  340,  341,
1482   269,  270,   -1,   -1,   -1,  274,  275,   -1,   -1,  278,
1483    -1,   -1,   -1,  282,   -1,  284,   -1,   -1,   -1,   -1,
1484   289,   -1,   -1,   -1,   -1,   -1,   -1,  296,   -1,   -1,
1485    -1,  300,  301,  302,  303,   -1,  305,   -1,   -1,   -1,
1486    -1,   -1,   -1,   -1,  313,   -1,   -1,  316,  317,  318,
1487    -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,
1488    -1,  257,  258,  259,  260,  334,   -1,  263,   -1,  338,
1489    -1,  340,  341,  269,  270,   -1,   -1,   -1,  274,  275,
1490    -1,   -1,  278,   -1,   -1,   -1,  282,   -1,  284,   -1,
1491    -1,   -1,   -1,  289,   -1,   -1,   -1,   -1,   -1,   -1,
1492   296,   -1,   -1,   -1,  300,  301,  302,  303,   -1,  305,
1493    -1,   -1,   -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,
1494   316,   -1,  318,   -1,   -1,   -1,  322,   -1,   -1,   -1,
1495    -1,   -1,   -1,   -1,  257,  258,  259,  260,  334,  335,
1496   263,   -1,  338,   -1,  340,  341,  269,  270,   -1,   -1,
1497    -1,  274,  275,   -1,   -1,  278,   -1,   -1,   -1,  282,
1498    -1,  284,   -1,   -1,   -1,   -1,  289,   -1,   -1,   -1,
1499    -1,   -1,   -1,  296,   -1,   -1,   -1,  300,  301,  302,
1500   303,   -1,  305,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1501   313,   -1,   -1,  316,   -1,  318,   -1,   -1,   -1,  322,
1502    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
1503   260,  334,  335,  263,   -1,  338,   -1,  340,  341,  269,
1504   270,   -1,   -1,   -1,  274,  275,   -1,   -1,  278,   -1,
1505    -1,   -1,  282,   -1,  284,   -1,   -1,   -1,   -1,  289,
1506    -1,   -1,   -1,   -1,   -1,   -1,  296,   -1,   -1,   -1,
1507   300,  301,  302,  303,   -1,  305,   -1,   -1,   -1,   -1,
1508    -1,   -1,   -1,  313,   -1,   -1,  316,  317,  318,   -1,
1509    -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1510   257,  258,  259,  260,  334,   -1,  263,   -1,  338,   -1,
1511   340,  341,  269,  270,   -1,   -1,   -1,  274,  275,   -1,
1512    -1,  278,   -1,   -1,   -1,  282,   -1,  284,   -1,   -1,
1513    -1,   -1,  289,   -1,   -1,   -1,   -1,   -1,   -1,  296,
1514    -1,   -1,   -1,  300,  301,  302,  303,   -1,  305,   -1,
1515    -1,   -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,  316,
1516   317,  318,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,
1517    -1,   -1,   -1,  257,  258,  259,  260,  334,   -1,  263,
1518    -1,  338,   -1,  340,  341,  269,  270,   -1,   -1,   -1,
1519   274,  275,   -1,   -1,  278,   -1,   -1,   -1,  282,   -1,
1520   284,   -1,   -1,   -1,   -1,  289,   -1,   -1,   -1,   -1,
1521    -1,   -1,  296,   -1,   -1,   -1,  300,  301,  302,  303,
1522    -1,  305,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  313,
1523    -1,   -1,  316,  317,  318,   -1,   -1,   -1,  322,   -1,
1524    -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
1525   334,   -1,  263,   -1,  338,   -1,  340,  341,  269,  270,
1526    -1,   -1,   -1,  274,  275,   -1,   -1,  278,   -1,   -1,
1527    -1,  282,   -1,  284,   -1,   -1,   -1,   -1,  289,   -1,
1528    -1,   -1,   -1,   -1,   -1,  296,   -1,   -1,   -1,  300,
1529   301,  302,  303,   -1,  305,   -1,   -1,   -1,   -1,   -1,
1530    -1,   -1,  313,   -1,   -1,  316,   -1,  318,   -1,   -1,
1531   321,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
1532   258,  259,  260,  334,   -1,  263,   -1,  338,   -1,  340,
1533   341,  269,  270,   -1,   -1,   -1,  274,  275,   -1,   -1,
1534   278,   -1,   -1,   -1,  282,   -1,  284,   -1,   -1,   -1,
1535    -1,  289,   -1,   -1,   -1,   -1,   -1,   -1,  296,   -1,
1536    -1,   -1,  300,  301,  302,  303,   -1,  305,   -1,   -1,
1537    -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,  316,   -1,
1538   318,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
1539    -1,   -1,  257,  258,  259,  260,  334,   -1,  263,   -1,
1540   338,   -1,  340,  341,  269,  270,   -1,   -1,   -1,  274,
1541   275,   -1,   -1,  278,   -1,   -1,   -1,  282,   -1,  284,
1542    -1,   -1,   -1,   -1,  289,   -1,   -1,   -1,   -1,   -1,
1543    -1,  296,   -1,   -1,   -1,  300,  301,  302,  303,   -1,
1544   305,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  313,   -1,
1545    -1,  316,   -1,  318,   -1,   -1,   -1,  322,   -1,   -1,
1546    -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,  334,
1547    -1,  263,   -1,  338,   -1,  340,  341,  269,  270,   -1,
1548    -1,   -1,  274,  275,   -1,   -1,  278,   -1,   -1,   -1,
1549   282,   -1,  284,   -1,   -1,   -1,   -1,  289,   -1,   -1,
1550    -1,   -1,   -1,   -1,  296,   -1,   -1,   -1,  300,  301,
1551   302,  303,   -1,  305,   -1,   -1,   -1,   -1,   -1,   -1,
1552    -1,  313,   -1,   -1,  316,   -1,  318,   -1,   -1,   -1,
1553   322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
1554   259,  260,  334,   -1,  263,   -1,  338,   -1,  340,  341,
1555   269,  270,   -1,   -1,   -1,  274,  275,   -1,   -1,  278,
1556    -1,  267,   -1,  282,   -1,  284,   -1,   -1,   -1,   -1,
1557   289,   -1,   -1,   -1,   -1,  281,   -1,  296,   -1,   -1,
1558    -1,  300,  301,  302,  303,  291,  305,  293,  294,   -1,
1559    -1,   -1,  298,   -1,  313,   -1,  302,  316,   -1,  318,
1560    -1,  307,   -1,  322,  310,   -1,   -1,   -1,   -1,   -1,
1561    -1,   -1,   -1,   -1,   -1,  334,   -1,  323,   -1,  338,
1562    -1,  340,  341,   -1,   -1,   -1,  332,  333,   -1,   -1,
1563    -1,  267,   -1,   -1,  340,  341,  342,  343,  344,  345,
1564   346,  347,  348,  349,  350,  281,   -1,   -1,   -1,   -1,
1565    -1,   -1,   -1,   -1,   -1,  291,   -1,  293,  294,   -1,
1566    -1,   -1,  298,   -1,   -1,   -1,  302,   -1,   -1,   -1,
1567    -1,   -1,   -1,  281,  310,   -1,   -1,   -1,   -1,   -1,
1568    -1,   -1,   -1,   -1,   -1,  293,   -1,  323,   -1,   -1,
1569   298,   -1,   -1,   -1,   -1,   -1,  332,  333,   -1,   -1,
1570    -1,   -1,  310,   -1,  340,  341,  342,  343,  344,  345,
1571   346,  347,  348,  349,  350,  323,  281,   -1,   -1,   -1,
1572    -1,   -1,   -1,   -1,  332,  333,   -1,   -1,  293,   -1,
1573    -1,   -1,  340,  341,  342,  343,  344,  345,  346,  347,
1574   348,  349,  350,   -1,   -1,  310,   -1,   -1,   -1,   -1,
1575    -1,   -1,   -1,   -1,   -1,   -1,  293,   -1,  323,   -1,
1576    -1,   -1,   -1,   -1,   -1,   -1,   -1,  332,  333,   -1,
1577    -1,   -1,   -1,   -1,   -1,  340,  341,  342,  343,  344,
1578   345,  346,  347,  348,  349,  350,  323,   -1,   -1,   -1,
1579    -1,   -1,   -1,   -1,   -1,  332,  333,   -1,   -1,   -1,
1580    -1,   -1,   -1,  340,  341,  342,  343,  344,  345,  346,
1581   347,  348,  349,  350,
1582 };
1583 static short YYFINAL=2;
1584 static short YYMAXTOKEN=352;
1585 static String [] yyname = {
1586 "end-of-file",null,null,null,null,null,null,null,null,null,null,null,null,null,
1587 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1588 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1589 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1590 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1591 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1592 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1593 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1594 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1595 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1596 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1597 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1598 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1599 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1600 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1601 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1602 null,null,null,"IDENTIFIER","ESCAPED_IDENTIFIER","PARAMETER","LITERAL","ALL",
1603 "AND","ANYELEMENT","APPLY","AS","ASC","BETWEEN","BY","CASE","CAST","COLLATE",
1604 "COLLECTION","CROSS","CREATEREF","DEREF","DESC","DISTINCT","ELEMENT","ELSE",
1605 "END","EXCEPT","EXISTS","ESCAPE","FLATTEN","FROM","FULL","FUNCTION","GROUP",
1606 "GROUPPARTITION","HAVING","IN","INNER","INTERSECT","IS","JOIN","KEY","LEFT",
1607 "LIKE","LIMIT","MULTISET","NAVIGATE","NOT","NULL","OF","OFTYPE","ON","OR",
1608 "ORDER","OUTER","OVERLAPS","ONLY","QMARK","REF","RELATIONSHIP","RIGHT","ROW",
1609 "SELECT","SET","SKIP","THEN","TOP","TREAT","UNION","USING","VALUE","WHEN",
1610 "WHERE","WITH","COMMA","COLON","SCOLON","DOT","EQUAL","L_PAREN","R_PAREN",
1611 "L_BRACE","R_BRACE","L_CURLY","R_CURLY","PLUS","MINUS","STAR","FSLASH",
1612 "PERCENT","OP_EQ","OP_NEQ","OP_LT","OP_LE","OP_GT","OP_GE","UNARYPLUS",
1613 "UNARYMINUS",
1614 };
1615 static String [] yyrule = {
1616 "$accept : commandStart",
1617 "commandStart :",
1618 "commandStart : command",
1619 "command : optNamespaceImportList queryStatement",
1620 "optNamespaceImportList :",
1621 "optNamespaceImportList : namespaceImportList",
1622 "namespaceImportList : namespaceImport",
1623 "namespaceImportList : namespaceImportList namespaceImport",
1624 "namespaceImport : USING identifier SCOLON",
1625 "namespaceImport : USING dotExpr SCOLON",
1626 "namespaceImport : USING assignExpr SCOLON",
1627 "queryStatement : optQueryDefList generalExpr optSemiColon",
1628 "optQueryDefList :",
1629 "optQueryDefList : functionDefList",
1630 "functionDefList : functionDef",
1631 "functionDefList : functionDefList functionDef",
1632 "functionDef : FUNCTION identifier functionParamsDef AS L_PAREN generalExpr R_PAREN",
1633 "functionParamsDef : L_PAREN R_PAREN",
1634 "functionParamsDef : L_PAREN functionParamDefList R_PAREN",
1635 "functionParamDefList : functionParamDef",
1636 "functionParamDefList : functionParamDefList COMMA functionParamDef",
1637 "functionParamDef : identifier typeDef",
1638 "generalExpr : queryExpr",
1639 "generalExpr : Expr",
1640 "optSemiColon :",
1641 "optSemiColon : SCOLON",
1642 "queryExpr : selectClause fromClause optWhereClause optGroupByClause optHavingClause optOrderByClause",
1643 "$$1 :",
1644 "selectClause : SELECT $$1 optAllOrDistinct optTopClause aliasExprList",
1645 "$$2 :",
1646 "selectClause : SELECT $$2 VALUE optAllOrDistinct optTopClause aliasExprList",
1647 "optAllOrDistinct :",
1648 "optAllOrDistinct : ALL",
1649 "optAllOrDistinct : DISTINCT",
1650 "optTopClause :",
1651 "optTopClause : TOP L_PAREN generalExpr R_PAREN",
1652 "fromClause : FROM fromClauseList",
1653 "fromClauseList : fromClauseItem",
1654 "fromClauseList : fromClauseList COMMA fromClauseItem",
1655 "fromClauseItem : aliasExpr",
1656 "fromClauseItem : L_PAREN joinClauseItem R_PAREN",
1657 "fromClauseItem : joinClauseItem",
1658 "fromClauseItem : L_PAREN applyClauseItem R_PAREN",
1659 "fromClauseItem : applyClauseItem",
1660 "joinClauseItem : fromClauseItem joinType fromClauseItem",
1661 "joinClauseItem : fromClauseItem joinType fromClauseItem ON Expr",
1662 "applyClauseItem : fromClauseItem applyType fromClauseItem",
1663 "joinType : CROSS JOIN",
1664 "joinType : LEFT OUTER JOIN",
1665 "joinType : LEFT JOIN",
1666 "joinType : RIGHT OUTER JOIN",
1667 "joinType : RIGHT JOIN",
1668 "joinType : JOIN",
1669 "joinType : INNER JOIN",
1670 "joinType : FULL JOIN",
1671 "joinType : FULL OUTER JOIN",
1672 "joinType : FULL OUTER",
1673 "applyType : CROSS APPLY",
1674 "applyType : OUTER APPLY",
1675 "optWhereClause :",
1676 "optWhereClause : whereClause",
1677 "whereClause : WHERE Expr",
1678 "optGroupByClause :",
1679 "optGroupByClause : groupByClause",
1680 "groupByClause : GROUP BY aliasExprList",
1681 "optHavingClause :",
1682 "optHavingClause : havingClause",
1683 "$$3 :",
1684 "havingClause : HAVING $$3 Expr",
1685 "optOrderByClause :",
1686 "optOrderByClause : orderByClause",
1687 "$$4 :",
1688 "orderByClause : ORDER BY $$4 orderByItemList optSkipSubClause optLimitSubClause",
1689 "optSkipSubClause :",
1690 "optSkipSubClause : SKIP Expr",
1691 "optLimitSubClause :",
1692 "optLimitSubClause : LIMIT Expr",
1693 "orderByItemList : orderByClauseItem",
1694 "orderByItemList : orderByItemList COMMA orderByClauseItem",
1695 "orderByClauseItem : Expr optAscDesc",
1696 "orderByClauseItem : Expr COLLATE simpleIdentifier optAscDesc",
1697 "optAscDesc :",
1698 "optAscDesc : ASC",
1699 "optAscDesc : DESC",
1700 "exprList : Expr",
1701 "exprList : exprList COMMA Expr",
1702 "Expr : parenExpr",
1703 "Expr : PARAMETER",
1704 "Expr : identifier",
1705 "Expr : builtInExpr",
1706 "Expr : dotExpr",
1707 "Expr : refExpr",
1708 "Expr : createRefExpr",
1709 "Expr : keyExpr",
1710 "Expr : groupPartitionExpr",
1711 "Expr : methodExpr",
1712 "Expr : ctorExpr",
1713 "Expr : derefExpr",
1714 "Expr : navigateExpr",
1715 "Expr : literalExpr",
1716 "parenExpr : L_PAREN generalExpr R_PAREN",
1717 "betweenPrefix : Expr BETWEEN Expr",
1718 "notBetweenPrefix : Expr NOT BETWEEN Expr",
1719 "builtInExpr : Expr PLUS Expr",
1720 "builtInExpr : Expr MINUS Expr",
1721 "builtInExpr : Expr STAR Expr",
1722 "builtInExpr : Expr FSLASH Expr",
1723 "builtInExpr : Expr PERCENT Expr",
1724 "builtInExpr : MINUS Expr",
1725 "builtInExpr : PLUS Expr",
1726 "builtInExpr : Expr OP_NEQ Expr",
1727 "builtInExpr : Expr OP_GT Expr",
1728 "builtInExpr : Expr OP_GE Expr",
1729 "builtInExpr : Expr OP_LT Expr",
1730 "builtInExpr : Expr OP_LE Expr",
1731 "builtInExpr : Expr INTERSECT Expr",
1732 "builtInExpr : Expr UNION Expr",
1733 "builtInExpr : Expr UNION ALL Expr",
1734 "builtInExpr : Expr EXCEPT Expr",
1735 "builtInExpr : Expr OVERLAPS Expr",
1736 "builtInExpr : Expr IN Expr",
1737 "builtInExpr : Expr NOT IN Expr",
1738 "builtInExpr : EXISTS L_PAREN generalExpr R_PAREN",
1739 "builtInExpr : ANYELEMENT L_PAREN generalExpr R_PAREN",
1740 "builtInExpr : ELEMENT L_PAREN generalExpr R_PAREN",
1741 "builtInExpr : FLATTEN L_PAREN generalExpr R_PAREN",
1742 "builtInExpr : SET L_PAREN generalExpr R_PAREN",
1743 "builtInExpr : Expr IS NULL",
1744 "builtInExpr : Expr IS NOT NULL",
1745 "builtInExpr : searchedCaseExpr",
1746 "builtInExpr : TREAT L_PAREN Expr AS typeName R_PAREN",
1747 "builtInExpr : CAST L_PAREN Expr AS typeName R_PAREN",
1748 "builtInExpr : OFTYPE L_PAREN Expr COMMA typeName R_PAREN",
1749 "builtInExpr : OFTYPE L_PAREN Expr COMMA ONLY typeName R_PAREN",
1750 "builtInExpr : Expr IS OF L_PAREN typeName R_PAREN",
1751 "builtInExpr : Expr IS NOT OF L_PAREN typeName R_PAREN",
1752 "builtInExpr : Expr IS OF L_PAREN ONLY typeName R_PAREN",
1753 "builtInExpr : Expr IS NOT OF L_PAREN ONLY typeName R_PAREN",
1754 "builtInExpr : Expr LIKE Expr",
1755 "builtInExpr : Expr NOT LIKE Expr",
1756 "builtInExpr : Expr LIKE Expr ESCAPE Expr",
1757 "builtInExpr : Expr NOT LIKE Expr ESCAPE Expr",
1758 "builtInExpr : betweenPrefix AND Expr",
1759 "builtInExpr : notBetweenPrefix AND Expr",
1760 "builtInExpr : Expr OR Expr",
1761 "builtInExpr : NOT Expr",
1762 "builtInExpr : Expr AND Expr",
1763 "builtInExpr : equalsOrAssignExpr",
1764 "equalsOrAssignExpr : assignExpr",
1765 "equalsOrAssignExpr : equalsExpr",
1766 "assignExpr : Expr EQUAL Expr",
1767 "equalsExpr : Expr OP_EQ Expr",
1768 "aliasExpr : Expr AS identifier",
1769 "aliasExpr : Expr",
1770 "aliasExprList : aliasExpr",
1771 "aliasExprList : aliasExprList COMMA aliasExpr",
1772 "searchedCaseExpr : CASE whenThenExprList END",
1773 "searchedCaseExpr : CASE whenThenExprList caseElseExpr END",
1774 "whenThenExprList : WHEN Expr THEN Expr",
1775 "whenThenExprList : whenThenExprList WHEN Expr THEN Expr",
1776 "caseElseExpr : ELSE Expr",
1777 "ctorExpr : ROW L_PAREN aliasExprList R_PAREN",
1778 "ctorExpr : MULTISET L_PAREN exprList R_PAREN",
1779 "ctorExpr : L_CURLY exprList R_CURLY",
1780 "dotExpr : Expr DOT identifier",
1781 "refExpr : REF L_PAREN generalExpr R_PAREN",
1782 "derefExpr : DEREF L_PAREN generalExpr R_PAREN",
1783 "createRefExpr : CREATEREF L_PAREN Expr COMMA Expr R_PAREN",
1784 "createRefExpr : CREATEREF L_PAREN Expr COMMA Expr COMMA typeName R_PAREN",
1785 "keyExpr : KEY L_PAREN generalExpr R_PAREN",
1786 "groupPartitionExpr : GROUPPARTITION L_PAREN optAllOrDistinct generalExpr R_PAREN",
1787 "methodExpr : dotExpr L_PAREN R_PAREN",
1788 "methodExpr : dotExpr L_PAREN optAllOrDistinct exprList R_PAREN optWithRelationship",
1789 "methodExpr : dotExpr L_PAREN optAllOrDistinct queryExpr R_PAREN optWithRelationship",
1790 "methodExpr : identifier L_PAREN R_PAREN",
1791 "methodExpr : identifier L_PAREN optAllOrDistinct exprList R_PAREN optWithRelationship",
1792 "methodExpr : identifier L_PAREN optAllOrDistinct queryExpr R_PAREN optWithRelationship",
1793 "navigateExpr : NAVIGATE L_PAREN Expr COMMA typeName R_PAREN",
1794 "navigateExpr : NAVIGATE L_PAREN Expr COMMA typeName COMMA identifier R_PAREN",
1795 "navigateExpr : NAVIGATE L_PAREN Expr COMMA typeName COMMA identifier COMMA identifier R_PAREN",
1796 "optWithRelationship :",
1797 "optWithRelationship : relationshipList",
1798 "relationshipList : WITH relationshipExpr",
1799 "relationshipList : relationshipList relationshipExpr",
1800 "relationshipExpr : RELATIONSHIP L_PAREN Expr COMMA typeName R_PAREN",
1801 "relationshipExpr : RELATIONSHIP L_PAREN Expr COMMA typeName COMMA identifier R_PAREN",
1802 "relationshipExpr : RELATIONSHIP L_PAREN Expr COMMA typeName COMMA identifier COMMA identifier R_PAREN",
1803 "typeName : identifier",
1804 "typeName : qualifiedTypeName",
1805 "typeName : identifier ESCAPED_IDENTIFIER",
1806 "typeName : qualifiedTypeName ESCAPED_IDENTIFIER",
1807 "typeName : typeNameWithTypeSpec",
1808 "qualifiedTypeName : typeName DOT identifier",
1809 "typeNameWithTypeSpec : qualifiedTypeName L_PAREN R_PAREN",
1810 "typeNameWithTypeSpec : qualifiedTypeName L_PAREN exprList R_PAREN",
1811 "typeNameWithTypeSpec : identifier L_PAREN R_PAREN",
1812 "typeNameWithTypeSpec : identifier L_PAREN exprList R_PAREN",
1813 "identifier : ESCAPED_IDENTIFIER",
1814 "identifier : simpleIdentifier",
1815 "simpleIdentifier : IDENTIFIER",
1816 "literalExpr : LITERAL",
1817 "literalExpr : NULL",
1818 "typeDef : typeName",
1819 "typeDef : collectionTypeDef",
1820 "typeDef : refTypeDef",
1821 "typeDef : rowTypeDef",
1822 "collectionTypeDef : COLLECTION L_PAREN typeDef R_PAREN",
1823 "refTypeDef : REF L_PAREN typeName R_PAREN",
1824 "rowTypeDef : ROW L_PAREN propertyDefList R_PAREN",
1825 "propertyDefList : propertyDef",
1826 "propertyDefList : propertyDefList COMMA propertyDef",
1827 "propertyDef : identifier typeDef",
1828 };
1829
1830 //#line 1415 "CqlGrammar.y"
1831
1832 #pragma warning restore 414
1833 //###############################################################
1834 // method: yylexdebug : check lexer state
1835 //###############################################################
1836 void yylexdebug(int state,int ch)
1837 {
1838 String s=null;
1839   if (ch < 0) ch=0;
1840   if (ch <= YYMAXTOKEN) //check index bounds
1841      s = yyname[ch];    //now get it
1842   if (s==null)
1843     s = "illegal-symbol";
1844   debug("state "+state+", reading "+ch+" ("+s+")");
1845 }
1846
1847
1848
1849 //###############################################################
1850 // method: yyparse : parse input and execute indicated items
1851 //###############################################################
1852 int yyparse()
1853 {
1854     int yyn;       //next thing to do
1855     int yym;       //
1856     int yystate;   //current parsing state from state table
1857 #if YYDEBUG
1858     String yys;    //current token string
1859 #endif
1860     init_stacks();
1861     yynerrs = 0;
1862     yyerrflag = 0;
1863     yychar = (-1);
1864
1865     yystate = 0;
1866          state_push(yystate);
1867
1868 yyloop:
1869 #if YYDEBUG
1870     debug("yyloop"); 
1871 #endif
1872         yyn = yydefred[yystate];
1873     if (yyn!=0) goto yyreduce;
1874 #if YYDEBUG
1875         debug("yyn:"+yyn+"  state:"+yystate+"  char:"+yychar);
1876 #endif
1877     if (yychar < 0)
1878     {
1879         yychar = yylex();
1880                 if (yychar < 0) yychar = 0;
1881     }
1882         yyn = yysindex[yystate];
1883     if ((yyn!=0) && (yyn += yychar) >= 0 &&
1884             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1885     {
1886 #if YYDEBUG
1887         debug("state "+yystate+", shifting to state "+yytable[yyn]+"");
1888 #endif
1889              yystate = yytable[yyn];
1890                  state_push(yystate);
1891         val_push( yylval );
1892         yychar = (-1);
1893         if (yyerrflag > 0)  --yyerrflag;
1894         goto yyloop;
1895     }
1896         yyn = yyrindex[yystate];
1897     if ((yyn!=0) && (yyn += yychar) >= 0 &&
1898             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1899     {
1900         yyn = yytable[yyn];
1901 #if YYDEBUG
1902              debug("reduce");
1903 #endif
1904         goto yyreduce;
1905     }
1906     if (yyerrflag!=0) goto yyinrecovery;
1907     yyerror("syntax error");
1908  
1909     ++yynerrs;
1910 yyinrecovery:
1911     if (yyerrflag < 3)
1912     {
1913         yyerrflag = 3;
1914         for (;;)
1915         {
1916             if (stateptr < 0)
1917             {
1918                 goto yyoverflow;
1919             }
1920                          yyn = yysindex[state_peek(0)];
1921             if ((yyn!=0) && (yyn += YYERRCODE) >= 0 &&
1922                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1923             {
1924                 if (stateptr < 0)
1925                 {
1926                     goto yyoverflow;
1927                 }
1928 #if YYDEBUG
1929                 debug("state "+state_peek(0)+", error recovery shifting to state "+yytable[yyn]+" ");
1930 #endif
1931                 yystate = yytable[yyn];
1932                          state_push(yystate);
1933                 val_push( yylval );
1934                 goto yyloop;
1935             }
1936             else
1937             {
1938                 if (stateptr < 0)
1939                 {
1940                     goto yyoverflow;
1941                 }
1942 #if YYDEBUG
1943                 debug("error recovery discarding state "+state_peek(0)+" ");
1944 #endif
1945                          state_pop();
1946                 val_pop();
1947             }
1948         }
1949     }
1950     else
1951     {
1952         if (yychar == 0) goto yyabort;
1953 #if YYDEBUG
1954         if (yydebug)
1955         {
1956             yys = null;
1957             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1958             if (yys == null) yys = "illegal-symbol";
1959             debug("state "+yystate+", error recovery discards token "+yychar+" ("+yys+")");
1960         }
1961 #endif
1962         yychar = (-1);
1963         goto yyloop;
1964     }
1965 yyreduce:
1966     yym = yylen[yyn];
1967 #if YYDEBUG
1968       debug("state "+yystate+", reducing "+yym+" by rule "+yyn+" ("+yyrule[yyn]+")");
1969 #endif
1970     yyval = val_peek(yym-1);
1971     switch (yyn)
1972     {
1973 //########## USER-SUPPLIED ACTIONS ##########
1974 case 1:
1975 //#line 108 "CqlGrammar.y"
1976 {
1977                         yyval = _parsedTree = null;
1978                     }
1979 break;
1980 case 2:
1981 //#line 112 "CqlGrammar.y"
1982 {
1983                         yyval = _parsedTree = (Node)val_peek(0);
1984                     }
1985 break;
1986 case 3:
1987 //#line 118 "CqlGrammar.y"
1988 {
1989                         yyval = new Command(ToNodeList<NamespaceImport>(val_peek(1)),(Statement)val_peek(0));
1990                         SetErrCtx(AstNode(yyval), (val_peek(1) != null) ? AstNodePos(val_peek(1)) : AstNodePos(val_peek(0)), EntityRes.CtxCommandExpression);
1991                     }
1992 break;
1993 case 4:
1994 //#line 129 "CqlGrammar.y"
1995 {
1996                         yyval = null;
1997                     }
1998 break;
1999 case 5:
2000 //#line 133 "CqlGrammar.y"
2001 {
2002                         yyval = val_peek(0);
2003                     }
2004 break;
2005 case 6:
2006 //#line 139 "CqlGrammar.y"
2007 {
2008                         yyval = new NodeList<NamespaceImport>((NamespaceImport)val_peek(0));
2009                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxNamespaceImportList);
2010                     }
2011 break;
2012 case 7:
2013 //#line 144 "CqlGrammar.y"
2014 {
2015                         yyval = ToNodeList<NamespaceImport>(val_peek(1)).Add((NamespaceImport)val_peek(0));
2016                     }
2017 break;
2018 case 8:
2019 //#line 150 "CqlGrammar.y"
2020 {
2021                         yyval = new NamespaceImport((Identifier)val_peek(1));
2022                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxNamespaceImport);
2023                     }
2024 break;
2025 case 9:
2026 //#line 155 "CqlGrammar.y"
2027 {
2028                         yyval = new NamespaceImport((DotExpr)val_peek(1));
2029                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxNamespaceImport);
2030                     }
2031 break;
2032 case 10:
2033 //#line 160 "CqlGrammar.y"
2034 {
2035                         yyval = new NamespaceImport((BuiltInExpr)val_peek(1));
2036                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxAliasedNamespaceImport);
2037                     }
2038 break;
2039 case 11:
2040 //#line 171 "CqlGrammar.y"
2041 {
2042                         yyval = new QueryStatement(ToNodeList<AST.FunctionDefinition>(val_peek(2)),(Node)val_peek(1));
2043                         SetErrCtx(AstNode(yyval), (val_peek(2) != null) ? AstNodePos(val_peek(2)) : AstNodePos(val_peek(1)), EntityRes.CtxQueryStatement);
2044                     }
2045 break;
2046 case 12:
2047 //#line 182 "CqlGrammar.y"
2048 {
2049                         yyval = null;
2050                     }
2051 break;
2052 case 13:
2053 //#line 186 "CqlGrammar.y"
2054 {
2055                         yyval = val_peek(0);
2056                     }
2057 break;
2058 case 14:
2059 //#line 192 "CqlGrammar.y"
2060 {
2061                         yyval = new NodeList<AST.FunctionDefinition>((AST.FunctionDefinition)val_peek(0));
2062                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2063                     }
2064 break;
2065 case 15:
2066 //#line 197 "CqlGrammar.y"
2067 {
2068                         yyval = ToNodeList<AST.FunctionDefinition>(val_peek(1)).Add((AST.FunctionDefinition)val_peek(0));
2069                         SetErrCtx(AstNode(yyval), AstNodePos(yyval), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2070                     }
2071 break;
2072 case 16:
2073 //#line 204 "CqlGrammar.y"
2074 {
2075                         yyval = new AST.FunctionDefinition((Identifier)val_peek(5), ToNodeList<PropDefinition>(val_peek(4)), (Node)val_peek(1), Terminal(val_peek(6)).IPos, Terminal(val_peek(0)).IPos);
2076                         SetErrCtx(AstNode(yyval), Terminal(val_peek(6)), EntityRes.CtxFunctionDefinition);
2077                     }
2078 break;
2079 case 17:
2080 //#line 211 "CqlGrammar.y"
2081 {
2082                         yyval = null;
2083                     }
2084 break;
2085 case 18:
2086 //#line 215 "CqlGrammar.y"
2087 {
2088                         yyval = val_peek(1);
2089                     }
2090 break;
2091 case 19:
2092 //#line 221 "CqlGrammar.y"
2093 {
2094                         yyval = new NodeList<PropDefinition>((PropDefinition)val_peek(0));
2095                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2096                     }
2097 break;
2098 case 20:
2099 //#line 226 "CqlGrammar.y"
2100 {
2101                         yyval = ToNodeList<PropDefinition>(val_peek(2)).Add((PropDefinition)val_peek(0));
2102                         SetErrCtx(AstNode(yyval), AstNodePos(yyval), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2103                     }
2104 break;
2105 case 21:
2106 //#line 233 "CqlGrammar.y"
2107 {
2108                         yyval = new PropDefinition((Identifier)val_peek(1), (Node)val_peek(0));
2109                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxFunctionDefinition);
2110                     }
2111 break;
2112 case 22:
2113 //#line 244 "CqlGrammar.y"
2114 {
2115                         yyval = val_peek(0);
2116                     }
2117 break;
2118 case 23:
2119 //#line 248 "CqlGrammar.y"
2120 {
2121                         yyval = val_peek(0);
2122                     }
2123 break;
2124 case 24:
2125 //#line 254 "CqlGrammar.y"
2126 {
2127                         yyval = null;
2128                     }
2129 break;
2130 case 25:
2131 //#line 258 "CqlGrammar.y"
2132 {
2133                         yyval = null;
2134                     }
2135 break;
2136 case 26:
2137 //#line 268 "CqlGrammar.y"
2138 {
2139                          yyval = new QueryExpr( (SelectClause)val_peek(5)    ,
2140                                              (FromClause)val_peek(4)      ,
2141                                              (Node)val_peek(3)            ,
2142                                              (GroupByClause)val_peek(2)   ,
2143                                              (HavingClause)val_peek(1)    ,
2144                                              (OrderByClause)val_peek(0)   );
2145
2146                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(5)), EntityRes.CtxQueryExpression);
2147                     }
2148 break;
2149 case 27:
2150 //#line 281 "CqlGrammar.y"
2151
2152                           StartMethodExprCounting();
2153                       }
2154 break;
2155 case 28:
2156 //#line 287 "CqlGrammar.y"
2157 {
2158                         yyval = new SelectClause(ToNodeList<AliasedExpr>(val_peek(0)), SelectKind.Row, (DistinctKind)val_peek(2), (Node)val_peek(1), EndMethodExprCounting());
2159                         SetErrCtx(AstNode(yyval), Terminal(val_peek(4)), EntityRes.CtxSelectRowClause);
2160                     }
2161 break;
2162 case 29:
2163 //#line 292 "CqlGrammar.y"
2164
2165                         StartMethodExprCounting();
2166                       }
2167 break;
2168 case 30:
2169 //#line 299 "CqlGrammar.y"
2170 {
2171                         yyval = new SelectClause(ToNodeList<AliasedExpr>(val_peek(0)), SelectKind.Value, (DistinctKind)val_peek(2), (Node)val_peek(1), EndMethodExprCounting());
2172                         SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxSelectValueClause);
2173                     }
2174 break;
2175 case 31:
2176 //#line 306 "CqlGrammar.y"
2177 {
2178                         yyval = DistinctKind.None;
2179                     }
2180 break;
2181 case 32:
2182 //#line 310 "CqlGrammar.y"
2183 {
2184                         yyval = DistinctKind.All;
2185                     }
2186 break;
2187 case 33:
2188 //#line 314 "CqlGrammar.y"
2189 {
2190                         yyval = DistinctKind.Distinct;
2191                     }
2192 break;
2193 case 34:
2194 //#line 320 "CqlGrammar.y"
2195 {
2196                         yyval = null;
2197                     }
2198 break;
2199 case 35:
2200 //#line 324 "CqlGrammar.y"
2201 {
2202                         yyval = val_peek(1);
2203                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxTopSubClause);
2204                     }
2205 break;
2206 case 36:
2207 //#line 331 "CqlGrammar.y"
2208 {
2209                         yyval = new FromClause(ToNodeList<FromClauseItem>(val_peek(0)));
2210                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxFromClause);
2211                     }
2212 break;
2213 case 37:
2214 //#line 338 "CqlGrammar.y"
2215 {
2216                         yyval = new NodeList<FromClauseItem>((FromClauseItem)val_peek(0));
2217                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2218                     }
2219 break;
2220 case 38:
2221 //#line 343 "CqlGrammar.y"
2222 {
2223                         yyval = ToNodeList<FromClauseItem>(val_peek(2)).Add((FromClauseItem)val_peek(0));
2224                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxFromClauseList);
2225                     }
2226 break;
2227 case 39:
2228 //#line 350 "CqlGrammar.y"
2229 {
2230                         yyval = new FromClauseItem((AliasedExpr)val_peek(0));
2231                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxFromClauseItem);
2232                     }
2233 break;
2234 case 40:
2235 //#line 355 "CqlGrammar.y"
2236 {
2237                         yyval = new FromClauseItem((JoinClauseItem)val_peek(1));
2238                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxFromJoinClause);
2239                     }
2240 break;
2241 case 41:
2242 //#line 360 "CqlGrammar.y"
2243 {
2244                         yyval = new FromClauseItem((JoinClauseItem)val_peek(0));
2245                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxFromJoinClause);
2246                     }
2247 break;
2248 case 42:
2249 //#line 365 "CqlGrammar.y"
2250 {
2251                         yyval = new FromClauseItem((ApplyClauseItem)val_peek(1));
2252                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxFromApplyClause);
2253                     }
2254 break;
2255 case 43:
2256 //#line 370 "CqlGrammar.y"
2257 {
2258                         yyval = new FromClauseItem((ApplyClauseItem)val_peek(0));
2259                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxFromApplyClause);
2260                     }
2261 break;
2262 case 44:
2263 //#line 377 "CqlGrammar.y"
2264 {
2265                         yyval = new JoinClauseItem((FromClauseItem)val_peek(2), (FromClauseItem)val_peek(0), (JoinKind)val_peek(1));
2266                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxJoinClause);
2267                     }
2268 break;
2269 case 45:
2270 //#line 382 "CqlGrammar.y"
2271 {
2272                         yyval = new JoinClauseItem((FromClauseItem)val_peek(4), (FromClauseItem)val_peek(2), (JoinKind)val_peek(3), (Node)val_peek(0));
2273                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(4)), EntityRes.CtxJoinOnClause);
2274                     }
2275 break;
2276 case 46:
2277 //#line 389 "CqlGrammar.y"
2278 {
2279                         yyval = new ApplyClauseItem((FromClauseItem)val_peek(2), (FromClauseItem)val_peek(0), (ApplyKind)val_peek(1));
2280                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxApplyClause);
2281                     }
2282 break;
2283 case 47:
2284 //#line 396 "CqlGrammar.y"
2285 {
2286                         yyval = JoinKind.Cross;
2287                     }
2288 break;
2289 case 48:
2290 //#line 400 "CqlGrammar.y"
2291 {
2292                         yyval = JoinKind.LeftOuter;
2293                     }
2294 break;
2295 case 49:
2296 //#line 404 "CqlGrammar.y"
2297 {
2298                         yyval = JoinKind.LeftOuter;
2299                     }
2300 break;
2301 case 50:
2302 //#line 408 "CqlGrammar.y"
2303 {
2304                         yyval = JoinKind.RightOuter;
2305                     }
2306 break;
2307 case 51:
2308 //#line 412 "CqlGrammar.y"
2309 {
2310                         yyval = JoinKind.RightOuter;
2311                     }
2312 break;
2313 case 52:
2314 //#line 416 "CqlGrammar.y"
2315 {
2316                         yyval = JoinKind.Inner;
2317                     }
2318 break;
2319 case 53:
2320 //#line 420 "CqlGrammar.y"
2321 {
2322                         yyval = JoinKind.Inner;
2323                     }
2324 break;
2325 case 54:
2326 //#line 424 "CqlGrammar.y"
2327 {
2328                         yyval = JoinKind.FullOuter;
2329                     }
2330 break;
2331 case 55:
2332 //#line 428 "CqlGrammar.y"
2333 {
2334                         yyval = JoinKind.FullOuter;
2335                     }
2336 break;
2337 case 56:
2338 //#line 432 "CqlGrammar.y"
2339 {
2340                         yyval = JoinKind.FullOuter;
2341                     }
2342 break;
2343 case 57:
2344 //#line 438 "CqlGrammar.y"
2345 {
2346                         yyval = ApplyKind.Cross;
2347                     }
2348 break;
2349 case 58:
2350 //#line 442 "CqlGrammar.y"
2351 {
2352                         yyval = ApplyKind.Outer;
2353                     }
2354 break;
2355 case 59:
2356 //#line 447 "CqlGrammar.y"
2357 {
2358                         yyval = null;
2359                     }
2360 break;
2361 case 60:
2362 //#line 451 "CqlGrammar.y"
2363 {
2364                         yyval = val_peek(0);
2365                     }
2366 break;
2367 case 61:
2368 //#line 457 "CqlGrammar.y"
2369 {
2370                         yyval = (Node)val_peek(0);
2371                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxWhereClause);
2372                     }
2373 break;
2374 case 62:
2375 //#line 464 "CqlGrammar.y"
2376 {
2377                         yyval = null;
2378                     }
2379 break;
2380 case 63:
2381 //#line 468 "CqlGrammar.y"
2382 {
2383                         yyval = val_peek(0);
2384                     }
2385 break;
2386 case 64:
2387 //#line 474 "CqlGrammar.y"
2388 {
2389                         yyval = new GroupByClause(ToNodeList<AliasedExpr>(val_peek(0)));
2390                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxGroupByClause);
2391                     }
2392 break;
2393 case 65:
2394 //#line 481 "CqlGrammar.y"
2395 {
2396                         yyval = null;
2397                     }
2398 break;
2399 case 66:
2400 //#line 485 "CqlGrammar.y"
2401 {
2402                         yyval = val_peek(0);
2403                     }
2404 break;
2405 case 67:
2406 //#line 491 "CqlGrammar.y"
2407
2408                       StartMethodExprCounting();
2409                     }
2410 break;
2411 case 68:
2412 //#line 495 "CqlGrammar.y"
2413 {
2414                         yyval = new HavingClause((Node)val_peek(0), EndMethodExprCounting());
2415                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxHavingClause);
2416                     }
2417 break;
2418 case 69:
2419 //#line 502 "CqlGrammar.y"
2420 {
2421                         yyval = null;
2422                     }
2423 break;
2424 case 70:
2425 //#line 506 "CqlGrammar.y"
2426 {
2427                         yyval = val_peek(0);
2428                     }
2429 break;
2430 case 71:
2431 //#line 512 "CqlGrammar.y"
2432 {
2433                         StartMethodExprCounting();
2434                       }
2435 break;
2436 case 72:
2437 //#line 518 "CqlGrammar.y"
2438 {
2439                         yyval = new OrderByClause(ToNodeList<OrderByClauseItem>(val_peek(2)), (Node)val_peek(1), (Node)val_peek(0), EndMethodExprCounting());
2440                         SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxOrderByClauseItem);
2441                     }
2442 break;
2443 case 73:
2444 //#line 525 "CqlGrammar.y"
2445 {
2446                         yyval = null;
2447                     }
2448 break;
2449 case 74:
2450 //#line 529 "CqlGrammar.y"
2451 {
2452                         yyval = val_peek(0);
2453                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxSkipSubClause);
2454                     }
2455 break;
2456 case 75:
2457 //#line 536 "CqlGrammar.y"
2458 {
2459                         yyval = null;
2460                     }
2461 break;
2462 case 76:
2463 //#line 540 "CqlGrammar.y"
2464 {
2465                         yyval = val_peek(0);
2466                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxLimitSubClause);
2467                     }
2468 break;
2469 case 77:
2470 //#line 547 "CqlGrammar.y"
2471 {
2472                         yyval = new NodeList<OrderByClauseItem>((OrderByClauseItem)val_peek(0));
2473                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2474                     }
2475 break;
2476 case 78:
2477 //#line 552 "CqlGrammar.y"
2478 {
2479                         yyval = ToNodeList<OrderByClauseItem>(val_peek(2)).Add((OrderByClauseItem)val_peek(0));
2480                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxOrderByClause);
2481                     }
2482 break;
2483 case 79:
2484 //#line 559 "CqlGrammar.y"
2485 {
2486                         yyval = new OrderByClauseItem((Node)val_peek(1), (OrderKind)val_peek(0));
2487                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxOrderByClauseItem);
2488                     }
2489 break;
2490 case 80:
2491 //#line 564 "CqlGrammar.y"
2492 {
2493                         yyval = new OrderByClauseItem((Node)val_peek(3), (OrderKind)val_peek(0), (Identifier)val_peek(1));
2494                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(3)), EntityRes.CtxCollatedOrderByClauseItem);
2495                     }
2496 break;
2497 case 81:
2498 //#line 571 "CqlGrammar.y"
2499 {
2500                         yyval = OrderKind.None;
2501                     }
2502 break;
2503 case 82:
2504 //#line 575 "CqlGrammar.y"
2505 {
2506                         yyval = OrderKind.Asc;
2507                     }
2508 break;
2509 case 83:
2510 //#line 579 "CqlGrammar.y"
2511 {
2512                         yyval = OrderKind.Desc;
2513                     }
2514 break;
2515 case 84:
2516 //#line 588 "CqlGrammar.y"
2517 {
2518                         yyval = new NodeList<Node>((Node)val_peek(0));
2519                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2520                     }
2521 break;
2522 case 85:
2523 //#line 593 "CqlGrammar.y"
2524 {
2525                         yyval = ToNodeList<Node>(val_peek(2)).Add((Node)val_peek(0));
2526                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxExpressionList);
2527                     }
2528 break;
2529 case 86:
2530 //#line 600 "CqlGrammar.y"
2531 {
2532                         yyval = val_peek(0);
2533                     }
2534 break;
2535 case 87:
2536 //#line 604 "CqlGrammar.y"
2537 {
2538                         yyval = (QueryParameter)val_peek(0);
2539                     }
2540 break;
2541 case 88:
2542 //#line 608 "CqlGrammar.y"
2543 {
2544                         yyval = (Identifier)val_peek(0);
2545                     }
2546 break;
2547 case 89:
2548 //#line 612 "CqlGrammar.y"
2549 {
2550                         yyval = val_peek(0);
2551                     }
2552 break;
2553 case 90:
2554 //#line 616 "CqlGrammar.y"
2555 {
2556                         yyval = val_peek(0);
2557                     }
2558 break;
2559 case 91:
2560 //#line 620 "CqlGrammar.y"
2561 {
2562                         yyval = val_peek(0);
2563                     }
2564 break;
2565 case 92:
2566 //#line 624 "CqlGrammar.y"
2567 {
2568                         yyval = val_peek(0);
2569                     }
2570 break;
2571 case 93:
2572 //#line 628 "CqlGrammar.y"
2573 {
2574                         yyval = val_peek(0);
2575                     }
2576 break;
2577 case 94:
2578 //#line 632 "CqlGrammar.y"
2579 {
2580                         yyval = val_peek(0);
2581                         IncrementMethodExprCount();
2582                     }
2583 break;
2584 case 95:
2585 //#line 637 "CqlGrammar.y"
2586 {
2587                         yyval = val_peek(0);
2588                         IncrementMethodExprCount();
2589                     }
2590 break;
2591 case 96:
2592 //#line 642 "CqlGrammar.y"
2593 {
2594                         yyval = val_peek(0);
2595                     }
2596 break;
2597 case 97:
2598 //#line 646 "CqlGrammar.y"
2599 {
2600                         yyval = val_peek(0);
2601                     }
2602 break;
2603 case 98:
2604 //#line 650 "CqlGrammar.y"
2605 {
2606                         yyval = val_peek(0);
2607                     }
2608 break;
2609 case 99:
2610 //#line 654 "CqlGrammar.y"
2611 {
2612                         yyval = val_peek(0);
2613                     }
2614 break;
2615 case 100:
2616 //#line 660 "CqlGrammar.y"
2617 {
2618                         yyval = new ParenExpr((Node)val_peek(1));
2619                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxParen);
2620                     }
2621 break;
2622 case 101:
2623 //#line 667 "CqlGrammar.y"
2624 {
2625                         yyval = new NodeList<Node>((Node)val_peek(2)).Add((Node)val_peek(0));
2626                     }
2627 break;
2628 case 102:
2629 //#line 673 "CqlGrammar.y"
2630 {
2631                         yyval = new NodeList<Node>((Node)val_peek(3)).Add((Node)val_peek(0));
2632                     }
2633 break;
2634 case 103:
2635 //#line 682 "CqlGrammar.y"
2636 {
2637                         yyval = new BuiltInExpr(BuiltInKind.Plus, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2638                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxPlus);
2639                     }
2640 break;
2641 case 104:
2642 //#line 687 "CqlGrammar.y"
2643 {
2644                         yyval = new BuiltInExpr(BuiltInKind.Minus, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2645                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxMinus);
2646                     }
2647 break;
2648 case 105:
2649 //#line 692 "CqlGrammar.y"
2650 {
2651                         yyval = new BuiltInExpr(BuiltInKind.Multiply, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2652                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxMultiply);
2653                     }
2654 break;
2655 case 106:
2656 //#line 697 "CqlGrammar.y"
2657 {
2658                         yyval = new BuiltInExpr(BuiltInKind.Divide, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2659                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxDivide);
2660                     }
2661 break;
2662 case 107:
2663 //#line 702 "CqlGrammar.y"
2664 {
2665                         yyval = new BuiltInExpr(BuiltInKind.Modulus, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2666                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxModulus);
2667                     }
2668 break;
2669 case 108:
2670 //#line 707 "CqlGrammar.y"
2671 {
2672                         Literal literal = val_peek(0) as Literal;
2673                         if ( literal != null && literal.IsNumber && !literal.IsSignedNumber )
2674                         {
2675                             literal.PrefixSign(Terminal(val_peek(1)).Token);
2676                             yyval = val_peek(0);
2677                         }
2678                         else
2679                         {
2680                             yyval = new BuiltInExpr(BuiltInKind.UnaryMinus, Terminal(val_peek(1)).Token, (Node)val_peek(0));
2681                             SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxUnaryMinus);
2682                         }
2683
2684                     }
2685 break;
2686 case 109:
2687 //#line 722 "CqlGrammar.y"
2688 {
2689                         Literal literal = val_peek(0) as Literal;
2690                         if ( null != literal && literal.IsNumber && !literal.IsSignedNumber )
2691                         {
2692                             literal.PrefixSign(Terminal(val_peek(1)).Token);
2693                             yyval = val_peek(0);
2694                         }
2695                         else
2696                         {
2697                             yyval = new BuiltInExpr(BuiltInKind.UnaryPlus, Terminal(val_peek(1)).Token, (Node)val_peek(0));
2698                             SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxUnaryPlus);
2699                         }
2700                     }
2701 break;
2702 case 110:
2703 //#line 739 "CqlGrammar.y"
2704 {
2705                         yyval = new BuiltInExpr(BuiltInKind.NotEqual, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2706                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxNotEqual);
2707                     }
2708 break;
2709 case 111:
2710 //#line 744 "CqlGrammar.y"
2711 {
2712                         yyval = new BuiltInExpr(BuiltInKind.GreaterThan, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2713                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxGreaterThan);
2714                     }
2715 break;
2716 case 112:
2717 //#line 749 "CqlGrammar.y"
2718 {
2719                         yyval = new BuiltInExpr(BuiltInKind.GreaterEqual, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2720                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxGreaterThanEqual);
2721                     }
2722 break;
2723 case 113:
2724 //#line 754 "CqlGrammar.y"
2725 {
2726                         yyval = new BuiltInExpr(BuiltInKind.LessThan, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2727                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxLessThan);
2728                     }
2729 break;
2730 case 114:
2731 //#line 759 "CqlGrammar.y"
2732 {
2733                         yyval = new BuiltInExpr(BuiltInKind.LessEqual, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2734                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxLessThanEqual);
2735                     }
2736 break;
2737 case 115:
2738 //#line 767 "CqlGrammar.y"
2739 {
2740                         yyval = new BuiltInExpr(BuiltInKind.Intersect, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2741                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxIntersect);
2742                     }
2743 break;
2744 case 116:
2745 //#line 772 "CqlGrammar.y"
2746 {
2747                         yyval = new BuiltInExpr(BuiltInKind.Union, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2748                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxUnion);
2749                     }
2750 break;
2751 case 117:
2752 //#line 777 "CqlGrammar.y"
2753 {
2754                         yyval = new BuiltInExpr(BuiltInKind.UnionAll, Terminal(val_peek(2)).Token, (Node)val_peek(3), (Node)val_peek(0));
2755                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxUnionAll);
2756                     }
2757 break;
2758 case 118:
2759 //#line 782 "CqlGrammar.y"
2760 {
2761                         yyval = new BuiltInExpr(BuiltInKind.Except, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2762                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxExcept);
2763                     }
2764 break;
2765 case 119:
2766 //#line 787 "CqlGrammar.y"
2767 {
2768                         yyval = new BuiltInExpr(BuiltInKind.Overlaps, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2769                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxOverlaps);
2770                     }
2771 break;
2772 case 120:
2773 //#line 792 "CqlGrammar.y"
2774 {
2775                         yyval = new BuiltInExpr(BuiltInKind.In, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2776                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxIn);
2777                     }
2778 break;
2779 case 121:
2780 //#line 797 "CqlGrammar.y"
2781 {
2782                         yyval = new BuiltInExpr(BuiltInKind.NotIn, Terminal(val_peek(2)).Token, (Node)val_peek(3), (Node)val_peek(0));
2783                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxNotIn);
2784                     }
2785 break;
2786 case 122:
2787 //#line 802 "CqlGrammar.y"
2788 {
2789                         yyval = new BuiltInExpr(BuiltInKind.Exists, Terminal(val_peek(3)).Token, (Node)val_peek(1));
2790                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxExists);
2791                     }
2792 break;
2793 case 123:
2794 //#line 807 "CqlGrammar.y"
2795 {
2796                         yyval = new BuiltInExpr(BuiltInKind.AnyElement, Terminal(val_peek(3)).Token, (Node)val_peek(1));
2797                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxAnyElement);
2798                     }
2799 break;
2800 case 124:
2801 //#line 812 "CqlGrammar.y"
2802 {
2803                         yyval = new BuiltInExpr(BuiltInKind.Element, Terminal(val_peek(3)).Token, (Node)val_peek(1));
2804                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxElement);
2805                     }
2806 break;
2807 case 125:
2808 //#line 817 "CqlGrammar.y"
2809 {
2810                         yyval = new BuiltInExpr(BuiltInKind.Flatten, Terminal(val_peek(3)).Token, (Node)val_peek(1));
2811                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxFlatten);
2812                     }
2813 break;
2814 case 126:
2815 //#line 822 "CqlGrammar.y"
2816 {
2817                         yyval = new BuiltInExpr(BuiltInKind.Distinct, Terminal(val_peek(3)).Token, (Node)val_peek(1));
2818                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxSet);
2819                     }
2820 break;
2821 case 127:
2822 //#line 830 "CqlGrammar.y"
2823 {
2824                         yyval = new BuiltInExpr(BuiltInKind.IsNull, "IsNull", (Node)val_peek(2));
2825                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxIsNull);
2826                     }
2827 break;
2828 case 128:
2829 //#line 835 "CqlGrammar.y"
2830 {
2831                         yyval = new BuiltInExpr(BuiltInKind.IsNotNull, "IsNotNull", (Node)val_peek(3));
2832                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxIsNotNull);
2833                     }
2834 break;
2835 case 129:
2836 //#line 843 "CqlGrammar.y"
2837 {
2838                         yyval = (CaseExpr)val_peek(0);
2839                     }
2840 break;
2841 case 130:
2842 //#line 850 "CqlGrammar.y"
2843 {
2844                         yyval = new BuiltInExpr(BuiltInKind.Treat, Terminal(val_peek(5)).Token, (Node)val_peek(3), (Node)val_peek(1));
2845                         SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxTreat);
2846                     }
2847 break;
2848 case 131:
2849 //#line 855 "CqlGrammar.y"
2850 {
2851                         yyval = new BuiltInExpr(BuiltInKind.Cast, Terminal(val_peek(5)).Token, (Node)val_peek(3), (Node)val_peek(1));
2852                         SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxCast);
2853                     }
2854 break;
2855 case 132:
2856 //#line 864 "CqlGrammar.y"
2857 {
2858                         yyval = new BuiltInExpr(BuiltInKind.OfType, 
2859                                              Terminal(val_peek(5)).Token, 
2860                                              (Node)val_peek(3), 
2861                                              (Node)val_peek(1),
2862                                              Literal.NewBooleanLiteral( false ) /* only */);
2863                                              
2864                         SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxOfType);
2865                     }
2866 break;
2867 case 133:
2868 //#line 874 "CqlGrammar.y"
2869 {
2870                         yyval = new BuiltInExpr(BuiltInKind.OfType, 
2871                                              "OFTYPE ONLY", 
2872                                              (Node)val_peek(4), 
2873                                              (Node)val_peek(1),
2874                                              Literal.NewBooleanLiteral( true ) /* only */);
2875                                              
2876                         SetErrCtx(AstNode(yyval), Terminal(val_peek(6)), EntityRes.CtxOfTypeOnly);
2877                     }
2878 break;
2879 case 134:
2880 //#line 887 "CqlGrammar.y"
2881 {
2882                         yyval = new BuiltInExpr(   BuiltInKind.IsOf,
2883                                                 "IS OF",
2884                                                 (Node)val_peek(5),
2885                                                 (Node)val_peek(1),
2886                                                 Literal.NewBooleanLiteral( false ), /* only */
2887                                                 Literal.NewBooleanLiteral( false )  /* not  */
2888                                             );
2889
2890                         SetErrCtx(AstNode(yyval), Terminal(val_peek(4)), EntityRes.CtxIsOf);
2891                     }
2892 break;
2893 case 135:
2894 //#line 899 "CqlGrammar.y"
2895 {
2896                         yyval = new BuiltInExpr(   BuiltInKind.IsOf,
2897                                                 "IS NOT OF",
2898                                                 (Node)val_peek(6),  /* instance */
2899                                                 (Node)val_peek(1),  /* type */
2900                                                 Literal.NewBooleanLiteral( false ), /* only */
2901                                                 Literal.NewBooleanLiteral( true  )  /* not  */
2902                                             );
2903
2904                         SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxIsNotOf);
2905                     }
2906 break;
2907 case 136:
2908 //#line 911 "CqlGrammar.y"
2909 {
2910                         yyval = new BuiltInExpr(   BuiltInKind.IsOf,
2911                                                 "IS OF ONLY",
2912                                                 (Node)val_peek(6),  /* instance */
2913                                                 (Node)val_peek(1),  /* type */
2914                                                 Literal.NewBooleanLiteral( true  ), /* only */
2915                                                 Literal.NewBooleanLiteral( false )  /* not  */
2916                                             );
2917
2918                         SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxIsOf);
2919                     }
2920 break;
2921 case 137:
2922 //#line 923 "CqlGrammar.y"
2923 {
2924                         yyval = new BuiltInExpr(   BuiltInKind.IsOf,
2925                                                 "IS NOT OF ONLY",
2926                                                 (Node)val_peek(7),  /* instance */
2927                                                 (Node)val_peek(1),  /* type */
2928                                                 Literal.NewBooleanLiteral( true ), /* only */
2929                                                 Literal.NewBooleanLiteral( true )  /* not  */
2930                                             );
2931
2932                         SetErrCtx(AstNode(yyval), Terminal(val_peek(6)), EntityRes.CtxIsNotOf);
2933                     }
2934 break;
2935 case 138:
2936 //#line 938 "CqlGrammar.y"
2937 {
2938                         yyval = new BuiltInExpr(BuiltInKind.Like, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
2939                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxLike);
2940                     }
2941 break;
2942 case 139:
2943 //#line 943 "CqlGrammar.y"
2944 {
2945                         yyval = new BuiltInExpr(BuiltInKind.Not,
2946                                               Terminal(val_peek(2)).Token,
2947                                               new BuiltInExpr(BuiltInKind.Like, Terminal(val_peek(1)).Token, (Node)val_peek(3), (Node)val_peek(0)));
2948                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxNotLike);
2949                     }
2950 break;
2951 case 140:
2952 //#line 950 "CqlGrammar.y"
2953 {
2954                         yyval = new BuiltInExpr(BuiltInKind.Like, Terminal(val_peek(3)).Token, (Node)val_peek(4), (Node)val_peek(2), (Node)val_peek(0));
2955                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxLike);
2956                     }
2957 break;
2958 case 141:
2959 //#line 955 "CqlGrammar.y"
2960 {
2961                         yyval = new BuiltInExpr(BuiltInKind.Not,
2962                                               Terminal(val_peek(4)).Token,
2963                                               new BuiltInExpr(BuiltInKind.Like, Terminal(val_peek(3)).Token, (Node)val_peek(5), (Node)val_peek(2), (Node)val_peek(0)));
2964                         SetErrCtx(AstNode(yyval), Terminal(val_peek(4)), EntityRes.CtxNotLike);
2965                     }
2966 break;
2967 case 142:
2968 //#line 965 "CqlGrammar.y"
2969 {
2970                         NodeList<Node> elist = (NodeList<Node>)val_peek(2);
2971                         System.Diagnostics.Debug.Assert(elist.Count==2);
2972                         yyval = new BuiltInExpr(BuiltInKind.Between, "between", elist[0], elist[1], (Node)val_peek(0) );
2973                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxBetween);
2974                     }
2975 break;
2976 case 143:
2977 //#line 975 "CqlGrammar.y"
2978 {
2979                         NodeList<Node> elist = (NodeList<Node>)val_peek(2);
2980                         System.Diagnostics.Debug.Assert(elist.Count==2);
2981                         yyval = new BuiltInExpr(BuiltInKind.NotBetween, "notbetween", elist[0], elist[1], (Node)val_peek(0) );
2982                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxNotBetween);
2983                     }
2984 break;
2985 case 144:
2986 //#line 985 "CqlGrammar.y"
2987 {
2988                         yyval = new BuiltInExpr(BuiltInKind.Or, "or", (Node)val_peek(2), (Node)val_peek(0));
2989                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxOr);
2990                     }
2991 break;
2992 case 145:
2993 //#line 990 "CqlGrammar.y"
2994 {
2995                         yyval = new BuiltInExpr(BuiltInKind.Not, "not", (Node)val_peek(0));
2996                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxNot);
2997                     }
2998 break;
2999 case 146:
3000 //#line 995 "CqlGrammar.y"
3001 {
3002                         yyval = new BuiltInExpr(BuiltInKind.And, "and", (Node)val_peek(2), (Node)val_peek(0));
3003                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxAnd);
3004                     }
3005 break;
3006 case 147:
3007 //#line 1000 "CqlGrammar.y"
3008 {
3009                         yyval = val_peek(0);
3010                     }
3011 break;
3012 case 148:
3013 //#line 1006 "CqlGrammar.y"
3014 {
3015                         yyval = val_peek(0);
3016                     }
3017 break;
3018 case 149:
3019 //#line 1010 "CqlGrammar.y"
3020 {
3021                         yyval = val_peek(0);
3022                     }
3023 break;
3024 case 150:
3025 //#line 1016 "CqlGrammar.y"
3026 {
3027                         yyval = new BuiltInExpr(BuiltInKind.Equal, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
3028                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxEquals);
3029                     }
3030 break;
3031 case 151:
3032 //#line 1023 "CqlGrammar.y"
3033 {
3034                         yyval = new BuiltInExpr(BuiltInKind.Equal, Terminal(val_peek(1)).Token, (Node)val_peek(2), (Node)val_peek(0));
3035                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxEquals);
3036                     }
3037 break;
3038 case 152:
3039 //#line 1030 "CqlGrammar.y"
3040 {
3041                         yyval = new AliasedExpr((Node)val_peek(2), (Identifier)val_peek(0));
3042                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxAlias);
3043                     }
3044 break;
3045 case 153:
3046 //#line 1035 "CqlGrammar.y"
3047 {
3048                         yyval = new AliasedExpr((Node)val_peek(0));
3049                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
3050                     }
3051 break;
3052 case 154:
3053 //#line 1042 "CqlGrammar.y"
3054 {
3055                        yyval = new NodeList<AliasedExpr>((AliasedExpr)val_peek(0));
3056                        SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
3057                     }
3058 break;
3059 case 155:
3060 //#line 1047 "CqlGrammar.y"
3061 {
3062                        yyval = ToNodeList<AliasedExpr>(val_peek(2)).Add((AliasedExpr)val_peek(0));
3063                         SetErrCtx(AstNode(yyval), AstNodePos(yyval), EntityRes.CtxExpressionList);
3064                     }
3065 break;
3066 case 156:
3067 //#line 1054 "CqlGrammar.y"
3068 {
3069                         yyval = new CaseExpr(ToNodeList<WhenThenExpr>(val_peek(1)));
3070                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxCase);
3071                     }
3072 break;
3073 case 157:
3074 //#line 1059 "CqlGrammar.y"
3075 {
3076                         yyval = new CaseExpr(ToNodeList<WhenThenExpr>(val_peek(2)), (Node)val_peek(1));
3077                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxCase);
3078                     }
3079 break;
3080 case 158:
3081 //#line 1066 "CqlGrammar.y"
3082 {
3083                         yyval = new NodeList<WhenThenExpr>(new WhenThenExpr((Node)val_peek(2), (Node)val_peek(0)));
3084                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxCaseWhenThen);
3085                     }
3086 break;
3087 case 159:
3088 //#line 1071 "CqlGrammar.y"
3089 {
3090                         yyval = ToNodeList<WhenThenExpr>(val_peek(4)).Add(new WhenThenExpr((Node)val_peek(2), (Node)val_peek(0)));
3091                     }
3092 break;
3093 case 160:
3094 //#line 1077 "CqlGrammar.y"
3095 {
3096                         yyval = (Node)val_peek(0);
3097                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxCaseElse);
3098                     }
3099 break;
3100 case 161:
3101 //#line 1084 "CqlGrammar.y"
3102 {
3103                         yyval = new RowConstructorExpr(ToNodeList<AliasedExpr>(val_peek(1)));
3104                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxRowCtor);
3105                     }
3106 break;
3107 case 162:
3108 //#line 1089 "CqlGrammar.y"
3109 {
3110                         yyval = new MultisetConstructorExpr(ToNodeList<Node>(val_peek(1)));
3111                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxMultisetCtor);
3112                     }
3113 break;
3114 case 163:
3115 //#line 1094 "CqlGrammar.y"
3116 {
3117                         yyval = new MultisetConstructorExpr(ToNodeList<Node>(val_peek(1)));
3118                         SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxMultisetCtor);
3119                     }
3120 break;
3121 case 164:
3122 //#line 1101 "CqlGrammar.y"
3123 {
3124                         yyval = new DotExpr((Node)val_peek(2), (Identifier)val_peek(0));
3125                         SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxMemberAccess);
3126                     }
3127 break;
3128 case 165:
3129 //#line 1108 "CqlGrammar.y"
3130 {
3131                         yyval = new RefExpr((Node)val_peek(1));
3132                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxRef);
3133                     }
3134 break;
3135 case 166:
3136 //#line 1115 "CqlGrammar.y"
3137 {
3138                         yyval = new DerefExpr((Node)val_peek(1));
3139                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxDeref);
3140                     }
3141 break;
3142 case 167:
3143 //#line 1122 "CqlGrammar.y"
3144 {
3145                         yyval = new CreateRefExpr((Node)val_peek(3), (Node)val_peek(1));
3146                         SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxCreateRef);
3147                     }
3148 break;
3149 case 168:
3150 //#line 1127 "CqlGrammar.y"
3151 {
3152                         yyval = new CreateRefExpr((Node)val_peek(5), (Node)val_peek(3), (Node)val_peek(1));
3153                         SetErrCtx(AstNode(yyval), Terminal(val_peek(7)), EntityRes.CtxCreateRef);
3154                     }
3155 break;
3156 case 169:
3157 //#line 1134 "CqlGrammar.y"
3158 {
3159                         yyval = new KeyExpr((Node)val_peek(1));
3160                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxKey);
3161                     }
3162 break;
3163 case 170:
3164 //#line 1141 "CqlGrammar.y"
3165 {
3166                         yyval = new GroupPartitionExpr((DistinctKind)val_peek(2), (Node)val_peek(1));
3167                         SetErrCtx(AstNode(yyval), Terminal(val_peek(4)), EntityRes.CtxGroupPartition);
3168                     }
3169 break;
3170 case 171:
3171 //#line 1148 "CqlGrammar.y"
3172 {
3173                         yyval = new MethodExpr((Node)val_peek(2), DistinctKind.None, null);
3174                         SetErrCtx(AstNode(yyval), AstNodePos(((DotExpr)val_peek(2)).Identifier), EntityRes.CtxMethod);
3175                     }
3176 break;
3177 case 172:
3178 //#line 1153 "CqlGrammar.y"
3179 {
3180                         yyval = new MethodExpr((Node)val_peek(5), (DistinctKind)val_peek(3), ToNodeList<Node>(val_peek(2)), ToNodeList<RelshipNavigationExpr>(val_peek(0)));
3181                         SetErrCtx(AstNode(yyval), AstNodePos(((DotExpr)val_peek(5)).Identifier), EntityRes.CtxMethod);
3182                     }
3183 break;
3184 case 173:
3185 //#line 1158 "CqlGrammar.y"
3186 {
3187                         yyval = new MethodExpr((Node)val_peek(5), (DistinctKind)val_peek(3), new NodeList<Node>((Node)val_peek(2)), ToNodeList<RelshipNavigationExpr>(val_peek(0)));
3188                         SetErrCtx(AstNode(yyval), AstNodePos(((DotExpr)val_peek(5)).Identifier), EntityRes.CtxMethod);
3189                     }
3190 break;
3191 case 174:
3192 //#line 1163 "CqlGrammar.y"
3193 {
3194                         yyval = new MethodExpr((Identifier)val_peek(2), DistinctKind.None, null);
3195                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxMethod);
3196                     }
3197 break;
3198 case 175:
3199 //#line 1168 "CqlGrammar.y"
3200 {
3201                         yyval = new MethodExpr((Identifier)val_peek(5), (DistinctKind)val_peek(3), ToNodeList<Node>(val_peek(2)), ToNodeList<RelshipNavigationExpr>(val_peek(0)));
3202                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(5)), EntityRes.CtxMethod);
3203                     }
3204 break;
3205 case 176:
3206 //#line 1173 "CqlGrammar.y"
3207 {
3208                         yyval = new MethodExpr((Identifier)val_peek(5),(DistinctKind)val_peek(3), new NodeList<Node>((Node)val_peek(2)), ToNodeList<RelshipNavigationExpr>(val_peek(0)));
3209                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(5)), EntityRes.CtxMethod);
3210                     }
3211 break;
3212 case 177:
3213 //#line 1183 "CqlGrammar.y"
3214 {
3215                         yyval = new RelshipNavigationExpr((Node)val_peek(3), (Node)val_peek(1), null, null);
3216                         SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxNavigate);
3217                     }
3218 break;
3219 case 178:
3220 //#line 1191 "CqlGrammar.y"
3221 {
3222                         yyval = new RelshipNavigationExpr((Node)val_peek(5), (Node)val_peek(3), (Identifier)val_peek(1), null);
3223                         SetErrCtx(AstNode(yyval), Terminal(val_peek(7)), EntityRes.CtxNavigate);
3224                     }
3225 break;
3226 case 179:
3227 //#line 1199 "CqlGrammar.y"
3228 {
3229                         yyval = new RelshipNavigationExpr((Node)val_peek(7), (Node)val_peek(5), (Identifier)val_peek(3), (Identifier)val_peek(1));
3230                         SetErrCtx(AstNode(yyval), Terminal(val_peek(9)), EntityRes.CtxNavigate);
3231                     }
3232 break;
3233 case 180:
3234 //#line 1206 "CqlGrammar.y"
3235 {
3236                         yyval = null;
3237                     }
3238 break;
3239 case 181:
3240 //#line 1210 "CqlGrammar.y"
3241 {
3242                         yyval = val_peek(0);
3243                     }
3244 break;
3245 case 182:
3246 //#line 1216 "CqlGrammar.y"
3247 {
3248                         yyval = new NodeList<RelshipNavigationExpr>((RelshipNavigationExpr)val_peek(0));
3249                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxRelationshipList);
3250                     }
3251 break;
3252 case 183:
3253 //#line 1221 "CqlGrammar.y"
3254 {
3255                         yyval = ToNodeList<RelshipNavigationExpr>(val_peek(1)).Add((RelshipNavigationExpr)val_peek(0));
3256                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxRelationshipList);
3257                     }
3258 break;
3259 case 184:
3260 //#line 1231 "CqlGrammar.y"
3261 {
3262                         yyval = new RelshipNavigationExpr((Node)val_peek(3), (Node)val_peek(1), null, null);
3263                         SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxRelationship);
3264                     }
3265 break;
3266 case 185:
3267 //#line 1239 "CqlGrammar.y"
3268 {
3269                         yyval = new RelshipNavigationExpr((Node)val_peek(5), (Node)val_peek(3), null, (Identifier)val_peek(1));
3270                         SetErrCtx(AstNode(yyval), Terminal(val_peek(7)), EntityRes.CtxRelationship);
3271                     }
3272 break;
3273 case 186:
3274 //#line 1247 "CqlGrammar.y"
3275 {
3276                         yyval = new RelshipNavigationExpr((Node)val_peek(7), (Node)val_peek(5), (Identifier)val_peek(1), (Identifier)val_peek(3));
3277                         SetErrCtx(AstNode(yyval), Terminal(val_peek(9)), EntityRes.CtxRelationship);
3278                     }
3279 break;
3280 case 187:
3281 //#line 1254 "CqlGrammar.y"
3282 {
3283                         yyval = val_peek(0);
3284                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxTypeName);
3285                     }
3286 break;
3287 case 188:
3288 //#line 1259 "CqlGrammar.y"
3289 {
3290                         yyval = val_peek(0);
3291                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxTypeName);
3292                     }
3293 break;
3294 case 189:
3295 //#line 1264 "CqlGrammar.y"
3296 {
3297                         Identifier identifier = (Identifier)val_peek(1);
3298                         Identifier escapedIdentifier = (Identifier)val_peek(0);
3299                         if (identifier.IsEscaped || escapedIdentifier.Name.Length > 0)
3300                         {
3301                             throw EntityUtil.EntitySqlError(identifier.ErrCtx, System.Data.Entity.Strings.InvalidMetadataMemberName);
3302                         }
3303                         yyval = new Identifier(identifier.Name + "[]", /*isEscaped*/false, _query, AstNodePos(val_peek(1)));
3304                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxTypeName);
3305                     }
3306 break;
3307 case 190:
3308 //#line 1275 "CqlGrammar.y"
3309 {
3310                         DotExpr dotExpr = (DotExpr)val_peek(1);
3311                         Identifier identifier = dotExpr.Identifier;
3312                         Identifier escapedIdentifier = (Identifier)val_peek(0);
3313                         if (identifier.IsEscaped || escapedIdentifier.Name.Length > 0)
3314                         {
3315                             throw EntityUtil.EntitySqlError(identifier.ErrCtx, System.Data.Entity.Strings.InvalidMetadataMemberName);
3316                         }
3317                         yyval = new DotExpr(dotExpr.Left, new Identifier(identifier.Name + "[]", /*isEscaped*/false, _query, AstNodePos(val_peek(1))));
3318                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxTypeName);
3319                     }
3320 break;
3321 case 191:
3322 //#line 1287 "CqlGrammar.y"
3323 {
3324                         yyval = (MethodExpr)val_peek(0);
3325                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxTypeName);
3326                     }
3327 break;
3328 case 192:
3329 //#line 1294 "CqlGrammar.y"
3330 {
3331                         yyval = new DotExpr((Node)val_peek(2), (Identifier)val_peek(0));
3332                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxTypeName);
3333                     }
3334 break;
3335 case 193:
3336 //#line 1301 "CqlGrammar.y"
3337 {
3338                         yyval = new MethodExpr((Node)val_peek(2), DistinctKind.None, null);
3339                         SetErrCtx(AstNode(yyval), AstNodePos(((DotExpr)val_peek(2)).Identifier), EntityRes.CtxTypeNameWithTypeSpec);
3340                     }
3341 break;
3342 case 194:
3343 //#line 1306 "CqlGrammar.y"
3344 {
3345                         yyval = new MethodExpr((Node)val_peek(3), DistinctKind.None, ToNodeList<Node>(val_peek(1)));
3346                         SetErrCtx(AstNode(yyval), AstNodePos(((DotExpr)val_peek(3)).Identifier), EntityRes.CtxTypeNameWithTypeSpec);
3347                     }
3348 break;
3349 case 195:
3350 //#line 1311 "CqlGrammar.y"
3351 {
3352                         yyval = new MethodExpr((Identifier)val_peek(2), DistinctKind.None, null);
3353                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxTypeNameWithTypeSpec);
3354                     }
3355 break;
3356 case 196:
3357 //#line 1316 "CqlGrammar.y"
3358 {
3359                         yyval = new MethodExpr((Identifier)val_peek(3), DistinctKind.None, ToNodeList<Node>(val_peek(1)));
3360                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(3)), EntityRes.CtxTypeNameWithTypeSpec);
3361                     }
3362 break;
3363 case 197:
3364 //#line 1323 "CqlGrammar.y"
3365 {
3366                         yyval = (Identifier)val_peek(0);
3367                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxEscapedIdentifier);
3368                     }
3369 break;
3370 case 198:
3371 //#line 1328 "CqlGrammar.y"
3372 {
3373                         yyval = (Identifier)val_peek(0);
3374                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxSimpleIdentifier);
3375                     }
3376 break;
3377 case 199:
3378 //#line 1335 "CqlGrammar.y"
3379 {
3380                         yyval = (Identifier)val_peek(0);
3381                     }
3382 break;
3383 case 200:
3384 //#line 1341 "CqlGrammar.y"
3385 {
3386                         yyval = val_peek(0);
3387                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxLiteral);
3388                     }
3389 break;
3390 case 201:
3391 //#line 1346 "CqlGrammar.y"
3392 {
3393                         yyval = new Literal(null, LiteralKind.Null, _query, TerminalPos(val_peek(0)));
3394                         SetErrCtx(AstNode(yyval), Terminal(val_peek(0)), EntityRes.CtxNullLiteral);
3395                     }
3396 break;
3397 case 202:
3398 //#line 1357 "CqlGrammar.y"
3399 {
3400                         yyval = val_peek(0);
3401                     }
3402 break;
3403 case 203:
3404 //#line 1361 "CqlGrammar.y"
3405 {
3406                         yyval = val_peek(0);
3407                     }
3408 break;
3409 case 204:
3410 //#line 1365 "CqlGrammar.y"
3411 {
3412                         yyval = val_peek(0);
3413                     }
3414 break;
3415 case 205:
3416 //#line 1369 "CqlGrammar.y"
3417 {
3418                         yyval = val_peek(0);
3419                     }
3420 break;
3421 case 206:
3422 //#line 1375 "CqlGrammar.y"
3423 {
3424                         yyval = new CollectionTypeDefinition((Node)val_peek(1));
3425                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxCollectionTypeDefinition);
3426                     }
3427 break;
3428 case 207:
3429 //#line 1382 "CqlGrammar.y"
3430 {
3431                         yyval = new RefTypeDefinition((Node)val_peek(1));
3432                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxRefTypeDefinition);
3433                     }
3434 break;
3435 case 208:
3436 //#line 1389 "CqlGrammar.y"
3437 {
3438                         yyval = new RowTypeDefinition(ToNodeList<PropDefinition>(val_peek(1)));
3439                         SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxRowTypeDefinition);
3440                     }
3441 break;
3442 case 209:
3443 //#line 1396 "CqlGrammar.y"
3444 {
3445                         yyval = new NodeList<PropDefinition>((PropDefinition)val_peek(0));
3446                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
3447                     }
3448 break;
3449 case 210:
3450 //#line 1401 "CqlGrammar.y"
3451 {
3452                         yyval = ToNodeList<PropDefinition>(val_peek(2)).Add((PropDefinition)val_peek(0));
3453                         SetErrCtx(AstNode(yyval), AstNodePos(yyval), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
3454                     }
3455 break;
3456 case 211:
3457 //#line 1408 "CqlGrammar.y"
3458 {
3459                         yyval = new PropDefinition((Identifier)val_peek(1), (Node)val_peek(0));
3460                         SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxRowTypeDefinition);
3461                     }
3462 break;
3463
3464 //########## END OF USER-SUPPLIED ACTIONS ##########
3465     }
3466 #if YYDEBUG
3467     debug("reduce");
3468 #endif
3469          state_drop( yym );
3470     yystate = state_peek(0);
3471     val_drop( yym );
3472     yym = yylhs[yyn];
3473     if (yystate == 0 && yym == 0)
3474     {
3475 #if YYDEBUG
3476         debug("After reduction, shifting from state 0 to state "+YYFINAL+"");
3477 #endif
3478                  yystate = YYFINAL;
3479         state_push( YYFINAL );
3480         val_push( yyval );
3481         if (yychar < 0)
3482         {
3483             yychar = yylex();
3484                         if (yychar < 0) yychar = 0;
3485 #if YYDEBUG
3486             if (yydebug)
3487             yylexdebug(yystate,yychar);
3488 #endif
3489         }
3490         if (yychar == 0) goto yyaccept;
3491         goto yyloop;
3492     }
3493         yyn = yygindex[yym];
3494     if ((yyn!=0) && (yyn += yystate) >= 0 &&
3495             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
3496         yystate = yytable[yyn];
3497     else
3498         yystate = yydgoto[yym];
3499     if (stateptr < 0)
3500     {
3501         goto yyoverflow;
3502     }
3503 #if YYDEBUG
3504     debug("after reduction, shifting from state "+state_peek(0)+" to state "+yystate+"");
3505 #endif
3506          state_push(yystate);
3507     val_push( yyval );
3508     goto yyloop;
3509 yyoverflow:
3510     yyerror("yacc stack overflow");
3511 yyabort:
3512     return (1);
3513 yyaccept:
3514     return (0);
3515 }
3516
3517 //## end of method parse() ######################################
3518
3519
3520
3521 }
3522 //################### END OF CLASS ######################
3523 }
3524 //################### END OF NAMESPACE ######################