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";
7 // the current file was generated on 06/16/2010 at 16:57
10 //#line 2 "CqlGrammar.y"
14 /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16 !! ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION !!
18 !! DO NOT CHANGE THIS FILE (CqlParser.cs) BY HAND!!!! !!
19 !! YOU HAVE BEEN WARNED !!!! !!
21 !! ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION !!
23 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
25 /*-----------------------------------------------------------------------------
26 // <copyright file="CqlGrammar.y" company="Microsoft">
27 // Copyright (c) Microsoft Corporation. All rights reserved.
31 // @backupOwner [....]
32 //---------------------------------------------------------------------------*/
35 using System.Data.Common.EntitySql.AST;
36 using System.Data.Entity;
38 /*//////////////////////////////////////////////////////////////////////////////
40 This pragma is needed since symbols used for defining precedence are not always
41 code generated by yacc
43 ///////////////////////////////////////////////////////////////////////////////*/
44 #pragma warning disable 414
49 //#####################################################################
50 // namespace: System.Data.Common.EntitySql
51 //#####################################################################
52 namespace System.Data.Common.EntitySql {
53 //#####################################################################
55 // does : encapsulates yacc() parser functionality in a C# class
56 //#####################################################################
57 internal partial class CqlParser{
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
66 //########## MESSAGES ##########
67 //###############################################################
69 //###############################################################
70 void debug(String msg)
73 Console.WriteLine(msg);
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)
84 if (stateptr>=YYSTACKSIZE-1) //overflowed?
85 yyerror_stackoverflow();
86 statestk[++stateptr]=state;
90 if (stateptr<0) //underflowed?
92 return statestk[stateptr--];
94 void state_drop(int cnt)
102 int state_peek(int relative)
105 ptr=stateptr-relative;
108 return statestk[ptr];
110 //###############################################################
111 // method: init_stacks : allocate and prepare stacks
112 //###############################################################
113 Boolean init_stacks()
115 statestk = new int[YYSTACKSIZE];
120 //###############################################################
121 // method: dump_stacks : show n levels of the stacks
122 //###############################################################
123 void dump_stacks(int count)
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("======================");
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()
140 //###############################################################
141 // methods: value stack push,pop,drop,peek.
142 //###############################################################
145 valstk=new object[YYSTACKSIZE];
150 void val_push(object val)
152 if (valptr>=YYSTACKSIZE)
154 valstk[++valptr]=val;
160 return valstk[valptr--];
162 void val_drop(int cnt)
170 object val_peek(int relative)
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,
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,
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,
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,
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,
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,
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,
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,
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,
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",
1615 static String [] yyrule = {
1616 "$accept : 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",
1641 "optSemiColon : SCOLON",
1642 "queryExpr : selectClause fromClause optWhereClause optGroupByClause optHavingClause optOrderByClause",
1644 "selectClause : SELECT $$1 optAllOrDistinct optTopClause aliasExprList",
1646 "selectClause : SELECT $$2 VALUE optAllOrDistinct optTopClause aliasExprList",
1647 "optAllOrDistinct :",
1648 "optAllOrDistinct : ALL",
1649 "optAllOrDistinct : DISTINCT",
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",
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",
1676 "optWhereClause : whereClause",
1677 "whereClause : WHERE Expr",
1678 "optGroupByClause :",
1679 "optGroupByClause : groupByClause",
1680 "groupByClause : GROUP BY aliasExprList",
1681 "optHavingClause :",
1682 "optHavingClause : havingClause",
1684 "havingClause : HAVING $$3 Expr",
1685 "optOrderByClause :",
1686 "optOrderByClause : orderByClause",
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",
1699 "optAscDesc : DESC",
1701 "exprList : exprList COMMA Expr",
1704 "Expr : identifier",
1705 "Expr : builtInExpr",
1708 "Expr : createRefExpr",
1710 "Expr : groupPartitionExpr",
1711 "Expr : methodExpr",
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",
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",
1830 //#line 1415 "CqlGrammar.y"
1832 #pragma warning restore 414
1833 //###############################################################
1834 // method: yylexdebug : check lexer state
1835 //###############################################################
1836 void yylexdebug(int state,int ch)
1840 if (ch <= YYMAXTOKEN) //check index bounds
1841 s = yyname[ch]; //now get it
1843 s = "illegal-symbol";
1844 debug("state "+state+", reading "+ch+" ("+s+")");
1849 //###############################################################
1850 // method: yyparse : parse input and execute indicated items
1851 //###############################################################
1854 int yyn; //next thing to do
1856 int yystate; //current parsing state from state table
1858 String yys; //current token string
1866 state_push(yystate);
1872 yyn = yydefred[yystate];
1873 if (yyn!=0) goto yyreduce;
1875 debug("yyn:"+yyn+" state:"+yystate+" char:"+yychar);
1880 if (yychar < 0) yychar = 0;
1882 yyn = yysindex[yystate];
1883 if ((yyn!=0) && (yyn += yychar) >= 0 &&
1884 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1887 debug("state "+yystate+", shifting to state "+yytable[yyn]+"");
1889 yystate = yytable[yyn];
1890 state_push(yystate);
1893 if (yyerrflag > 0) --yyerrflag;
1896 yyn = yyrindex[yystate];
1897 if ((yyn!=0) && (yyn += yychar) >= 0 &&
1898 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1906 if (yyerrflag!=0) goto yyinrecovery;
1907 yyerror("syntax error");
1920 yyn = yysindex[state_peek(0)];
1921 if ((yyn!=0) && (yyn += YYERRCODE) >= 0 &&
1922 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1929 debug("state "+state_peek(0)+", error recovery shifting to state "+yytable[yyn]+" ");
1931 yystate = yytable[yyn];
1932 state_push(yystate);
1943 debug("error recovery discarding state "+state_peek(0)+" ");
1952 if (yychar == 0) goto yyabort;
1957 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1958 if (yys == null) yys = "illegal-symbol";
1959 debug("state "+yystate+", error recovery discards token "+yychar+" ("+yys+")");
1968 debug("state "+yystate+", reducing "+yym+" by rule "+yyn+" ("+yyrule[yyn]+")");
1970 yyval = val_peek(yym-1);
1973 //########## USER-SUPPLIED ACTIONS ##########
1975 //#line 108 "CqlGrammar.y"
1977 yyval = _parsedTree = null;
1981 //#line 112 "CqlGrammar.y"
1983 yyval = _parsedTree = (Node)val_peek(0);
1987 //#line 118 "CqlGrammar.y"
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);
1994 //#line 129 "CqlGrammar.y"
2000 //#line 133 "CqlGrammar.y"
2002 yyval = val_peek(0);
2006 //#line 139 "CqlGrammar.y"
2008 yyval = new NodeList<NamespaceImport>((NamespaceImport)val_peek(0));
2009 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxNamespaceImportList);
2013 //#line 144 "CqlGrammar.y"
2015 yyval = ToNodeList<NamespaceImport>(val_peek(1)).Add((NamespaceImport)val_peek(0));
2019 //#line 150 "CqlGrammar.y"
2021 yyval = new NamespaceImport((Identifier)val_peek(1));
2022 SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxNamespaceImport);
2026 //#line 155 "CqlGrammar.y"
2028 yyval = new NamespaceImport((DotExpr)val_peek(1));
2029 SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxNamespaceImport);
2033 //#line 160 "CqlGrammar.y"
2035 yyval = new NamespaceImport((BuiltInExpr)val_peek(1));
2036 SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxAliasedNamespaceImport);
2040 //#line 171 "CqlGrammar.y"
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);
2047 //#line 182 "CqlGrammar.y"
2053 //#line 186 "CqlGrammar.y"
2055 yyval = val_peek(0);
2059 //#line 192 "CqlGrammar.y"
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);
2066 //#line 197 "CqlGrammar.y"
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);
2073 //#line 204 "CqlGrammar.y"
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);
2080 //#line 211 "CqlGrammar.y"
2086 //#line 215 "CqlGrammar.y"
2088 yyval = val_peek(1);
2092 //#line 221 "CqlGrammar.y"
2094 yyval = new NodeList<PropDefinition>((PropDefinition)val_peek(0));
2095 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2099 //#line 226 "CqlGrammar.y"
2101 yyval = ToNodeList<PropDefinition>(val_peek(2)).Add((PropDefinition)val_peek(0));
2102 SetErrCtx(AstNode(yyval), AstNodePos(yyval), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2106 //#line 233 "CqlGrammar.y"
2108 yyval = new PropDefinition((Identifier)val_peek(1), (Node)val_peek(0));
2109 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxFunctionDefinition);
2113 //#line 244 "CqlGrammar.y"
2115 yyval = val_peek(0);
2119 //#line 248 "CqlGrammar.y"
2121 yyval = val_peek(0);
2125 //#line 254 "CqlGrammar.y"
2131 //#line 258 "CqlGrammar.y"
2137 //#line 268 "CqlGrammar.y"
2139 yyval = new QueryExpr( (SelectClause)val_peek(5) ,
2140 (FromClause)val_peek(4) ,
2142 (GroupByClause)val_peek(2) ,
2143 (HavingClause)val_peek(1) ,
2144 (OrderByClause)val_peek(0) );
2146 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(5)), EntityRes.CtxQueryExpression);
2150 //#line 281 "CqlGrammar.y"
2152 StartMethodExprCounting();
2156 //#line 287 "CqlGrammar.y"
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);
2163 //#line 292 "CqlGrammar.y"
2165 StartMethodExprCounting();
2169 //#line 299 "CqlGrammar.y"
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);
2176 //#line 306 "CqlGrammar.y"
2178 yyval = DistinctKind.None;
2182 //#line 310 "CqlGrammar.y"
2184 yyval = DistinctKind.All;
2188 //#line 314 "CqlGrammar.y"
2190 yyval = DistinctKind.Distinct;
2194 //#line 320 "CqlGrammar.y"
2200 //#line 324 "CqlGrammar.y"
2202 yyval = val_peek(1);
2203 SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxTopSubClause);
2207 //#line 331 "CqlGrammar.y"
2209 yyval = new FromClause(ToNodeList<FromClauseItem>(val_peek(0)));
2210 SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxFromClause);
2214 //#line 338 "CqlGrammar.y"
2216 yyval = new NodeList<FromClauseItem>((FromClauseItem)val_peek(0));
2217 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2221 //#line 343 "CqlGrammar.y"
2223 yyval = ToNodeList<FromClauseItem>(val_peek(2)).Add((FromClauseItem)val_peek(0));
2224 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxFromClauseList);
2228 //#line 350 "CqlGrammar.y"
2230 yyval = new FromClauseItem((AliasedExpr)val_peek(0));
2231 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxFromClauseItem);
2235 //#line 355 "CqlGrammar.y"
2237 yyval = new FromClauseItem((JoinClauseItem)val_peek(1));
2238 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxFromJoinClause);
2242 //#line 360 "CqlGrammar.y"
2244 yyval = new FromClauseItem((JoinClauseItem)val_peek(0));
2245 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxFromJoinClause);
2249 //#line 365 "CqlGrammar.y"
2251 yyval = new FromClauseItem((ApplyClauseItem)val_peek(1));
2252 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxFromApplyClause);
2256 //#line 370 "CqlGrammar.y"
2258 yyval = new FromClauseItem((ApplyClauseItem)val_peek(0));
2259 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxFromApplyClause);
2263 //#line 377 "CqlGrammar.y"
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);
2270 //#line 382 "CqlGrammar.y"
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);
2277 //#line 389 "CqlGrammar.y"
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);
2284 //#line 396 "CqlGrammar.y"
2286 yyval = JoinKind.Cross;
2290 //#line 400 "CqlGrammar.y"
2292 yyval = JoinKind.LeftOuter;
2296 //#line 404 "CqlGrammar.y"
2298 yyval = JoinKind.LeftOuter;
2302 //#line 408 "CqlGrammar.y"
2304 yyval = JoinKind.RightOuter;
2308 //#line 412 "CqlGrammar.y"
2310 yyval = JoinKind.RightOuter;
2314 //#line 416 "CqlGrammar.y"
2316 yyval = JoinKind.Inner;
2320 //#line 420 "CqlGrammar.y"
2322 yyval = JoinKind.Inner;
2326 //#line 424 "CqlGrammar.y"
2328 yyval = JoinKind.FullOuter;
2332 //#line 428 "CqlGrammar.y"
2334 yyval = JoinKind.FullOuter;
2338 //#line 432 "CqlGrammar.y"
2340 yyval = JoinKind.FullOuter;
2344 //#line 438 "CqlGrammar.y"
2346 yyval = ApplyKind.Cross;
2350 //#line 442 "CqlGrammar.y"
2352 yyval = ApplyKind.Outer;
2356 //#line 447 "CqlGrammar.y"
2362 //#line 451 "CqlGrammar.y"
2364 yyval = val_peek(0);
2368 //#line 457 "CqlGrammar.y"
2370 yyval = (Node)val_peek(0);
2371 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxWhereClause);
2375 //#line 464 "CqlGrammar.y"
2381 //#line 468 "CqlGrammar.y"
2383 yyval = val_peek(0);
2387 //#line 474 "CqlGrammar.y"
2389 yyval = new GroupByClause(ToNodeList<AliasedExpr>(val_peek(0)));
2390 SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxGroupByClause);
2394 //#line 481 "CqlGrammar.y"
2400 //#line 485 "CqlGrammar.y"
2402 yyval = val_peek(0);
2406 //#line 491 "CqlGrammar.y"
2408 StartMethodExprCounting();
2412 //#line 495 "CqlGrammar.y"
2414 yyval = new HavingClause((Node)val_peek(0), EndMethodExprCounting());
2415 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxHavingClause);
2419 //#line 502 "CqlGrammar.y"
2425 //#line 506 "CqlGrammar.y"
2427 yyval = val_peek(0);
2431 //#line 512 "CqlGrammar.y"
2433 StartMethodExprCounting();
2437 //#line 518 "CqlGrammar.y"
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);
2444 //#line 525 "CqlGrammar.y"
2450 //#line 529 "CqlGrammar.y"
2452 yyval = val_peek(0);
2453 SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxSkipSubClause);
2457 //#line 536 "CqlGrammar.y"
2463 //#line 540 "CqlGrammar.y"
2465 yyval = val_peek(0);
2466 SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxLimitSubClause);
2470 //#line 547 "CqlGrammar.y"
2472 yyval = new NodeList<OrderByClauseItem>((OrderByClauseItem)val_peek(0));
2473 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2477 //#line 552 "CqlGrammar.y"
2479 yyval = ToNodeList<OrderByClauseItem>(val_peek(2)).Add((OrderByClauseItem)val_peek(0));
2480 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxOrderByClause);
2484 //#line 559 "CqlGrammar.y"
2486 yyval = new OrderByClauseItem((Node)val_peek(1), (OrderKind)val_peek(0));
2487 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxOrderByClauseItem);
2491 //#line 564 "CqlGrammar.y"
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);
2498 //#line 571 "CqlGrammar.y"
2500 yyval = OrderKind.None;
2504 //#line 575 "CqlGrammar.y"
2506 yyval = OrderKind.Asc;
2510 //#line 579 "CqlGrammar.y"
2512 yyval = OrderKind.Desc;
2516 //#line 588 "CqlGrammar.y"
2518 yyval = new NodeList<Node>((Node)val_peek(0));
2519 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
2523 //#line 593 "CqlGrammar.y"
2525 yyval = ToNodeList<Node>(val_peek(2)).Add((Node)val_peek(0));
2526 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxExpressionList);
2530 //#line 600 "CqlGrammar.y"
2532 yyval = val_peek(0);
2536 //#line 604 "CqlGrammar.y"
2538 yyval = (QueryParameter)val_peek(0);
2542 //#line 608 "CqlGrammar.y"
2544 yyval = (Identifier)val_peek(0);
2548 //#line 612 "CqlGrammar.y"
2550 yyval = val_peek(0);
2554 //#line 616 "CqlGrammar.y"
2556 yyval = val_peek(0);
2560 //#line 620 "CqlGrammar.y"
2562 yyval = val_peek(0);
2566 //#line 624 "CqlGrammar.y"
2568 yyval = val_peek(0);
2572 //#line 628 "CqlGrammar.y"
2574 yyval = val_peek(0);
2578 //#line 632 "CqlGrammar.y"
2580 yyval = val_peek(0);
2581 IncrementMethodExprCount();
2585 //#line 637 "CqlGrammar.y"
2587 yyval = val_peek(0);
2588 IncrementMethodExprCount();
2592 //#line 642 "CqlGrammar.y"
2594 yyval = val_peek(0);
2598 //#line 646 "CqlGrammar.y"
2600 yyval = val_peek(0);
2604 //#line 650 "CqlGrammar.y"
2606 yyval = val_peek(0);
2610 //#line 654 "CqlGrammar.y"
2612 yyval = val_peek(0);
2616 //#line 660 "CqlGrammar.y"
2618 yyval = new ParenExpr((Node)val_peek(1));
2619 SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxParen);
2623 //#line 667 "CqlGrammar.y"
2625 yyval = new NodeList<Node>((Node)val_peek(2)).Add((Node)val_peek(0));
2629 //#line 673 "CqlGrammar.y"
2631 yyval = new NodeList<Node>((Node)val_peek(3)).Add((Node)val_peek(0));
2635 //#line 682 "CqlGrammar.y"
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);
2642 //#line 687 "CqlGrammar.y"
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);
2649 //#line 692 "CqlGrammar.y"
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);
2656 //#line 697 "CqlGrammar.y"
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);
2663 //#line 702 "CqlGrammar.y"
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);
2670 //#line 707 "CqlGrammar.y"
2672 Literal literal = val_peek(0) as Literal;
2673 if ( literal != null && literal.IsNumber && !literal.IsSignedNumber )
2675 literal.PrefixSign(Terminal(val_peek(1)).Token);
2676 yyval = val_peek(0);
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);
2687 //#line 722 "CqlGrammar.y"
2689 Literal literal = val_peek(0) as Literal;
2690 if ( null != literal && literal.IsNumber && !literal.IsSignedNumber )
2692 literal.PrefixSign(Terminal(val_peek(1)).Token);
2693 yyval = val_peek(0);
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);
2703 //#line 739 "CqlGrammar.y"
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);
2710 //#line 744 "CqlGrammar.y"
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);
2717 //#line 749 "CqlGrammar.y"
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);
2724 //#line 754 "CqlGrammar.y"
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);
2731 //#line 759 "CqlGrammar.y"
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);
2738 //#line 767 "CqlGrammar.y"
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);
2745 //#line 772 "CqlGrammar.y"
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);
2752 //#line 777 "CqlGrammar.y"
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);
2759 //#line 782 "CqlGrammar.y"
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);
2766 //#line 787 "CqlGrammar.y"
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);
2773 //#line 792 "CqlGrammar.y"
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);
2780 //#line 797 "CqlGrammar.y"
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);
2787 //#line 802 "CqlGrammar.y"
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);
2794 //#line 807 "CqlGrammar.y"
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);
2801 //#line 812 "CqlGrammar.y"
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);
2808 //#line 817 "CqlGrammar.y"
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);
2815 //#line 822 "CqlGrammar.y"
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);
2822 //#line 830 "CqlGrammar.y"
2824 yyval = new BuiltInExpr(BuiltInKind.IsNull, "IsNull", (Node)val_peek(2));
2825 SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxIsNull);
2829 //#line 835 "CqlGrammar.y"
2831 yyval = new BuiltInExpr(BuiltInKind.IsNotNull, "IsNotNull", (Node)val_peek(3));
2832 SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxIsNotNull);
2836 //#line 843 "CqlGrammar.y"
2838 yyval = (CaseExpr)val_peek(0);
2842 //#line 850 "CqlGrammar.y"
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);
2849 //#line 855 "CqlGrammar.y"
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);
2856 //#line 864 "CqlGrammar.y"
2858 yyval = new BuiltInExpr(BuiltInKind.OfType,
2859 Terminal(val_peek(5)).Token,
2862 Literal.NewBooleanLiteral( false ) /* only */);
2864 SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxOfType);
2868 //#line 874 "CqlGrammar.y"
2870 yyval = new BuiltInExpr(BuiltInKind.OfType,
2874 Literal.NewBooleanLiteral( true ) /* only */);
2876 SetErrCtx(AstNode(yyval), Terminal(val_peek(6)), EntityRes.CtxOfTypeOnly);
2880 //#line 887 "CqlGrammar.y"
2882 yyval = new BuiltInExpr( BuiltInKind.IsOf,
2886 Literal.NewBooleanLiteral( false ), /* only */
2887 Literal.NewBooleanLiteral( false ) /* not */
2890 SetErrCtx(AstNode(yyval), Terminal(val_peek(4)), EntityRes.CtxIsOf);
2894 //#line 899 "CqlGrammar.y"
2896 yyval = new BuiltInExpr( BuiltInKind.IsOf,
2898 (Node)val_peek(6), /* instance */
2899 (Node)val_peek(1), /* type */
2900 Literal.NewBooleanLiteral( false ), /* only */
2901 Literal.NewBooleanLiteral( true ) /* not */
2904 SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxIsNotOf);
2908 //#line 911 "CqlGrammar.y"
2910 yyval = new BuiltInExpr( BuiltInKind.IsOf,
2912 (Node)val_peek(6), /* instance */
2913 (Node)val_peek(1), /* type */
2914 Literal.NewBooleanLiteral( true ), /* only */
2915 Literal.NewBooleanLiteral( false ) /* not */
2918 SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxIsOf);
2922 //#line 923 "CqlGrammar.y"
2924 yyval = new BuiltInExpr( BuiltInKind.IsOf,
2926 (Node)val_peek(7), /* instance */
2927 (Node)val_peek(1), /* type */
2928 Literal.NewBooleanLiteral( true ), /* only */
2929 Literal.NewBooleanLiteral( true ) /* not */
2932 SetErrCtx(AstNode(yyval), Terminal(val_peek(6)), EntityRes.CtxIsNotOf);
2936 //#line 938 "CqlGrammar.y"
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);
2943 //#line 943 "CqlGrammar.y"
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);
2952 //#line 950 "CqlGrammar.y"
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);
2959 //#line 955 "CqlGrammar.y"
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);
2968 //#line 965 "CqlGrammar.y"
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);
2977 //#line 975 "CqlGrammar.y"
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);
2986 //#line 985 "CqlGrammar.y"
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);
2993 //#line 990 "CqlGrammar.y"
2995 yyval = new BuiltInExpr(BuiltInKind.Not, "not", (Node)val_peek(0));
2996 SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxNot);
3000 //#line 995 "CqlGrammar.y"
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);
3007 //#line 1000 "CqlGrammar.y"
3009 yyval = val_peek(0);
3013 //#line 1006 "CqlGrammar.y"
3015 yyval = val_peek(0);
3019 //#line 1010 "CqlGrammar.y"
3021 yyval = val_peek(0);
3025 //#line 1016 "CqlGrammar.y"
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);
3032 //#line 1023 "CqlGrammar.y"
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);
3039 //#line 1030 "CqlGrammar.y"
3041 yyval = new AliasedExpr((Node)val_peek(2), (Identifier)val_peek(0));
3042 SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxAlias);
3046 //#line 1035 "CqlGrammar.y"
3048 yyval = new AliasedExpr((Node)val_peek(0));
3049 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
3053 //#line 1042 "CqlGrammar.y"
3055 yyval = new NodeList<AliasedExpr>((AliasedExpr)val_peek(0));
3056 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
3060 //#line 1047 "CqlGrammar.y"
3062 yyval = ToNodeList<AliasedExpr>(val_peek(2)).Add((AliasedExpr)val_peek(0));
3063 SetErrCtx(AstNode(yyval), AstNodePos(yyval), EntityRes.CtxExpressionList);
3067 //#line 1054 "CqlGrammar.y"
3069 yyval = new CaseExpr(ToNodeList<WhenThenExpr>(val_peek(1)));
3070 SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxCase);
3074 //#line 1059 "CqlGrammar.y"
3076 yyval = new CaseExpr(ToNodeList<WhenThenExpr>(val_peek(2)), (Node)val_peek(1));
3077 SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxCase);
3081 //#line 1066 "CqlGrammar.y"
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);
3088 //#line 1071 "CqlGrammar.y"
3090 yyval = ToNodeList<WhenThenExpr>(val_peek(4)).Add(new WhenThenExpr((Node)val_peek(2), (Node)val_peek(0)));
3094 //#line 1077 "CqlGrammar.y"
3096 yyval = (Node)val_peek(0);
3097 SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxCaseElse);
3101 //#line 1084 "CqlGrammar.y"
3103 yyval = new RowConstructorExpr(ToNodeList<AliasedExpr>(val_peek(1)));
3104 SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxRowCtor);
3108 //#line 1089 "CqlGrammar.y"
3110 yyval = new MultisetConstructorExpr(ToNodeList<Node>(val_peek(1)));
3111 SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxMultisetCtor);
3115 //#line 1094 "CqlGrammar.y"
3117 yyval = new MultisetConstructorExpr(ToNodeList<Node>(val_peek(1)));
3118 SetErrCtx(AstNode(yyval), Terminal(val_peek(2)), EntityRes.CtxMultisetCtor);
3122 //#line 1101 "CqlGrammar.y"
3124 yyval = new DotExpr((Node)val_peek(2), (Identifier)val_peek(0));
3125 SetErrCtx(AstNode(yyval), Terminal(val_peek(1)), EntityRes.CtxMemberAccess);
3129 //#line 1108 "CqlGrammar.y"
3131 yyval = new RefExpr((Node)val_peek(1));
3132 SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxRef);
3136 //#line 1115 "CqlGrammar.y"
3138 yyval = new DerefExpr((Node)val_peek(1));
3139 SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxDeref);
3143 //#line 1122 "CqlGrammar.y"
3145 yyval = new CreateRefExpr((Node)val_peek(3), (Node)val_peek(1));
3146 SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxCreateRef);
3150 //#line 1127 "CqlGrammar.y"
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);
3157 //#line 1134 "CqlGrammar.y"
3159 yyval = new KeyExpr((Node)val_peek(1));
3160 SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxKey);
3164 //#line 1141 "CqlGrammar.y"
3166 yyval = new GroupPartitionExpr((DistinctKind)val_peek(2), (Node)val_peek(1));
3167 SetErrCtx(AstNode(yyval), Terminal(val_peek(4)), EntityRes.CtxGroupPartition);
3171 //#line 1148 "CqlGrammar.y"
3173 yyval = new MethodExpr((Node)val_peek(2), DistinctKind.None, null);
3174 SetErrCtx(AstNode(yyval), AstNodePos(((DotExpr)val_peek(2)).Identifier), EntityRes.CtxMethod);
3178 //#line 1153 "CqlGrammar.y"
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);
3185 //#line 1158 "CqlGrammar.y"
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);
3192 //#line 1163 "CqlGrammar.y"
3194 yyval = new MethodExpr((Identifier)val_peek(2), DistinctKind.None, null);
3195 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxMethod);
3199 //#line 1168 "CqlGrammar.y"
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);
3206 //#line 1173 "CqlGrammar.y"
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);
3213 //#line 1183 "CqlGrammar.y"
3215 yyval = new RelshipNavigationExpr((Node)val_peek(3), (Node)val_peek(1), null, null);
3216 SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxNavigate);
3220 //#line 1191 "CqlGrammar.y"
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);
3227 //#line 1199 "CqlGrammar.y"
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);
3234 //#line 1206 "CqlGrammar.y"
3240 //#line 1210 "CqlGrammar.y"
3242 yyval = val_peek(0);
3246 //#line 1216 "CqlGrammar.y"
3248 yyval = new NodeList<RelshipNavigationExpr>((RelshipNavigationExpr)val_peek(0));
3249 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxRelationshipList);
3253 //#line 1221 "CqlGrammar.y"
3255 yyval = ToNodeList<RelshipNavigationExpr>(val_peek(1)).Add((RelshipNavigationExpr)val_peek(0));
3256 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxRelationshipList);
3260 //#line 1231 "CqlGrammar.y"
3262 yyval = new RelshipNavigationExpr((Node)val_peek(3), (Node)val_peek(1), null, null);
3263 SetErrCtx(AstNode(yyval), Terminal(val_peek(5)), EntityRes.CtxRelationship);
3267 //#line 1239 "CqlGrammar.y"
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);
3274 //#line 1247 "CqlGrammar.y"
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);
3281 //#line 1254 "CqlGrammar.y"
3283 yyval = val_peek(0);
3284 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxTypeName);
3288 //#line 1259 "CqlGrammar.y"
3290 yyval = val_peek(0);
3291 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxTypeName);
3295 //#line 1264 "CqlGrammar.y"
3297 Identifier identifier = (Identifier)val_peek(1);
3298 Identifier escapedIdentifier = (Identifier)val_peek(0);
3299 if (identifier.IsEscaped || escapedIdentifier.Name.Length > 0)
3301 throw EntityUtil.EntitySqlError(identifier.ErrCtx, System.Data.Entity.Strings.InvalidMetadataMemberName);
3303 yyval = new Identifier(identifier.Name + "[]", /*isEscaped*/false, _query, AstNodePos(val_peek(1)));
3304 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxTypeName);
3308 //#line 1275 "CqlGrammar.y"
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)
3315 throw EntityUtil.EntitySqlError(identifier.ErrCtx, System.Data.Entity.Strings.InvalidMetadataMemberName);
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);
3322 //#line 1287 "CqlGrammar.y"
3324 yyval = (MethodExpr)val_peek(0);
3325 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxTypeName);
3329 //#line 1294 "CqlGrammar.y"
3331 yyval = new DotExpr((Node)val_peek(2), (Identifier)val_peek(0));
3332 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxTypeName);
3336 //#line 1301 "CqlGrammar.y"
3338 yyval = new MethodExpr((Node)val_peek(2), DistinctKind.None, null);
3339 SetErrCtx(AstNode(yyval), AstNodePos(((DotExpr)val_peek(2)).Identifier), EntityRes.CtxTypeNameWithTypeSpec);
3343 //#line 1306 "CqlGrammar.y"
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);
3350 //#line 1311 "CqlGrammar.y"
3352 yyval = new MethodExpr((Identifier)val_peek(2), DistinctKind.None, null);
3353 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(2)), EntityRes.CtxTypeNameWithTypeSpec);
3357 //#line 1316 "CqlGrammar.y"
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);
3364 //#line 1323 "CqlGrammar.y"
3366 yyval = (Identifier)val_peek(0);
3367 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxEscapedIdentifier);
3371 //#line 1328 "CqlGrammar.y"
3373 yyval = (Identifier)val_peek(0);
3374 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxSimpleIdentifier);
3378 //#line 1335 "CqlGrammar.y"
3380 yyval = (Identifier)val_peek(0);
3384 //#line 1341 "CqlGrammar.y"
3386 yyval = val_peek(0);
3387 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), EntityRes.CtxLiteral);
3391 //#line 1346 "CqlGrammar.y"
3393 yyval = new Literal(null, LiteralKind.Null, _query, TerminalPos(val_peek(0)));
3394 SetErrCtx(AstNode(yyval), Terminal(val_peek(0)), EntityRes.CtxNullLiteral);
3398 //#line 1357 "CqlGrammar.y"
3400 yyval = val_peek(0);
3404 //#line 1361 "CqlGrammar.y"
3406 yyval = val_peek(0);
3410 //#line 1365 "CqlGrammar.y"
3412 yyval = val_peek(0);
3416 //#line 1369 "CqlGrammar.y"
3418 yyval = val_peek(0);
3422 //#line 1375 "CqlGrammar.y"
3424 yyval = new CollectionTypeDefinition((Node)val_peek(1));
3425 SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxCollectionTypeDefinition);
3429 //#line 1382 "CqlGrammar.y"
3431 yyval = new RefTypeDefinition((Node)val_peek(1));
3432 SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxRefTypeDefinition);
3436 //#line 1389 "CqlGrammar.y"
3438 yyval = new RowTypeDefinition(ToNodeList<PropDefinition>(val_peek(1)));
3439 SetErrCtx(AstNode(yyval), Terminal(val_peek(3)), EntityRes.CtxRowTypeDefinition);
3443 //#line 1396 "CqlGrammar.y"
3445 yyval = new NodeList<PropDefinition>((PropDefinition)val_peek(0));
3446 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(0)), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
3450 //#line 1401 "CqlGrammar.y"
3452 yyval = ToNodeList<PropDefinition>(val_peek(2)).Add((PropDefinition)val_peek(0));
3453 SetErrCtx(AstNode(yyval), AstNodePos(yyval), AstNode(val_peek(0)).ErrCtx.ErrorContextInfo);
3457 //#line 1408 "CqlGrammar.y"
3459 yyval = new PropDefinition((Identifier)val_peek(1), (Node)val_peek(0));
3460 SetErrCtx(AstNode(yyval), AstNodePos(val_peek(1)), EntityRes.CtxRowTypeDefinition);
3464 //########## END OF USER-SUPPLIED ACTIONS ##########
3470 yystate = state_peek(0);
3473 if (yystate == 0 && yym == 0)
3476 debug("After reduction, shifting from state 0 to state "+YYFINAL+"");
3479 state_push( YYFINAL );
3484 if (yychar < 0) yychar = 0;
3487 yylexdebug(yystate,yychar);
3490 if (yychar == 0) goto yyaccept;
3493 yyn = yygindex[yym];
3494 if ((yyn!=0) && (yyn += yystate) >= 0 &&
3495 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
3496 yystate = yytable[yyn];
3498 yystate = yydgoto[yym];
3504 debug("after reduction, shifting from state "+state_peek(0)+" to state "+yystate+"");
3506 state_push(yystate);
3510 yyerror("yacc stack overflow");
3517 //## end of method parse() ######################################
3522 //################### END OF CLASS ######################
3524 //################### END OF NAMESPACE ######################