~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/innobase/pars/pars0grm.c

Tags: innodb-plugin-1.0.1
Imported 1.0.1 with clean - with no changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* A Bison parser, made by GNU Bison 2.0.  */
 
2
 
 
3
/* Skeleton parser for Yacc-like parsing with Bison,
 
4
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
5
 
 
6
   This program is free software; you can redistribute it and/or modify
 
7
   it under the terms of the GNU General Public License as published by
 
8
   the Free Software Foundation; either version 2, or (at your option)
 
9
   any later version.
 
10
 
 
11
   This program is distributed in the hope that it will be useful,
 
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
   GNU General Public License for more details.
 
15
 
 
16
   You should have received a copy of the GNU General Public License
 
17
   along with this program; if not, write to the Free Software
 
18
   Foundation, Inc., 59 Temple Place - Suite 330,
 
19
   Boston, MA 02111-1307, USA.  */
 
20
 
 
21
/* As a special exception, when this file is copied by Bison into a
 
22
   Bison output file, you may use that output file without restriction.
 
23
   This special exception was added by the Free Software Foundation
 
24
   in version 1.24 of Bison.  */
 
25
 
 
26
/* Written by Richard Stallman by simplifying the original so called
 
27
   ``semantic'' parser.  */
 
28
 
 
29
/* All symbols defined below should begin with yy or YY, to avoid
 
30
   infringing on user name space.  This should be done even for local
 
31
   variables, as they might otherwise be expanded by user macros.
 
32
   There are some unavoidable exceptions within include files to
 
33
   define necessary library symbols; they are noted "INFRINGES ON
 
34
   USER NAME SPACE" below.  */
 
35
 
 
36
/* Identify Bison output.  */
 
37
#define YYBISON 1
 
38
 
 
39
/* Skeleton name.  */
 
40
#define YYSKELETON_NAME "yacc.c"
 
41
 
 
42
/* Pure parsers.  */
 
43
#define YYPURE 0
 
44
 
 
45
/* Using locations.  */
 
46
#define YYLSP_NEEDED 0
 
47
 
 
48
 
 
49
 
 
50
/* Tokens.  */
 
51
#ifndef YYTOKENTYPE
 
52
# define YYTOKENTYPE
 
53
   /* Put the tokens into the symbol table, so that GDB and other debuggers
 
54
      know about them.  */
 
55
   enum yytokentype {
 
56
     PARS_INT_LIT = 258,
 
57
     PARS_FLOAT_LIT = 259,
 
58
     PARS_STR_LIT = 260,
 
59
     PARS_FIXBINARY_LIT = 261,
 
60
     PARS_BLOB_LIT = 262,
 
61
     PARS_NULL_LIT = 263,
 
62
     PARS_ID_TOKEN = 264,
 
63
     PARS_AND_TOKEN = 265,
 
64
     PARS_OR_TOKEN = 266,
 
65
     PARS_NOT_TOKEN = 267,
 
66
     PARS_GE_TOKEN = 268,
 
67
     PARS_LE_TOKEN = 269,
 
68
     PARS_NE_TOKEN = 270,
 
69
     PARS_PROCEDURE_TOKEN = 271,
 
70
     PARS_IN_TOKEN = 272,
 
71
     PARS_OUT_TOKEN = 273,
 
72
     PARS_BINARY_TOKEN = 274,
 
73
     PARS_BLOB_TOKEN = 275,
 
74
     PARS_INT_TOKEN = 276,
 
75
     PARS_INTEGER_TOKEN = 277,
 
76
     PARS_FLOAT_TOKEN = 278,
 
77
     PARS_CHAR_TOKEN = 279,
 
78
     PARS_IS_TOKEN = 280,
 
79
     PARS_BEGIN_TOKEN = 281,
 
80
     PARS_END_TOKEN = 282,
 
81
     PARS_IF_TOKEN = 283,
 
82
     PARS_THEN_TOKEN = 284,
 
83
     PARS_ELSE_TOKEN = 285,
 
84
     PARS_ELSIF_TOKEN = 286,
 
85
     PARS_LOOP_TOKEN = 287,
 
86
     PARS_WHILE_TOKEN = 288,
 
87
     PARS_RETURN_TOKEN = 289,
 
88
     PARS_SELECT_TOKEN = 290,
 
89
     PARS_SUM_TOKEN = 291,
 
90
     PARS_COUNT_TOKEN = 292,
 
91
     PARS_DISTINCT_TOKEN = 293,
 
92
     PARS_FROM_TOKEN = 294,
 
93
     PARS_WHERE_TOKEN = 295,
 
94
     PARS_FOR_TOKEN = 296,
 
95
     PARS_DDOT_TOKEN = 297,
 
96
     PARS_READ_TOKEN = 298,
 
97
     PARS_ORDER_TOKEN = 299,
 
98
     PARS_BY_TOKEN = 300,
 
99
     PARS_ASC_TOKEN = 301,
 
100
     PARS_DESC_TOKEN = 302,
 
101
     PARS_INSERT_TOKEN = 303,
 
102
     PARS_INTO_TOKEN = 304,
 
103
     PARS_VALUES_TOKEN = 305,
 
104
     PARS_UPDATE_TOKEN = 306,
 
105
     PARS_SET_TOKEN = 307,
 
106
     PARS_DELETE_TOKEN = 308,
 
107
     PARS_CURRENT_TOKEN = 309,
 
108
     PARS_OF_TOKEN = 310,
 
109
     PARS_CREATE_TOKEN = 311,
 
110
     PARS_TABLE_TOKEN = 312,
 
111
     PARS_INDEX_TOKEN = 313,
 
112
     PARS_UNIQUE_TOKEN = 314,
 
113
     PARS_CLUSTERED_TOKEN = 315,
 
114
     PARS_DOES_NOT_FIT_IN_MEM_TOKEN = 316,
 
115
     PARS_ON_TOKEN = 317,
 
116
     PARS_ASSIGN_TOKEN = 318,
 
117
     PARS_DECLARE_TOKEN = 319,
 
118
     PARS_CURSOR_TOKEN = 320,
 
119
     PARS_SQL_TOKEN = 321,
 
120
     PARS_OPEN_TOKEN = 322,
 
121
     PARS_FETCH_TOKEN = 323,
 
122
     PARS_CLOSE_TOKEN = 324,
 
123
     PARS_NOTFOUND_TOKEN = 325,
 
124
     PARS_TO_CHAR_TOKEN = 326,
 
125
     PARS_TO_NUMBER_TOKEN = 327,
 
126
     PARS_TO_BINARY_TOKEN = 328,
 
127
     PARS_BINARY_TO_NUMBER_TOKEN = 329,
 
128
     PARS_SUBSTR_TOKEN = 330,
 
129
     PARS_REPLSTR_TOKEN = 331,
 
130
     PARS_CONCAT_TOKEN = 332,
 
131
     PARS_INSTR_TOKEN = 333,
 
132
     PARS_LENGTH_TOKEN = 334,
 
133
     PARS_SYSDATE_TOKEN = 335,
 
134
     PARS_PRINTF_TOKEN = 336,
 
135
     PARS_ASSERT_TOKEN = 337,
 
136
     PARS_RND_TOKEN = 338,
 
137
     PARS_RND_STR_TOKEN = 339,
 
138
     PARS_ROW_PRINTF_TOKEN = 340,
 
139
     PARS_COMMIT_TOKEN = 341,
 
140
     PARS_ROLLBACK_TOKEN = 342,
 
141
     PARS_WORK_TOKEN = 343,
 
142
     PARS_UNSIGNED_TOKEN = 344,
 
143
     PARS_EXIT_TOKEN = 345,
 
144
     PARS_FUNCTION_TOKEN = 346,
 
145
     PARS_LOCK_TOKEN = 347,
 
146
     PARS_SHARE_TOKEN = 348,
 
147
     PARS_MODE_TOKEN = 349,
 
148
     NEG = 350
 
149
   };
 
150
#endif
 
151
#define PARS_INT_LIT 258
 
152
#define PARS_FLOAT_LIT 259
 
153
#define PARS_STR_LIT 260
 
154
#define PARS_FIXBINARY_LIT 261
 
155
#define PARS_BLOB_LIT 262
 
156
#define PARS_NULL_LIT 263
 
157
#define PARS_ID_TOKEN 264
 
158
#define PARS_AND_TOKEN 265
 
159
#define PARS_OR_TOKEN 266
 
160
#define PARS_NOT_TOKEN 267
 
161
#define PARS_GE_TOKEN 268
 
162
#define PARS_LE_TOKEN 269
 
163
#define PARS_NE_TOKEN 270
 
164
#define PARS_PROCEDURE_TOKEN 271
 
165
#define PARS_IN_TOKEN 272
 
166
#define PARS_OUT_TOKEN 273
 
167
#define PARS_BINARY_TOKEN 274
 
168
#define PARS_BLOB_TOKEN 275
 
169
#define PARS_INT_TOKEN 276
 
170
#define PARS_INTEGER_TOKEN 277
 
171
#define PARS_FLOAT_TOKEN 278
 
172
#define PARS_CHAR_TOKEN 279
 
173
#define PARS_IS_TOKEN 280
 
174
#define PARS_BEGIN_TOKEN 281
 
175
#define PARS_END_TOKEN 282
 
176
#define PARS_IF_TOKEN 283
 
177
#define PARS_THEN_TOKEN 284
 
178
#define PARS_ELSE_TOKEN 285
 
179
#define PARS_ELSIF_TOKEN 286
 
180
#define PARS_LOOP_TOKEN 287
 
181
#define PARS_WHILE_TOKEN 288
 
182
#define PARS_RETURN_TOKEN 289
 
183
#define PARS_SELECT_TOKEN 290
 
184
#define PARS_SUM_TOKEN 291
 
185
#define PARS_COUNT_TOKEN 292
 
186
#define PARS_DISTINCT_TOKEN 293
 
187
#define PARS_FROM_TOKEN 294
 
188
#define PARS_WHERE_TOKEN 295
 
189
#define PARS_FOR_TOKEN 296
 
190
#define PARS_DDOT_TOKEN 297
 
191
#define PARS_READ_TOKEN 298
 
192
#define PARS_ORDER_TOKEN 299
 
193
#define PARS_BY_TOKEN 300
 
194
#define PARS_ASC_TOKEN 301
 
195
#define PARS_DESC_TOKEN 302
 
196
#define PARS_INSERT_TOKEN 303
 
197
#define PARS_INTO_TOKEN 304
 
198
#define PARS_VALUES_TOKEN 305
 
199
#define PARS_UPDATE_TOKEN 306
 
200
#define PARS_SET_TOKEN 307
 
201
#define PARS_DELETE_TOKEN 308
 
202
#define PARS_CURRENT_TOKEN 309
 
203
#define PARS_OF_TOKEN 310
 
204
#define PARS_CREATE_TOKEN 311
 
205
#define PARS_TABLE_TOKEN 312
 
206
#define PARS_INDEX_TOKEN 313
 
207
#define PARS_UNIQUE_TOKEN 314
 
208
#define PARS_CLUSTERED_TOKEN 315
 
209
#define PARS_DOES_NOT_FIT_IN_MEM_TOKEN 316
 
210
#define PARS_ON_TOKEN 317
 
211
#define PARS_ASSIGN_TOKEN 318
 
212
#define PARS_DECLARE_TOKEN 319
 
213
#define PARS_CURSOR_TOKEN 320
 
214
#define PARS_SQL_TOKEN 321
 
215
#define PARS_OPEN_TOKEN 322
 
216
#define PARS_FETCH_TOKEN 323
 
217
#define PARS_CLOSE_TOKEN 324
 
218
#define PARS_NOTFOUND_TOKEN 325
 
219
#define PARS_TO_CHAR_TOKEN 326
 
220
#define PARS_TO_NUMBER_TOKEN 327
 
221
#define PARS_TO_BINARY_TOKEN 328
 
222
#define PARS_BINARY_TO_NUMBER_TOKEN 329
 
223
#define PARS_SUBSTR_TOKEN 330
 
224
#define PARS_REPLSTR_TOKEN 331
 
225
#define PARS_CONCAT_TOKEN 332
 
226
#define PARS_INSTR_TOKEN 333
 
227
#define PARS_LENGTH_TOKEN 334
 
228
#define PARS_SYSDATE_TOKEN 335
 
229
#define PARS_PRINTF_TOKEN 336
 
230
#define PARS_ASSERT_TOKEN 337
 
231
#define PARS_RND_TOKEN 338
 
232
#define PARS_RND_STR_TOKEN 339
 
233
#define PARS_ROW_PRINTF_TOKEN 340
 
234
#define PARS_COMMIT_TOKEN 341
 
235
#define PARS_ROLLBACK_TOKEN 342
 
236
#define PARS_WORK_TOKEN 343
 
237
#define PARS_UNSIGNED_TOKEN 344
 
238
#define PARS_EXIT_TOKEN 345
 
239
#define PARS_FUNCTION_TOKEN 346
 
240
#define PARS_LOCK_TOKEN 347
 
241
#define PARS_SHARE_TOKEN 348
 
242
#define PARS_MODE_TOKEN 349
 
243
#define NEG 350
 
244
 
 
245
 
 
246
 
 
247
 
 
248
/* Copy the first part of user declarations.  */
 
249
#line 13 "pars0grm.y"
 
250
 
 
251
/* The value of the semantic attribute is a pointer to a query tree node
 
252
que_node_t */
 
253
 
 
254
#include "univ.i"
 
255
#include <math.h>                               /* Can't be before univ.i */
 
256
#include "pars0pars.h"
 
257
#include "mem0mem.h"
 
258
#include "que0types.h"
 
259
#include "que0que.h"
 
260
#include "row0sel.h"
 
261
 
 
262
#define YYSTYPE que_node_t*
 
263
 
 
264
/* #define __STDC__ */
 
265
 
 
266
int
 
267
yylex(void);
 
268
 
 
269
 
 
270
/* Enabling traces.  */
 
271
#ifndef YYDEBUG
 
272
# define YYDEBUG 0
 
273
#endif
 
274
 
 
275
/* Enabling verbose error messages.  */
 
276
#ifdef YYERROR_VERBOSE
 
277
# undef YYERROR_VERBOSE
 
278
# define YYERROR_VERBOSE 1
 
279
#else
 
280
# define YYERROR_VERBOSE 0
 
281
#endif
 
282
 
 
283
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 
284
typedef int YYSTYPE;
 
285
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 
286
# define YYSTYPE_IS_DECLARED 1
 
287
# define YYSTYPE_IS_TRIVIAL 1
 
288
#endif
 
289
 
 
290
 
 
291
 
 
292
/* Copy the second part of user declarations.  */
 
293
 
 
294
 
 
295
/* Line 213 of yacc.c.  */
 
296
#line 297 "pars0grm.c"
 
297
 
 
298
#if ! defined (yyoverflow) || YYERROR_VERBOSE
 
299
 
 
300
# ifndef YYFREE
 
301
#  define YYFREE free
 
302
# endif
 
303
# ifndef YYMALLOC
 
304
#  define YYMALLOC malloc
 
305
# endif
 
306
 
 
307
/* The parser invokes alloca or malloc; define the necessary symbols.  */
 
308
 
 
309
# ifdef YYSTACK_USE_ALLOCA
 
310
#  if YYSTACK_USE_ALLOCA
 
