~ubuntu-branches/ubuntu/precise/mysql-5.1/precise

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Tretkowski
  • Date: 2010-03-17 14:56:02 UTC
  • Revision ID: james.westby@ubuntu.com-20100317145602-x7e30l1b2sb5s6w6
Tags: upstream-5.1.45
ImportĀ upstreamĀ versionĀ 5.1.45

Show diffs side-by-side

added added

removed removed

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