311
#   ifdef __GNUC__
 
312
#    define YYSTACK_ALLOC __builtin_alloca
 
313
#   else
 
314
#    define YYSTACK_ALLOC alloca
 
315
#   endif
 
316
#  endif
 
317
# endif
 
318
 
 
319
# ifdef YYSTACK_ALLOC
 
320
   /* Pacify GCC's `empty if-body' warning. */
 
321
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
 
322
# else
 
323
#  if defined (__STDC__) || defined (__cplusplus)
 
324
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 
325
#   define YYSIZE_T size_t
 
326
#  endif
 
327
#  define YYSTACK_ALLOC YYMALLOC
 
328
#  define YYSTACK_FREE YYFREE
 
329
# endif
 
330
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
 
331
 
 
332
 
 
333
#if (! defined (yyoverflow) \
 
334
     && (! defined (__cplusplus) \
 
335
         || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
 
336
 
 
337
/* A type that is properly aligned for any stack member.  */
 
338
union yyalloc
 
339
{
 
340
  short int yyss;
 
341
  YYSTYPE yyvs;
 
342
  };
 
343
 
 
344
/* The size of the maximum gap between one aligned stack and the next.  */
 
345
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
 
346
 
 
347
/* The size of an array large to enough to hold all stacks, each with
 
348
   N elements.  */
 
349
# define YYSTACK_BYTES(N) \
 
350
     ((N) * (sizeof (short int) + sizeof (YYSTYPE))                     \
 
351
      + YYSTACK_GAP_MAXIMUM)
 
352
 
 
353
/* Copy COUNT objects from FROM to TO.  The source and destination do
 
354
   not overlap.  */
 
355
# ifndef YYCOPY
 
356
#  if defined (__GNUC__) && 1 < __GNUC__
 
357
#   define YYCOPY(To, From, Count) \
 
358
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
 
359
#  else
 
360
#   define YYCOPY(To, From, Count)              \
 
361
      do                                        \
 
362
        {                                       \
 
363
          register YYSIZE_T yyi;                \
 
364
          for (yyi = 0; yyi < (Count); yyi++)   \
 
365
            (To)[yyi] = (From)[yyi];            \
 
366
        }                                       \
 
367
      while (0)
 
368
#  endif
 
369
# endif
 
370
 
 
371
/* Relocate STACK from its old location to the new one.  The
 
372
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
 
373
   elements in the stack, and YYPTR gives the new location of the
 
374
   stack.  Advance YYPTR to a properly aligned location for the next
 
375
   stack.  */
 
376
# define YYSTACK_RELOCATE(Stack)                                        \
 
377
    do                                                                  \
 
378
      {                                                                 \
 
379
        YYSIZE_T yynewbytes;                                            \
 
380
        YYCOPY (&yyptr->Stack, Stack, yysize);                          \
 
381
        Stack = &yyptr->Stack;                                          \
 
382
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 
383
        yyptr += yynewbytes / sizeof (*yyptr);                          \
 
384
      }                                                                 \
 
385
    while (0)
 
386
 
 
387
#endif
 
388
 
 
389
#if defined (__STDC__) || defined (__cplusplus)
 
390
   typedef signed char yysigned_char;
 
391
#else
 
392
   typedef short int yysigned_char;
 
393
#endif
 
394
 
 
395
/* YYFINAL -- State number of the termination state. */
 
396
#define YYFINAL  5
 
397
/* YYLAST -- Last index in YYTABLE.  */
 
398
#define YYLAST   752
 
399
 
 
400
/* YYNTOKENS -- Number of terminals. */
 
401
#define YYNTOKENS  111
 
402
/* YYNNTS -- Number of nonterminals. */
 
403
#define YYNNTS  70
 
404
/* YYNRULES -- Number of rules. */
 
405
#define YYNRULES  175
 
406
/* YYNRULES -- Number of states. */
 
407
#define YYNSTATES  339
 
408
 
 
409
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 
410
#define YYUNDEFTOK  2
 
411
#define YYMAXUTOK   350
 
412
 
 
413
#define YYTRANSLATE(YYX)                                                \
 
414
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
415
 
 
416
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
 
417
static const unsigned char yytranslate[] =
 
418
{
 
419
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
420
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
421
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
422
       2,     2,     2,     2,     2,     2,     2,   103,     2,     2,
 
423
     105,   106,   100,    99,   108,    98,     2,   101,     2,     2,
 
424
       2,     2,     2,     2,     2,     2,     2,     2,     2,   104,
 
425
      96,    95,    97,   107,     2,     2,     2,     2,     2,     2,
 
426
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
427
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
428
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
429
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
430
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
431
       2,     2,     2,   109,     2,   110,     2,     2,     2,     2,
 
432
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
433
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
434
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
435
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
436
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
437
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
438
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
439
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
440
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
441
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
442
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
443
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
444
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
 
445
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
 
446
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
 
447
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
 
448
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
 
449
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
 
450
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
 
451
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
 
452
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
 
453
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
 
454
     102
 
455
};
 
456
 
 
457
#if YYDEBUG
 
458
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
 
459
   YYRHS.  */
 
460
static const unsigned short int yyprhs[] =
 
461
{
 
462
       0,     0,     3,     6,     8,    11,    14,    17,    20,    23,
 
463
      26,    29,    32,    35,    38,    41,    44,    47,    50,    53,
 
464
      56,    59,    62,    65,    68,    71,    73,    76,    78,    83,
 
465
      85,    87,    89,    91,    93,    95,    97,   101,   105,   109,
 
466
     113,   116,   120,   124,   128,   132,   136,   140,   144,   148,
 
467
     152,   155,   159,   163,   165,   167,   169,   171,   173,   175,
 
468
     177,   179,   181,   183,   185,   186,   188,   192,   199,   204,
 
469
     206,   208,   210,   214,   216,   220,   221,   223,   227,   228,
 
470
     230,   234,   236,   241,   247,   252,   253,   255,   259,   261,
 
471
     265,   267,   268,   271,   272,   275,   276,   281,   282,   284,
 
472
     286,   287,   292,   301,   305,   311,   314,   318,   320,   324,
 
473
     329,   334,   337,   340,   344,   347,   350,   353,   357,   362,
 
474
     364,   367,   368,   371,   373,   381,   388,   399,   401,   403,
 
475
     406,   409,   414,   419,   425,   427,   431,   432,   436,   437,
 
476
     439,   440,   443,   444,   446,   454,   456,   460,   461,   463,
 
477
     464,   466,   477,   480,   483,   485,   487,   489,   491,   493,
 
478
     497,   501,   502,   504,   508,   512,   513,   515,   518,   525,
 
479
     530,   532,   534,   535,   537,   540
 
480
};
 
481
 
 
482
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
 
483
static const short int yyrhs[] =
 
484
{
 
485
     112,     0,    -1,   180,   104,    -1,   118,    -1,   119,   104,
 
486
      -1,   151,   104,    -1,   152,   104,    -1,   153,   104,    -1,
 
487
     150,   104,    -1,   154,   104,    -1,   146,   104,    -1,   133,
 
488
     104,    -1,   135,   104,    -1,   145,   104,    -1,   143,   104,
 
489
      -1,   144,   104,    -1,   140,   104,    -1,   141,   104,    -1,
 
490
     155,   104,    -1,   157,   104,    -1,   156,   104,    -1,   169,
 
491
     104,    -1,   170,   104,    -1,   164,   104,    -1,   168,   104,
 
492
      -1,   113,    -1,   114,   113,    -1,     9,    -1,   116,   105,
 
493
     124,   106,    -1,     3,    -1,     4,    -1,     5,    -1,     6,
 
494
      -1,     7,    -1,     8,    -1,    66,    -1,   115,    99,   115,
 
495
      -1,   115,    98,   115,    -1,   115,   100,   115,    -1,   115,
 
496
     101,   115,    -1,    98,   115,    -1,   105,   115,   106,    -1,
 
497
     115,    95,   115,    -1,   115,    96,   115,    -1,   115,    97,
 
498
     115,    -1,   115,    13,   115,    -1,   115,    14,   115,    -1,
 
499
     115,    15,   115,    -1,   115,    10,   115,    -1,   115,    11,
 
500
     115,    -1,    12,   115,    -1,     9,   103,    70,    -1,    66,
 
501
     103,    70,    -1,    71,    -1,    72,    -1,    73,    -1,    74,
 
502
      -1,    75,    -1,    77,    -1,    78,    -1,    79,    -1,    80,
 
503
      -1,    83,    -1,    84,    -1,    -1,   107,    -1,   117,   108,
 
504
     107,    -1,   109,     9,   105,   117,   106,   110,    -1,   120,
 
505
     105,   124,   106,    -1,    76,    -1,    81,    -1,    82,    -1,
 
506
       9,   105,   106,    -1,     9,    -1,   122,   108,     9,    -1,
 
507
      -1,     9,    -1,   123,   108,     9,    -1,    -1,   115,    -1,
 
508
     124,   108,   115,    -1,   115,    -1,    37,   105,   100,   106,
 
509
      -1,    37,   105,    38,     9,   106,    -1,    36,   105,   115,
 
510
     106,    -1,    -1,   125,    -1,   126,   108,   125,    -1,   100,
 
511
      -1,   126,    49,   123,    -1,   126,    -1,    -1,    40,   115,
 
512
      -1,    -1,    41,    51,    -1,    -1,    92,    17,    93,    94,
 
513
      -1,    -1,    46,    -1,    47,    -1,    -1,    44,    45,     9,
 
514
     131,    -1,    35,   127,    39,   122,   128,   129,   130,   132,
 
515
      -1,    48,    49,     9,    -1,   134,    50,   105,   124,   106,
 
516
      -1,   134,   133,    -1,     9,    95,   115,    -1,   136,    -1,
 
517
     137,   108,   136,    -1,    40,    54,    55,     9,    -1,    51,
 
518
       9,    52,   137,    -1,   139,   128,    -1,   139,   138,    -1,
 
519
      53,    39,     9,    -1,   142,   128,    -1,   142,   138,    -1,
 
520
      85,   133,    -1,     9,    63,   115,    -1,    31,   115,    29,
 
521
     114,    -1,   147,    -1,   148,   147,    -1,    -1,    30,   114,
 
522
      -1,   148,    -1,    28,   115,    29,   114,   149,    27,    28,
 
523
      -1,    33,   115,    32,   114,    27,    32,    -1,    41,     9,
 
524
      17,   115,    42,   115,    32,   114,    27,    32,    -1,    90,
 
525
      -1,    34,    -1,    67,     9,    -1,    69,     9,    -1,    68,
 
526
       9,    49,   123,    -1,    68,     9,    49,   121,    -1,     9,
 
527
     171,   160,   161,   162,    -1,   158,    -1,   159,   108,   158,
 
528
      -1,    -1,   105,     3,   106,    -1,    -1,    89,    -1,    -1,
 
529
      12,     8,    -1,    -1,    61,    -1,    56,    57,     9,   105,
 
530
     159,   106,   163,    -1,     9,    -1,   165,   108,     9,    -1,
 
531
      -1,    59,    -1,    -1,    60,    -1,    56,   166,   167,    58,
 
532
       9,    62,     9,   105,   165,   106,    -1,    86,    88,    -1,
 
533
      87,    88,    -1,    21,    -1,    22,    -1,    24,    -1,    19,
 
534
      -1,    20,    -1,     9,    17,   171,    -1,     9,    18,   171,
 
535
      -1,    -1,   172,    -1,   173,   108,   172,    -1,     9,   171,
 
536
     104,    -1,    -1,   174,    -1,   175,   174,    -1,    64,    65,
 
537
       9,    25,   133,   104,    -1,    64,    91,     9,   104,    -1,
 
538
     176,    -1,   177,    -1,    -1,   178,    -1,   179,   178,    -1,
 
539
      16,     9,   105,   173,   106,    25,   175,   179,    26,   114,
 
540
      27,    -1
 
541
};
 
542
 
 
543
/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 
544
static const unsigned short int yyrline[] =
 
545
{
 
546
       0,   138,   138,   141,   142,   143,   144,   145,   146,   147,
 
547
     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
 
548
     158,   159,   160,   161,   162,   166,   167,   172,   173,   175,
 
549
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
550
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
 
551
     196,   197,   199,   204,   205,   206,   207,   209,   210,   211,
 
552
     212,   213,   214,   215,   218,   220,   221,   225,   230,   235,
 
553
     236,   237,   241,   245,   246,   251,   252,   253,   258,   259,
 
554
     260,   264,   265,   270,   276,   283,   284,   285,   290,   292,
 
555
     294,   298,   299,   303,   304,   309,   310,   315,   316,   317,
 
556
     321,   322,   327,   337,   342,   344,   349,   353,   354,   359,
 
557
     365,   372,   377,   382,   388,   393,   398,   403,   408,   414,
 
558
     415,   420,   421,   423,   427,   434,   440,   448,   452,   456,
 
559
     462,   468,   470,   475,   480,   481,   486,   487,   492,   493,
 
560
     499,   500,   506,   507,   513,   519,   520,   525,   526,   530,
 
561
     531,   535,   543,   548,   553,   554,   555,   556,   557,   561,
 
562
     564,   570,   571,   572,   577,   581,   583,   584,   588,   594,
 
563
     599,   600,   603,   605,   606,   610
 
564
};
 
565
#endif
 
566
 
 
567
#if YYDEBUG || YYERROR_VERBOSE
 
568
/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
 
569
   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 
570
static const char *const yytname[] =
 
571
{
 
572
  "$end", "error", "$undefined", "PARS_INT_LIT", "PARS_FLOAT_LIT",
 
573
  "PARS_STR_LIT", "PARS_FIXBINARY_LIT", "PARS_BLOB_LIT", "PARS_NULL_LIT",
 
574
  "PARS_ID_TOKEN", "PARS_AND_TOKEN", "PARS_OR_TOKEN", "PARS_NOT_TOKEN",
 
575
  "PARS_GE_TOKEN", "PARS_LE_TOKEN", "PARS_NE_TOKEN",
 
576
  "PARS_PROCEDURE_TOKEN", "PARS_IN_TOKEN", "PARS_OUT_TOKEN",
 
577
  "PARS_BINARY_TOKEN", "PARS_BLOB_TOKEN", "PARS_INT_TOKEN",
 
578
  "PARS_INTEGER_TOKEN", "PARS_FLOAT_TOKEN", "PARS_CHAR_TOKEN",
 
579
  "PARS_IS_TOKEN", "PARS_BEGIN_TOKEN", "PARS_END_TOKEN", "PARS_IF_TOKEN",
 
580
  "PARS_THEN_TOKEN", "PARS_ELSE_TOKEN", "PARS_ELSIF_TOKEN",
 
581
  "PARS_LOOP_TOKEN", "PARS_WHILE_TOKEN", "PARS_RETURN_TOKEN",
 
582
  "PARS_SELECT_TOKEN", "PARS_SUM_TOKEN", "PARS_COUNT_TOKEN",
 
583
  "PARS_DISTINCT_TOKEN", "PARS_FROM_TOKEN", "PARS_WHERE_TOKEN",
 
584
  "PARS_FOR_TOKEN", "PARS_DDOT_TOKEN", "PARS_READ_TOKEN",
 
585
  "PARS_ORDER_TOKEN", "PARS_BY_TOKEN", "PARS_ASC_TOKEN", "PARS_DESC_TOKEN",
 
586
  "PARS_INSERT_TOKEN", "PARS_INTO_TOKEN", "PARS_VALUES_TOKEN",
 
587
  "PARS_UPDATE_TOKEN", "PARS_SET_TOKEN", "PARS_DELETE_TOKEN",
 
588
  "PARS_CURRENT_TOKEN", "PARS_OF_TOKEN", "PARS_CREATE_TOKEN",
 
589
  "PARS_TABLE_TOKEN", "PARS_INDEX_TOKEN", "PARS_UNIQUE_TOKEN",
 
590
  "PARS_CLUSTERED_TOKEN", "PARS_DOES_NOT_FIT_IN_MEM_TOKEN",
 
591
  "PARS_ON_TOKEN", "PARS_ASSIGN_TOKEN", "PARS_DECLARE_TOKEN",
 
592
  "PARS_CURSOR_TOKEN", "PARS_SQL_TOKEN", "PARS_OPEN_TOKEN",
 
593
  "PARS_FETCH_TOKEN", "PARS_CLOSE_TOKEN", "PARS_NOTFOUND_TOKEN",
 
594
  "PARS_TO_CHAR_TOKEN", "PARS_TO_NUMBER_TOKEN", "PARS_TO_BINARY_TOKEN",
 
595
  "PARS_BINARY_TO_NUMBER_TOKEN", "PARS_SUBSTR_TOKEN", "PARS_REPLSTR_TOKEN",
 
596
  "PARS_CONCAT_TOKEN", "PARS_INSTR_TOKEN", "PARS_LENGTH_TOKEN",
 
597
  "PARS_SYSDATE_TOKEN", "PARS_PRINTF_TOKEN", "PARS_ASSERT_TOKEN",
 
598
  "PARS_RND_TOKEN", "PARS_RND_STR_TOKEN", "PARS_ROW_PRINTF_TOKEN",
 
599
  "PARS_COMMIT_TOKEN", "PARS_ROLLBACK_TOKEN", "PARS_WORK_TOKEN",
 
600
  "PARS_UNSIGNED_TOKEN", "PARS_EXIT_TOKEN", "PARS_FUNCTION_TOKEN",
 
601
  "PARS_LOCK_TOKEN", "PARS_SHARE_TOKEN", "PARS_MODE_TOKEN", "'='", "'<'",
 
602
  "'>'", "'-'", "'+'", "'*'", "'/'", "NEG", "'%'", "';'", "'('", "')'",
 
603
  "'?'", "','", "'{'", "'}'", "$accept", "top_statement", "statement",
 
604
  "statement_list", "exp", "function_name", "question_mark_list",
 
605
  "stored_procedure_call", "predefined_procedure_call",
 
606
  "predefined_procedure_name", "user_function_call", "table_list",
 
607
  "variable_list", "exp_list", "select_item", "select_item_list",
 
608
  "select_list", "search_condition", "for_update_clause",
 
609
  "lock_shared_clause", "order_direction", "order_by_clause",
 
610
  "select_statement", "insert_statement_start", "insert_statement",
 
611
  "column_assignment", "column_assignment_list", "cursor_positioned",
 
612
  "update_statement_start", "update_statement_searched",
 
613
  "update_statement_positioned", "delete_statement_start",
 
614
  "delete_statement_searched", "delete_statement_positioned",
 
615
  "row_printf_statement", "assignment_statement", "elsif_element",
 
616
  "elsif_list", "else_part", "if_statement", "while_statement",
 
617
  "for_statement", "exit_statement", "return_statement",
 
618
  "open_cursor_statement", "close_cursor_statement", "fetch_statement",
 
619
  "column_def", "column_def_list", "opt_column_len", "opt_unsigned",
 
620
  "opt_not_null", "not_fit_in_memory", "create_table", "column_list",
 
621
  "unique_def", "clustered_def", "create_index", "commit_statement",
 
622
  "rollback_statement", "type_name", "parameter_declaration",
 
623
  "parameter_declaration_list", "variable_declaration",
 
624
  "variable_declaration_list", "cursor_declaration",
 
625
  "function_declaration", "declaration", "declaration_list",
 
626
  "procedure_definition", 0
 
627
};
 
628
#endif
 
629
 
 
630
# ifdef YYPRINT
 
631
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
 
632
   token YYLEX-NUM.  */
 
633
static const unsigned short int yytoknum[] =
 
634
{
 
635
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
 
636
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
 
637
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
 
638
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
 
639
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
 
640
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
 
641
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
 
642
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
 
643
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
 
644
     345,   346,   347,   348,   349,    61,    60,    62,    45,    43,
 
645
      42,    47,   350,    37,    59,    40,    41,    63,    44,   123,
 
646
     125
 
647
};
 
648
# endif
 
649
 
 
650
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 
651
static const unsigned char yyr1[] =
 
652
{
 
653
       0,   111,   112,   113,   113,   113,   113,   113,   113,   113,
 
654
     113,   113,   113,   113,   113,   113,   113,   113,   113,   113,
 
655
     113,   113,   113,   113,   113,   114,   114,   115,   115,   115,
 
656
     115,   115,   115,   115,   115,   115,   115,   115,   115,   115,
 
657
     115,   115,   115,   115,   115,   115,   115,   115,   115,   115,
 
658
     115,   115,   115,   116,   116,   116,   116,   116,   116,   116,
 
659
     116,   116,   116,   116,   117,   117,   117,   118,   119,   120,
 
660
     120,   120,   121,   122,   122,   123,   123,   123,   124,   124,
 
661
     124,   125,   125,   125,   125,   126,   126,   126,   127,   127,
 
662
     127,   128,   128,   129,   129,   130,   130,   131,   131,   131,
 
663
     132,   132,   133,   134,   135,   135,   136,   137,   137,   138,
 
664
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
 
665
     148,   149,   149,   149,   150,   151,   152,   153,   154,   155,
 
666
     156,   157,   157,   158,   159,   159,   160,   160,   161,   161,
 
667
     162,   162,   163,   163,   164,   165,   165,   166,   166,   167,
 
668
     167,   168,   169,   170,   171,   171,   171,   171,   171,   172,
 
669
     172,   173,   173,   173,   174,   175,   175,   175,   176,   177,
 
670
     178,   178,   179,   179,   179,   180
 
671
};
 
672
 
 
673
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 
674
static const unsigned char yyr2[] =
 
675
{
 
676
       0,     2,     2,     1,     2,     2,     2,     2,     2,     2,
 
677
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
678
       2,     2,     2,     2,     2,     1,     2,     1,     4,     1,
 
679
       1,     1,     1,     1,     1,     1,     3,     3,     3,     3,
 
680
       2,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 
681
       2,     3,     3,     1,     1,     1,     1,     1,     1,     1,
 
682
       1,     1,     1,     1,     0,     1,     3,     6,     4,     1,
 
683
       1,     1,     3,     1,     3,     0,     1,     3,     0,     1,
 
684
       3,     1,     4,     5,     4,     0,     1,     3,     1,     3,
 
685
       1,     0,     2,     0,     2,     0,     4,     0,     1,     1,
 
686
       0,     4,     8,     3,     5,     2,     3,     1,     3,     4,
 
687
       4,     2,     2,     3,     2,     2,     2,     3,     4,     1,
 
688
       2,     0,     2,     1,     7,     6,    10,     1,     1,     2,
 
689
       2,     4,     4,     5,     1,     3,     0,     3,     0,     1,
 
690
       0,     2,     0,     1,     7,     1,     3,     0,     1,     0,
 
691
       1,    10,     2,     2,     1,     1,     1,     1,     1,     3,
 
692
       3,     0,     1,     3,     3,     0,     1,     2,     6,     4,
 
693
       1,     1,     0,     1,     2,    11
 
694
};
 
695
 
 
696
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
 
697
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
 
698
   means the default is an error.  */
 
699
static const unsigned char yydefact[] =
 
700
{
 
701
       0,     0,     0,     0,     0,     1,     2,   161,     0,   162,
 
702
       0,     0,     0,     0,     0,   157,   158,   154,   155,   156,
 
703
     159,   160,   165,   163,     0,   166,   172,     0,     0,   167,
 
704
     170,   171,   173,     0,   164,     0,     0,     0,   174,     0,
 
705
       0,     0,     0,     0,   128,    85,     0,     0,     0,     0,
 
706
     147,     0,     0,     0,    69,    70,    71,     0,     0,     0,
 
707
     127,     0,    25,     0,     3,     0,     0,     0,     0,     0,
 
708
      91,     0,     0,    91,     0,     0,     0,     0,     0,     0,
 
709
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
710
       0,   169,     0,    29,    30,    31,    32,    33,    34,    27,
 
711
       0,    35,    53,    54,    55,    56,    57,    58,    59,    60,
 
712
      61,    62,    63,     0,     0,     0,     0,     0,     0,     0,
 
713
      88,    81,    86,    90,     0,     0,     0,     0,     0,     0,
 
714
     148,   149,   129,     0,   130,   116,   152,   153,     0,   175,
 
715
      26,     4,    78,    11,     0,   105,    12,     0,   111,   112,
 
716
      16,    17,   114,   115,    14,    15,    13,    10,     8,     5,
 
717
       6,     7,     9,    18,    20,    19,    23,    24,    21,    22,
 
718
       0,   117,     0,    50,     0,    40,     0,     0,     0,     0,
 
719
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
720
      78,     0,     0,     0,    75,     0,     0,     0,   103,     0,
 
721
     113,     0,   150,     0,    75,    64,    79,     0,    78,     0,
 
722
      92,   168,    51,    52,    41,    48,    49,    45,    46,    47,
 
723
     121,    42,    43,    44,    37,    36,    38,    39,     0,     0,
 
724
       0,     0,     0,    76,    89,    87,    73,    91,     0,     0,
 
725
     107,   110,     0,     0,    76,   132,   131,    65,     0,    68,
 
726
       0,     0,     0,     0,     0,   119,   123,     0,    28,     0,
 
727
      84,     0,    82,     0,     0,     0,    93,     0,     0,     0,
 
728
       0,   134,     0,     0,     0,     0,     0,    80,   104,   109,
 
729
     122,     0,   120,     0,   125,    83,    77,    74,     0,    95,
 
730
       0,   106,   108,   136,   142,     0,     0,    72,    67,    66,
 
731
       0,   124,    94,     0,   100,     0,     0,   138,   143,   144,
 
732
     135,     0,   118,     0,     0,   102,     0,     0,   139,   140,
 
733
       0,     0,     0,     0,   137,     0,   133,   145,     0,    96,
 
734
      97,   126,   141,   151,     0,    98,    99,   101,   146
 
735
};
 
736
 
 
737
/* YYDEFGOTO[NTERM-NUM]. */
 
738
static const short int yydefgoto[] =
 
739
{
 
740
      -1,     2,    62,    63,   206,   116,   248,    64,    65,    66,
 
741
     245,   237,   234,   207,   122,   123,   124,   148,   289,   304,
 
742
     337,   315,    67,    68,    69,   240,   241,   149,    70,    71,
 
743
      72,    73,    74,    75,    76,    77,   255,   256,   257,    78,
 
744
      79,    80,    81,    82,    83,    84,    85,   271,   272,   307,
 
745
     319,   326,   309,    86,   328,   131,   203,    87,    88,    89,
 
746
      20,     9,    10,    25,    26,    30,    31,    32,    33,     3
 
747
};
 
748
 
 
749
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
 
750
   STATE-NUM.  */
 
751
#define YYPACT_NINF -177
 
752
static const short int yypact[] =
 
753
{
 
754
      28,    38,    54,   -46,   -29,  -177,  -177,    56,    50,  -177,
 
755
     -75,     8,     8,    46,    56,  -177,  -177,  -177,  -177,  -177,
 
756
    -177,  -177,    63,  -177,     8,  -177,     2,   -26,   -51,  -177,
 
757
    -177,  -177,  -177,   -13,  -177,    71,    72,   587,  -177,    57,
 
758
     -21,    26,   272,   272,  -177,    13,    91,    55,    96,    67,
 
759
     -22,    99,   100,   103,  -177,  -177,  -177,    75,    29,    35,
 
760
    -177,   116,  -177,   396,  -177,    22,    23,    27,    -9,    30,
 
761
      87,    31,    32,    87,    47,    49,    52,    58,    59,    60,
 
762
      61,    62,    65,    66,    74,    77,    78,    86,    89,   102,
 
763
      75,  -177,   272,  -177,  -177,  -177,  -177,  -177,  -177,    39,
 
764
     272,    51,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,
 
765
    -177,  -177,  -177,   272,   272,   361,    25,   489,    45,    90,
 
766
    -177,   651,  -177,   -39,    93,   142,   124,   108,   152,   170,
 
767
    -177,   131,  -177,   143,  -177,  -177,  -177,  -177,    98,  -177,
 
768
    -177,  -177,   272,  -177,   110,  -177,  -177,   256,  -177,  -177,
 
769
    -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,
 
770
    -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,
 
771
     112,   651,   137,   101,   147,   204,    88,   272,   272,   272,
 
772
     272,   272,   587,   272,   272,   272,   272,   272,   272,   272,
 
773
     272,   587,   272,   -30,   211,   168,   212,   272,  -177,   213,
 
774
    -177,   118,  -177,   167,   217,   122,   651,   -63,   272,   175,
 
775
     651,  -177,  -177,  -177,  -177,   101,   101,    21,    21,   651,
 
776
     332,    21,    21,    21,    -6,    -6,   204,   204,   -60,   460,
 
777
     198,   222,   126,  -177,   125,  -177,  -177,   -33,   584,   140,
 
778
    -177,   128,   228,   229,   139,  -177,   125,  -177,   -53,  -177,
 
779
     272,   -49,   240,   587,   272,  -177,   224,   226,  -177,   225,
 
780
    -177,   150,  -177,   258,   272,   260,   230,   272,   272,   213,
 
781
       8,  -177,   -45,   208,   166,   164,   176,   651,  -177,  -177,
 
782
     587,   631,  -177,   254,  -177,  -177,  -177,  -177,   234,   194,
 
783
     638,   651,  -177,   182,   227,   228,   280,  -177,  -177,  -177,
 
784
     587,  -177,  -177,   273,   247,   587,   289,   214,  -177,  -177,
 
785
    -177,   195,   587,   209,   261,  -177,   524,   199,  -177,   295,
 
786
     292,   215,   299,   279,  -177,   304,  -177,  -177,   -44,  -177,
 
787
      -8,  -177,  -177,  -177,   305,  -177,  -177,  -177,  -177
 
788
};
 
789
 
 
790
/* YYPGOTO[NTERM-NUM].  */
 
791
static const short int yypgoto[] =
 
792
{
 
793
    -177,  -177,   -62,  -176,   -40,  -177,  -177,  -177,  -177,  -177,
 
794
    -177,  -177,   109,  -166,   120,  -177,  -177,   -69,  -177,  -177,
 
795
    -177,  -177,   -34,  -177,  -177,    48,  -177,   243,  -177,  -177,
 
796
    -177,  -177,  -177,  -177,  -177,  -177,    64,  -177,  -177,  -177,
 
797
    -177,  -177,  -177,  -177,  -177,  -177,  -177,    24,  -177,  -177,
 
798
    -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,
 
799
     -12,   307,  -177,   297,  -177,  -177,  -177,   285,  -177,  -177
 
800
};
 
801
 
 
802
/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
 
803
   positive, shift that token.  If negative, reduce the rule which
 
804
   number is the opposite.  If zero, do what YYDEFACT says.
 
805
   If YYTABLE_NINF, syntax error.  */
 
806
#define YYTABLE_NINF -1
 
807
static const unsigned short int yytable[] =
 
808
{
 
809
      21,   140,   115,   117,   152,   121,   220,   264,   231,   181,
 
810
     194,    24,    27,    37,    35,   229,    93,    94,    95,    96,
 
811
      97,    98,    99,   135,   228,   100,    45,    15,    16,    17,
 
812
      18,    13,    19,    14,   145,   129,   181,   130,   335,   336,
 
813
      36,   144,   251,   249,     1,   250,   258,     4,   250,   118,
 
814
     119,    28,   171,   275,     5,   276,   170,   278,     6,   250,
 
815
     173,   294,   333,   295,   334,     8,    28,    11,    12,   195,
 
816
     232,    22,    24,   175,   176,   265,     7,   280,    34,   101,
 
817
      39,    40,    90,    91,   102,   103,   104,   105,   106,    92,
 
818
     107,   108,   109,   110,   188,   189,   111,   112,   177,   178,
 
819
     125,   179,   180,   181,   126,   127,   128,   210,   132,   133,
 
820
      45,   113,   134,   120,   179,   180,   181,   136,   114,   186,
 
821
     187,   188,   189,   137,   312,   138,   141,   147,   142,   316,
 
822
     190,   143,   196,   198,   146,   150,   151,   215,   216,   217,
 
823
     218,   219,   172,   221,   222,   223,   224,   225,   226,   227,
 
824
     192,   154,   230,   155,   174,   121,   156,   238,   140,   197,
 
825
     199,   200,   157,   158,   159,   160,   161,   140,   266,   162,
 
826
     163,    93,    94,    95,    96,    97,    98,    99,   164,   201,
 
827
     100,   165,   166,   183,   184,   185,   186,   187,   188,   189,
 
828
     167,   202,   204,   168,   214,   193,   183,   184,   185,   186,
 
829
     187,   188,   189,   205,   118,   119,   169,   212,   177,   178,
 
830
     277,   179,   180,   181,   281,   208,   211,   213,   140,   181,
 
831
     233,   236,   239,   242,   210,   243,   244,   290,   291,   247,
 
832
     252,   261,   262,   263,   101,   268,   269,   270,   273,   102,
 
833
     103,   104,   105,   106,   274,   107,   108,   109,   110,   279,
 
834
     140,   111,   112,   283,   140,   254,   285,   284,   293,    93,
 
835
      94,    95,    96,    97,    98,    99,   113,   286,   100,   287,
 
836
     296,   288,   297,   114,   298,    93,    94,    95,    96,    97,
 
837
      98,    99,   301,   299,   100,   302,   303,   306,   308,   311,
 
838
     313,   314,   317,   183,   184,   185,   186,   187,   188,   189,
 
839
     320,   327,   321,   318,   260,   324,   322,   325,   330,   329,
 
840
     209,   331,   332,   246,   338,   235,   153,   292,    38,   310,
 
841
     282,    23,   101,    29,     0,     0,     0,   102,   103,   104,
 
842
     105,   106,     0,   107,   108,   109,   110,     0,   101,   111,
 
843
     112,    41,     0,   102,   103,   104,   105,   106,     0,   107,
 
844
     108,   109,   110,     0,   113,   111,   112,     0,     0,     0,
 
845
      42,   114,   253,   254,     0,    43,    44,    45,     0,     0,
 
846
     113,   177,   178,    46,   179,   180,   181,   114,     0,     0,
 
847
      47,     0,     0,    48,     0,    49,     0,     0,    50,     0,
 
848
     182,     0,     0,     0,     0,     0,     0,     0,     0,    51,
 
849
      52,    53,     0,     0,     0,    41,     0,     0,    54,     0,
 
850
       0,     0,     0,    55,    56,     0,     0,    57,    58,    59,
 
851
       0,     0,    60,   139,    42,     0,     0,     0,     0,    43,
 
852
      44,    45,     0,     0,     0,     0,     0,    46,     0,     0,
 
853
       0,    61,     0,     0,    47,     0,     0,    48,     0,    49,
 
854
       0,     0,    50,     0,     0,     0,   183,   184,   185,   186,
 
855
     187,   188,   189,    51,    52,    53,     0,     0,     0,    41,
 
856
       0,     0,    54,     0,     0,     0,     0,    55,    56,     0,
 
857
       0,    57,    58,    59,     0,     0,    60,   259,    42,     0,
 
858
       0,     0,     0,    43,    44,    45,     0,     0,     0,   177,
 
859
     178,    46,   179,   180,   181,    61,     0,     0,    47,     0,
 
860
       0,    48,     0,    49,     0,     0,    50,     0,     0,     0,
 
861
       0,   191,     0,     0,     0,     0,     0,    51,    52,    53,
 
862
       0,     0,     0,    41,     0,     0,    54,     0,     0,     0,
 
863
       0,    55,    56,     0,     0,    57,    58,    59,     0,     0,
 
864
      60,   323,    42,     0,     0,     0,     0,    43,    44,    45,
 
865
       0,     0,     0,     0,     0,    46,     0,     0,     0,    61,
 
866
       0,     0,    47,     0,     0,    48,     0,    49,     0,     0,
 
867
      50,     0,     0,     0,   183,   184,   185,   186,   187,   188,
 
868
     189,    51,    52,    53,   177,   178,    41,   179,   180,   181,
 
869
      54,     0,     0,     0,     0,    55,    56,     0,     0,    57,
 
870
      58,    59,     0,     0,    60,    42,     0,     0,     0,     0,
 
871
      43,    44,    45,     0,     0,     0,   267,     0,    46,     0,
 
872
       0,     0,     0,    61,     0,    47,     0,     0,    48,     0,
 
873
      49,   177,   178,    50,   179,   180,   181,     0,   177,   178,
 
874
       0,   179,   180,   181,    51,    52,    53,     0,     0,     0,
 
875
     300,   177,   178,    54,   179,   180,   181,     0,    55,    56,
 
876
     305,     0,    57,    58,    59,     0,     0,    60,     0,   183,
 
877
     184,   185,   186,   187,   188,   189,     0,     0,     0,     0,
 
878
       0,     0,     0,     0,     0,     0,    61,     0,     0,     0,
 
879
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
880
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
881
       0,     0,     0,     0,     0,     0,   183,   184,   185,   186,
 
882
     187,   188,   189,   183,   184,   185,   186,   187,   188,   189,
 
883
       0,     0,     0,     0,     0,     0,   183,   184,   185,   186,
 
884
     187,   188,   189
 
885
};
 
886
 
 
887
static const short int yycheck[] =
 
888
{
 
889
      12,    63,    42,    43,    73,    45,   182,    40,    38,    15,
 
890
      49,     9,    24,    26,    65,   191,     3,     4,     5,     6,
 
891
       7,     8,     9,    57,   190,    12,    35,    19,    20,    21,
 
892
      22,   106,    24,   108,    68,    57,    15,    59,    46,    47,
 
893
      91,    50,   208,   106,    16,   108,   106,     9,   108,    36,
 
894
      37,    64,    92,   106,     0,   108,    90,   106,   104,   108,
 
895
     100,   106,   106,   108,   108,     9,    64,    17,    18,   108,
 
896
     100,    25,     9,   113,   114,   108,   105,   253,   104,    66,
 
897
       9,     9,    25,   104,    71,    72,    73,    74,    75,    63,
 
898
      77,    78,    79,    80,   100,   101,    83,    84,    10,    11,
 
899
       9,    13,    14,    15,    49,     9,    39,   147,     9,     9,
 
900
      35,    98,     9,   100,    13,    14,    15,    88,   105,    98,
 
901
      99,   100,   101,    88,   300,     9,   104,    40,   105,   305,
 
902
     105,   104,    39,     9,   104,   104,   104,   177,   178,   179,
 
903
     180,   181,   103,   183,   184,   185,   186,   187,   188,   189,
 
904
     105,   104,   192,   104,   103,   195,   104,   197,   220,    17,
 
905
      52,     9,   104,   104,   104,   104,   104,   229,   237,   104,
 
906
     104,     3,     4,     5,     6,     7,     8,     9,   104,     9,
 
907
      12,   104,   104,    95,    96,    97,    98,    99,   100,   101,
 
908
     104,    60,    49,   104,   106,   105,    95,    96,    97,    98,
 
909
      99,   100,   101,   105,    36,    37,   104,    70,    10,    11,
 
910
     250,    13,    14,    15,   254,   105,   104,    70,   280,    15,
 
911
       9,     9,     9,   105,   264,    58,     9,   267,   268,   107,
 
912
      55,     9,   106,   108,    66,    95,   108,     9,     9,    71,
 
913
      72,    73,    74,    75,   105,    77,    78,    79,    80,     9,
 
914
     312,    83,    84,    27,   316,    31,   106,    32,   270,     3,
 
915
       4,     5,     6,     7,     8,     9,    98,     9,    12,     9,
 
916
      62,    41,   106,   105,   110,     3,     4,     5,     6,     7,
 
917
       8,     9,    28,   107,    12,    51,    92,   105,    61,     9,
 
918
      17,    44,     3,    95,    96,    97,    98,    99,   100,   101,
 
919
     105,     9,    93,    89,   106,   106,    45,    12,     9,    94,
 
920
      54,    32,     8,   204,     9,   195,    73,   269,    33,   295,
 
921
     256,    14,    66,    26,    -1,    -1,    -1,    71,    72,    73,
 
922
      74,    75,    -1,    77,    78,    79,    80,    -1,    66,    83,
 
923
      84,     9,    -1,    71,    72,    73,    74,    75,    -1,    77,
 
924
      78,    79,    80,    -1,    98,    83,    84,    -1,    -1,    -1,
 
925
      28,   105,    30,    31,    -1,    33,    34,    35,    -1,    -1,
 
926
      98,    10,    11,    41,    13,    14,    15,   105,    -1,    -1,
 
927
      48,    -1,    -1,    51,    -1,    53,    -1,    -1,    56,    -1,
 
928
      29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
 
929
      68,    69,    -1,    -1,    -1,     9,    -1,    -1,    76,    -1,
 
930
      -1,    -1,    -1,    81,    82,    -1,    -1,    85,    86,    87,
 
931
      -1,    -1,    90,    27,    28,    -1,    -1,    -1,    -1,    33,
 
932
      34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
 
933
      -1,   109,    -1,    -1,    48,    -1,    -1,    51,    -1,    53,
 
934
      -1,    -1,    56,    -1,    -1,    -1,    95,    96,    97,    98,
 
935
      99,   100,   101,    67,    68,    69,    -1,    -1,    -1,     9,
 
936
      -1,    -1,    76,    -1,    -1,    -1,    -1,    81,    82,    -1,
 
937
      -1,    85,    86,    87,    -1,    -1,    90,    27,    28,    -1,
 
938
      -1,    -1,    -1,    33,    34,    35,    -1,    -1,    -1,    10,
 
939
      11,    41,    13,    14,    15,   109,    -1,    -1,    48,    -1,
 
940
      -1,    51,    -1,    53,    -1,    -1,    56,    -1,    -1,    -1,
 
941
      -1,    32,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,
 
942
      -1,    -1,    -1,     9,    -1,    -1,    76,    -1,    -1,    -1,
 
943
      -1,    81,    82,    -1,    -1,    85,    86,    87,    -1,    -1,
 
944
      90,    27,    28,    -1,    -1,    -1,    -1,    33,    34,    35,
 
945
      -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,   109,
 
946
      -1,    -1,    48,    -1,    -1,    51,    -1,    53,    -1,    -1,
 
947
      56,    -1,    -1,    -1,    95,    96,    97,    98,    99,   100,
 
948
     101,    67,    68,    69,    10,    11,     9,    13,    14,    15,
 
949
      76,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    85,
 
950
      86,    87,    -1,    -1,    90,    28,    -1,    -1,    -1,    -1,
 
951
      33,    34,    35,    -1,    -1,    -1,    42,    -1,    41,    -1,
 
952
      -1,    -1,    -1,   109,    -1,    48,    -1,    -1,    51,    -1,
 
953
      53,    10,    11,    56,    13,    14,    15,    -1,    10,    11,
 
954
      -1,    13,    14,    15,    67,    68,    69,    -1,    -1,    -1,
 
955
      29,    10,    11,    76,    13,    14,    15,    -1,    81,    82,
 
956
      32,    -1,    85,    86,    87,    -1,    -1,    90,    -1,    95,
 
957
      96,    97,    98,    99,   100,   101,    -1,    -1,    -1,    -1,
 
958
      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
 
959
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
960
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
961
      -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,
 
962
      99,   100,   101,    95,    96,    97,    98,    99,   100,   101,
 
963
      -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,
 
964
      99,   100,   101
 
965
};
 
966
 
 
967
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
 
968
   symbol of state STATE-NUM.  */
 
969
static const unsigned char yystos[] =
 
970
{
 
971
       0,    16,   112,   180,     9,     0,   104,   105,     9,   172,
 
972
     173,    17,    18,   106,   108,    19,    20,    21,    22,    24,
 
973
     171,   171,    25,   172,     9,   174,   175,   171,    64,   174,
 
974
     176,   177,   178,   179,   104,    65,    91,    26,   178,     9,
 
975
       9,     9,    28,    33,    34,    35,    41,    48,    51,    53,
 
976
      56,    67,    68,    69,    76,    81,    82,    85,    86,    87,
 
977
      90,   109,   113,   114,   118,   119,   120,   133,   134,   135,
 
978
     139,   140,   141,   142,   143,   144,   145,   146,   150,   151,
 
979
     152,   153,   154,   155,   156,   157,   164,   168,   169,   170,
 
980
      25,   104,    63,     3,     4,     5,     6,     7,     8,     9,
 
981
      12,    66,    71,    72,    73,    74,    75,    77,    78,    79,
 
982
      80,    83,    84,    98,   105,   115,   116,   115,    36,    37,
 
983
     100,   115,   125,   126,   127,     9,    49,     9,    39,    57,
 
984
      59,   166,     9,     9,     9,   133,    88,    88,     9,    27,
 
985
     113,   104,   105,   104,    50,   133,   104,    40,   128,   138,
 
986
     104,   104,   128,   138,   104,   104,   104,   104,   104,   104,
 
987
     104,   104,   104,   104,   104,   104,   104,   104,   104,   104,
 
988
     133,   115,   103,   115,   103,   115,   115,    10,    11,    13,
 
989
      14,    15,    29,    95,    96,    97,    98,    99,   100,   101,
 
990
     105,    32,   105,   105,    49,   108,    39,    17,     9,    52,
 
991
       9,     9,    60,   167,    49,   105,   115,   124,   105,    54,
 
992
     115,   104,    70,    70,   106,   115,   115,   115,   115,   115,
 
993
     114,   115,   115,   115,   115,   115,   115,   115,   124,   114,
 
994
     115,    38,   100,     9,   123,   125,     9,   122,   115,     9,
 
995
     136,   137,   105,    58,     9,   121,   123,   107,   117,   106,
 
996
     108,   124,    55,    30,    31,   147,   148,   149,   106,    27,
 
997
     106,     9,   106,   108,    40,   108,   128,    42,    95,   108,
 
998
       9,   158,   159,     9,   105,   106,   108,   115,   106,     9,
 
999
     114,   115,   147,    27,    32,   106,     9,     9,    41,   129,
 
1000
     115,   115,   136,   171,   106,   108,    62,   106,   110,   107,
 
1001
      29,    28,    51,    92,   130,    32,   105,   160,    61,   163,
 
1002
     158,     9,   114,    17,    44,   132,   114,     3,    89,   161,
 
1003
     105,    93,    45,    27,   106,    12,   162,     9,   165,    94,
 
1004
       9,    32,     8,   106,   108,    46,    47,   131,     9
 
1005
};
 
1006
 
 
1007
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 
1008
# define YYSIZE_T __SIZE_TYPE__
 
1009
#endif
 
1010
#if ! defined (YYSIZE_T) && defined (size_t)
 
1011
# define YYSIZE_T size_t
 
1012
#endif
 
1013
#if ! defined (YYSIZE_T)
 
1014
# if defined (__STDC__) || defined (__cplusplus)
 
1015
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 
1016
#  define YYSIZE_T size_t
 
1017
# endif
 
1018
#endif
 
1019
#if ! defined (YYSIZE_T)
 
1020
# define YYSIZE_T unsigned int
 
1021
#endif
 
1022
 
 
1023
#define yyerrok         (yyerrstatus = 0)
 
1024
#define yyclearin       (yychar = YYEMPTY)
 
1025
#define YYEMPTY         (-2)
 
1026
#define YYEOF           0
 
1027
 
 
1028
#define YYACCEPT        goto yyacceptlab
 
1029
#define YYABORT         goto yyabortlab
 
1030
#define YYERROR         goto yyerrorlab
 
1031
 
 
1032
 
 
1033
/* Like YYERROR except do call yyerror.  This remains here temporarily
 
1034
   to ease the transition to the new meaning of YYERROR, for GCC.
 
1035
   Once GCC version 2 has supplanted version 1, this can go.  */
 
1036
 
 
1037
#define YYFAIL          goto yyerrlab
 
1038
 
 
1039
#define YYRECOVERING()  (!!yyerrstatus)
 
1040
 
 
1041
#define YYBACKUP(Token, Value)                                  \
 
1042
do                                                              \
 
1043
  if (yychar == YYEMPTY && yylen == 1)                          \
 
1044
    {                                                           \
 
1045
      yychar = (Token);                                         \
 
1046
      yylval = (Value);                                         \
 
1047
      yytoken = YYTRANSLATE (yychar);                           \
 
1048
      YYPOPSTACK;                                               \
 
1049
      goto yybackup;                                            \
 
1050
    }                                                           \
 
1051
  else                                                          \
 
1052
    {                                                           \
 
1053
      yyerror ("syntax error: cannot back up");\
 
1054
      YYERROR;                                                  \
 
1055
    }                                                           \
 
1056
while (0)
 
1057
 
 
1058
 
 
1059
#define YYTERROR        1
 
1060
#define YYERRCODE       256
 
1061
 
 
1062
 
 
1063
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
 
1064
   If N is 0, then set CURRENT to the empty location which ends
 
1065
   the previous symbol: RHS[0] (always defined).  */
 
1066
 
 
1067
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
 
1068
#ifndef YYLLOC_DEFAULT
 
1069
# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
 
1070
    do                                                                  \
 
1071
      if (N)                                                            \
 
1072
        {                                                               \
 
1073
          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
 
1074
          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
 
1075
          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
 
1076
          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
 
1077
        }                                                               \
 
1078
      else                                                              \
 
1079
        {                                                               \
 
1080
          (Current).first_line   = (Current).last_line   =              \
 
1081
            YYRHSLOC (Rhs, 0).last_line;                                \
 
1082
          (Current).first_column = (Current).last_column =              \
 
1083
            YYRHSLOC (Rhs, 0).last_column;                              \
 
1084
        }                                                               \
 
1085
    while (0)
 
1086
#endif
 
1087
 
 
1088
 
 
1089
/* YY_LOCATION_PRINT -- Print the location on the stream.
 
1090
   This macro was not mandated originally: define only if we know
 
1091
   we won't break user code: when these are the locations we know.  */
 
1092
 
 
1093
#ifndef YY_LOCATION_PRINT
 
1094
# if YYLTYPE_IS_TRIVIAL
 
1095
#  define YY_LOCATION_PRINT(File, Loc)                  \
 
1096
     fprintf (File, "%d.%d-%d.%d",                      \
 
1097
              (Loc).first_line, (Loc).first_column,     \
 
1098
              (Loc).last_line,  (Loc).last_column)
 
1099
# else
 
1100
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 
1101
# endif
 
1102
#endif
 
1103
 
 
1104
 
 
1105
/* YYLEX -- calling `yylex' with the right arguments.  */
 
1106
 
 
1107
#ifdef YYLEX_PARAM
 
1108
# define YYLEX yylex (YYLEX_PARAM)
 
1109
#else
 
1110
# define YYLEX yylex ()
 
1111
#endif
 
1112
 
 
1113
/* Enable debugging if requested.  */
 
1114
#if YYDEBUG
 
1115
 
 
1116
# ifndef YYFPRINTF
 
1117
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
 
1118
#  define YYFPRINTF fprintf
 
1119
# endif
 
1120
 
 
1121
# define YYDPRINTF(Args)                        \
 
1122
do {                                            \
 
1123
  if (yydebug)                                  \
 
1124
    YYFPRINTF Args;                             \
 
1125
} while (0)
 
1126
 
 
1127
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)          \
 
1128
do {                                                            \
 
1129
  if (yydebug)                                                  \
 
1130
    {                                                           \
 
1131
      YYFPRINTF (stderr, "%s ", Title);                         \
 
1132
      yysymprint (stderr,                                       \
 
1133
                  Type, Value); \
 
1134
      YYFPRINTF (stderr, "\n");                                 \
 
1135
    }                                                           \
 
1136
} while (0)
 
1137
 
 
1138
/*------------------------------------------------------------------.
 
1139
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
 
1140
| TOP (included).                                                   |
 
1141
`------------------------------------------------------------------*/
 
1142
 
 
1143
#if defined (__STDC__) || defined (__cplusplus)
 
1144
static void
 
1145
yy_stack_print (short int *bottom, short int *top)
 
1146
#else
 
1147
static void
 
1148
yy_stack_print (bottom, top)
 
1149
    short int *bottom;
 
1150
    short int *top;
 
1151
#endif
 
1152
{
 
1153
  YYFPRINTF (stderr, "Stack now");
 
1154
  for (/* Nothing. */; bottom <= top; ++bottom)
 
1155
    YYFPRINTF (stderr, " %d", *bottom);
 
1156
  YYFPRINTF (stderr, "\n");
 
1157
}
 
1158
 
 
1159
# define YY_STACK_PRINT(Bottom, Top)                            \
 
1160
do {                                                            \
 
1161
  if (yydebug)                                                  \
 
1162
    yy_stack_print ((Bottom), (Top));                           \
 
1163
} while (0)
 
1164
 
 
1165
 
 
1166
/*------------------------------------------------.
 
1167
| Report that the YYRULE is going to be reduced.  |
 
1168
`------------------------------------------------*/
 
1169
 
 
1170
#if defined (__STDC__) || defined (__cplusplus)
 
1171
static void
 
1172
yy_reduce_print (int yyrule)
 
1173
#else
 
1174
static void
 
1175
yy_reduce_print (yyrule)
 
1176
    int yyrule;
 
1177
#endif
 
1178
{
 
1179
  int yyi;
 
1180
  unsigned int yylno = yyrline[yyrule];
 
1181
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
 
1182
             yyrule - 1, yylno);
 
1183
  /* Print the symbols being reduced, and their result.  */
 
1184
  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
 
1185
    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
 
1186
  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
 
1187
}
 
1188
 
 
1189
# define YY_REDUCE_PRINT(Rule)          \
 
1190
do {                                    \
 
1191
  if (yydebug)                          \
 
1192
    yy_reduce_print (Rule);             \
 
1193
} while (0)
 
1194
 
 
1195
/* Nonzero means print parse trace.  It is left uninitialized so that
 
1196
   multiple parsers can coexist.  */
 
1197
int yydebug;
 
1198
#else /* !YYDEBUG */
 
1199
# define YYDPRINTF(Args)
 
1200
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 
1201
# define YY_STACK_PRINT(Bottom, Top)
 
1202
# define YY_REDUCE_PRINT(Rule)
 
1203
#endif /* !YYDEBUG */
 
1204
 
 
1205
 
 
1206
/* YYINITDEPTH -- initial size of the parser's stacks.  */
 
1207
#ifndef YYINITDEPTH
 
1208
# define YYINITDEPTH 200
 
1209
#endif
 
1210
 
 
1211
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
 
1212
   if the built-in stack extension method is used).
 
1213
 
 
1214
   Do not make this value too large; the results are undefined if
 
1215
   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
 
1216
   evaluated with infinite-precision integer arithmetic.  */
 
1217
 
 
1218
#ifndef YYMAXDEPTH
 
1219
# define YYMAXDEPTH 10000
 
1220
#endif
 
1221
 
 
1222
 
 
1223
 
 
1224
#if YYERROR_VERBOSE
 
1225
 
 
1226
# ifndef yystrlen
 
1227
#  if defined (__GLIBC__) && defined (_STRING_H)
 
1228
#   define yystrlen strlen
 
1229
#  else
 
1230
/* Return the length of YYSTR.  */
 
1231
static YYSIZE_T
 
1232
#   if defined (__STDC__) || defined (__cplusplus)
 
1233
yystrlen (const char *yystr)
 
1234
#   else
 
1235
yystrlen (yystr)
 
1236
     const char *yystr;
 
1237
#   endif
 
1238
{
 
1239
  register const char *yys = yystr;
 
1240
 
 
1241
  while (*yys++ != '\0')
 
1242
    continue;
 
1243
 
 
1244
  return yys - yystr - 1;
 
1245
}
 
1246
#  endif
 
1247
# endif
 
1248
 
 
1249
# ifndef yystpcpy
 
1250
#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
 
1251
#   define yystpcpy stpcpy
 
1252
#  else
 
1253
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
 
1254
   YYDEST.  */
 
1255
static char *
 
1256
#   if defined (__STDC__) || defined (__cplusplus)
 
1257
yystpcpy (char *yydest, const char *yysrc)
 
1258
#   else
 
1259
yystpcpy (yydest, yysrc)
 
1260
     char *yydest;
 
1261
     const char *yysrc;
 
1262
#   endif
 
1263
{
 
1264
  register char *yyd = yydest;
 
1265
  register const char *yys = yysrc;
 
1266
 
 
1267
  while ((*yyd++ = *yys++) != '\0')
 
1268
    continue;
 
1269
 
 
1270
  return yyd - 1;
 
1271
}
 
1272
#  endif
 
1273
# endif
 
1274
 
 
1275
#endif /* !YYERROR_VERBOSE */
 
1276
 
 
1277
 
 
1278
 
 
1279
#if YYDEBUG
 
1280
/*--------------------------------.
 
1281
| Print this symbol on YYOUTPUT.  |
 
1282
`--------------------------------*/
 
1283
 
 
1284
#if defined (__STDC__) || defined (__cplusplus)
 
1285
static void
 
1286
yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
 
1287
#else
 
1288
static void
 
1289
yysymprint (yyoutput, yytype, yyvaluep)
 
1290
    FILE *yyoutput;
 
1291
    int yytype;
 
1292
    YYSTYPE *yyvaluep;
 
1293
#endif
 
1294
{
 
1295
  /* Pacify ``unused variable'' warnings.  */
 
1296
  (void) yyvaluep;
 
1297
 
 
1298
  if (yytype < YYNTOKENS)
 
1299
    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
 
1300
  else
 
1301
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
1302
 
 
1303
 
 
1304
# ifdef YYPRINT
 
1305
  if (yytype < YYNTOKENS)
 
1306
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
 
1307
# endif
 
1308
  switch (yytype)
 
1309
    {
 
1310
      default:
 
1311
        break;
 
1312
    }
 
1313
  YYFPRINTF (yyoutput, ")");
 
1314
}
 
1315
 
 
1316
#endif /* ! YYDEBUG */
 
1317
/*-----------------------------------------------.
 
1318
| Release the memory associated to this symbol.  |
 
1319
`-----------------------------------------------*/
 
1320
 
 
1321
#if defined (__STDC__) || defined (__cplusplus)
 
1322
static void
 
1323
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
 
1324
#else
 
1325
static void
 
1326
yydestruct (yymsg, yytype, yyvaluep)
 
1327
    const char *yymsg;
 
1328
    int yytype;
 
1329
    YYSTYPE *yyvaluep;
 
1330
#endif
 
1331
{
 
1332
  /* Pacify ``unused variable'' warnings.  */
 
1333
  (void) yyvaluep;
 
1334
 
 
1335
  if (!yymsg)
 
1336
    yymsg = "Deleting";
 
1337
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
1338
 
 
1339
  switch (yytype)
 
1340
    {
 
1341
 
 
1342
      default:
 
1343
        break;
 
1344
    }
 
1345
}
 
1346
 
 
1347
 
 
1348
/* Prevent warnings from -Wmissing-prototypes.  */
 
1349
 
 
1350
#ifdef YYPARSE_PARAM
 
1351
# if defined (__STDC__) || defined (__cplusplus)
 
1352
UNIV_INTERN int yyparse (void *YYPARSE_PARAM);
 
1353
# else
 
1354
UNIV_INTERN int yyparse ();
 
1355
# endif
 
1356
#else /* ! YYPARSE_PARAM */
 
1357
#if defined (__STDC__) || defined (__cplusplus)
 
1358
UNIV_INTERN int yyparse (void);
 
1359
#else
 
1360
UNIV_INTERN int yyparse ();
 
1361
#endif
 
1362
#endif /* ! YYPARSE_PARAM */
 
1363
 
 
1364
 
 
1365
 
 
1366
/* The look-ahead symbol.  */
 
1367
static int yychar;
 
1368
 
 
1369
/* The semantic value of the look-ahead symbol.  */
 
1370
UNIV_INTERN YYSTYPE yylval;
 
1371
 
 
1372
/* Number of syntax errors so far.  */
 
1373
static int yynerrs;
 
1374
 
 
1375
 
 
1376
 
 
1377
/*----------.
 
1378
| yyparse.  |
 
1379
`----------*/
 
1380
 
 
1381
#ifdef YYPARSE_PARAM
 
1382
# if defined (__STDC__) || defined (__cplusplus)
 
1383
UNIV_INTERN int yyparse (void *YYPARSE_PARAM)
 
1384
# else
 
1385
UNIV_INTERN int yyparse (YYPARSE_PARAM)
 
1386
  void *YYPARSE_PARAM;
 
1387
# endif
 
1388
#else /* ! YYPARSE_PARAM */
 
1389
#if defined (__STDC__) || defined (__cplusplus)
 
1390
int
 
1391
yyparse (void)
 
1392
#else
 
1393
int
 
1394
yyparse ()
 
1395
 
 
1396
#endif
 
1397
#endif
 
1398
{
 
1399
  
 
1400
  register int yystate;
 
1401
  register int yyn;
 
1402
  int yyresult;
 
1403
  /* Number of tokens to shift before error messages enabled.  */
 
1404
  int yyerrstatus;
 
1405
  /* Look-ahead token as an internal (translated) token number.  */
 
1406
  int yytoken = 0;
 
1407
 
 
1408
  /* Three stacks and their tools:
 
1409
     `yyss': related to states,
 
1410
     `yyvs': related to semantic values,
 
1411
     `yyls': related to locations.
 
1412
 
 
1413
     Refer to the stacks thru separate pointers, to allow yyoverflow
 
1414
     to reallocate them elsewhere.  */
 
1415
 
 
1416
  /* The state stack.  */
 
1417
  short int yyssa[YYINITDEPTH];
 
1418
  short int *yyss = yyssa;
 
1419
  register short int *yyssp;
 
1420
 
 
1421
  /* The semantic value stack.  */
 
1422
  YYSTYPE yyvsa[YYINITDEPTH];
 
1423
  YYSTYPE *yyvs = yyvsa;
 
1424
  register YYSTYPE *yyvsp;
 
1425
 
 
1426
 
 
1427
 
 
1428
#define YYPOPSTACK   (yyvsp--, yyssp--)
 
1429
 
 
1430
  YYSIZE_T yystacksize = YYINITDEPTH;
 
1431
 
 
1432
  /* The variables used to return semantic value and location from the
 
1433
     action routines.  */
 
1434
  YYSTYPE yyval;
 
1435
 
 
1436
 
 
1437
  /* When reducing, the number of symbols on the RHS of the reduced
 
1438
     rule.  */
 
1439
  int yylen;
 
1440
 
 
1441
  YYDPRINTF ((stderr, "Starting parse\n"));
 
1442
 
 
1443
  yystate = 0;
 
1444
  yyerrstatus = 0;
 
1445
  yynerrs = 0;
 
1446
  yychar = YYEMPTY;             /* Cause a token to be read.  */
 
1447
 
 
1448
  /* Initialize stack pointers.
 
1449
     Waste one element of value and location stack
 
1450
     so that they stay on the same level as the state stack.
 
1451
     The wasted elements are never initialized.  */
 
1452
 
 
1453
  yyssp = yyss;
 
1454
  yyvsp = yyvs;
 
1455
 
 
1456
 
 
1457
  yyvsp[0] = yylval;
 
1458
 
 
1459
  goto yysetstate;
 
1460
 
 
1461
/*------------------------------------------------------------.
 
1462
| yynewstate -- Push a new state, which is found in yystate.  |
 
1463
`------------------------------------------------------------*/
 
1464
 yynewstate:
 
1465
  /* In all cases, when you get here, the value and location stacks
 
1466
     have just been pushed. so pushing a state here evens the stacks.
 
1467
     */
 
1468
  yyssp++;
 
1469
 
 
1470
 yysetstate:
 
1471
  *yyssp = yystate;
 
1472
 
 
1473
  if (yyss + yystacksize - 1 <= yyssp)
 
1474
    {
 
1475
      /* Get the current used size of the three stacks, in elements.  */
 
1476
      YYSIZE_T yysize = yyssp - yyss + 1;
 
1477
 
 
1478
#ifdef yyoverflow
 
1479
      {
 
1480
        /* Give user a chance to reallocate the stack. Use copies of
 
1481
           these so that the &'s don't force the real ones into
 
1482
           memory.  */
 
1483
        YYSTYPE *yyvs1 = yyvs;
 
1484
        short int *yyss1 = yyss;
 
1485
 
 
1486
 
 
1487
        /* Each stack pointer address is followed by the size of the
 
1488
           data in use in that stack, in bytes.  This used to be a
 
1489
           conditional around just the two extra args, but that might
 
1490
           be undefined if yyoverflow is a macro.  */
 
1491
        yyoverflow ("parser stack overflow",
 
1492
                    &yyss1, yysize * sizeof (*yyssp),
 
1493
                    &yyvs1, yysize * sizeof (*yyvsp),
 
1494
 
 
1495
                    &yystacksize);
 
1496
 
 
1497
        yyss = yyss1;
 
1498
        yyvs = yyvs1;
 
1499
      }
 
1500
#else /* no yyoverflow */
 
1501
# ifndef YYSTACK_RELOCATE
 
1502
      goto yyoverflowlab;
 
1503
# else
 
1504
      /* Extend the stack our own way.  */
 
1505
      if (YYMAXDEPTH <= yystacksize)
 
1506
        goto yyoverflowlab;
 
1507
      yystacksize *= 2;
 
1508
      if (YYMAXDEPTH < yystacksize)
 
1509
        yystacksize = YYMAXDEPTH;
 
1510
 
 
1511
      {
 
1512
        short int *yyss1 = yyss;
 
1513
        union yyalloc *yyptr =
 
1514
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
 
1515
        if (! yyptr)
 
1516
          goto yyoverflowlab;
 
1517
        YYSTACK_RELOCATE (yyss);
 
1518
        YYSTACK_RELOCATE (yyvs);
 
1519
 
 
1520
#  undef YYSTACK_RELOCATE
 
1521
        if (yyss1 != yyssa)
 
1522
          YYSTACK_FREE (yyss1);
 
1523
      }
 
1524
# endif
 
1525
#endif /* no yyoverflow */
 
1526
 
 
1527
      yyssp = yyss + yysize - 1;
 
1528
      yyvsp = yyvs + yysize - 1;
 
1529
 
 
1530
 
 
1531
      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
 
1532
                  (unsigned long int) yystacksize));
 
1533
 
 
1534
      if (yyss + yystacksize - 1 <= yyssp)
 
1535
        YYABORT;
 
1536
    }
 
1537
 
 
1538
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
1539
 
 
1540
  goto yybackup;
 
1541
 
 
1542
/*-----------.
 
1543
| yybackup.  |
 
1544
`-----------*/
 
1545
yybackup:
 
1546
 
 
1547
/* Do appropriate processing given the current state.  */
 
1548
/* Read a look-ahead token if we need one and don't already have one.  */
 
1549
/* yyresume: */
 
1550
 
 
1551
  /* First try to decide what to do without reference to look-ahead token.  */
 
1552
 
 
1553
  yyn = yypact[yystate];
 
1554
  if (yyn == YYPACT_NINF)
 
1555
    goto yydefault;
 
1556
 
 
1557
  /* Not known => get a look-ahead token if don't already have one.  */
 
1558
 
 
1559
  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
 
1560
  if (yychar == YYEMPTY)
 
1561
    {
 
1562
      YYDPRINTF ((stderr, "Reading a token: "));
 
1563
      yychar = YYLEX;
 
1564
    }
 
1565
 
 
1566
  if (yychar <= YYEOF)
 
1567
    {
 
1568
      yychar = yytoken = YYEOF;
 
1569
      YYDPRINTF ((stderr, "Now at end of input.\n"));
 
1570
    }
 
1571
  else
 
1572
    {
 
1573
      yytoken = YYTRANSLATE (yychar);
 
1574
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
 
1575
    }
 
1576
 
 
1577
  /* If the proper action on seeing token YYTOKEN is to reduce or to
 
1578
     detect an error, take that action.  */
 
1579
  yyn += yytoken;
 
1580
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
 
1581
    goto yydefault;
 
1582
  yyn = yytable[yyn];
 
1583
  if (yyn <= 0)
 
1584
    {
 
1585
      if (yyn == 0 || yyn == YYTABLE_NINF)
 
1586
        goto yyerrlab;
 
1587
      yyn = -yyn;
 
1588
      goto yyreduce;
 
1589
    }
 
1590
 
 
1591
  if (yyn == YYFINAL)
 
1592
    YYACCEPT;
 
1593
 
 
1594
  /* Shift the look-ahead token.  */
 
1595
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
1596
 
 
1597
  /* Discard the token being shifted unless it is eof.  */
 
1598
  if (yychar != YYEOF)
 
1599
    yychar = YYEMPTY;
 
1600
 
 
1601
  *++yyvsp = yylval;
 
1602
 
 
1603
 
 
1604
  /* Count tokens shifted since error; after three, turn off error
 
1605
     status.  */
 
1606
  if (yyerrstatus)
 
1607
    yyerrstatus--;
 
1608
 
 
1609
  yystate = yyn;
 
1610
  goto yynewstate;
 
1611
 
 
1612
 
 
1613
/*-----------------------------------------------------------.
 
1614
| yydefault -- do the default action for the current state.  |
 
1615
`-----------------------------------------------------------*/
 
1616
yydefault:
 
1617
  yyn = yydefact[yystate];
 
1618
  if (yyn == 0)
 
1619
    goto yyerrlab;
 
1620
  goto yyreduce;
 
1621
 
 
1622
 
 
1623
/*-----------------------------.
 
1624
| yyreduce -- Do a reduction.  |
 
1625
`-----------------------------*/
 
1626
yyreduce:
 
1627
  /* yyn is the number of a rule to reduce with.  */
 
1628
  yylen = yyr2[yyn];
 
1629
 
 
1630
  /* If YYLEN is nonzero, implement the default value of the action:
 
1631
     `$$ = $1'.
 
1632
 
 
1633
     Otherwise, the following line sets YYVAL to garbage.
 
1634
     This behavior is undocumented and Bison
 
1635
     users should not rely upon it.  Assigning to YYVAL
 
1636
     unconditionally makes the parser a bit smaller, and it avoids a
 
1637
     GCC warning that YYVAL may be used uninitialized.  */
 
1638
  yyval = yyvsp[1-yylen];
 
1639
 
 
1640
 
 
1641
  YY_REDUCE_PRINT (yyn);
 
1642
  switch (yyn)
 
1643
    {
 
1644
        case 25:
 
1645
#line 166 "pars0grm.y"
 
1646
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
 
1647
    break;
 
1648
 
 
1649
  case 26:
 
1650
#line 168 "pars0grm.y"
 
1651
    { (yyval) = que_node_list_add_last((yyvsp[-1]), (yyvsp[0])); ;}
 
1652
    break;
 
1653
 
 
1654
  case 27:
 
1655
#line 172 "pars0grm.y"
 
1656
    { (yyval) = (yyvsp[0]);;}
 
1657
    break;
 
1658
 
 
1659
  case 28:
 
1660
#line 174 "pars0grm.y"
 
1661
    { (yyval) = pars_func((yyvsp[-3]), (yyvsp[-1])); ;}
 
1662
    break;
 
1663
 
 
1664
  case 29:
 
1665
#line 175 "pars0grm.y"
 
1666
    { (yyval) = (yyvsp[0]);;}
 
1667
    break;
 
1668
 
 
1669
  case 30:
 
1670
#line 176 "pars0grm.y"
 
1671
    { (yyval) = (yyvsp[0]);;}
 
1672
    break;
 
1673
 
 
1674
  case 31:
 
1675
#line 177 "pars0grm.y"
 
1676
    { (yyval) = (yyvsp[0]);;}
 
1677
    break;
 
1678
 
 
1679
  case 32:
 
1680
#line 178 "pars0grm.y"
 
1681
    { (yyval) = (yyvsp[0]);;}
 
1682
    break;
 
1683
 
 
1684
  case 33:
 
1685
#line 179 "pars0grm.y"
 
1686
    { (yyval) = (yyvsp[0]);;}
 
1687
    break;
 
1688
 
 
1689
  case 34:
 
1690
#line 180 "pars0grm.y"
 
1691
    { (yyval) = (yyvsp[0]);;}
 
1692
    break;
 
1693
 
 
1694
  case 35:
 
1695
#line 181 "pars0grm.y"
 
1696
    { (yyval) = (yyvsp[0]);;}
 
1697
    break;
 
1698
 
 
1699
  case 36:
 
1700
#line 182 "pars0grm.y"
 
1701
    { (yyval) = pars_op('+', (yyvsp[-2]), (yyvsp[0])); ;}
 
1702
    break;
 
1703
 
 
1704
  case 37:
 
1705
#line 183 "pars0grm.y"
 
1706
    { (yyval) = pars_op('-', (yyvsp[-2]), (yyvsp[0])); ;}
 
1707
    break;
 
1708
 
 
1709
  case 38:
 
1710
#line 184 "pars0grm.y"
 
1711
    { (yyval) = pars_op('*', (yyvsp[-2]), (yyvsp[0])); ;}
 
1712
    break;
 
1713
 
 
1714
  case 39:
 
1715
#line 185 "pars0grm.y"
 
1716
    { (yyval) = pars_op('/', (yyvsp[-2]), (yyvsp[0])); ;}
 
1717
    break;
 
1718
 
 
1719
  case 40:
 
1720
#line 186 "pars0grm.y"
 
1721
    { (yyval) = pars_op('-', (yyvsp[0]), NULL); ;}
 
1722
    break;
 
1723
 
 
1724
  case 41:
 
1725
#line 187 "pars0grm.y"
 
1726
    { (yyval) = (yyvsp[-1]); ;}
 
1727
    break;
 
1728
 
 
1729
  case 42:
 
1730
#line 188 "pars0grm.y"
 
1731
    { (yyval) = pars_op('=', (yyvsp[-2]), (yyvsp[0])); ;}
 
1732
    break;
 
1733
 
 
1734
  case 43:
 
1735
#line 189 "pars0grm.y"
 
1736
    { (yyval) = pars_op('<', (yyvsp[-2]), (yyvsp[0])); ;}
 
1737
    break;
 
1738
 
 
1739
  case 44:
 
1740
#line 190 "pars0grm.y"
 
1741
    { (yyval) = pars_op('>', (yyvsp[-2]), (yyvsp[0])); ;}
 
1742
    break;
 
1743
 
 
1744
  case 45:
 
1745
#line 191 "pars0grm.y"
 
1746
    { (yyval) = pars_op(PARS_GE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
 
1747
    break;
 
1748
 
 
1749
  case 46:
 
1750
#line 192 "pars0grm.y"
 
1751
    { (yyval) = pars_op(PARS_LE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
 
1752
    break;
 
1753
 
 
1754
  case 47:
 
1755
#line 193 "pars0grm.y"
 
1756
    { (yyval) = pars_op(PARS_NE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
 
1757
    break;
 
1758
 
 
1759
  case 48:
 
1760
#line 194 "pars0grm.y"
 
1761
    { (yyval) = pars_op(PARS_AND_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
 
1762
    break;
 
1763
 
 
1764
  case 49:
 
1765
#line 195 "pars0grm.y"
 
1766
    { (yyval) = pars_op(PARS_OR_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
 
1767
    break;
 
1768
 
 
1769
  case 50:
 
1770
#line 196 "pars0grm.y"
 
1771
    { (yyval) = pars_op(PARS_NOT_TOKEN, (yyvsp[0]), NULL); ;}
 
1772
    break;
 
1773
 
 
1774
  case 51:
 
1775
#line 198 "pars0grm.y"
 
1776
    { (yyval) = pars_op(PARS_NOTFOUND_TOKEN, (yyvsp[-2]), NULL); ;}
 
1777
    break;
 
1778
 
 
1779
  case 52:
 
1780
#line 200 "pars0grm.y"
 
1781
    { (yyval) = pars_op(PARS_NOTFOUND_TOKEN, (yyvsp[-2]), NULL); ;}
 
1782
    break;
 
1783
 
 
1784
  case 53:
 
1785
#line 204 "pars0grm.y"
 
1786
    { (yyval) = &pars_to_char_token; ;}
 
1787
    break;
 
1788
 
 
1789
  case 54:
 
1790
#line 205 "pars0grm.y"
 
1791
    { (yyval) = &pars_to_number_token; ;}
 
1792
    break;
 
1793
 
 
1794
  case 55:
 
1795
#line 206 "pars0grm.y"
 
1796
    { (yyval) = &pars_to_binary_token; ;}
 
1797
    break;
 
1798
 
 
1799
  case 56:
 
1800
#line 208 "pars0grm.y"
 
1801
    { (yyval) = &pars_binary_to_number_token; ;}
 
1802
    break;
 
1803
 
 
1804
  case 57:
 
1805
#line 209 "pars0grm.y"
 
1806
    { (yyval) = &pars_substr_token; ;}
 
1807
    break;
 
1808
 
 
1809
  case 58:
 
1810
#line 210 "pars0grm.y"
 
1811
    { (yyval) = &pars_concat_token; ;}
 
1812
    break;
 
1813
 
 
1814
  case 59:
 
1815
#line 211 "pars0grm.y"
 
1816
    { (yyval) = &pars_instr_token; ;}
 
1817
    break;
 
1818
 
 
1819
  case 60:
 
1820
#line 212 "pars0grm.y"
 
1821
    { (yyval) = &pars_length_token; ;}
 
1822
    break;
 
1823
 
 
1824
  case 61:
 
1825
#line 213 "pars0grm.y"
 
1826
    { (yyval) = &pars_sysdate_token; ;}
 
1827
    break;
 
1828
 
 
1829
  case 62:
 
1830
#line 214 "pars0grm.y"
 
1831
    { (yyval) = &pars_rnd_token; ;}
 
1832
    break;
 
1833
 
 
1834
  case 63:
 
1835
#line 215 "pars0grm.y"
 
1836
    { (yyval) = &pars_rnd_str_token; ;}
 
1837
    break;
 
1838
 
 
1839
  case 67:
 
1840
#line 226 "pars0grm.y"
 
1841
    { (yyval) = pars_stored_procedure_call((yyvsp[-4])); ;}
 
1842
    break;
 
1843
 
 
1844
  case 68:
 
1845
#line 231 "pars0grm.y"
 
1846
    { (yyval) = pars_procedure_call((yyvsp[-3]), (yyvsp[-1])); ;}
 
1847
    break;
 
1848
 
 
1849
  case 69:
 
1850
#line 235 "pars0grm.y"
 
1851
    { (yyval) = &pars_replstr_token; ;}
 
1852
    break;
 
1853
 
 
1854
  case 70:
 
1855
#line 236 "pars0grm.y"
 
1856
    { (yyval) = &pars_printf_token; ;}
 
1857
    break;
 
1858
 
 
1859
  case 71:
 
1860
#line 237 "pars0grm.y"
 
1861
    { (yyval) = &pars_assert_token; ;}
 
1862
    break;
 
1863
 
 
1864
  case 72:
 
1865
#line 241 "pars0grm.y"
 
1866
    { (yyval) = (yyvsp[-2]); ;}
 
1867
    break;
 
1868
 
 
1869
  case 73:
 
1870
#line 245 "pars0grm.y"
 
1871
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
 
1872
    break;
 
1873
 
 
1874
  case 74:
 
1875
#line 247 "pars0grm.y"
 
1876
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
 
1877
    break;
 
1878
 
 
1879
  case 75:
 
1880
#line 251 "pars0grm.y"
 
1881
    { (yyval) = NULL; ;}
 
1882
    break;
 
1883
 
 
1884
  case 76:
 
1885
#line 252 "pars0grm.y"
 
1886
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
 
1887
    break;
 
1888
 
 
1889
  case 77:
 
1890
#line 254 "pars0grm.y"
 
1891
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
 
1892
    break;
 
1893
 
 
1894
  case 78:
 
1895
#line 258 "pars0grm.y"
 
1896
    { (yyval) = NULL; ;}
 
1897
    break;
 
1898
 
 
1899
  case 79:
 
1900
#line 259 "pars0grm.y"
 
1901
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0]));;}
 
1902
    break;
 
1903
 
 
1904
  case 80:
 
1905
#line 260 "pars0grm.y"
 
1906
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
 
1907
    break;
 
1908
 
 
1909
  case 81:
 
1910
#line 264 "pars0grm.y"
 
1911
    { (yyval) = (yyvsp[0]); ;}
 
1912
    break;
 
1913
 
 
1914
  case 82:
 
1915
#line 266 "pars0grm.y"
 
1916
    { (yyval) = pars_func(&pars_count_token,
 
1917
                                          que_node_list_add_last(NULL,
 
1918
                                            sym_tab_add_int_lit(
 
1919
                                                pars_sym_tab_global, 1))); ;}
 
1920
    break;
 
1921
 
 
1922
  case 83:
 
1923
#line 271 "pars0grm.y"
 
1924
    { (yyval) = pars_func(&pars_count_token,
 
1925
                                            que_node_list_add_last(NULL,
 
1926
                                                pars_func(&pars_distinct_token,
 
1927
                                                     que_node_list_add_last(
 
1928
                                                                NULL, (yyvsp[-1]))))); ;}
 
1929
    break;
 
1930
 
 
1931
  case 84:
 
1932
#line 277 "pars0grm.y"
 
1933
    { (yyval) = pars_func(&pars_sum_token,
 
1934
                                                que_node_list_add_last(NULL,
 
1935
                                                                        (yyvsp[-1]))); ;}
 
1936
    break;
 
1937
 
 
1938
  case 85:
 
1939
#line 283 "pars0grm.y"
 
1940
    { (yyval) = NULL; ;}
 
1941
    break;
 
1942
 
 
1943
  case 86:
 
1944
#line 284 "pars0grm.y"
 
1945
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
 
1946
    break;
 
1947
 
 
1948
  case 87:
 
1949
#line 286 "pars0grm.y"
 
1950
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
 
1951
    break;
 
1952
 
 
1953
  case 88:
 
1954
#line 290 "pars0grm.y"
 
1955
    { (yyval) = pars_select_list(&pars_star_denoter,
 
1956
                                                                NULL); ;}
 
1957
    break;
 
1958
 
 
1959
  case 89:
 
1960
#line 293 "pars0grm.y"
 
1961
    { (yyval) = pars_select_list((yyvsp[-2]), (yyvsp[0])); ;}
 
1962
    break;
 
1963
 
 
1964
  case 90:
 
1965
#line 294 "pars0grm.y"
 
1966
    { (yyval) = pars_select_list((yyvsp[0]), NULL); ;}
 
1967
    break;
 
1968
 
 
1969
  case 91:
 
1970
#line 298 "pars0grm.y"
 
1971
    { (yyval) = NULL; ;}
 
1972
    break;
 
1973
 
 
1974
  case 92:
 
1975
#line 299 "pars0grm.y"
 
1976
    { (yyval) = (yyvsp[0]); ;}
 
1977
    break;
 
1978
 
 
1979
  case 93:
 
1980
#line 303 "pars0grm.y"
 
1981
    { (yyval) = NULL; ;}
 
1982
    break;
 
1983
 
 
1984
  case 94:
 
1985
#line 305 "pars0grm.y"
 
1986
    { (yyval) = &pars_update_token; ;}
 
1987
    break;
 
1988
 
 
1989
  case 95:
 
1990
#line 309 "pars0grm.y"
 
1991
    { (yyval) = NULL; ;}
 
1992
    break;
 
1993
 
 
1994
  case 96:
 
1995
#line 311 "pars0grm.y"
 
1996
    { yyval = &pars_share_token; ;}
 
1997
    break;
 
1998
 
 
1999
  case 97:
 
2000
#line 315 "pars0grm.y"
 
2001
    { (yyval) = &pars_asc_token; ;}
 
2002
    break;
 
2003
 
 
2004
  case 98:
 
2005
#line 316 "pars0grm.y"
 
2006
    { (yyval) = &pars_asc_token; ;}
 
2007
    break;
 
2008
 
 
2009
  case 99:
 
2010
#line 317 "pars0grm.y"
 
2011
    { (yyval) = &pars_desc_token; ;}
 
2012
    break;
 
2013
 
 
2014
  case 100:
 
2015
#line 321 "pars0grm.y"
 
2016
    { (yyval) = NULL; ;}
 
2017
    break;
 
2018
 
 
2019
  case 101:
 
2020
#line 323 "pars0grm.y"
 
2021
    { (yyval) = pars_order_by((yyvsp[-1]), (yyvsp[0])); ;}
 
2022
    break;
 
2023
 
 
2024
  case 102:
 
2025
#line 332 "pars0grm.y"
 
2026
    { (yyval) = pars_select_statement((yyvsp[-6]), (yyvsp[-4]), (yyvsp[-3]),
 
2027
                                                                (yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); ;}
 
2028
    break;
 
2029
 
 
2030
  case 103:
 
2031
#line 338 "pars0grm.y"
 
2032
    { (yyval) = (yyvsp[0]); ;}
 
2033
    break;
 
2034
 
 
2035
  case 104:
 
2036
#line 343 "pars0grm.y"
 
2037
    { (yyval) = pars_insert_statement((yyvsp[-4]), (yyvsp[-1]), NULL); ;}
 
2038
    break;
 
2039
 
 
2040
  case 105:
 
2041
#line 345 "pars0grm.y"
 
2042
    { (yyval) = pars_insert_statement((yyvsp[-1]), NULL, (yyvsp[0])); ;}
 
2043
    break;
 
2044
 
 
2045
  case 106:
 
2046
#line 349 "pars0grm.y"
 
2047
    { (yyval) = pars_column_assignment((yyvsp[-2]), (yyvsp[0])); ;}
 
2048
    break;
 
2049
 
 
2050
  case 107:
 
2051
#line 353 "pars0grm.y"
 
2052
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
 
2053
    break;
 
2054
 
 
2055
  case 108:
 
2056
#line 355 "pars0grm.y"
 
2057
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
 
2058
    break;
 
2059
 
 
2060
  case 109:
 
2061
#line 361 "pars0grm.y"
 
2062
    { (yyval) = (yyvsp[0]); ;}
 
2063
    break;
 
2064
 
 
2065
  case 110:
 
2066
#line 367 "pars0grm.y"
 
2067
    { (yyval) = pars_update_statement_start(FALSE,
 
2068
                                                                (yyvsp[-2]), (yyvsp[0])); ;}
 
2069
    break;
 
2070
 
 
2071
  case 111:
 
2072
#line 373 "pars0grm.y"
 
2073
    { (yyval) = pars_update_statement((yyvsp[-1]), NULL, (yyvsp[0])); ;}
 
2074
    break;
 
2075
 
 
2076
  case 112:
 
2077
#line 378 "pars0grm.y"
 
2078
    { (yyval) = pars_update_statement((yyvsp[-1]), (yyvsp[0]), NULL); ;}
 
2079
    break;
 
2080
 
 
2081
  case 113:
 
2082
#line 383 "pars0grm.y"
 
2083
    { (yyval) = pars_update_statement_start(TRUE,
 
2084
                                                                (yyvsp[0]), NULL); ;}
 
2085
    break;
 
2086
 
 
2087
  case 114:
 
2088
#line 389 "pars0grm.y"
 
2089
    { (yyval) = pars_update_statement((yyvsp[-1]), NULL, (yyvsp[0])); ;}
 
2090
    break;
 
2091
 
 
2092
  case 115:
 
2093
#line 394 "pars0grm.y"
 
2094
    { (yyval) = pars_update_statement((yyvsp[-1]), (yyvsp[0]), NULL); ;}
 
2095
    break;
 
2096
 
 
2097
  case 116:
 
2098
#line 399 "pars0grm.y"
 
2099
    { (yyval) = pars_row_printf_statement((yyvsp[0])); ;}
 
2100
    break;
 
2101
 
 
2102
  case 117:
 
2103
#line 404 "pars0grm.y"
 
2104
    { (yyval) = pars_assignment_statement((yyvsp[-2]), (yyvsp[0])); ;}
 
2105
    break;
 
2106
 
 
2107
  case 118:
 
2108
#line 410 "pars0grm.y"
 
2109
    { (yyval) = pars_elsif_element((yyvsp[-2]), (yyvsp[0])); ;}
 
2110
    break;
 
2111
 
 
2112
  case 119:
 
2113
#line 414 "pars0grm.y"
 
2114
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
 
2115
    break;
 
2116
 
 
2117
  case 120:
 
2118
#line 416 "pars0grm.y"
 
2119
    { (yyval) = que_node_list_add_last((yyvsp[-1]), (yyvsp[0])); ;}
 
2120
    break;
 
2121
 
 
2122
  case 121:
 
2123
#line 420 "pars0grm.y"
 
2124
    { (yyval) = NULL; ;}
 
2125
    break;
 
2126
 
 
2127
  case 122:
 
2128
#line 422 "pars0grm.y"
 
2129
    { (yyval) = (yyvsp[0]); ;}
 
2130
    break;
 
2131
 
 
2132
  case 123:
 
2133
#line 423 "pars0grm.y"
 
2134
    { (yyval) = (yyvsp[0]); ;}
 
2135
    break;
 
2136
 
 
2137
  case 124:
 
2138
#line 430 "pars0grm.y"
 
2139
    { (yyval) = pars_if_statement((yyvsp[-5]), (yyvsp[-3]), (yyvsp[-2])); ;}
 
2140
    break;
 
2141
 
 
2142
  case 125:
 
2143
#line 436 "pars0grm.y"
 
2144
    { (yyval) = pars_while_statement((yyvsp[-4]), (yyvsp[-2])); ;}
 
2145
    break;
 
2146
 
 
2147
  case 126:
 
2148
#line 444 "pars0grm.y"
 
2149
    { (yyval) = pars_for_statement((yyvsp[-8]), (yyvsp[-6]), (yyvsp[-4]), (yyvsp[-2])); ;}
 
2150
    break;
 
2151
 
 
2152
  case 127:
 
2153
#line 448 "pars0grm.y"
 
2154
    { (yyval) = pars_exit_statement(); ;}
 
2155
    break;
 
2156
 
 
2157
  case 128:
 
2158
#line 452 "pars0grm.y"
 
2159
    { (yyval) = pars_return_statement(); ;}
 
2160
    break;
 
2161
 
 
2162
  case 129:
 
2163
#line 457 "pars0grm.y"
 
2164
    { (yyval) = pars_open_statement(
 
2165
                                                ROW_SEL_OPEN_CURSOR, (yyvsp[0])); ;}
 
2166
    break;
 
2167
 
 
2168
  case 130:
 
2169
#line 463 "pars0grm.y"
 
2170
    { (yyval) = pars_open_statement(
 
2171
                                                ROW_SEL_CLOSE_CURSOR, (yyvsp[0])); ;}
 
2172
    break;
 
2173
 
 
2174
  case 131:
 
2175
#line 469 "pars0grm.y"
 
2176
    { (yyval) = pars_fetch_statement((yyvsp[-2]), (yyvsp[0]), NULL); ;}
 
2177
    break;
 
2178
 
 
2179
  case 132:
 
2180
#line 471 "pars0grm.y"
 
2181
    { (yyval) = pars_fetch_statement((yyvsp[-2]), NULL, (yyvsp[0])); ;}
 
2182
    break;
 
2183
 
 
2184
  case 133:
 
2185
#line 476 "pars0grm.y"
 
2186
    { (yyval) = pars_column_def((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); ;}
 
2187
    break;
 
2188
 
 
2189
  case 134:
 
2190
#line 480 "pars0grm.y"
 
2191
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
 
2192
    break;
 
2193
 
 
2194
  case 135:
 
2195
#line 482 "pars0grm.y"
 
2196
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
 
2197
    break;
 
2198
 
 
2199
  case 136:
 
2200
#line 486 "pars0grm.y"
 
2201
    { (yyval) = NULL; ;}
 
2202
    break;
 
2203
 
 
2204
  case 137:
 
2205
#line 488 "pars0grm.y"
 
2206
    { (yyval) = (yyvsp[-1]); ;}
 
2207
    break;
 
2208
 
 
2209
  case 138:
 
2210
#line 492 "pars0grm.y"
 
2211
    { (yyval) = NULL; ;}
 
2212
    break;
 
2213
 
 
2214
  case 139:
 
2215
#line 494 "pars0grm.y"
 
2216
    { (yyval) = &pars_int_token;
 
2217
                                        /* pass any non-NULL pointer */ ;}
 
2218
    break;
 
2219
 
 
2220
  case 140:
 
2221
#line 499 "pars0grm.y"
 
2222
    { (yyval) = NULL; ;}
 
2223
    break;
 
2224
 
 
2225
  case 141:
 
2226
#line 501 "pars0grm.y"
 
2227
    { (yyval) = &pars_int_token;
 
2228
                                        /* pass any non-NULL pointer */ ;}
 
2229
    break;
 
2230
 
 
2231
  case 142:
 
2232
#line 506 "pars0grm.y"
 
2233
    { (yyval) = NULL; ;}
 
2234
    break;
 
2235
 
 
2236
  case 143:
 
2237
#line 508 "pars0grm.y"
 
2238
    { (yyval) = &pars_int_token;
 
2239
                                        /* pass any non-NULL pointer */ ;}
 
2240
    break;
 
2241
 
 
2242
  case 144:
 
2243
#line 515 "pars0grm.y"
 
2244
    { (yyval) = pars_create_table((yyvsp[-4]), (yyvsp[-2]), (yyvsp[0])); ;}
 
2245
    break;
 
2246
 
 
2247
  case 145:
 
2248
#line 519 "pars0grm.y"
 
2249
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
 
2250
    break;
 
2251
 
 
2252
  case 146:
 
2253
#line 521 "pars0grm.y"
 
2254
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
 
2255
    break;
 
2256
 
 
2257
  case 147:
 
2258
#line 525 "pars0grm.y"
 
2259
    { (yyval) = NULL; ;}
 
2260
    break;
 
2261
 
 
2262
  case 148:
 
2263
#line 526 "pars0grm.y"
 
2264
    { (yyval) = &pars_unique_token; ;}
 
2265
    break;
 
2266
 
 
2267
  case 149:
 
2268
#line 530 "pars0grm.y"
 
2269
    { (yyval) = NULL; ;}
 
2270
    break;
 
2271
 
 
2272
  case 150:
 
2273
#line 531 "pars0grm.y"
 
2274
    { (yyval) = &pars_clustered_token; ;}
 
2275
    break;
 
2276
 
 
2277
  case 151:
 
2278
#line 539 "pars0grm.y"
 
2279
    { (yyval) = pars_create_index((yyvsp[-8]), (yyvsp[-7]), (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1])); ;}
 
2280
    break;
 
2281
 
 
2282
  case 152:
 
2283
#line 544 "pars0grm.y"
 
2284
    { (yyval) = pars_commit_statement(); ;}
 
2285
    break;
 
2286
 
 
2287
  case 153:
 
2288
#line 549 "pars0grm.y"
 
2289
    { (yyval) = pars_rollback_statement(); ;}
 
2290
    break;
 
2291
 
 
2292
  case 154:
 
2293
#line 553 "pars0grm.y"
 
2294
    { (yyval) = &pars_int_token; ;}
 
2295
    break;
 
2296
 
 
2297
  case 155:
 
2298
#line 554 "pars0grm.y"
 
2299
    { (yyval) = &pars_int_token; ;}
 
2300
    break;
 
2301
 
 
2302
  case 156:
 
2303
#line 555 "pars0grm.y"
 
2304
    { (yyval) = &pars_char_token; ;}
 
2305
    break;
 
2306
 
 
2307
  case 157:
 
2308
#line 556 "pars0grm.y"
 
2309
    { (yyval) = &pars_binary_token; ;}
 
2310
    break;
 
2311
 
 
2312
  case 158:
 
2313
#line 557 "pars0grm.y"
 
2314
    { (yyval) = &pars_blob_token; ;}
 
2315
    break;
 
2316
 
 
2317
  case 159:
 
2318
#line 562 "pars0grm.y"
 
2319
    { (yyval) = pars_parameter_declaration((yyvsp[-2]),
 
2320
                                                        PARS_INPUT, (yyvsp[0])); ;}
 
2321
    break;
 
2322
 
 
2323
  case 160:
 
2324
#line 565 "pars0grm.y"
 
2325
    { (yyval) = pars_parameter_declaration((yyvsp[-2]),
 
2326
                                                        PARS_OUTPUT, (yyvsp[0])); ;}
 
2327
    break;
 
2328
 
 
2329
  case 161:
 
2330
#line 570 "pars0grm.y"
 
2331
    { (yyval) = NULL; ;}
 
2332
    break;
 
2333
 
 
2334
  case 162:
 
2335
#line 571 "pars0grm.y"
 
2336
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
 
2337
    break;
 
2338
 
 
2339
  case 163:
 
2340
#line 573 "pars0grm.y"
 
2341
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
 
2342
    break;
 
2343
 
 
2344
  case 164:
 
2345
#line 578 "pars0grm.y"
 
2346
    { (yyval) = pars_variable_declaration((yyvsp[-2]), (yyvsp[-1])); ;}
 
2347
    break;
 
2348
 
 
2349
  case 168:
 
2350
#line 590 "pars0grm.y"
 
2351
    { (yyval) = pars_cursor_declaration((yyvsp[-3]), (yyvsp[-1])); ;}
 
2352
    break;
 
2353
 
 
2354
  case 169:
 
2355
#line 595 "pars0grm.y"
 
2356
    { (yyval) = pars_function_declaration((yyvsp[-1])); ;}
 
2357
    break;
 
2358
 
 
2359
  case 175:
 
2360
#line 616 "pars0grm.y"
 
2361
    { (yyval) = pars_procedure_definition((yyvsp[-9]), (yyvsp[-7]),
 
2362
                                                                (yyvsp[-1])); ;}
 
2363
    break;
 
2364
 
 
2365
 
 
2366
    }
 
2367
 
 
2368
/* Line 1010 of yacc.c.  */
 
2369
#line 2345 "pars0grm.c"
 
2370
 
 
2371
  yyvsp -= yylen;
 
2372
  yyssp -= yylen;
 
2373
 
 
2374
 
 
2375
  YY_STACK_PRINT (yyss, yyssp);
 
2376
 
 
2377
  *++yyvsp = yyval;
 
2378
 
 
2379
 
 
2380
  /* Now `shift' the result of the reduction.  Determine what state
 
2381
     that goes to, based on the state we popped back to and the rule
 
2382
     number reduced by.  */
 
2383
 
 
2384
  yyn = yyr1[yyn];
 
2385
 
 
2386
  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
 
2387
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
 
2388
    yystate = yytable[yystate];
 
2389
  else
 
2390
    yystate = yydefgoto[yyn - YYNTOKENS];
 
2391
 
 
2392
  goto yynewstate;
 
2393
 
 
2394
 
 
2395
/*------------------------------------.
 
2396
| yyerrlab -- here on detecting error |
 
2397
`------------------------------------*/
 
2398
yyerrlab:
 
2399
  /* If not already recovering from an error, report this error.  */
 
2400
  if (!yyerrstatus)
 
2401
    {
 
2402
      ++yynerrs;
 
2403
#if YYERROR_VERBOSE
 
2404
      yyn = yypact[yystate];
 
2405
 
 
2406
      if (YYPACT_NINF < yyn && yyn < YYLAST)
 
2407
        {
 
2408
          YYSIZE_T yysize = 0;
 
2409
          int yytype = YYTRANSLATE (yychar);
 
2410
          const char* yyprefix;
 
2411
          char *yymsg;
 
2412
          int yyx;
 
2413
 
 
2414
          /* Start YYX at -YYN if negative to avoid negative indexes in
 
2415
             YYCHECK.  */
 
2416
          int yyxbegin = yyn < 0 ? -yyn : 0;
 
2417
 
 
2418
          /* Stay within bounds of both yycheck and yytname.  */
 
2419
          int yychecklim = YYLAST - yyn;
 
2420
          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
 
2421
          int yycount = 0;
 
2422
 
 
2423
          yyprefix = ", expecting ";
 
2424
          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
 
2425
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
 
2426
              {
 
2427
                yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
 
2428
                yycount += 1;
 
2429
                if (yycount == 5)
 
2430
                  {
 
2431
                    yysize = 0;
 
2432
                    break;
 
2433
                  }
 
2434
              }
 
2435
          yysize += (sizeof ("syntax error, unexpected ")
 
2436
                     + yystrlen (yytname[yytype]));
 
2437
          yymsg = (char *) YYSTACK_ALLOC (yysize);
 
2438
          if (yymsg != 0)
 
2439
            {
 
2440
              char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
 
2441
              yyp = yystpcpy (yyp, yytname[yytype]);
 
2442
 
 
2443
              if (yycount < 5)
 
2444
                {
 
2445
                  yyprefix = ", expecting ";
 
2446
                  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
 
2447
                    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
 
2448
                      {
 
2449
                        yyp = yystpcpy (yyp, yyprefix);
 
2450
                        yyp = yystpcpy (yyp, yytname[yyx]);
 
2451
                        yyprefix = " or ";
 
2452
                      }
 
2453
                }
 
2454
              yyerror (yymsg);
 
2455
              YYSTACK_FREE (yymsg);
 
2456
            }
 
2457
          else
 
2458
            yyerror ("syntax error; also virtual memory exhausted");
 
2459
        }
 
2460
      else
 
2461
#endif /* YYERROR_VERBOSE */
 
2462
        yyerror ("syntax error");
 
2463
    }
 
2464
 
 
2465
 
 
2466
 
 
2467
  if (yyerrstatus == 3)
 
2468
    {
 
2469
      /* If just tried and failed to reuse look-ahead token after an
 
2470
         error, discard it.  */
 
2471
 
 
2472
      if (yychar <= YYEOF)
 
2473
        {
 
2474
          /* If at end of input, pop the error token,
 
2475
             then the rest of the stack, then return failure.  */
 
2476
          if (yychar == YYEOF)
 
2477
             for (;;)
 
2478
               {
 
2479
 
 
2480
                 YYPOPSTACK;
 
2481
                 if (yyssp == yyss)
 
2482
                   YYABORT;
 
2483
                 yydestruct ("Error: popping",
 
2484
                             yystos[*yyssp], yyvsp);
 
2485
               }
 
2486
        }
 
2487
      else
 
2488
        {
 
2489
          yydestruct ("Error: discarding", yytoken, &yylval);
 
2490
          yychar = YYEMPTY;
 
2491
        }
 
2492
    }
 
2493
 
 
2494
  /* Else will try to reuse look-ahead token after shifting the error
 
2495
     token.  */
 
2496
  goto yyerrlab1;
 
2497
 
 
2498
 
 
2499
/*---------------------------------------------------.
 
2500
| yyerrorlab -- error raised explicitly by YYERROR.  |
 
2501
`---------------------------------------------------*/
 
2502
yyerrorlab:
 
2503
 
 
2504
#ifdef __GNUC__
 
2505
  /* Pacify GCC when the user code never invokes YYERROR and the label
 
2506
     yyerrorlab therefore never appears in user code.  */
 
2507
  if (0)
 
2508
     goto yyerrorlab;
 
2509
#endif
 
2510
 
 
2511
yyvsp -= yylen;
 
2512
  yyssp -= yylen;
 
2513
  yystate = *yyssp;
 
2514
  goto yyerrlab1;
 
2515
 
 
2516
 
 
2517
/*-------------------------------------------------------------.
 
2518
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
 
2519
`-------------------------------------------------------------*/
 
2520
yyerrlab1:
 
2521
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 
2522
 
 
2523
  for (;;)
 
2524
    {
 
2525
      yyn = yypact[yystate];
 
2526
      if (yyn != YYPACT_NINF)
 
2527
        {
 
2528
          yyn += YYTERROR;
 
2529
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
 
2530
            {
 
2531
              yyn = yytable[yyn];
 
2532
              if (0 < yyn)
 
2533
                break;
 
2534
            }
 
2535
        }
 
2536
 
 
2537
      /* Pop the current state because it cannot handle the error token.  */
 
2538
      if (yyssp == yyss)
 
2539
        YYABORT;
 
2540
 
 
2541
 
 
2542
      yydestruct ("Error: popping", yystos[yystate], yyvsp);
 
2543
      YYPOPSTACK;
 
2544
      yystate = *yyssp;
 
2545
      YY_STACK_PRINT (yyss, yyssp);
 
2546
    }
 
2547
 
 
2548
  if (yyn == YYFINAL)
 
2549
    YYACCEPT;
 
2550
 
 
2551
  *++yyvsp = yylval;
 
2552
 
 
2553
 
 
2554
  /* Shift the error token. */
 
2555
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
 
2556
 
 
2557
  yystate = yyn;
 
2558
  goto yynewstate;
 
2559
 
 
2560
 
 
2561
/*-------------------------------------.
 
2562
| yyacceptlab -- YYACCEPT comes here.  |
 
2563
`-------------------------------------*/
 
2564
yyacceptlab:
 
2565
  yyresult = 0;
 
2566
  goto yyreturn;
 
2567
 
 
2568
/*-----------------------------------.
 
2569
| yyabortlab -- YYABORT comes here.  |
 
2570
`-----------------------------------*/
 
2571
yyabortlab:
 
2572
  yydestruct ("Error: discarding lookahead",
 
2573
              yytoken, &yylval);
 
2574
  yychar = YYEMPTY;
 
2575
  yyresult = 1;
 
2576
  goto yyreturn;
 
2577
 
 
2578
#ifndef yyoverflow
 
2579
/*----------------------------------------------.
 
2580
| yyoverflowlab -- parser overflow comes here.  |
 
2581
`----------------------------------------------*/
 
2582
yyoverflowlab:
 
2583
  yyerror ("parser stack overflow");
 
2584
  yyresult = 2;
 
2585
  /* Fall through.  */
 
2586
#endif
 
2587
 
 
2588
yyreturn:
 
2589
#ifndef yyoverflow
 
2590
  if (yyss != yyssa)
 
2591
    YYSTACK_FREE (yyss);
 
2592
#endif
 
2593
  return yyresult;
 
2594
}
 
2595
 
 
2596
 
 
2597
#line 620 "pars0grm.y"
 
2598
 
 
2599