Merge lp:~hartmut-php/drizzle/drizzle-make-lcov into lp:drizzle/7.0

Proposed by Monty Taylor
Status: Merged
Approved by: Brian Aker
Approved revision: 1749
Merge reported by: Lee Bieber
Merged at revision: not available
Proposed branch: lp:~hartmut-php/drizzle/drizzle-make-lcov
Merge into: lp:drizzle/7.0
Diff against target: 6002 lines (+120/-5704)
15 files modified
.bzrignore (+8/-0)
Makefile.am (+2/-0)
config/lcov.am (+42/-0)
configure.ac (+7/-1)
drizzled/include.am (+6/-1)
plugin/innobase/include/pars0grm.h (+0/-236)
plugin/innobase/pars/lexyy.c (+0/-2777)
plugin/innobase/pars/make_bison.sh (+0/-32)
plugin/innobase/pars/make_flex.sh (+0/-48)
plugin/innobase/pars/pars0grm.c (+0/-2584)
plugin/innobase/pars/pars0grm.y (+2/-3)
plugin/innobase/pars/pars0lex.l (+0/-14)
plugin/innobase/plugin.ac (+8/-1)
plugin/innobase/plugin.am (+44/-7)
po/POTFILES.in (+1/-0)
To merge this branch: bzr merge lp:~hartmut-php/drizzle/drizzle-make-lcov
Reviewer Review Type Date Requested Status
Drizzle Merge Team Pending
Review via email: mp+37101@code.launchpad.net

Description of the change

This is a build fix from Hartmut which seems like a solid thing to go into elliot.

To post a comment you must log in.
1749. By Hartmut Holzgraefe

merge from upstream, conflict in .bzrignore resolved

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2010-09-26 20:42:38 +0000
3+++ .bzrignore 2010-09-30 06:21:46 +0000
4@@ -1,4 +1,9 @@
5+*.bb
6+*.bbg
7+*.da
8 *.dirstamp
9+*.gcda
10+*.gcno
11 *.gmo
12 *.gz
13 *.la
14@@ -195,6 +200,9 @@
15 plugin/csv/Makefile.in
16 plugin/heap/Makefile.in
17 plugin/innobase/Makefile.in
18+plugin/innobase/pars/pars0grm.c
19+plugin/innobase/pars/pars0lex.c
20+plugin/innobase/pars/pars0grm.h
21 plugin/memcached_functions/start_mc.sh
22 plugin/memcached_functions/tests/start_mc.sh
23 plugin/myisam/Makefile.in
24
25=== modified file 'Makefile.am'
26--- Makefile.am 2010-09-29 04:25:06 +0000
27+++ Makefile.am 2010-09-30 06:21:46 +0000
28@@ -40,6 +40,7 @@
29 DIST_SUBDIRS = ${SUBDIRS} tests
30
31 BUILT_SOURCES=
32+BUILT_MAINT_SRC=
33 EXTRA_DIST= \
34 .quickly \
35 COPYING.BSD \
36@@ -139,6 +140,7 @@
37 -rm -rf docs/api docs/dev docs/_build docs/doctrees
38
39 include config/lint-source.am
40+include config/lcov.am
41
42 include docs/include.am
43 include drizzled/message/include.am
44
45=== added file 'config/lcov.am'
46--- config/lcov.am 1970-01-01 00:00:00 +0000
47+++ config/lcov.am 2010-09-30 06:21:46 +0000
48@@ -0,0 +1,42 @@
49+# Copyright (C) 2010 ...?
50+#
51+# This program is free software; you can redistribute it and/or modify
52+# it under the terms of the GNU General Public License as published by
53+# the Free Software Foundation; version 2 of the License.
54+#
55+# This program is distributed in the hope that it will be useful,
56+# but WITHOUT ANY WARRANTY; without even the implied warranty of
57+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
58+# GNU General Public License for more details.
59+#
60+# You should have received a copy of the GNU General Public License
61+# along with this program; if not, write to the Free Software
62+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
63+
64+LCOV = lcov
65+LCOV_GENHTML = genhtml
66+
67+lcov: lcov-html
68+
69+lcov-test: lcov-clean-data test
70+
71+drizzle_lcov.info: lcov-test
72+ @echo "Generating $@"
73+ $(LCOV) --directory . --capture --base-directory . --output-file $@
74+ $(LCOV) --remove $@ '/usr/include/*' --output-file $@
75+ $(LCOV) --remove $@ '/usr/local/include/*' --output-file $@
76+ @echo
77+
78+lcov-html: drizzle_lcov.info
79+ @echo "Generating lcov HTML"
80+ @$(LCOV_GENHTML) --legend --output-directory lcov_html/ --title "Drizzle Code Coverage" $<
81+
82+lcov-clean:
83+ rm -f drizzle_lcov.info
84+ rm -rf lcov_data/
85+ rm -rf lcov_html/
86+
87+lcov-clean-data:
88+ @find . -name \*.gcda -o -name \*.da -o -name \*.bbg? | xargs rm -f
89+
90+
91
92=== modified file 'configure.ac'
93--- configure.ac 2010-09-21 09:57:03 +0000
94+++ configure.ac 2010-09-30 06:21:46 +0000
95@@ -58,9 +58,15 @@
96 AS_IF([test "x$GPERF" = "x"],
97 AC_MSG_ERROR("Drizzle requires gperf to build."))
98
99+AC_PATH_PROG(LCOV, lcov)
100+AC_PATH_PROG(LCOV_GENHTML, genhtml)
101+
102 AC_CHECK_PROGS(YACC, ['bison -y'])
103 AS_IF([test "x$YACC" = "x" -a "$pandora_building_from_bzr" = "yes"],[
104- AC_MSG_ERROR(["bison is required for Drizzle to build from a bzr branch"])
105+ AC_MSG_ERROR(["bison is required for Drizzle to build from a bzr branch"])
106+])
107+AS_IF([test "x$YACC" = "x"],[
108+ YACC='if test -f "$@"; then echo "WARNING: no proper bison binary found, ignoring changes to $<"; exit 0; else echo "ERROR: no proper bison binary found"; exit 1; fi;'
109 ])
110
111 # libexecinfo provides backtrace_symbols on FreeBSD
112
113=== modified file 'drizzled/include.am'
114--- drizzled/include.am 2010-09-22 21:11:57 +0000
115+++ drizzled/include.am 2010-09-30 06:21:46 +0000
116@@ -17,6 +17,11 @@
117 # along with this program; if not, write to the Free Software
118 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
119
120+drizzled/sql_yacc.cc: drizzled/sql_yacc.yy
121+ $(AM_V_YACC)$(am__skipyacc) $(YACC) $(YLFLAGS) $(AM_YFLAGS) -o $@ $<
122+ mv drizzled/sql_yacc.hh drizzled/sql_yacc.h
123+
124+
125
126 DTRACEFILES= \
127 drizzled/cursor.o \
128@@ -808,7 +813,7 @@
129 PCHHEADERS =
130 endif
131
132-BUILT_MAINT_SRC= \
133+BUILT_MAINT_SRC+= \
134 drizzled/sql_yacc.cc \
135 drizzled/sql_yacc.h
136
137
138=== removed file 'plugin/innobase/include/pars0grm.h'
139--- plugin/innobase/include/pars0grm.h 2009-03-12 22:30:11 +0000
140+++ plugin/innobase/include/pars0grm.h 1970-01-01 00:00:00 +0000
141@@ -1,236 +0,0 @@
142-/*****************************************************************************
143-
144-Copyright (c) 1995, 2009, Innobase Oy. All Rights Reserved.
145-Copyright (c) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software
146-Foundation, Inc.
147-
148-As a special exception, when this file is copied by Bison into a
149-Bison output file, you may use that output file without restriction.
150-This special exception was added by the Free Software Foundation
151-in version 1.24 of Bison.
152-
153-This program is free software; you can redistribute it and/or modify it under
154-the terms of the GNU General Public License as published by the Free Software
155-Foundation; version 2 of the License.
156-
157-This program is distributed in the hope that it will be useful, but WITHOUT
158-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
159-FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
160-
161-You should have received a copy of the GNU General Public License along with
162-this program; if not, write to the Free Software Foundation, Inc., 59 Temple
163-Place, Suite 330, Boston, MA 02111-1307 USA
164-
165-*****************************************************************************/
166-
167-/* A Bison parser, made by GNU Bison 1.875d. */
168-
169-/* Tokens. */
170-#ifndef YYTOKENTYPE
171-# define YYTOKENTYPE
172- /* Put the tokens into the symbol table, so that GDB and other debuggers
173- know about them. */
174- enum yytokentype {
175- PARS_INT_LIT = 258,
176- PARS_FLOAT_LIT = 259,
177- PARS_STR_LIT = 260,
178- PARS_FIXBINARY_LIT = 261,
179- PARS_BLOB_LIT = 262,
180- PARS_NULL_LIT = 263,
181- PARS_ID_TOKEN = 264,
182- PARS_AND_TOKEN = 265,
183- PARS_OR_TOKEN = 266,
184- PARS_NOT_TOKEN = 267,
185- PARS_GE_TOKEN = 268,
186- PARS_LE_TOKEN = 269,
187- PARS_NE_TOKEN = 270,
188- PARS_PROCEDURE_TOKEN = 271,
189- PARS_IN_TOKEN = 272,
190- PARS_OUT_TOKEN = 273,
191- PARS_BINARY_TOKEN = 274,
192- PARS_BLOB_TOKEN = 275,
193- PARS_INT_TOKEN = 276,
194- PARS_INTEGER_TOKEN = 277,
195- PARS_FLOAT_TOKEN = 278,
196- PARS_CHAR_TOKEN = 279,
197- PARS_IS_TOKEN = 280,
198- PARS_BEGIN_TOKEN = 281,
199- PARS_END_TOKEN = 282,
200- PARS_IF_TOKEN = 283,
201- PARS_THEN_TOKEN = 284,
202- PARS_ELSE_TOKEN = 285,
203- PARS_ELSIF_TOKEN = 286,
204- PARS_LOOP_TOKEN = 287,
205- PARS_WHILE_TOKEN = 288,
206- PARS_RETURN_TOKEN = 289,
207- PARS_SELECT_TOKEN = 290,
208- PARS_SUM_TOKEN = 291,
209- PARS_COUNT_TOKEN = 292,
210- PARS_DISTINCT_TOKEN = 293,
211- PARS_FROM_TOKEN = 294,
212- PARS_WHERE_TOKEN = 295,
213- PARS_FOR_TOKEN = 296,
214- PARS_DDOT_TOKEN = 297,
215- PARS_READ_TOKEN = 298,
216- PARS_ORDER_TOKEN = 299,
217- PARS_BY_TOKEN = 300,
218- PARS_ASC_TOKEN = 301,
219- PARS_DESC_TOKEN = 302,
220- PARS_INSERT_TOKEN = 303,
221- PARS_INTO_TOKEN = 304,
222- PARS_VALUES_TOKEN = 305,
223- PARS_UPDATE_TOKEN = 306,
224- PARS_SET_TOKEN = 307,
225- PARS_DELETE_TOKEN = 308,
226- PARS_CURRENT_TOKEN = 309,
227- PARS_OF_TOKEN = 310,
228- PARS_CREATE_TOKEN = 311,
229- PARS_TABLE_TOKEN = 312,
230- PARS_INDEX_TOKEN = 313,
231- PARS_UNIQUE_TOKEN = 314,
232- PARS_CLUSTERED_TOKEN = 315,
233- PARS_DOES_NOT_FIT_IN_MEM_TOKEN = 316,
234- PARS_ON_TOKEN = 317,
235- PARS_ASSIGN_TOKEN = 318,
236- PARS_DECLARE_TOKEN = 319,
237- PARS_CURSOR_TOKEN = 320,
238- PARS_SQL_TOKEN = 321,
239- PARS_OPEN_TOKEN = 322,
240- PARS_FETCH_TOKEN = 323,
241- PARS_CLOSE_TOKEN = 324,
242- PARS_NOTFOUND_TOKEN = 325,
243- PARS_TO_CHAR_TOKEN = 326,
244- PARS_TO_NUMBER_TOKEN = 327,
245- PARS_TO_BINARY_TOKEN = 328,
246- PARS_BINARY_TO_NUMBER_TOKEN = 329,
247- PARS_SUBSTR_TOKEN = 330,
248- PARS_REPLSTR_TOKEN = 331,
249- PARS_CONCAT_TOKEN = 332,
250- PARS_INSTR_TOKEN = 333,
251- PARS_LENGTH_TOKEN = 334,
252- PARS_SYSDATE_TOKEN = 335,
253- PARS_PRINTF_TOKEN = 336,
254- PARS_ASSERT_TOKEN = 337,
255- PARS_RND_TOKEN = 338,
256- PARS_RND_STR_TOKEN = 339,
257- PARS_ROW_PRINTF_TOKEN = 340,
258- PARS_COMMIT_TOKEN = 341,
259- PARS_ROLLBACK_TOKEN = 342,
260- PARS_WORK_TOKEN = 343,
261- PARS_UNSIGNED_TOKEN = 344,
262- PARS_EXIT_TOKEN = 345,
263- PARS_FUNCTION_TOKEN = 346,
264- PARS_LOCK_TOKEN = 347,
265- PARS_SHARE_TOKEN = 348,
266- PARS_MODE_TOKEN = 349,
267- NEG = 350
268- };
269-#endif
270-#define PARS_INT_LIT 258
271-#define PARS_FLOAT_LIT 259
272-#define PARS_STR_LIT 260
273-#define PARS_FIXBINARY_LIT 261
274-#define PARS_BLOB_LIT 262
275-#define PARS_NULL_LIT 263
276-#define PARS_ID_TOKEN 264
277-#define PARS_AND_TOKEN 265
278-#define PARS_OR_TOKEN 266
279-#define PARS_NOT_TOKEN 267
280-#define PARS_GE_TOKEN 268
281-#define PARS_LE_TOKEN 269
282-#define PARS_NE_TOKEN 270
283-#define PARS_PROCEDURE_TOKEN 271
284-#define PARS_IN_TOKEN 272
285-#define PARS_OUT_TOKEN 273
286-#define PARS_BINARY_TOKEN 274
287-#define PARS_BLOB_TOKEN 275
288-#define PARS_INT_TOKEN 276
289-#define PARS_INTEGER_TOKEN 277
290-#define PARS_FLOAT_TOKEN 278
291-#define PARS_CHAR_TOKEN 279
292-#define PARS_IS_TOKEN 280
293-#define PARS_BEGIN_TOKEN 281
294-#define PARS_END_TOKEN 282
295-#define PARS_IF_TOKEN 283
296-#define PARS_THEN_TOKEN 284
297-#define PARS_ELSE_TOKEN 285
298-#define PARS_ELSIF_TOKEN 286
299-#define PARS_LOOP_TOKEN 287
300-#define PARS_WHILE_TOKEN 288
301-#define PARS_RETURN_TOKEN 289
302-#define PARS_SELECT_TOKEN 290
303-#define PARS_SUM_TOKEN 291
304-#define PARS_COUNT_TOKEN 292
305-#define PARS_DISTINCT_TOKEN 293
306-#define PARS_FROM_TOKEN 294
307-#define PARS_WHERE_TOKEN 295
308-#define PARS_FOR_TOKEN 296
309-#define PARS_DDOT_TOKEN 297
310-#define PARS_READ_TOKEN 298
311-#define PARS_ORDER_TOKEN 299
312-#define PARS_BY_TOKEN 300
313-#define PARS_ASC_TOKEN 301
314-#define PARS_DESC_TOKEN 302
315-#define PARS_INSERT_TOKEN 303
316-#define PARS_INTO_TOKEN 304
317-#define PARS_VALUES_TOKEN 305
318-#define PARS_UPDATE_TOKEN 306
319-#define PARS_SET_TOKEN 307
320-#define PARS_DELETE_TOKEN 308
321-#define PARS_CURRENT_TOKEN 309
322-#define PARS_OF_TOKEN 310
323-#define PARS_CREATE_TOKEN 311
324-#define PARS_TABLE_TOKEN 312
325-#define PARS_INDEX_TOKEN 313
326-#define PARS_UNIQUE_TOKEN 314
327-#define PARS_CLUSTERED_TOKEN 315
328-#define PARS_DOES_NOT_FIT_IN_MEM_TOKEN 316
329-#define PARS_ON_TOKEN 317
330-#define PARS_ASSIGN_TOKEN 318
331-#define PARS_DECLARE_TOKEN 319
332-#define PARS_CURSOR_TOKEN 320
333-#define PARS_SQL_TOKEN 321
334-#define PARS_OPEN_TOKEN 322
335-#define PARS_FETCH_TOKEN 323
336-#define PARS_CLOSE_TOKEN 324
337-#define PARS_NOTFOUND_TOKEN 325
338-#define PARS_TO_CHAR_TOKEN 326
339-#define PARS_TO_NUMBER_TOKEN 327
340-#define PARS_TO_BINARY_TOKEN 328
341-#define PARS_BINARY_TO_NUMBER_TOKEN 329
342-#define PARS_SUBSTR_TOKEN 330
343-#define PARS_REPLSTR_TOKEN 331
344-#define PARS_CONCAT_TOKEN 332
345-#define PARS_INSTR_TOKEN 333
346-#define PARS_LENGTH_TOKEN 334
347-#define PARS_SYSDATE_TOKEN 335
348-#define PARS_PRINTF_TOKEN 336
349-#define PARS_ASSERT_TOKEN 337
350-#define PARS_RND_TOKEN 338
351-#define PARS_RND_STR_TOKEN 339
352-#define PARS_ROW_PRINTF_TOKEN 340
353-#define PARS_COMMIT_TOKEN 341
354-#define PARS_ROLLBACK_TOKEN 342
355-#define PARS_WORK_TOKEN 343
356-#define PARS_UNSIGNED_TOKEN 344
357-#define PARS_EXIT_TOKEN 345
358-#define PARS_FUNCTION_TOKEN 346
359-#define PARS_LOCK_TOKEN 347
360-#define PARS_SHARE_TOKEN 348
361-#define PARS_MODE_TOKEN 349
362-#define NEG 350
363-
364-
365-
366-
367-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
368-typedef int YYSTYPE;
369-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
370-# define YYSTYPE_IS_DECLARED 1
371-# define YYSTYPE_IS_TRIVIAL 1
372-#endif
373-
374-extern YYSTYPE yylval;
375-
376-
377-
378
379=== removed file 'plugin/innobase/pars/lexyy.c'
380--- plugin/innobase/pars/lexyy.c 2009-08-17 18:17:53 +0000
381+++ plugin/innobase/pars/lexyy.c 1970-01-01 00:00:00 +0000
382@@ -1,2777 +0,0 @@
383-/*****************************************************************************
384-
385-Copyright (c) 1995, 2009, Innobase Oy. All Rights Reserved.
386-
387-This program is free software; you can redistribute it and/or modify it under
388-the terms of the GNU General Public License as published by the Free Software
389-Foundation; version 2 of the License.
390-
391-This program is distributed in the hope that it will be useful, but WITHOUT
392-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
393-FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
394-
395-You should have received a copy of the GNU General Public License along with
396-this program; if not, write to the Free Software Foundation, Inc., 59 Temple
397-Place, Suite 330, Boston, MA 02111-1307 USA
398-
399-*****************************************************************************/
400-
401-#include "univ.i"
402-#line 2 "lexyy.c"
403-
404-#line 4 "lexyy.c"
405-
406-#define YY_INT_ALIGNED short int
407-
408-/* A lexical scanner generated by flex */
409-
410-#define FLEX_SCANNER
411-#define YY_FLEX_MAJOR_VERSION 2
412-#define YY_FLEX_MINOR_VERSION 5
413-#define YY_FLEX_SUBMINOR_VERSION 31
414-#if YY_FLEX_SUBMINOR_VERSION > 0
415-#define FLEX_BETA
416-#endif
417-
418-/* First, we deal with platform-specific or compiler-specific issues. */
419-
420-/* begin standard C headers. */
421-#include <stdio.h>
422-#include <string.h>
423-#include <errno.h>
424-#include <stdlib.h>
425-
426-/* end standard C headers. */
427-
428-/* flex integer type definitions */
429-
430-#ifndef FLEXINT_H
431-#define FLEXINT_H
432-
433-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
434-
435-#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
436-#include <inttypes.h>
437-typedef int8_t flex_int8_t;
438-typedef uint8_t flex_uint8_t;
439-typedef int16_t flex_int16_t;
440-typedef uint16_t flex_uint16_t;
441-typedef int32_t flex_int32_t;
442-typedef uint32_t flex_uint32_t;
443-#else
444-typedef signed char flex_int8_t;
445-typedef short int flex_int16_t;
446-typedef int flex_int32_t;
447-typedef unsigned char flex_uint8_t;
448-typedef unsigned short int flex_uint16_t;
449-typedef unsigned int flex_uint32_t;
450-#endif /* ! C99 */
451-
452-/* Limits of integral types. */
453-#ifndef INT8_MIN
454-#define INT8_MIN (-128)
455-#endif
456-#ifndef INT16_MIN
457-#define INT16_MIN (-32767-1)
458-#endif
459-#ifndef INT32_MIN
460-#define INT32_MIN (-2147483647-1)
461-#endif
462-#ifndef INT8_MAX
463-#define INT8_MAX (127)
464-#endif
465-#ifndef INT16_MAX
466-#define INT16_MAX (32767)
467-#endif
468-#ifndef INT32_MAX
469-#define INT32_MAX (2147483647)
470-#endif
471-#ifndef UINT8_MAX
472-#define UINT8_MAX (255U)
473-#endif
474-#ifndef UINT16_MAX
475-#define UINT16_MAX (65535U)
476-#endif
477-#ifndef UINT32_MAX
478-#define UINT32_MAX (4294967295U)
479-#endif
480-
481-#endif /* ! FLEXINT_H */
482-
483-#ifdef __cplusplus
484-
485-/* The "const" storage-class-modifier is valid. */
486-#define YY_USE_CONST
487-
488-#else /* ! __cplusplus */
489-
490-#if __STDC__
491-
492-#define YY_USE_CONST
493-
494-#endif /* __STDC__ */
495-#endif /* ! __cplusplus */
496-
497-#ifdef YY_USE_CONST
498-#define yyconst const
499-#else
500-#define yyconst
501-#endif
502-
503-/* Returned upon end-of-file. */
504-#define YY_NULL 0
505-
506-/* Promotes a possibly negative, possibly signed char to an unsigned
507- * integer for use as an array index. If the signed char is negative,
508- * we want to instead treat it as an 8-bit unsigned char, hence the
509- * double cast.
510- */
511-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
512-
513-/* Enter a start condition. This macro really ought to take a parameter,
514- * but we do it the disgusting crufty way forced on us by the ()-less
515- * definition of BEGIN.
516- */
517-#define BEGIN (yy_start) = 1 + 2 *
518-
519-/* Translate the current start state into a value that can be later handed
520- * to BEGIN to return to the state. The YYSTATE alias is for lex
521- * compatibility.
522- */
523-#define YY_START (((yy_start) - 1) / 2)
524-#define YYSTATE YY_START
525-
526-/* Action number for EOF rule of a given start state. */
527-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
528-
529-/* Special action meaning "start processing a new file". */
530-#define YY_NEW_FILE yyrestart(yyin )
531-
532-#define YY_END_OF_BUFFER_CHAR 0
533-
534-/* Size of default input buffer. */
535-#ifndef YY_BUF_SIZE
536-#define YY_BUF_SIZE 16384
537-#endif
538-
539-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
540-#define YY_TYPEDEF_YY_BUFFER_STATE
541-typedef struct yy_buffer_state *YY_BUFFER_STATE;
542-#endif
543-
544-static FILE *yyin, *yyout;
545-
546-#define EOB_ACT_CONTINUE_SCAN 0
547-#define EOB_ACT_END_OF_FILE 1
548-#define EOB_ACT_LAST_MATCH 2
549-
550- #define YY_LESS_LINENO(n)
551-
552-/* Return all but the first "n" matched characters back to the input stream. */
553-#define yyless(n) \
554- do \
555- { \
556- /* Undo effects of setting up yytext. */ \
557- int yyless_macro_arg = (n); \
558- YY_LESS_LINENO(yyless_macro_arg);\
559- *yy_cp = (yy_hold_char); \
560- YY_RESTORE_YY_MORE_OFFSET \
561- (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
562- YY_DO_BEFORE_ACTION; /* set up yytext again */ \
563- } \
564- while ( 0 )
565-
566-#define unput(c) yyunput( c, (yytext_ptr) )
567-
568-/* The following is because we cannot portably get our hands on size_t
569- * (without autoconf's help, which isn't available because we want
570- * flex-generated scanners to compile on their own).
571- */
572-
573-#ifndef YY_TYPEDEF_YY_SIZE_T
574-#define YY_TYPEDEF_YY_SIZE_T
575-typedef unsigned int yy_size_t;
576-#endif
577-
578-#ifndef YY_STRUCT_YY_BUFFER_STATE
579-#define YY_STRUCT_YY_BUFFER_STATE
580-struct yy_buffer_state
581- {
582- FILE *yy_input_file;
583-
584- char *yy_ch_buf; /* input buffer */
585- char *yy_buf_pos; /* current position in input buffer */
586-
587- /* Size of input buffer in bytes, not including room for EOB
588- * characters.
589- */
590- yy_size_t yy_buf_size;
591-
592- /* Number of characters read into yy_ch_buf, not including EOB
593- * characters.
594- */
595- int yy_n_chars;
596-
597- /* Whether we "own" the buffer - i.e., we know we created it,
598- * and can realloc() it to grow it, and should free() it to
599- * delete it.
600- */
601- int yy_is_our_buffer;
602-
603- /* Whether this is an "interactive" input source; if so, and
604- * if we're using stdio for input, then we want to use getc()
605- * instead of fread(), to make sure we stop fetching input after
606- * each newline.
607- */
608- int yy_is_interactive;
609-
610- /* Whether we're considered to be at the beginning of a line.
611- * If so, '^' rules will be active on the next match, otherwise
612- * not.
613- */
614- int yy_at_bol;
615-
616- int yy_bs_lineno; /**< The line count. */
617- int yy_bs_column; /**< The column count. */
618-
619- /* Whether to try to fill the input buffer when we reach the
620- * end of it.
621- */
622- int yy_fill_buffer;
623-
624- int yy_buffer_status;
625-
626-#define YY_BUFFER_NEW 0
627-#define YY_BUFFER_NORMAL 1
628- /* When an EOF's been seen but there's still some text to process
629- * then we mark the buffer as YY_EOF_PENDING, to indicate that we
630- * shouldn't try reading from the input source any more. We might
631- * still have a bunch of tokens to match, though, because of
632- * possible backing-up.
633- *
634- * When we actually see the EOF, we change the status to "new"
635- * (via yyrestart()), so that the user can continue scanning by
636- * just pointing yyin at a new input file.
637- */
638-#define YY_BUFFER_EOF_PENDING 2
639-
640- };
641-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
642-
643-/* Stack of input buffers. */
644-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
645-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
646-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
647-
648-/* We provide macros for accessing buffer states in case in the
649- * future we want to put the buffer states in a more general
650- * "scanner state".
651- *
652- * Returns the top of the stack, or NULL.
653- */
654-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
655- ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
656- : NULL)
657-
658-/* Same as previous macro, but useful when we know that the buffer stack is not
659- * NULL or when we need an lvalue. For internal use only.
660- */
661-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
662-
663-/* yy_hold_char holds the character lost when yytext is formed. */
664-static char yy_hold_char;
665-static int yy_n_chars; /* number of characters read into yy_ch_buf */
666-static int yyleng;
667-
668-/* Points to current character in buffer. */
669-static char *yy_c_buf_p = (char *) 0;
670-static int yy_init = 1; /* whether we need to initialize */
671-static int yy_start = 0; /* start state number */
672-
673-/* Flag which is used to allow yywrap()'s to do buffer switches
674- * instead of setting up a fresh yyin. A bit of a hack ...
675- */
676-static int yy_did_buffer_switch_on_eof;
677-
678-static void yyrestart (FILE *input_file );
679-__attribute__((unused)) static void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
680-static YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
681-static void yy_delete_buffer (YY_BUFFER_STATE b );
682-static void yy_flush_buffer (YY_BUFFER_STATE b );
683-__attribute__((unused)) static void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
684-__attribute__((unused)) static void yypop_buffer_state (void );
685-
686-static void yyensure_buffer_stack (void );
687-static void yy_load_buffer_state (void );
688-static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
689-
690-#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
691-
692-YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
693-YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
694-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
695-
696-static void *yyalloc (yy_size_t );
697-static void *yyrealloc (void *,yy_size_t );
698-static void yyfree (void * );
699-
700-#define yy_new_buffer yy_create_buffer
701-
702-#define yy_set_interactive(is_interactive) \
703- { \
704- if ( ! YY_CURRENT_BUFFER ){ \
705- yyensure_buffer_stack (); \
706- YY_CURRENT_BUFFER_LVALUE = \
707- yy_create_buffer(yyin,YY_BUF_SIZE ); \
708- } \
709- YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
710- }
711-
712-#define yy_set_bol(at_bol) \
713- { \
714- if ( ! YY_CURRENT_BUFFER ){\
715- yyensure_buffer_stack (); \
716- YY_CURRENT_BUFFER_LVALUE = \
717- yy_create_buffer(yyin,YY_BUF_SIZE ); \
718- } \
719- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
720- }
721-
722-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
723-
724-/* Begin user sect3 */
725-
726-#define yywrap(n) 1
727-#define YY_SKIP_YYWRAP
728-
729-typedef unsigned char YY_CHAR;
730-
731-static FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
732-
733-typedef int yy_state_type;
734-
735-static int yylineno;
736-
737-static int yylineno = 1;
738-
739-static char *yytext;
740-#define yytext_ptr yytext
741-
742-static yy_state_type yy_get_previous_state (void );
743-static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
744-static int yy_get_next_buffer (void );
745-static void yy_fatal_error (yyconst char msg[] );
746-
747-/* Done after the current pattern has been matched and before the
748- * corresponding action - sets up yytext.
749- */
750-#define YY_DO_BEFORE_ACTION \
751- (yytext_ptr) = yy_bp; \
752- yyleng = (size_t) (yy_cp - yy_bp); \
753- (yy_hold_char) = *yy_cp; \
754- *yy_cp = '\0'; \
755- (yy_c_buf_p) = yy_cp;
756-
757-#define YY_NUM_RULES 119
758-#define YY_END_OF_BUFFER 120
759-/* This struct is not used in this scanner,
760- but its presence is necessary. */
761-struct yy_trans_info
762- {
763- flex_int32_t yy_verify;
764- flex_int32_t yy_nxt;
765- };
766-static yyconst flex_int16_t yy_accept[399] =
767- { 0,
768- 0, 0, 114, 114, 0, 0, 0, 0, 120, 118,
769- 117, 117, 8, 118, 109, 5, 98, 104, 107, 105,
770- 102, 106, 118, 108, 1, 118, 103, 101, 99, 100,
771- 112, 92, 92, 92, 92, 92, 92, 92, 92, 92,
772- 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
773- 110, 111, 114, 115, 6, 7, 9, 10, 117, 4,
774- 93, 113, 2, 1, 3, 94, 95, 97, 96, 92,
775- 92, 92, 92, 92, 92, 44, 92, 92, 92, 92,
776- 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
777- 92, 92, 28, 17, 25, 92, 92, 92, 92, 92,
778-
779- 54, 61, 92, 14, 92, 92, 92, 92, 92, 92,
780- 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
781- 92, 92, 114, 115, 115, 116, 6, 7, 9, 10,
782- 2, 13, 45, 92, 92, 92, 92, 92, 92, 92,
783- 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
784- 92, 27, 92, 92, 92, 41, 92, 92, 92, 92,
785- 21, 92, 92, 92, 92, 15, 92, 92, 92, 18,
786- 92, 92, 92, 92, 92, 80, 92, 92, 92, 51,
787- 92, 12, 92, 36, 92, 92, 92, 92, 92, 92,
788- 92, 92, 92, 92, 92, 92, 92, 92, 20, 24,
789-
790- 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
791- 46, 92, 92, 30, 92, 87, 92, 92, 39, 92,
792- 92, 92, 92, 92, 48, 92, 89, 32, 91, 92,
793- 11, 64, 92, 92, 92, 42, 92, 92, 92, 92,
794- 92, 92, 92, 92, 92, 92, 29, 92, 92, 92,
795- 92, 92, 92, 92, 92, 92, 85, 92, 26, 92,
796- 66, 92, 92, 92, 37, 92, 92, 92, 92, 92,
797- 92, 92, 31, 65, 23, 92, 57, 92, 75, 92,
798- 92, 92, 43, 92, 92, 92, 92, 92, 92, 92,
799- 92, 90, 92, 92, 56, 92, 92, 92, 92, 92,
800-
801- 92, 92, 40, 33, 79, 19, 92, 83, 74, 55,
802- 92, 63, 92, 52, 92, 92, 92, 47, 92, 76,
803- 92, 78, 92, 92, 34, 92, 92, 92, 35, 72,
804- 92, 92, 92, 92, 58, 92, 50, 49, 92, 92,
805- 53, 62, 92, 92, 92, 22, 92, 92, 73, 81,
806- 92, 92, 77, 92, 68, 92, 92, 92, 92, 38,
807- 92, 88, 67, 92, 84, 92, 92, 92, 86, 92,
808- 59, 92, 16, 92, 70, 69, 92, 92, 82, 92,
809- 92, 92, 92, 92, 92, 92, 92, 92, 92, 71,
810- 92, 92, 92, 92, 92, 92, 60, 0
811-
812- } ;
813-
814-static yyconst flex_int32_t yy_ec[256] =
815- { 0,
816- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
817- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
818- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
819- 1, 2, 1, 4, 1, 5, 6, 1, 7, 8,
820- 9, 10, 11, 12, 13, 14, 15, 16, 16, 16,
821- 16, 16, 16, 16, 16, 16, 16, 17, 18, 19,
822- 20, 21, 22, 1, 23, 24, 25, 26, 27, 28,
823- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
824- 39, 40, 41, 42, 43, 44, 45, 46, 47, 32,
825- 1, 1, 1, 1, 48, 1, 32, 32, 32, 32,
826-
827- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
828- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
829- 32, 32, 49, 1, 50, 1, 1, 1, 1, 1,
830- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
831- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
832- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
833- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
834- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
835- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
836- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
837-
838- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
839- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
840- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
841- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
842- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
843- 1, 1, 1, 1, 1
844- } ;
845-
846-static yyconst flex_int32_t yy_meta[51] =
847- { 0,
848- 1, 1, 1, 2, 1, 1, 3, 1, 1, 4,
849- 1, 1, 1, 1, 1, 5, 1, 1, 1, 6,
850- 1, 1, 5, 5, 5, 5, 5, 5, 5, 5,
851- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
852- 5, 5, 5, 5, 5, 5, 5, 5, 1, 1
853- } ;
854-
855-static yyconst flex_int16_t yy_base[409] =
856- { 0,
857- 0, 0, 437, 436, 438, 437, 439, 438, 441, 448,
858- 49, 51, 448, 0, 448, 448, 448, 448, 448, 448,
859- 448, 448, 426, 429, 41, 418, 448, 38, 448, 417,
860- 448, 20, 33, 32, 46, 40, 44, 0, 54, 52,
861- 399, 48, 60, 395, 65, 67, 81, 27, 411, 75,
862- 448, 448, 0, 98, 0, 426, 0, 428, 113, 0,
863- 448, 448, 415, 54, 410, 448, 448, 448, 448, 0,
864- 403, 68, 399, 391, 389, 0, 402, 80, 84, 397,
865- 383, 96, 381, 394, 379, 393, 387, 375, 379, 375,
866- 377, 377, 0, 98, 0, 376, 97, 385, 368, 375,
867-
868- 0, 0, 381, 381, 364, 94, 103, 379, 98, 65,
869- 381, 369, 109, 361, 377, 373, 351, 97, 372, 363,
870- 115, 356, 0, 137, 138, 448, 0, 388, 0, 390,
871- 377, 0, 0, 365, 360, 367, 365, 348, 346, 345,
872- 350, 359, 347, 359, 95, 347, 353, 354, 336, 336,
873- 123, 0, 334, 350, 351, 0, 338, 347, 344, 122,
874- 124, 341, 336, 330, 340, 338, 331, 328, 336, 0,
875- 326, 336, 334, 325, 315, 309, 322, 307, 327, 0,
876- 313, 0, 311, 0, 325, 316, 313, 131, 309, 316,
877- 323, 302, 304, 309, 309, 301, 304, 299, 0, 0,
878-
879- 311, 295, 305, 312, 292, 291, 305, 294, 307, 287,
880- 0, 297, 279, 0, 298, 0, 295, 282, 0, 281,
881- 276, 281, 280, 290, 0, 276, 0, 0, 0, 280,
882- 0, 0, 276, 273, 287, 0, 272, 272, 270, 286,
883- 271, 283, 280, 264, 282, 277, 0, 272, 272, 258,
884- 257, 270, 256, 270, 269, 268, 0, 252, 0, 246,
885- 0, 265, 249, 248, 0, 262, 252, 247, 246, 258,
886- 248, 247, 0, 0, 0, 251, 0, 239, 0, 253,
887- 249, 235, 0, 249, 250, 233, 238, 231, 249, 231,
888- 228, 0, 229, 226, 0, 231, 243, 230, 237, 227,
889-
890- 235, 220, 0, 0, 0, 212, 219, 0, 0, 0,
891- 216, 0, 230, 0, 231, 218, 217, 0, 213, 0,
892- 216, 0, 208, 210, 0, 209, 223, 216, 0, 0,
893- 219, 222, 204, 219, 0, 215, 0, 0, 199, 213,
894- 0, 0, 197, 196, 201, 0, 210, 195, 0, 0,
895- 201, 197, 0, 192, 0, 204, 204, 192, 202, 0,
896- 179, 0, 0, 199, 0, 183, 177, 183, 0, 174,
897- 0, 193, 0, 192, 0, 0, 183, 187, 0, 174,
898- 174, 180, 166, 189, 181, 180, 166, 151, 118, 0,
899- 130, 136, 127, 123, 119, 111, 0, 448, 167, 173,
900-
901- 179, 152, 181, 124, 187, 193, 199, 205
902- } ;
903-
904-static yyconst flex_int16_t yy_def[409] =
905- { 0,
906- 398, 1, 399, 399, 400, 400, 401, 401, 398, 398,
907- 398, 398, 398, 402, 398, 398, 398, 398, 398, 398,
908- 398, 398, 398, 398, 398, 403, 398, 398, 398, 398,
909- 398, 404, 404, 404, 404, 404, 404, 404, 404, 404,
910- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
911- 398, 398, 405, 406, 407, 398, 408, 398, 398, 402,
912- 398, 398, 398, 398, 403, 398, 398, 398, 398, 404,
913- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
914- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
915- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
916-
917- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
918- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
919- 404, 404, 405, 406, 406, 398, 407, 398, 408, 398,
920- 398, 404, 404, 404, 404, 404, 404, 404, 404, 404,
921- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
922- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
923- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
924- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
925- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
926- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
927-
928- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
929- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
930- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
931- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
932- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
933- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
934- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
935- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
936- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
937- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
938-
939- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
940- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
941- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
942- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
943- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
944- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
945- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
946- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
947- 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
948- 404, 404, 404, 404, 404, 404, 404, 0, 398, 398,
949-
950- 398, 398, 398, 398, 398, 398, 398, 398
951- } ;
952-
953-static yyconst flex_int16_t yy_nxt[499] =
954- { 0,
955- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
956- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
957- 30, 31, 32, 33, 34, 35, 36, 37, 38, 38,
958- 39, 38, 38, 40, 41, 42, 43, 44, 38, 45,
959- 46, 47, 48, 49, 50, 38, 38, 38, 51, 52,
960- 59, 59, 59, 59, 63, 71, 64, 67, 68, 73,
961- 72, 77, 118, 74, 119, 78, 75, 63, 79, 64,
962- 88, 80, 82, 85, 81, 86, 83, 89, 96, 76,
963- 90, 93, 84, 91, 99, 87, 92, 101, 97, 94,
964- 100, 107, 133, 110, 95, 102, 111, 103, 179, 104,
965-
966- 108, 109, 105, 115, 121, 112, 180, 125, 134, 113,
967- 116, 122, 126, 114, 59, 59, 139, 117, 141, 142,
968- 146, 163, 140, 159, 171, 173, 143, 189, 70, 147,
969- 172, 177, 183, 164, 207, 208, 148, 190, 160, 161,
970- 174, 193, 178, 184, 175, 194, 398, 125, 222, 214,
971- 224, 398, 126, 215, 248, 249, 60, 397, 396, 395,
972- 225, 394, 393, 223, 392, 391, 250, 53, 53, 53,
973- 53, 53, 53, 55, 55, 55, 55, 55, 55, 57,
974- 57, 57, 57, 57, 57, 65, 65, 123, 123, 123,
975- 390, 123, 123, 124, 124, 124, 124, 124, 124, 127,
976-
977- 127, 389, 127, 127, 127, 129, 388, 129, 129, 129,
978- 129, 387, 386, 385, 384, 383, 382, 381, 380, 379,
979- 378, 377, 376, 375, 374, 373, 372, 371, 370, 369,
980- 368, 367, 366, 365, 364, 363, 362, 361, 360, 359,
981- 358, 357, 356, 355, 354, 353, 352, 351, 350, 349,
982- 348, 347, 346, 345, 344, 343, 342, 341, 340, 339,
983- 338, 337, 336, 335, 334, 333, 332, 331, 330, 329,
984- 328, 327, 326, 325, 324, 323, 322, 321, 320, 319,
985- 318, 317, 316, 315, 314, 313, 312, 311, 310, 309,
986- 308, 307, 306, 305, 304, 303, 302, 301, 300, 299,
987-
988- 298, 297, 296, 295, 294, 293, 292, 291, 290, 289,
989- 288, 287, 286, 285, 284, 283, 282, 281, 280, 279,
990- 278, 277, 276, 275, 274, 273, 272, 271, 270, 269,
991- 268, 267, 266, 265, 264, 263, 262, 261, 260, 259,
992- 258, 257, 256, 255, 254, 253, 252, 251, 247, 246,
993- 245, 244, 243, 242, 241, 240, 239, 238, 237, 236,
994- 235, 234, 233, 232, 231, 230, 229, 228, 227, 226,
995- 221, 220, 219, 218, 217, 216, 213, 212, 211, 210,
996- 209, 206, 205, 204, 203, 202, 201, 200, 199, 198,
997- 197, 196, 131, 130, 128, 195, 192, 191, 188, 187,
998-
999- 186, 185, 182, 181, 176, 170, 169, 168, 167, 166,
1000- 165, 162, 158, 157, 156, 155, 154, 153, 152, 151,
1001- 150, 149, 145, 144, 138, 137, 136, 135, 132, 398,
1002- 131, 130, 128, 120, 106, 98, 69, 66, 62, 61,
1003- 398, 58, 58, 56, 56, 54, 54, 9, 398, 398,
1004- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1005- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1006- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1007- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1008- 398, 398, 398, 398, 398, 398, 398, 398
1009-
1010- } ;
1011-
1012-static yyconst flex_int16_t yy_chk[499] =
1013- { 0,
1014- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1015- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1016- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1017- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1018- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1019- 11, 11, 12, 12, 25, 32, 25, 28, 28, 33,
1020- 32, 34, 48, 33, 48, 34, 33, 64, 34, 64,
1021- 37, 34, 35, 36, 34, 36, 35, 37, 40, 33,
1022- 37, 39, 35, 37, 42, 36, 37, 43, 40, 39,
1023- 42, 45, 72, 46, 39, 43, 46, 43, 110, 43,
1024-
1025- 45, 45, 43, 47, 50, 46, 110, 54, 72, 46,
1026- 47, 50, 54, 46, 59, 59, 78, 47, 79, 79,
1027- 82, 97, 78, 94, 106, 107, 79, 118, 404, 82,
1028- 106, 109, 113, 97, 145, 145, 82, 118, 94, 94,
1029- 107, 121, 109, 113, 107, 121, 124, 125, 160, 151,
1030- 161, 124, 125, 151, 188, 188, 402, 396, 395, 394,
1031- 161, 393, 392, 160, 391, 389, 188, 399, 399, 399,
1032- 399, 399, 399, 400, 400, 400, 400, 400, 400, 401,
1033- 401, 401, 401, 401, 401, 403, 403, 405, 405, 405,
1034- 388, 405, 405, 406, 406, 406, 406, 406, 406, 407,
1035-
1036- 407, 387, 407, 407, 407, 408, 386, 408, 408, 408,
1037- 408, 385, 384, 383, 382, 381, 380, 378, 377, 374,
1038- 372, 370, 368, 367, 366, 364, 361, 359, 358, 357,
1039- 356, 354, 352, 351, 348, 347, 345, 344, 343, 340,
1040- 339, 336, 334, 333, 332, 331, 328, 327, 326, 324,
1041- 323, 321, 319, 317, 316, 315, 313, 311, 307, 306,
1042- 302, 301, 300, 299, 298, 297, 296, 294, 293, 291,
1043- 290, 289, 288, 287, 286, 285, 284, 282, 281, 280,
1044- 278, 276, 272, 271, 270, 269, 268, 267, 266, 264,
1045- 263, 262, 260, 258, 256, 255, 254, 253, 252, 251,
1046-
1047- 250, 249, 248, 246, 245, 244, 243, 242, 241, 240,
1048- 239, 238, 237, 235, 234, 233, 230, 226, 224, 223,
1049- 222, 221, 220, 218, 217, 215, 213, 212, 210, 209,
1050- 208, 207, 206, 205, 204, 203, 202, 201, 198, 197,
1051- 196, 195, 194, 193, 192, 191, 190, 189, 187, 186,
1052- 185, 183, 181, 179, 178, 177, 176, 175, 174, 173,
1053- 172, 171, 169, 168, 167, 166, 165, 164, 163, 162,
1054- 159, 158, 157, 155, 154, 153, 150, 149, 148, 147,
1055- 146, 144, 143, 142, 141, 140, 139, 138, 137, 136,
1056- 135, 134, 131, 130, 128, 122, 120, 119, 117, 116,
1057-
1058- 115, 114, 112, 111, 108, 105, 104, 103, 100, 99,
1059- 98, 96, 92, 91, 90, 89, 88, 87, 86, 85,
1060- 84, 83, 81, 80, 77, 75, 74, 73, 71, 65,
1061- 63, 58, 56, 49, 44, 41, 30, 26, 24, 23,
1062- 9, 8, 7, 6, 5, 4, 3, 398, 398, 398,
1063- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1064- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1065- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1066- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1067- 398, 398, 398, 398, 398, 398, 398, 398
1068-
1069- } ;
1070-
1071-static yy_state_type yy_last_accepting_state;
1072-static char *yy_last_accepting_cpos;
1073-
1074-static int yy_flex_debug;
1075-static int yy_flex_debug = 0;
1076-
1077-/* The intent behind this definition is that it'll catch
1078- * any uses of REJECT which flex missed.
1079- */
1080-#define REJECT reject_used_but_not_detected
1081-#define yymore() yymore_used_but_not_detected
1082-#define YY_MORE_ADJ 0
1083-#define YY_RESTORE_YY_MORE_OFFSET
1084-#line 1 "pars0lex.l"
1085-/**************************************************//**
1086-SQL parser lexical analyzer: input file for the GNU Flex lexer generator
1087-
1088-(c) 1997 Innobase Oy
1089-
1090-Created 12/14/1997 Heikki Tuuri
1091-Published under the GPL version 2
1092-
1093-The InnoDB parser is frozen because MySQL takes care of SQL parsing.
1094-Therefore we normally keep the InnoDB parser C files as they are, and do
1095-not automatically generate them from pars0grm.y and pars0lex.l.
1096-
1097-How to make the InnoDB parser and lexer C files:
1098-
1099-1. Run ./make_flex.sh to generate lexer files.
1100-
1101-2. Run ./make_bison.sh to generate parser files.
1102-
1103-These instructions seem to work at least with bison-1.875d and flex-2.5.31 on
1104-Linux.
1105-*******************************************************/
1106-#define YY_NO_INPUT 1
1107-#define YY_NO_UNISTD_H 1
1108-#line 38 "pars0lex.l"
1109-#define YYSTYPE que_node_t*
1110-
1111-#include "univ.i"
1112-#include "pars0pars.h"
1113-#include "pars0grm.h"
1114-#include "pars0sym.h"
1115-#include "mem0mem.h"
1116-#include "os0proc.h"
1117-
1118-#define malloc(A) ut_malloc(A)
1119-#define free(A) ut_free(A)
1120-#define realloc(P, A) ut_realloc(P, A)
1121-#define exit(A) ut_error
1122-
1123-#define YY_INPUT(buf, result, max_size) pars_get_lex_chars(buf, &result, max_size)
1124-
1125-/* String buffer for removing quotes */
1126-static ulint stringbuf_len_alloc = 0; /* Allocated length */
1127-static ulint stringbuf_len = 0; /* Current length */
1128-static char* stringbuf; /* Start of buffer */
1129-/** Appends a string to the buffer. */
1130-static
1131-void
1132-string_append(
1133-/*==========*/
1134- const char* str, /*!< in: string to be appended */
1135- ulint len) /*!< in: length of the string */
1136-{
1137- if (stringbuf == NULL) {
1138- stringbuf = malloc(1);
1139- stringbuf_len_alloc = 1;
1140- }
1141-
1142- if (stringbuf_len + len > stringbuf_len_alloc) {
1143- while (stringbuf_len + len > stringbuf_len_alloc) {
1144- stringbuf_len_alloc <<= 1;
1145- }
1146- stringbuf = realloc(stringbuf, stringbuf_len_alloc);
1147- }
1148-
1149- memcpy(stringbuf + stringbuf_len, str, len);
1150- stringbuf_len += len;
1151-}
1152-
1153-
1154-
1155-
1156-#line 759 "lexyy.c"
1157-
1158-#define INITIAL 0
1159-#define comment 1
1160-#define quoted 2
1161-#define id 3
1162-
1163-#ifndef YY_NO_UNISTD_H
1164-/* Special case for "unistd.h", since it is non-ANSI. We include it way
1165- * down here because we want the user's section 1 to have been scanned first.
1166- * The user has a chance to override it with an option.
1167- */
1168-#include <unistd.h>
1169-#endif
1170-
1171-#ifndef YY_EXTRA_TYPE
1172-#define YY_EXTRA_TYPE void *
1173-#endif
1174-
1175-/* Macros after this point can all be overridden by user definitions in
1176- * section 1.
1177- */
1178-
1179-#ifndef YY_SKIP_YYWRAP
1180-#ifdef __cplusplus
1181-extern "C" int yywrap (void );
1182-#else
1183-extern int yywrap (void );
1184-#endif
1185-#endif
1186-
1187-#ifndef yytext_ptr
1188-static void yy_flex_strncpy (char *,yyconst char *,int );
1189-#endif
1190-
1191-#ifdef YY_NEED_STRLEN
1192-static int yy_flex_strlen (yyconst char * );
1193-#endif
1194-
1195-#ifndef YY_NO_INPUT
1196-
1197-#ifdef __cplusplus
1198-static int yyinput (void );
1199-#else
1200-static int input (void );
1201-#endif
1202-
1203-#endif
1204-
1205-/* Amount of stuff to slurp up with each read. */
1206-#ifndef YY_READ_BUF_SIZE
1207-#define YY_READ_BUF_SIZE 8192
1208-#endif
1209-
1210-/* Copy whatever the last rule matched to the standard output. */
1211-#ifndef ECHO
1212-/* This used to be an fputs(), but since the string might contain NUL's,
1213- * we now use fwrite().
1214- */
1215-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1216-#endif
1217-
1218-/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1219- * is returned in "result".
1220- */
1221-#ifndef YY_INPUT
1222-#define YY_INPUT(buf,result,max_size) \
1223- if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1224- { \
1225- int c = '*'; \
1226- size_t n; \
1227- for ( n = 0; n < max_size && \
1228- (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1229- buf[n] = (char) c; \
1230- if ( c == '\n' ) \
1231- buf[n++] = (char) c; \
1232- if ( c == EOF && ferror( yyin ) ) \
1233- YY_FATAL_ERROR( "input in flex scanner failed" ); \
1234- result = n; \
1235- } \
1236- else \
1237- { \
1238- errno=0; \
1239- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1240- { \
1241- if( errno != EINTR) \
1242- { \
1243- YY_FATAL_ERROR( "input in flex scanner failed" ); \
1244- break; \
1245- } \
1246- errno=0; \
1247- clearerr(yyin); \
1248- } \
1249- }\
1250-\
1251-
1252-#endif
1253-
1254-/* No semi-colon after return; correct usage is to write "yyterminate();" -
1255- * we don't want an extra ';' after the "return" because that will cause
1256- * some compilers to complain about unreachable statements.
1257- */
1258-#ifndef yyterminate
1259-#define yyterminate() return YY_NULL
1260-#endif
1261-
1262-/* Number of entries by which start-condition stack grows. */
1263-#ifndef YY_START_STACK_INCR
1264-#define YY_START_STACK_INCR 25
1265-#endif
1266-
1267-/* Report a fatal error. */
1268-#ifndef YY_FATAL_ERROR
1269-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1270-#endif
1271-
1272-/* end tables serialization structures and prototypes */
1273-
1274-/* Default declaration of generated scanner - a define so the user can
1275- * easily add parameters.
1276- */
1277-#ifndef YY_DECL
1278-#define YY_DECL_IS_OURS 1
1279-
1280-UNIV_INTERN int yylex (void);
1281-
1282-#define YY_DECL UNIV_INTERN int yylex (void)
1283-#endif /* !YY_DECL */
1284-
1285-/* Code executed at the beginning of each rule, after yytext and yyleng
1286- * have been set up.
1287- */
1288-#ifndef YY_USER_ACTION
1289-#define YY_USER_ACTION
1290-#endif
1291-
1292-/* Code executed at the end of each rule. */
1293-#ifndef YY_BREAK
1294-#define YY_BREAK break;
1295-#endif
1296-
1297-#define YY_RULE_SETUP \
1298- YY_USER_ACTION
1299-
1300-/** The main scanner function which does all the work.
1301- */
1302-YY_DECL
1303-{
1304- register yy_state_type yy_current_state;
1305- register char *yy_cp, *yy_bp;
1306- register int yy_act;
1307-
1308-#line 92 "pars0lex.l"
1309-
1310-
1311-#line 914 "lexyy.c"
1312-
1313- if ( (yy_init) )
1314- {
1315- (yy_init) = 0;
1316-
1317-#ifdef YY_USER_INIT
1318- YY_USER_INIT;
1319-#endif
1320-
1321- if ( ! (yy_start) )
1322- (yy_start) = 1; /* first start state */
1323-
1324- if ( ! yyin )
1325- yyin = stdin;
1326-
1327- if ( ! yyout )
1328- yyout = stdout;
1329-
1330- if ( ! YY_CURRENT_BUFFER ) {
1331- yyensure_buffer_stack ();
1332- YY_CURRENT_BUFFER_LVALUE =
1333- yy_create_buffer(yyin,YY_BUF_SIZE );
1334- }
1335-
1336- yy_load_buffer_state( );
1337- }
1338-
1339- while ( 1 ) /* loops until end-of-file is reached */
1340- {
1341- yy_cp = (yy_c_buf_p);
1342-
1343- /* Support of yytext. */
1344- *yy_cp = (yy_hold_char);
1345-
1346- /* yy_bp points to the position in yy_ch_buf of the start of
1347- * the current run.
1348- */
1349- yy_bp = yy_cp;
1350-
1351- yy_current_state = (yy_start);
1352-yy_match:
1353- do
1354- {
1355- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1356- if ( yy_accept[yy_current_state] )
1357- {
1358- (yy_last_accepting_state) = yy_current_state;
1359- (yy_last_accepting_cpos) = yy_cp;
1360- }
1361- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1362- {
1363- yy_current_state = (int) yy_def[yy_current_state];
1364- if ( yy_current_state >= 399 )
1365- yy_c = yy_meta[(unsigned int) yy_c];
1366- }
1367- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1368- ++yy_cp;
1369- }
1370- while ( yy_current_state != 398 );
1371- yy_cp = (yy_last_accepting_cpos);
1372- yy_current_state = (yy_last_accepting_state);
1373-
1374-yy_find_action:
1375- yy_act = yy_accept[yy_current_state];
1376-
1377- YY_DO_BEFORE_ACTION;
1378-
1379-do_action: /* This label is used only to access EOF actions. */
1380-
1381- switch ( yy_act )
1382- { /* beginning of action switch */
1383- case 0: /* must back up */
1384- /* undo the effects of YY_DO_BEFORE_ACTION */
1385- *yy_cp = (yy_hold_char);
1386- yy_cp = (yy_last_accepting_cpos);
1387- yy_current_state = (yy_last_accepting_state);
1388- goto yy_find_action;
1389-
1390-case 1:
1391-YY_RULE_SETUP
1392-#line 94 "pars0lex.l"
1393-{
1394- yylval = sym_tab_add_int_lit(pars_sym_tab_global,
1395- atoi(yytext));
1396- return(PARS_INT_LIT);
1397-}
1398- YY_BREAK
1399-case 2:
1400-YY_RULE_SETUP
1401-#line 100 "pars0lex.l"
1402-{
1403- ut_error; /* not implemented */
1404-
1405- return(PARS_FLOAT_LIT);
1406-}
1407- YY_BREAK
1408-case 3:
1409-YY_RULE_SETUP
1410-#line 106 "pars0lex.l"
1411-{
1412- ulint type;
1413-
1414- yylval = sym_tab_add_bound_lit(pars_sym_tab_global,
1415- yytext + 1, &type);
1416-
1417- return((int) type);
1418-}
1419- YY_BREAK
1420-case 4:
1421-YY_RULE_SETUP
1422-#line 115 "pars0lex.l"
1423-{
1424- yylval = sym_tab_add_bound_id(pars_sym_tab_global,
1425- yytext + 1);
1426-
1427- return(PARS_ID_TOKEN);
1428-}
1429- YY_BREAK
1430-case 5:
1431-YY_RULE_SETUP
1432-#line 122 "pars0lex.l"
1433-{
1434-/* Quoted character string literals are handled in an explicit
1435-start state 'quoted'. This state is entered and the buffer for
1436-the scanned string is emptied upon encountering a starting quote.
1437-
1438-In the state 'quoted', only two actions are possible (defined below). */
1439- BEGIN(quoted);
1440- stringbuf_len = 0;
1441-}
1442- YY_BREAK
1443-case 6:
1444-/* rule 6 can match eol */
1445-YY_RULE_SETUP
1446-#line 131 "pars0lex.l"
1447-{
1448- /* Got a sequence of characters other than "'":
1449- append to string buffer */
1450- string_append(yytext, yyleng);
1451-}
1452- YY_BREAK
1453-case 7:
1454-YY_RULE_SETUP
1455-#line 136 "pars0lex.l"
1456-{
1457- /* Got a sequence of "'" characters:
1458- append half of them to string buffer,
1459- as "''" represents a single "'".
1460- We apply truncating division,
1461- so that "'''" will result in "'". */
1462-
1463- string_append(yytext, yyleng / 2);
1464-
1465- /* If we got an odd number of quotes, then the
1466- last quote we got is the terminating quote.
1467- At the end of the string, we return to the
1468- initial start state and report the scanned
1469- string literal. */
1470-
1471- if (yyleng % 2) {
1472- BEGIN(INITIAL);
1473- yylval = sym_tab_add_str_lit(
1474- pars_sym_tab_global,
1475- (byte*) stringbuf, stringbuf_len);
1476- return(PARS_STR_LIT);
1477- }
1478-}
1479- YY_BREAK
1480-case 8:
1481-YY_RULE_SETUP
1482-#line 160 "pars0lex.l"
1483-{
1484-/* Quoted identifiers are handled in an explicit start state 'id'.
1485-This state is entered and the buffer for the scanned string is emptied
1486-upon encountering a starting quote.
1487-
1488-In the state 'id', only two actions are possible (defined below). */
1489- BEGIN(id);
1490- stringbuf_len = 0;
1491-}
1492- YY_BREAK
1493-case 9:
1494-/* rule 9 can match eol */
1495-YY_RULE_SETUP
1496-#line 169 "pars0lex.l"
1497-{
1498- /* Got a sequence of characters other than '"':
1499- append to string buffer */
1500- string_append(yytext, yyleng);
1501-}
1502- YY_BREAK
1503-case 10:
1504-YY_RULE_SETUP
1505-#line 174 "pars0lex.l"
1506-{
1507- /* Got a sequence of '"' characters:
1508- append half of them to string buffer,
1509- as '""' represents a single '"'.
1510- We apply truncating division,
1511- so that '"""' will result in '"'. */
1512-
1513- string_append(yytext, yyleng / 2);
1514-
1515- /* If we got an odd number of quotes, then the
1516- last quote we got is the terminating quote.
1517- At the end of the string, we return to the
1518- initial start state and report the scanned
1519- identifier. */
1520-
1521- if (yyleng % 2) {
1522- BEGIN(INITIAL);
1523- yylval = sym_tab_add_id(
1524- pars_sym_tab_global,
1525- (byte*) stringbuf, stringbuf_len);
1526-
1527- return(PARS_ID_TOKEN);
1528- }
1529-}
1530- YY_BREAK
1531-case 11:
1532-YY_RULE_SETUP
1533-#line 199 "pars0lex.l"
1534-{
1535- yylval = sym_tab_add_null_lit(pars_sym_tab_global);
1536-
1537- return(PARS_NULL_LIT);
1538-}
1539- YY_BREAK
1540-case 12:
1541-YY_RULE_SETUP
1542-#line 205 "pars0lex.l"
1543-{
1544- /* Implicit cursor name */
1545- yylval = sym_tab_add_str_lit(pars_sym_tab_global,
1546- (byte*) yytext, yyleng);
1547- return(PARS_SQL_TOKEN);
1548-}
1549- YY_BREAK
1550-case 13:
1551-YY_RULE_SETUP
1552-#line 212 "pars0lex.l"
1553-{
1554- return(PARS_AND_TOKEN);
1555-}
1556- YY_BREAK
1557-case 14:
1558-YY_RULE_SETUP
1559-#line 216 "pars0lex.l"
1560-{
1561- return(PARS_OR_TOKEN);
1562-}
1563- YY_BREAK
1564-case 15:
1565-YY_RULE_SETUP
1566-#line 220 "pars0lex.l"
1567-{
1568- return(PARS_NOT_TOKEN);
1569-}
1570- YY_BREAK
1571-case 16:
1572-YY_RULE_SETUP
1573-#line 224 "pars0lex.l"
1574-{
1575- return(PARS_PROCEDURE_TOKEN);
1576-}
1577- YY_BREAK
1578-case 17:
1579-YY_RULE_SETUP
1580-#line 228 "pars0lex.l"
1581-{
1582- return(PARS_IN_TOKEN);
1583-}
1584- YY_BREAK
1585-case 18:
1586-YY_RULE_SETUP
1587-#line 232 "pars0lex.l"
1588-{
1589- return(PARS_OUT_TOKEN);
1590-}
1591- YY_BREAK
1592-case 19:
1593-YY_RULE_SETUP
1594-#line 236 "pars0lex.l"
1595-{
1596- return(PARS_BINARY_TOKEN);
1597-}
1598- YY_BREAK
1599-case 20:
1600-YY_RULE_SETUP
1601-#line 240 "pars0lex.l"
1602-{
1603- return(PARS_BLOB_TOKEN);
1604-}
1605- YY_BREAK
1606-case 21:
1607-YY_RULE_SETUP
1608-#line 244 "pars0lex.l"
1609-{
1610- return(PARS_INT_TOKEN);
1611-}
1612- YY_BREAK
1613-case 22:
1614-YY_RULE_SETUP
1615-#line 248 "pars0lex.l"
1616-{
1617- return(PARS_INT_TOKEN);
1618-}
1619- YY_BREAK
1620-case 23:
1621-YY_RULE_SETUP
1622-#line 252 "pars0lex.l"
1623-{
1624- return(PARS_FLOAT_TOKEN);
1625-}
1626- YY_BREAK
1627-case 24:
1628-YY_RULE_SETUP
1629-#line 256 "pars0lex.l"
1630-{
1631- return(PARS_CHAR_TOKEN);
1632-}
1633- YY_BREAK
1634-case 25:
1635-YY_RULE_SETUP
1636-#line 260 "pars0lex.l"
1637-{
1638- return(PARS_IS_TOKEN);
1639-}
1640- YY_BREAK
1641-case 26:
1642-YY_RULE_SETUP
1643-#line 264 "pars0lex.l"
1644-{
1645- return(PARS_BEGIN_TOKEN);
1646-}
1647- YY_BREAK
1648-case 27:
1649-YY_RULE_SETUP
1650-#line 268 "pars0lex.l"
1651-{
1652- return(PARS_END_TOKEN);
1653-}
1654- YY_BREAK
1655-case 28:
1656-YY_RULE_SETUP
1657-#line 272 "pars0lex.l"
1658-{
1659- return(PARS_IF_TOKEN);
1660-}
1661- YY_BREAK
1662-case 29:
1663-YY_RULE_SETUP
1664-#line 276 "pars0lex.l"
1665-{
1666- return(PARS_THEN_TOKEN);
1667-}
1668- YY_BREAK
1669-case 30:
1670-YY_RULE_SETUP
1671-#line 280 "pars0lex.l"
1672-{
1673- return(PARS_ELSE_TOKEN);
1674-}
1675- YY_BREAK
1676-case 31:
1677-YY_RULE_SETUP
1678-#line 284 "pars0lex.l"
1679-{
1680- return(PARS_ELSIF_TOKEN);
1681-}
1682- YY_BREAK
1683-case 32:
1684-YY_RULE_SETUP
1685-#line 288 "pars0lex.l"
1686-{
1687- return(PARS_LOOP_TOKEN);
1688-}
1689- YY_BREAK
1690-case 33:
1691-YY_RULE_SETUP
1692-#line 292 "pars0lex.l"
1693-{
1694- return(PARS_WHILE_TOKEN);
1695-}
1696- YY_BREAK
1697-case 34:
1698-YY_RULE_SETUP
1699-#line 296 "pars0lex.l"
1700-{
1701- return(PARS_RETURN_TOKEN);
1702-}
1703- YY_BREAK
1704-case 35:
1705-YY_RULE_SETUP
1706-#line 300 "pars0lex.l"
1707-{
1708- return(PARS_SELECT_TOKEN);
1709-}
1710- YY_BREAK
1711-case 36:
1712-YY_RULE_SETUP
1713-#line 304 "pars0lex.l"
1714-{
1715- return(PARS_SUM_TOKEN);
1716-}
1717- YY_BREAK
1718-case 37:
1719-YY_RULE_SETUP
1720-#line 308 "pars0lex.l"
1721-{
1722- return(PARS_COUNT_TOKEN);
1723-}
1724- YY_BREAK
1725-case 38:
1726-YY_RULE_SETUP
1727-#line 312 "pars0lex.l"
1728-{
1729- return(PARS_DISTINCT_TOKEN);
1730-}
1731- YY_BREAK
1732-case 39:
1733-YY_RULE_SETUP
1734-#line 316 "pars0lex.l"
1735-{
1736- return(PARS_FROM_TOKEN);
1737-}
1738- YY_BREAK
1739-case 40:
1740-YY_RULE_SETUP
1741-#line 320 "pars0lex.l"
1742-{
1743- return(PARS_WHERE_TOKEN);
1744-}
1745- YY_BREAK
1746-case 41:
1747-YY_RULE_SETUP
1748-#line 324 "pars0lex.l"
1749-{
1750- return(PARS_FOR_TOKEN);
1751-}
1752- YY_BREAK
1753-case 42:
1754-YY_RULE_SETUP
1755-#line 328 "pars0lex.l"
1756-{
1757- return(PARS_READ_TOKEN);
1758-}
1759- YY_BREAK
1760-case 43:
1761-YY_RULE_SETUP
1762-#line 332 "pars0lex.l"
1763-{
1764- return(PARS_ORDER_TOKEN);
1765-}
1766- YY_BREAK
1767-case 44:
1768-YY_RULE_SETUP
1769-#line 336 "pars0lex.l"
1770-{
1771- return(PARS_BY_TOKEN);
1772-}
1773- YY_BREAK
1774-case 45:
1775-YY_RULE_SETUP
1776-#line 340 "pars0lex.l"
1777-{
1778- return(PARS_ASC_TOKEN);
1779-}
1780- YY_BREAK
1781-case 46:
1782-YY_RULE_SETUP
1783-#line 344 "pars0lex.l"
1784-{
1785- return(PARS_DESC_TOKEN);
1786-}
1787- YY_BREAK
1788-case 47:
1789-YY_RULE_SETUP
1790-#line 348 "pars0lex.l"
1791-{
1792- return(PARS_INSERT_TOKEN);
1793-}
1794- YY_BREAK
1795-case 48:
1796-YY_RULE_SETUP
1797-#line 352 "pars0lex.l"
1798-{
1799- return(PARS_INTO_TOKEN);
1800-}
1801- YY_BREAK
1802-case 49:
1803-YY_RULE_SETUP
1804-#line 356 "pars0lex.l"
1805-{
1806- return(PARS_VALUES_TOKEN);
1807-}
1808- YY_BREAK
1809-case 50:
1810-YY_RULE_SETUP
1811-#line 360 "pars0lex.l"
1812-{
1813- return(PARS_UPDATE_TOKEN);
1814-}
1815- YY_BREAK
1816-case 51:
1817-YY_RULE_SETUP
1818-#line 364 "pars0lex.l"
1819-{
1820- return(PARS_SET_TOKEN);
1821-}
1822- YY_BREAK
1823-case 52:
1824-YY_RULE_SETUP
1825-#line 368 "pars0lex.l"
1826-{
1827- return(PARS_DELETE_TOKEN);
1828-}
1829- YY_BREAK
1830-case 53:
1831-YY_RULE_SETUP
1832-#line 372 "pars0lex.l"
1833-{
1834- return(PARS_CURRENT_TOKEN);
1835-}
1836- YY_BREAK
1837-case 54:
1838-YY_RULE_SETUP
1839-#line 376 "pars0lex.l"
1840-{
1841- return(PARS_OF_TOKEN);
1842-}
1843- YY_BREAK
1844-case 55:
1845-YY_RULE_SETUP
1846-#line 380 "pars0lex.l"
1847-{
1848- return(PARS_CREATE_TOKEN);
1849-}
1850- YY_BREAK
1851-case 56:
1852-YY_RULE_SETUP
1853-#line 384 "pars0lex.l"
1854-{
1855- return(PARS_TABLE_TOKEN);
1856-}
1857- YY_BREAK
1858-case 57:
1859-YY_RULE_SETUP
1860-#line 388 "pars0lex.l"
1861-{
1862- return(PARS_INDEX_TOKEN);
1863-}
1864- YY_BREAK
1865-case 58:
1866-YY_RULE_SETUP
1867-#line 392 "pars0lex.l"
1868-{
1869- return(PARS_UNIQUE_TOKEN);
1870-}
1871- YY_BREAK
1872-case 59:
1873-YY_RULE_SETUP
1874-#line 396 "pars0lex.l"
1875-{
1876- return(PARS_CLUSTERED_TOKEN);
1877-}
1878- YY_BREAK
1879-case 60:
1880-YY_RULE_SETUP
1881-#line 400 "pars0lex.l"
1882-{
1883- return(PARS_DOES_NOT_FIT_IN_MEM_TOKEN);
1884-}
1885- YY_BREAK
1886-case 61:
1887-YY_RULE_SETUP
1888-#line 404 "pars0lex.l"
1889-{
1890- return(PARS_ON_TOKEN);
1891-}
1892- YY_BREAK
1893-case 62:
1894-YY_RULE_SETUP
1895-#line 408 "pars0lex.l"
1896-{
1897- return(PARS_DECLARE_TOKEN);
1898-}
1899- YY_BREAK
1900-case 63:
1901-YY_RULE_SETUP
1902-#line 412 "pars0lex.l"
1903-{
1904- return(PARS_CURSOR_TOKEN);
1905-}
1906- YY_BREAK
1907-case 64:
1908-YY_RULE_SETUP
1909-#line 416 "pars0lex.l"
1910-{
1911- return(PARS_OPEN_TOKEN);
1912-}
1913- YY_BREAK
1914-case 65:
1915-YY_RULE_SETUP
1916-#line 420 "pars0lex.l"
1917-{
1918- return(PARS_FETCH_TOKEN);
1919-}
1920- YY_BREAK
1921-case 66:
1922-YY_RULE_SETUP
1923-#line 424 "pars0lex.l"
1924-{
1925- return(PARS_CLOSE_TOKEN);
1926-}
1927- YY_BREAK
1928-case 67:
1929-YY_RULE_SETUP
1930-#line 428 "pars0lex.l"
1931-{
1932- return(PARS_NOTFOUND_TOKEN);
1933-}
1934- YY_BREAK
1935-case 68:
1936-YY_RULE_SETUP
1937-#line 432 "pars0lex.l"
1938-{
1939- return(PARS_TO_CHAR_TOKEN);
1940-}
1941- YY_BREAK
1942-case 69:
1943-YY_RULE_SETUP
1944-#line 436 "pars0lex.l"
1945-{
1946- return(PARS_TO_NUMBER_TOKEN);
1947-}
1948- YY_BREAK
1949-case 70:
1950-YY_RULE_SETUP
1951-#line 440 "pars0lex.l"
1952-{
1953- return(PARS_TO_BINARY_TOKEN);
1954-}
1955- YY_BREAK
1956-case 71:
1957-YY_RULE_SETUP
1958-#line 444 "pars0lex.l"
1959-{
1960- return(PARS_BINARY_TO_NUMBER_TOKEN);
1961-}
1962- YY_BREAK
1963-case 72:
1964-YY_RULE_SETUP
1965-#line 448 "pars0lex.l"
1966-{
1967- return(PARS_SUBSTR_TOKEN);
1968-}
1969- YY_BREAK
1970-case 73:
1971-YY_RULE_SETUP
1972-#line 452 "pars0lex.l"
1973-{
1974- return(PARS_REPLSTR_TOKEN);
1975-}
1976- YY_BREAK
1977-case 74:
1978-YY_RULE_SETUP
1979-#line 456 "pars0lex.l"
1980-{
1981- return(PARS_CONCAT_TOKEN);
1982-}
1983- YY_BREAK
1984-case 75:
1985-YY_RULE_SETUP
1986-#line 460 "pars0lex.l"
1987-{
1988- return(PARS_INSTR_TOKEN);
1989-}
1990- YY_BREAK
1991-case 76:
1992-YY_RULE_SETUP
1993-#line 464 "pars0lex.l"
1994-{
1995- return(PARS_LENGTH_TOKEN);
1996-}
1997- YY_BREAK
1998-case 77:
1999-YY_RULE_SETUP
2000-#line 468 "pars0lex.l"
2001-{
2002- return(PARS_SYSDATE_TOKEN);
2003-}
2004- YY_BREAK
2005-case 78:
2006-YY_RULE_SETUP
2007-#line 472 "pars0lex.l"
2008-{
2009- return(PARS_PRINTF_TOKEN);
2010-}
2011- YY_BREAK
2012-case 79:
2013-YY_RULE_SETUP
2014-#line 476 "pars0lex.l"
2015-{
2016- return(PARS_ASSERT_TOKEN);
2017-}
2018- YY_BREAK
2019-case 80:
2020-YY_RULE_SETUP
2021-#line 480 "pars0lex.l"
2022-{
2023- return(PARS_RND_TOKEN);
2024-}
2025- YY_BREAK
2026-case 81:
2027-YY_RULE_SETUP
2028-#line 484 "pars0lex.l"
2029-{
2030- return(PARS_RND_STR_TOKEN);
2031-}
2032- YY_BREAK
2033-case 82:
2034-YY_RULE_SETUP
2035-#line 488 "pars0lex.l"
2036-{
2037- return(PARS_ROW_PRINTF_TOKEN);
2038-}
2039- YY_BREAK
2040-case 83:
2041-YY_RULE_SETUP
2042-#line 492 "pars0lex.l"
2043-{
2044- return(PARS_COMMIT_TOKEN);
2045-}
2046- YY_BREAK
2047-case 84:
2048-YY_RULE_SETUP
2049-#line 496 "pars0lex.l"
2050-{
2051- return(PARS_ROLLBACK_TOKEN);
2052-}
2053- YY_BREAK
2054-case 85:
2055-YY_RULE_SETUP
2056-#line 500 "pars0lex.l"
2057-{
2058- return(PARS_WORK_TOKEN);
2059-}
2060- YY_BREAK
2061-case 86:
2062-YY_RULE_SETUP
2063-#line 504 "pars0lex.l"
2064-{
2065- return(PARS_UNSIGNED_TOKEN);
2066-}
2067- YY_BREAK
2068-case 87:
2069-YY_RULE_SETUP
2070-#line 508 "pars0lex.l"
2071-{
2072- return(PARS_EXIT_TOKEN);
2073-}
2074- YY_BREAK
2075-case 88:
2076-YY_RULE_SETUP
2077-#line 512 "pars0lex.l"
2078-{
2079- return(PARS_FUNCTION_TOKEN);
2080-}
2081- YY_BREAK
2082-case 89:
2083-YY_RULE_SETUP
2084-#line 516 "pars0lex.l"
2085-{
2086- return(PARS_LOCK_TOKEN);
2087-}
2088- YY_BREAK
2089-case 90:
2090-YY_RULE_SETUP
2091-#line 520 "pars0lex.l"
2092-{
2093- return(PARS_SHARE_TOKEN);
2094-}
2095- YY_BREAK
2096-case 91:
2097-YY_RULE_SETUP
2098-#line 524 "pars0lex.l"
2099-{
2100- return(PARS_MODE_TOKEN);
2101-}
2102- YY_BREAK
2103-case 92:
2104-YY_RULE_SETUP
2105-#line 528 "pars0lex.l"
2106-{
2107- yylval = sym_tab_add_id(pars_sym_tab_global,
2108- (byte*)yytext,
2109- ut_strlen(yytext));
2110- return(PARS_ID_TOKEN);
2111-}
2112- YY_BREAK
2113-case 93:
2114-YY_RULE_SETUP
2115-#line 535 "pars0lex.l"
2116-{
2117- return(PARS_DDOT_TOKEN);
2118-}
2119- YY_BREAK
2120-case 94:
2121-YY_RULE_SETUP
2122-#line 539 "pars0lex.l"
2123-{
2124- return(PARS_ASSIGN_TOKEN);
2125-}
2126- YY_BREAK
2127-case 95:
2128-YY_RULE_SETUP
2129-#line 543 "pars0lex.l"
2130-{
2131- return(PARS_LE_TOKEN);
2132-}
2133- YY_BREAK
2134-case 96:
2135-YY_RULE_SETUP
2136-#line 547 "pars0lex.l"
2137-{
2138- return(PARS_GE_TOKEN);
2139-}
2140- YY_BREAK
2141-case 97:
2142-YY_RULE_SETUP
2143-#line 551 "pars0lex.l"
2144-{
2145- return(PARS_NE_TOKEN);
2146-}
2147- YY_BREAK
2148-case 98:
2149-YY_RULE_SETUP
2150-#line 555 "pars0lex.l"
2151-{
2152-
2153- return((int)(*yytext));
2154-}
2155- YY_BREAK
2156-case 99:
2157-YY_RULE_SETUP
2158-#line 560 "pars0lex.l"
2159-{
2160-
2161- return((int)(*yytext));
2162-}
2163- YY_BREAK
2164-case 100:
2165-YY_RULE_SETUP
2166-#line 565 "pars0lex.l"
2167-{
2168-
2169- return((int)(*yytext));
2170-}
2171- YY_BREAK
2172-case 101:
2173-YY_RULE_SETUP
2174-#line 570 "pars0lex.l"
2175-{
2176-
2177- return((int)(*yytext));
2178-}
2179- YY_BREAK
2180-case 102:
2181-YY_RULE_SETUP
2182-#line 575 "pars0lex.l"
2183-{
2184-
2185- return((int)(*yytext));
2186-}
2187- YY_BREAK
2188-case 103:
2189-YY_RULE_SETUP
2190-#line 580 "pars0lex.l"
2191-{
2192-
2193- return((int)(*yytext));
2194-}
2195- YY_BREAK
2196-case 104:
2197-YY_RULE_SETUP
2198-#line 585 "pars0lex.l"
2199-{
2200-
2201- return((int)(*yytext));
2202-}
2203- YY_BREAK
2204-case 105:
2205-YY_RULE_SETUP
2206-#line 590 "pars0lex.l"
2207-{
2208-
2209- return((int)(*yytext));
2210-}
2211- YY_BREAK
2212-case 106:
2213-YY_RULE_SETUP
2214-#line 595 "pars0lex.l"
2215-{
2216-
2217- return((int)(*yytext));
2218-}
2219- YY_BREAK
2220-case 107:
2221-YY_RULE_SETUP
2222-#line 600 "pars0lex.l"
2223-{
2224-
2225- return((int)(*yytext));
2226-}
2227- YY_BREAK
2228-case 108:
2229-YY_RULE_SETUP
2230-#line 605 "pars0lex.l"
2231-{
2232-
2233- return((int)(*yytext));
2234-}
2235- YY_BREAK
2236-case 109:
2237-YY_RULE_SETUP
2238-#line 610 "pars0lex.l"
2239-{
2240-
2241- return((int)(*yytext));
2242-}
2243- YY_BREAK
2244-case 110:
2245-YY_RULE_SETUP
2246-#line 615 "pars0lex.l"
2247-{
2248-
2249- return((int)(*yytext));
2250-}
2251- YY_BREAK
2252-case 111:
2253-YY_RULE_SETUP
2254-#line 620 "pars0lex.l"
2255-{
2256-
2257- return((int)(*yytext));
2258-}
2259- YY_BREAK
2260-case 112:
2261-YY_RULE_SETUP
2262-#line 625 "pars0lex.l"
2263-{
2264-
2265- return((int)(*yytext));
2266-}
2267- YY_BREAK
2268-case 113:
2269-YY_RULE_SETUP
2270-#line 630 "pars0lex.l"
2271-BEGIN(comment); /* eat up comment */
2272- YY_BREAK
2273-case 114:
2274-/* rule 114 can match eol */
2275-YY_RULE_SETUP
2276-#line 632 "pars0lex.l"
2277-
2278- YY_BREAK
2279-case 115:
2280-/* rule 115 can match eol */
2281-YY_RULE_SETUP
2282-#line 633 "pars0lex.l"
2283-
2284- YY_BREAK
2285-case 116:
2286-YY_RULE_SETUP
2287-#line 634 "pars0lex.l"
2288-BEGIN(INITIAL);
2289- YY_BREAK
2290-case 117:
2291-/* rule 117 can match eol */
2292-YY_RULE_SETUP
2293-#line 636 "pars0lex.l"
2294-/* eat up whitespace */
2295- YY_BREAK
2296-case 118:
2297-YY_RULE_SETUP
2298-#line 639 "pars0lex.l"
2299-{
2300- fprintf(stderr,"Unrecognized character: %02x\n",
2301- *yytext);
2302-
2303- ut_error;
2304-
2305- return(0);
2306-}
2307- YY_BREAK
2308-case 119:
2309-YY_RULE_SETUP
2310-#line 648 "pars0lex.l"
2311-YY_FATAL_ERROR( "flex scanner jammed" );
2312- YY_BREAK
2313-#line 1916 "lexyy.c"
2314-case YY_STATE_EOF(INITIAL):
2315-case YY_STATE_EOF(comment):
2316-case YY_STATE_EOF(quoted):
2317-case YY_STATE_EOF(id):
2318- yyterminate();
2319-
2320- case YY_END_OF_BUFFER:
2321- {
2322- /* Amount of text matched not including the EOB char. */
2323- int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2324-
2325- /* Undo the effects of YY_DO_BEFORE_ACTION. */
2326- *yy_cp = (yy_hold_char);
2327- YY_RESTORE_YY_MORE_OFFSET
2328-
2329- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2330- {
2331- /* We're scanning a new file or input source. It's
2332- * possible that this happened because the user
2333- * just pointed yyin at a new source and called
2334- * yylex(). If so, then we have to assure
2335- * consistency between YY_CURRENT_BUFFER and our
2336- * globals. Here is the right place to do so, because
2337- * this is the first action (other than possibly a
2338- * back-up) that will match for the new input source.
2339- */
2340- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2341- YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2342- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2343- }
2344-
2345- /* Note that here we test for yy_c_buf_p "<=" to the position
2346- * of the first EOB in the buffer, since yy_c_buf_p will
2347- * already have been incremented past the NUL character
2348- * (since all states make transitions on EOB to the
2349- * end-of-buffer state). Contrast this with the test
2350- * in input().
2351- */
2352- if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2353- { /* This was really a NUL. */
2354- yy_state_type yy_next_state;
2355-
2356- (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2357-
2358- yy_current_state = yy_get_previous_state( );
2359-
2360- /* Okay, we're now positioned to make the NUL
2361- * transition. We couldn't have
2362- * yy_get_previous_state() go ahead and do it
2363- * for us because it doesn't know how to deal
2364- * with the possibility of jamming (and we don't
2365- * want to build jamming into it because then it
2366- * will run more slowly).
2367- */
2368-
2369- yy_next_state = yy_try_NUL_trans( yy_current_state );
2370-
2371- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2372-
2373- if ( yy_next_state )
2374- {
2375- /* Consume the NUL. */
2376- yy_cp = ++(yy_c_buf_p);
2377- yy_current_state = yy_next_state;
2378- goto yy_match;
2379- }
2380-
2381- else
2382- {
2383- yy_cp = (yy_last_accepting_cpos);
2384- yy_current_state = (yy_last_accepting_state);
2385- goto yy_find_action;
2386- }
2387- }
2388-
2389- else switch ( yy_get_next_buffer( ) )
2390- {
2391- case EOB_ACT_END_OF_FILE:
2392- {
2393- (yy_did_buffer_switch_on_eof) = 0;
2394-
2395- if ( yywrap( ) )
2396- {
2397- /* Note: because we've taken care in
2398- * yy_get_next_buffer() to have set up
2399- * yytext, we can now set up
2400- * yy_c_buf_p so that if some total
2401- * hoser (like flex itself) wants to
2402- * call the scanner after we return the
2403- * YY_NULL, it'll still work - another
2404- * YY_NULL will get returned.
2405- */
2406- (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2407-
2408- yy_act = YY_STATE_EOF(YY_START);
2409- goto do_action;
2410- }
2411-
2412- else
2413- {
2414- if ( ! (yy_did_buffer_switch_on_eof) )
2415- YY_NEW_FILE;
2416- }
2417- break;
2418- }
2419-
2420- case EOB_ACT_CONTINUE_SCAN:
2421- (yy_c_buf_p) =
2422- (yytext_ptr) + yy_amount_of_matched_text;
2423-
2424- yy_current_state = yy_get_previous_state( );
2425-
2426- yy_cp = (yy_c_buf_p);
2427- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2428- goto yy_match;
2429-
2430- case EOB_ACT_LAST_MATCH:
2431- (yy_c_buf_p) =
2432- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2433-
2434- yy_current_state = yy_get_previous_state( );
2435-
2436- yy_cp = (yy_c_buf_p);
2437- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2438- goto yy_find_action;
2439- }
2440- break;
2441- }
2442-
2443- default:
2444- YY_FATAL_ERROR(
2445- "fatal flex scanner internal error--no action found" );
2446- } /* end of action switch */
2447- } /* end of scanning one token */
2448-} /* end of yylex */
2449-
2450-/* yy_get_next_buffer - try to read in a new buffer
2451- *
2452- * Returns a code representing an action:
2453- * EOB_ACT_LAST_MATCH -
2454- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2455- * EOB_ACT_END_OF_FILE - end of file
2456- */
2457-static int yy_get_next_buffer (void)
2458-{
2459- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2460- register char *source = (yytext_ptr);
2461- register int number_to_move, i;
2462- int ret_val;
2463-
2464- if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2465- YY_FATAL_ERROR(
2466- "fatal flex scanner internal error--end of buffer missed" );
2467-
2468- if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2469- { /* Don't try to fill the buffer, so this is an EOF. */
2470- if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2471- {
2472- /* We matched a single character, the EOB, so
2473- * treat this as a final EOF.
2474- */
2475- return EOB_ACT_END_OF_FILE;
2476- }
2477-
2478- else
2479- {
2480- /* We matched some text prior to the EOB, first
2481- * process it.
2482- */
2483- return EOB_ACT_LAST_MATCH;
2484- }
2485- }
2486-
2487- /* Try to read more data. */
2488-
2489- /* First move last chars to start of buffer. */
2490- number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2491-
2492- for ( i = 0; i < number_to_move; ++i )
2493- *(dest++) = *(source++);
2494-
2495- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2496- /* don't do the read, it's not guaranteed to return an EOF,
2497- * just force an EOF
2498- */
2499- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2500-
2501- else
2502- {
2503- size_t num_to_read =
2504- YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2505-
2506- while ( num_to_read <= 0 )
2507- { /* Not enough room in the buffer - grow it. */
2508-
2509- /* just a shorter name for the current buffer */
2510- YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2511-
2512- int yy_c_buf_p_offset =
2513- (int) ((yy_c_buf_p) - b->yy_ch_buf);
2514-
2515- if ( b->yy_is_our_buffer )
2516- {
2517- int new_size = b->yy_buf_size * 2;
2518-
2519- if ( new_size <= 0 )
2520- b->yy_buf_size += b->yy_buf_size / 8;
2521- else
2522- b->yy_buf_size *= 2;
2523-
2524- b->yy_ch_buf = (char *)
2525- /* Include room in for 2 EOB chars. */
2526- yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2527- }
2528- else
2529- /* Can't grow it, we don't own it. */
2530- b->yy_ch_buf = 0;
2531-
2532- if ( ! b->yy_ch_buf )
2533- YY_FATAL_ERROR(
2534- "fatal error - scanner input buffer overflow" );
2535-
2536- (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2537-
2538- num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2539- number_to_move - 1;
2540-
2541- }
2542-
2543- if ( num_to_read > YY_READ_BUF_SIZE )
2544- num_to_read = YY_READ_BUF_SIZE;
2545-
2546- /* Read in more data. */
2547- YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2548- (yy_n_chars), num_to_read );
2549-
2550- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2551- }
2552-
2553- if ( (yy_n_chars) == 0 )
2554- {
2555- if ( number_to_move == YY_MORE_ADJ )
2556- {
2557- ret_val = EOB_ACT_END_OF_FILE;
2558- yyrestart(yyin );
2559- }
2560-
2561- else
2562- {
2563- ret_val = EOB_ACT_LAST_MATCH;
2564- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2565- YY_BUFFER_EOF_PENDING;
2566- }
2567- }
2568-
2569- else
2570- ret_val = EOB_ACT_CONTINUE_SCAN;
2571-
2572- (yy_n_chars) += number_to_move;
2573- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2574- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2575-
2576- (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2577-
2578- return ret_val;
2579-}
2580-
2581-/* yy_get_previous_state - get the state just before the EOB char was reached */
2582-
2583- static yy_state_type yy_get_previous_state (void)
2584-{
2585- register yy_state_type yy_current_state;
2586- register char *yy_cp;
2587-
2588- yy_current_state = (yy_start);
2589-
2590- for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2591- {
2592- register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2593- if ( yy_accept[yy_current_state] )
2594- {
2595- (yy_last_accepting_state) = yy_current_state;
2596- (yy_last_accepting_cpos) = yy_cp;
2597- }
2598- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2599- {
2600- yy_current_state = (int) yy_def[yy_current_state];
2601- if ( yy_current_state >= 399 )
2602- yy_c = yy_meta[(unsigned int) yy_c];
2603- }
2604- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2605- }
2606-
2607- return yy_current_state;
2608-}
2609-
2610-/* yy_try_NUL_trans - try to make a transition on the NUL character
2611- *
2612- * synopsis
2613- * next_state = yy_try_NUL_trans( current_state );
2614- */
2615- static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2616-{
2617- register int yy_is_jam;
2618- register char *yy_cp = (yy_c_buf_p);
2619-
2620- register YY_CHAR yy_c = 1;
2621- if ( yy_accept[yy_current_state] )
2622- {
2623- (yy_last_accepting_state) = yy_current_state;
2624- (yy_last_accepting_cpos) = yy_cp;
2625- }
2626- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2627- {
2628- yy_current_state = (int) yy_def[yy_current_state];
2629- if ( yy_current_state >= 399 )
2630- yy_c = yy_meta[(unsigned int) yy_c];
2631- }
2632- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2633- yy_is_jam = (yy_current_state == 398);
2634-
2635- return yy_is_jam ? 0 : yy_current_state;
2636-}
2637-
2638-#ifndef YY_NO_INPUT
2639-#ifdef __cplusplus
2640- static int yyinput (void)
2641-#else
2642- static int input (void)
2643-#endif
2644-
2645-{
2646- int c;
2647-
2648- *(yy_c_buf_p) = (yy_hold_char);
2649-
2650- if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2651- {
2652- /* yy_c_buf_p now points to the character we want to return.
2653- * If this occurs *before* the EOB characters, then it's a
2654- * valid NUL; if not, then we've hit the end of the buffer.
2655- */
2656- if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2657- /* This was really a NUL. */
2658- *(yy_c_buf_p) = '\0';
2659-
2660- else
2661- { /* need more input */
2662- int offset = (int)((yy_c_buf_p) - (yytext_ptr));
2663- ++(yy_c_buf_p);
2664-
2665- switch ( yy_get_next_buffer( ) )
2666- {
2667- case EOB_ACT_LAST_MATCH:
2668- /* This happens because yy_g_n_b()
2669- * sees that we've accumulated a
2670- * token and flags that we need to
2671- * try matching the token before
2672- * proceeding. But for input(),
2673- * there's no matching to consider.
2674- * So convert the EOB_ACT_LAST_MATCH
2675- * to EOB_ACT_END_OF_FILE.
2676- */
2677-
2678- /* Reset buffer status. */
2679- yyrestart(yyin );
2680-
2681- /*FALLTHROUGH*/
2682-
2683- case EOB_ACT_END_OF_FILE:
2684- {
2685- if ( yywrap( ) )
2686- return EOF;
2687-
2688- if ( ! (yy_did_buffer_switch_on_eof) )
2689- YY_NEW_FILE;
2690-#ifdef __cplusplus
2691- return yyinput();
2692-#else
2693- return input();
2694-#endif
2695- }
2696-
2697- case EOB_ACT_CONTINUE_SCAN:
2698- (yy_c_buf_p) = (yytext_ptr) + offset;
2699- break;
2700- }
2701- }
2702- }
2703-
2704- c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2705- *(yy_c_buf_p) = '\0'; /* preserve yytext */
2706- (yy_hold_char) = *++(yy_c_buf_p);
2707-
2708- return c;
2709-}
2710-#endif /* ifndef YY_NO_INPUT */
2711-
2712-/** Immediately switch to a different input stream.
2713- * @param input_file A readable stream.
2714- *
2715- * @note This function does not reset the start condition to @c INITIAL .
2716- */
2717- static void yyrestart (FILE * input_file )
2718-{
2719-
2720- if ( ! YY_CURRENT_BUFFER ){
2721- yyensure_buffer_stack ();
2722- YY_CURRENT_BUFFER_LVALUE =
2723- yy_create_buffer(yyin,YY_BUF_SIZE );
2724- }
2725-
2726- yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2727- yy_load_buffer_state( );
2728-}
2729-
2730-/** Switch to a different input buffer.
2731- * @param new_buffer The new input buffer.
2732- *
2733- */
2734- __attribute__((unused)) static void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2735-{
2736-
2737- /* TODO. We should be able to replace this entire function body
2738- * with
2739- * yypop_buffer_state();
2740- * yypush_buffer_state(new_buffer);
2741- */
2742- yyensure_buffer_stack ();
2743- if ( YY_CURRENT_BUFFER == new_buffer )
2744- return;
2745-
2746- if ( YY_CURRENT_BUFFER )
2747- {
2748- /* Flush out information for old buffer. */
2749- *(yy_c_buf_p) = (yy_hold_char);
2750- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2751- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2752- }
2753-
2754- YY_CURRENT_BUFFER_LVALUE = new_buffer;
2755- yy_load_buffer_state( );
2756-
2757- /* We don't actually know whether we did this switch during
2758- * EOF (yywrap()) processing, but the only time this flag
2759- * is looked at is after yywrap() is called, so it's safe
2760- * to go ahead and always set it.
2761- */
2762- (yy_did_buffer_switch_on_eof) = 1;
2763-}
2764-
2765-static void yy_load_buffer_state (void)
2766-{
2767- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2768- (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2769- yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2770- (yy_hold_char) = *(yy_c_buf_p);
2771-}
2772-
2773-/** Allocate and initialize an input buffer state.
2774- * @param file A readable stream.
2775- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2776- *
2777- * @return the allocated buffer state.
2778- */
2779- static YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
2780-{
2781- YY_BUFFER_STATE b;
2782-
2783- b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2784- if ( ! b )
2785- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2786-
2787- b->yy_buf_size = size;
2788-
2789- /* yy_ch_buf has to be 2 characters longer than the size given because
2790- * we need to put in 2 end-of-buffer characters.
2791- */
2792- b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
2793- if ( ! b->yy_ch_buf )
2794- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2795-
2796- b->yy_is_our_buffer = 1;
2797-
2798- yy_init_buffer(b,file );
2799-
2800- return b;
2801-}
2802-
2803-/** Destroy the buffer.
2804- * @param b a buffer created with yy_create_buffer()
2805- *
2806- */
2807- static void yy_delete_buffer (YY_BUFFER_STATE b )
2808-{
2809-
2810- if ( ! b )
2811- return;
2812-
2813- if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2814- YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2815-
2816- if ( b->yy_is_our_buffer )
2817- yyfree((void *) b->yy_ch_buf );
2818-
2819- yyfree((void *) b );
2820-}
2821-
2822-/* Initializes or reinitializes a buffer.
2823- * This function is sometimes called more than once on the same buffer,
2824- * such as during a yyrestart() or at EOF.
2825- */
2826- static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2827-
2828-{
2829- int oerrno = errno;
2830-
2831- yy_flush_buffer(b );
2832-
2833- b->yy_input_file = file;
2834- b->yy_fill_buffer = 1;
2835-
2836- /* If b is the current buffer, then yy_init_buffer was _probably_
2837- * called from yyrestart() or through yy_get_next_buffer.
2838- * In that case, we don't want to reset the lineno or column.
2839- */
2840- if (b != YY_CURRENT_BUFFER){
2841- b->yy_bs_lineno = 1;
2842- b->yy_bs_column = 0;
2843- }
2844-
2845- b->yy_is_interactive = 0;
2846-
2847- errno = oerrno;
2848-}
2849-
2850-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2851- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2852- *
2853- */
2854- static void yy_flush_buffer (YY_BUFFER_STATE b )
2855-{
2856- if ( ! b )
2857- return;
2858-
2859- b->yy_n_chars = 0;
2860-
2861- /* We always need two end-of-buffer characters. The first causes
2862- * a transition to the end-of-buffer state. The second causes
2863- * a jam in that state.
2864- */
2865- b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2866- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2867-
2868- b->yy_buf_pos = &b->yy_ch_buf[0];
2869-
2870- b->yy_at_bol = 1;
2871- b->yy_buffer_status = YY_BUFFER_NEW;
2872-
2873- if ( b == YY_CURRENT_BUFFER )
2874- yy_load_buffer_state( );
2875-}
2876-
2877-/** Pushes the new state onto the stack. The new state becomes
2878- * the current state. This function will allocate the stack
2879- * if necessary.
2880- * @param new_buffer The new state.
2881- *
2882- */
2883-__attribute__((unused)) static void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2884-{
2885- if (new_buffer == NULL)
2886- return;
2887-
2888- yyensure_buffer_stack();
2889-
2890- /* This block is copied from yy_switch_to_buffer. */
2891- if ( YY_CURRENT_BUFFER )
2892- {
2893- /* Flush out information for old buffer. */
2894- *(yy_c_buf_p) = (yy_hold_char);
2895- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2896- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2897- }
2898-
2899- /* Only push if top exists. Otherwise, replace top. */
2900- if (YY_CURRENT_BUFFER)
2901- (yy_buffer_stack_top)++;
2902- YY_CURRENT_BUFFER_LVALUE = new_buffer;
2903-
2904- /* copied from yy_switch_to_buffer. */
2905- yy_load_buffer_state( );
2906- (yy_did_buffer_switch_on_eof) = 1;
2907-}
2908-
2909-/** Removes and deletes the top of the stack, if present.
2910- * The next element becomes the new top.
2911- *
2912- */
2913-__attribute__((unused)) static void yypop_buffer_state (void)
2914-{
2915- if (!YY_CURRENT_BUFFER)
2916- return;
2917-
2918- yy_delete_buffer(YY_CURRENT_BUFFER );
2919- YY_CURRENT_BUFFER_LVALUE = NULL;
2920- if ((yy_buffer_stack_top) > 0)
2921- --(yy_buffer_stack_top);
2922-
2923- if (YY_CURRENT_BUFFER) {
2924- yy_load_buffer_state( );
2925- (yy_did_buffer_switch_on_eof) = 1;
2926- }
2927-}
2928-
2929-/* Allocates the stack if it does not exist.
2930- * Guarantees space for at least one push.
2931- */
2932-static void yyensure_buffer_stack (void)
2933-{
2934- int num_to_alloc;
2935-
2936- if (!(yy_buffer_stack)) {
2937-
2938- /* First allocation is just for 2 elements, since we don't know if this
2939- * scanner will even need a stack. We use 2 instead of 1 to avoid an
2940- * immediate realloc on the next call.
2941- */
2942- num_to_alloc = 1;
2943- (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2944- (num_to_alloc * sizeof(struct yy_buffer_state*)
2945- );
2946-
2947- memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2948-
2949- (yy_buffer_stack_max) = num_to_alloc;
2950- (yy_buffer_stack_top) = 0;
2951- return;
2952- }
2953-
2954- if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2955-
2956- /* Increase the buffer to prepare for a possible push. */
2957- int grow_size = 8 /* arbitrary grow size */;
2958-
2959- num_to_alloc = (yy_buffer_stack_max) + grow_size;
2960- (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2961- ((yy_buffer_stack),
2962- num_to_alloc * sizeof(struct yy_buffer_state*)
2963- );
2964-
2965- /* zero only the new slots.*/
2966- memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2967- (yy_buffer_stack_max) = num_to_alloc;
2968- }
2969-}
2970-
2971-#ifndef YY_EXIT_FAILURE
2972-#define YY_EXIT_FAILURE 2
2973-#endif
2974-
2975-static void yy_fatal_error (yyconst char* msg )
2976-{
2977- (void) fprintf( stderr, "%s\n", msg );
2978- exit( YY_EXIT_FAILURE );
2979-}
2980-
2981-/* Redefine yyless() so it works in section 3 code. */
2982-
2983-#undef yyless
2984-#define yyless(n) \
2985- do \
2986- { \
2987- /* Undo effects of setting up yytext. */ \
2988- int yyless_macro_arg = (n); \
2989- YY_LESS_LINENO(yyless_macro_arg);\
2990- yytext[yyleng] = (yy_hold_char); \
2991- (yy_c_buf_p) = yytext + yyless_macro_arg; \
2992- (yy_hold_char) = *(yy_c_buf_p); \
2993- *(yy_c_buf_p) = '\0'; \
2994- yyleng = yyless_macro_arg; \
2995- } \
2996- while ( 0 )
2997-
2998-/* Accessor methods (get/set functions) to struct members. */
2999-
3000-/** Get the current line number.
3001- *
3002- */
3003-__attribute__((unused)) static int yyget_lineno (void)
3004-{
3005-
3006- return yylineno;
3007-}
3008-
3009-/** Get the input stream.
3010- *
3011- */
3012-__attribute__((unused)) static FILE *yyget_in (void)
3013-{
3014- return yyin;
3015-}
3016-
3017-/** Get the output stream.
3018- *
3019- */
3020-__attribute__((unused)) static FILE *yyget_out (void)
3021-{
3022- return yyout;
3023-}
3024-
3025-/** Get the length of the current token.
3026- *
3027- */
3028-__attribute__((unused)) static int yyget_leng (void)
3029-{
3030- return yyleng;
3031-}
3032-
3033-/** Get the current token.
3034- *
3035- */
3036-
3037-__attribute__((unused)) static char *yyget_text (void)
3038-{
3039- return yytext;
3040-}
3041-
3042-/** Set the current line number.
3043- * @param line_number
3044- *
3045- */
3046-__attribute__((unused)) static void yyset_lineno (int line_number )
3047-{
3048-
3049- yylineno = line_number;
3050-}
3051-
3052-/** Set the input stream. This does not discard the current
3053- * input buffer.
3054- * @param in_str A readable stream.
3055- *
3056- * @see yy_switch_to_buffer
3057- */
3058-__attribute__((unused)) static void yyset_in (FILE * in_str )
3059-{
3060- yyin = in_str ;
3061-}
3062-
3063-__attribute__((unused)) static void yyset_out (FILE * out_str )
3064-{
3065- yyout = out_str ;
3066-}
3067-
3068-__attribute__((unused)) static int yyget_debug (void)
3069-{
3070- return yy_flex_debug;
3071-}
3072-
3073-__attribute__((unused)) static void yyset_debug (int bdebug )
3074-{
3075- yy_flex_debug = bdebug ;
3076-}
3077-
3078-/* yylex_destroy is for both reentrant and non-reentrant scanners. */
3079-__attribute__((unused)) static int yylex_destroy (void)
3080-{
3081-
3082- /* Pop the buffer stack, destroying each element. */
3083- while(YY_CURRENT_BUFFER){
3084- yy_delete_buffer(YY_CURRENT_BUFFER );
3085- YY_CURRENT_BUFFER_LVALUE = NULL;
3086- yypop_buffer_state();
3087- }
3088-
3089- /* Destroy the stack itself. */
3090- yyfree((yy_buffer_stack) );
3091- (yy_buffer_stack) = NULL;
3092-
3093- return 0;
3094-}
3095-
3096-/*
3097- * Internal utility routines.
3098- */
3099-
3100-#ifndef yytext_ptr
3101-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3102-{
3103- register int i;
3104- for ( i = 0; i < n; ++i )
3105- s1[i] = s2[i];
3106-}
3107-#endif
3108-
3109-#ifdef YY_NEED_STRLEN
3110-static int yy_flex_strlen (yyconst char * s )
3111-{
3112- register int n;
3113- for ( n = 0; s[n]; ++n )
3114- ;
3115-
3116- return n;
3117-}
3118-#endif
3119-
3120-static void *yyalloc (yy_size_t size )
3121-{
3122- return (void *) malloc( size );
3123-}
3124-
3125-static void *yyrealloc (void * ptr, yy_size_t size )
3126-{
3127- /* The cast to (char *) in the following accommodates both
3128- * implementations that use char* generic pointers, and those
3129- * that use void* generic pointers. It works with the latter
3130- * because both ANSI C and C++ allow castless assignment from
3131- * any pointer type to void*, and deal with argument conversions
3132- * as though doing an assignment.
3133- */
3134- return (void *) realloc( (char *) ptr, size );
3135-}
3136-
3137-static void yyfree (void * ptr )
3138-{
3139- free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
3140-}
3141-
3142-#define YYTABLES_NAME "yytables"
3143-
3144-#undef YY_NEW_FILE
3145-#undef YY_FLUSH_BUFFER
3146-#undef yy_set_bol
3147-#undef yy_new_buffer
3148-#undef yy_set_interactive
3149-#undef yytext_ptr
3150-#undef YY_DO_BEFORE_ACTION
3151-
3152-#ifdef YY_DECL_IS_OURS
3153-#undef YY_DECL_IS_OURS
3154-#undef YY_DECL
3155-#endif
3156-#line 648 "pars0lex.l"
3157-
3158-
3159-
3160
3161=== removed file 'plugin/innobase/pars/make_bison.sh'
3162--- plugin/innobase/pars/make_bison.sh 2009-03-12 22:30:11 +0000
3163+++ plugin/innobase/pars/make_bison.sh 1970-01-01 00:00:00 +0000
3164@@ -1,32 +0,0 @@
3165-#!/bin/bash
3166-#
3167-# Copyright (c) 2006, 2009, Innobase Oy. All Rights Reserved.
3168-#
3169-# This program is free software; you can redistribute it and/or modify it under
3170-# the terms of the GNU General Public License as published by the Free Software
3171-# Foundation; version 2 of the License.
3172-#
3173-# This program is distributed in the hope that it will be useful, but WITHOUT
3174-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
3175-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
3176-#
3177-# You should have received a copy of the GNU General Public License along with
3178-# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
3179-# Place, Suite 330, Boston, MA 02111-1307 USA
3180-#
3181-# generate parser files from bison input files.
3182-
3183-set -eu
3184-TMPFILE=pars0grm.tab.c
3185-OUTFILE=pars0grm.c
3186-
3187-bison -d pars0grm.y
3188-mv pars0grm.tab.h ../include/pars0grm.h
3189-
3190-sed -e '
3191-s/'"$TMPFILE"'/'"$OUTFILE"'/;
3192-s/^\(\(YYSTYPE\|int\) yy\(char\|nerrs\)\)/static \1/;
3193-s/\(\(YYSTYPE\|int\) yy\(lval\|parse\)\)/UNIV_INTERN \1/;
3194-' < "$TMPFILE" > "$OUTFILE"
3195-
3196-rm "$TMPFILE"
3197
3198=== removed file 'plugin/innobase/pars/make_flex.sh'
3199--- plugin/innobase/pars/make_flex.sh 2009-03-12 22:30:11 +0000
3200+++ plugin/innobase/pars/make_flex.sh 1970-01-01 00:00:00 +0000
3201@@ -1,48 +0,0 @@
3202-#!/bin/bash
3203-#
3204-# Copyright (c) 2006, 2009, Innobase Oy. All Rights Reserved.
3205-#
3206-# This program is free software; you can redistribute it and/or modify it under
3207-# the terms of the GNU General Public License as published by the Free Software
3208-# Foundation; version 2 of the License.
3209-#
3210-# This program is distributed in the hope that it will be useful, but WITHOUT
3211-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
3212-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
3213-#
3214-# You should have received a copy of the GNU General Public License along with
3215-# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
3216-# Place, Suite 330, Boston, MA 02111-1307 USA
3217-#
3218-# generate lexer files from flex input files.
3219-
3220-set -eu
3221-
3222-TMPFILE=_flex_tmp.c
3223-OUTFILE=lexyy.c
3224-
3225-flex -o $TMPFILE pars0lex.l
3226-
3227-# AIX needs its includes done in a certain order, so include "univ.i" first
3228-# to be sure we get it right.
3229-echo '#include "univ.i"' > $OUTFILE
3230-
3231-# flex assigns a pointer to an int in one place without a cast, resulting in
3232-# a warning on Win64. Add the cast. Also define some symbols as static.
3233-sed -e '
3234-s/'"$TMPFILE"'/'"$OUTFILE"'/;
3235-s/\(int offset = \)\((yy_c_buf_p) - (yytext_ptr)\);/\1(int)(\2);/;
3236-s/\(void yy\(restart\|_\(delete\|flush\)_buffer\)\)/static \1/;
3237-s/\(void yy_switch_to_buffer\)/__attribute__((unused)) static \1/;
3238-s/\(void yy\(push\|pop\)_buffer_state\)/__attribute__((unused)) static \1/;
3239-s/\(YY_BUFFER_STATE yy_create_buffer\)/static \1/;
3240-s/\(\(int\|void\) yy[gs]et_\)/__attribute__((unused)) static \1/;
3241-s/\(void \*\?yy\(\(re\)\?alloc\|free\)\)/static \1/;
3242-s/\(extern \)\?\(int yy\(leng\|lineno\|_flex_debug\)\)/static \2/;
3243-s/\(int yylex_destroy\)/__attribute__((unused)) static \1/;
3244-s/\(extern \)\?\(int yylex \)/UNIV_INTERN \2/;
3245-s/^\(\(FILE\|char\) *\* *yyget\)/__attribute__((unused)) static \1/;
3246-s/^\(extern \)\?\(\(FILE\|char\) *\* *yy\)/static \2/;
3247-' < $TMPFILE >> $OUTFILE
3248-
3249-rm $TMPFILE
3250
3251=== removed file 'plugin/innobase/pars/pars0grm.c'
3252--- plugin/innobase/pars/pars0grm.c 2009-03-12 23:13:55 +0000
3253+++ plugin/innobase/pars/pars0grm.c 1970-01-01 00:00:00 +0000
3254@@ -1,2584 +0,0 @@
3255-/*****************************************************************************
3256-
3257-Copyright (c) 1995, 2009, Innobase Oy. All Rights Reserved.
3258-Copyright (c) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software
3259-Foundation, Inc.
3260-
3261-As a special exception, when this file is copied by Bison into a
3262-Bison output file, you may use that output file without restriction.
3263-This special exception was added by the Free Software Foundation
3264-in version 1.24 of Bison.
3265-
3266-This program is free software; you can redistribute it and/or modify it under
3267-the terms of the GNU General Public License as published by the Free Software
3268-Foundation; version 2 of the License.
3269-
3270-This program is distributed in the hope that it will be useful, but WITHOUT
3271-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
3272-FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
3273-
3274-You should have received a copy of the GNU General Public License along with
3275-this program; if not, write to the Free Software Foundation, Inc., 59 Temple
3276-Place, Suite 330, Boston, MA 02111-1307 USA
3277-
3278-*****************************************************************************/
3279-
3280-/* A Bison parser, made by GNU Bison 2.0. */
3281-
3282-/* Written by Richard Stallman by simplifying the original so called
3283- ``semantic'' parser. */
3284-
3285-/* All symbols defined below should begin with yy or YY, to avoid
3286- infringing on user name space. This should be done even for local
3287- variables, as they might otherwise be expanded by user macros.
3288- There are some unavoidable exceptions within include files to
3289- define necessary library symbols; they are noted "INFRINGES ON
3290- USER NAME SPACE" below. */
3291-
3292-/* Identify Bison output. */
3293-#define YYBISON 1
3294-
3295-/* Skeleton name. */
3296-#define YYSKELETON_NAME "yacc.c"
3297-
3298-/* Pure parsers. */
3299-#define YYPURE 0
3300-
3301-/* Using locations. */
3302-#define YYLSP_NEEDED 0
3303-
3304-
3305-
3306-/* Tokens. */
3307-#ifndef YYTOKENTYPE
3308-# define YYTOKENTYPE
3309- /* Put the tokens into the symbol table, so that GDB and other debuggers
3310- know about them. */
3311- enum yytokentype {
3312- PARS_INT_LIT = 258,
3313- PARS_FLOAT_LIT = 259,
3314- PARS_STR_LIT = 260,
3315- PARS_FIXBINARY_LIT = 261,
3316- PARS_BLOB_LIT = 262,
3317- PARS_NULL_LIT = 263,
3318- PARS_ID_TOKEN = 264,
3319- PARS_AND_TOKEN = 265,
3320- PARS_OR_TOKEN = 266,
3321- PARS_NOT_TOKEN = 267,
3322- PARS_GE_TOKEN = 268,
3323- PARS_LE_TOKEN = 269,
3324- PARS_NE_TOKEN = 270,
3325- PARS_PROCEDURE_TOKEN = 271,
3326- PARS_IN_TOKEN = 272,
3327- PARS_OUT_TOKEN = 273,
3328- PARS_BINARY_TOKEN = 274,
3329- PARS_BLOB_TOKEN = 275,
3330- PARS_INT_TOKEN = 276,
3331- PARS_INTEGER_TOKEN = 277,
3332- PARS_FLOAT_TOKEN = 278,
3333- PARS_CHAR_TOKEN = 279,
3334- PARS_IS_TOKEN = 280,
3335- PARS_BEGIN_TOKEN = 281,
3336- PARS_END_TOKEN = 282,
3337- PARS_IF_TOKEN = 283,
3338- PARS_THEN_TOKEN = 284,
3339- PARS_ELSE_TOKEN = 285,
3340- PARS_ELSIF_TOKEN = 286,
3341- PARS_LOOP_TOKEN = 287,
3342- PARS_WHILE_TOKEN = 288,
3343- PARS_RETURN_TOKEN = 289,
3344- PARS_SELECT_TOKEN = 290,
3345- PARS_SUM_TOKEN = 291,
3346- PARS_COUNT_TOKEN = 292,
3347- PARS_DISTINCT_TOKEN = 293,
3348- PARS_FROM_TOKEN = 294,
3349- PARS_WHERE_TOKEN = 295,
3350- PARS_FOR_TOKEN = 296,
3351- PARS_DDOT_TOKEN = 297,
3352- PARS_READ_TOKEN = 298,
3353- PARS_ORDER_TOKEN = 299,
3354- PARS_BY_TOKEN = 300,
3355- PARS_ASC_TOKEN = 301,
3356- PARS_DESC_TOKEN = 302,
3357- PARS_INSERT_TOKEN = 303,
3358- PARS_INTO_TOKEN = 304,
3359- PARS_VALUES_TOKEN = 305,
3360- PARS_UPDATE_TOKEN = 306,
3361- PARS_SET_TOKEN = 307,
3362- PARS_DELETE_TOKEN = 308,
3363- PARS_CURRENT_TOKEN = 309,
3364- PARS_OF_TOKEN = 310,
3365- PARS_CREATE_TOKEN = 311,
3366- PARS_TABLE_TOKEN = 312,
3367- PARS_INDEX_TOKEN = 313,
3368- PARS_UNIQUE_TOKEN = 314,
3369- PARS_CLUSTERED_TOKEN = 315,
3370- PARS_DOES_NOT_FIT_IN_MEM_TOKEN = 316,
3371- PARS_ON_TOKEN = 317,
3372- PARS_ASSIGN_TOKEN = 318,
3373- PARS_DECLARE_TOKEN = 319,
3374- PARS_CURSOR_TOKEN = 320,
3375- PARS_SQL_TOKEN = 321,
3376- PARS_OPEN_TOKEN = 322,
3377- PARS_FETCH_TOKEN = 323,
3378- PARS_CLOSE_TOKEN = 324,
3379- PARS_NOTFOUND_TOKEN = 325,
3380- PARS_TO_CHAR_TOKEN = 326,
3381- PARS_TO_NUMBER_TOKEN = 327,
3382- PARS_TO_BINARY_TOKEN = 328,
3383- PARS_BINARY_TO_NUMBER_TOKEN = 329,
3384- PARS_SUBSTR_TOKEN = 330,
3385- PARS_REPLSTR_TOKEN = 331,
3386- PARS_CONCAT_TOKEN = 332,
3387- PARS_INSTR_TOKEN = 333,
3388- PARS_LENGTH_TOKEN = 334,
3389- PARS_SYSDATE_TOKEN = 335,
3390- PARS_PRINTF_TOKEN = 336,
3391- PARS_ASSERT_TOKEN = 337,
3392- PARS_RND_TOKEN = 338,
3393- PARS_RND_STR_TOKEN = 339,
3394- PARS_ROW_PRINTF_TOKEN = 340,
3395- PARS_COMMIT_TOKEN = 341,
3396- PARS_ROLLBACK_TOKEN = 342,
3397- PARS_WORK_TOKEN = 343,
3398- PARS_UNSIGNED_TOKEN = 344,
3399- PARS_EXIT_TOKEN = 345,
3400- PARS_FUNCTION_TOKEN = 346,
3401- PARS_LOCK_TOKEN = 347,
3402- PARS_SHARE_TOKEN = 348,
3403- PARS_MODE_TOKEN = 349,
3404- NEG = 350
3405- };
3406-#endif
3407-#define PARS_INT_LIT 258
3408-#define PARS_FLOAT_LIT 259
3409-#define PARS_STR_LIT 260
3410-#define PARS_FIXBINARY_LIT 261
3411-#define PARS_BLOB_LIT 262
3412-#define PARS_NULL_LIT 263
3413-#define PARS_ID_TOKEN 264
3414-#define PARS_AND_TOKEN 265
3415-#define PARS_OR_TOKEN 266
3416-#define PARS_NOT_TOKEN 267
3417-#define PARS_GE_TOKEN 268
3418-#define PARS_LE_TOKEN 269
3419-#define PARS_NE_TOKEN 270
3420-#define PARS_PROCEDURE_TOKEN 271
3421-#define PARS_IN_TOKEN 272
3422-#define PARS_OUT_TOKEN 273
3423-#define PARS_BINARY_TOKEN 274
3424-#define PARS_BLOB_TOKEN 275
3425-#define PARS_INT_TOKEN 276
3426-#define PARS_INTEGER_TOKEN 277
3427-#define PARS_FLOAT_TOKEN 278
3428-#define PARS_CHAR_TOKEN 279
3429-#define PARS_IS_TOKEN 280
3430-#define PARS_BEGIN_TOKEN 281
3431-#define PARS_END_TOKEN 282
3432-#define PARS_IF_TOKEN 283
3433-#define PARS_THEN_TOKEN 284
3434-#define PARS_ELSE_TOKEN 285
3435-#define PARS_ELSIF_TOKEN 286
3436-#define PARS_LOOP_TOKEN 287
3437-#define PARS_WHILE_TOKEN 288
3438-#define PARS_RETURN_TOKEN 289
3439-#define PARS_SELECT_TOKEN 290
3440-#define PARS_SUM_TOKEN 291
3441-#define PARS_COUNT_TOKEN 292
3442-#define PARS_DISTINCT_TOKEN 293
3443-#define PARS_FROM_TOKEN 294
3444-#define PARS_WHERE_TOKEN 295
3445-#define PARS_FOR_TOKEN 296
3446-#define PARS_DDOT_TOKEN 297
3447-#define PARS_READ_TOKEN 298
3448-#define PARS_ORDER_TOKEN 299
3449-#define PARS_BY_TOKEN 300
3450-#define PARS_ASC_TOKEN 301
3451-#define PARS_DESC_TOKEN 302
3452-#define PARS_INSERT_TOKEN 303
3453-#define PARS_INTO_TOKEN 304
3454-#define PARS_VALUES_TOKEN 305
3455-#define PARS_UPDATE_TOKEN 306
3456-#define PARS_SET_TOKEN 307
3457-#define PARS_DELETE_TOKEN 308
3458-#define PARS_CURRENT_TOKEN 309
3459-#define PARS_OF_TOKEN 310
3460-#define PARS_CREATE_TOKEN 311
3461-#define PARS_TABLE_TOKEN 312
3462-#define PARS_INDEX_TOKEN 313
3463-#define PARS_UNIQUE_TOKEN 314
3464-#define PARS_CLUSTERED_TOKEN 315
3465-#define PARS_DOES_NOT_FIT_IN_MEM_TOKEN 316
3466-#define PARS_ON_TOKEN 317
3467-#define PARS_ASSIGN_TOKEN 318
3468-#define PARS_DECLARE_TOKEN 319
3469-#define PARS_CURSOR_TOKEN 320
3470-#define PARS_SQL_TOKEN 321
3471-#define PARS_OPEN_TOKEN 322
3472-#define PARS_FETCH_TOKEN 323
3473-#define PARS_CLOSE_TOKEN 324
3474-#define PARS_NOTFOUND_TOKEN 325
3475-#define PARS_TO_CHAR_TOKEN 326
3476-#define PARS_TO_NUMBER_TOKEN 327
3477-#define PARS_TO_BINARY_TOKEN 328
3478-#define PARS_BINARY_TO_NUMBER_TOKEN 329
3479-#define PARS_SUBSTR_TOKEN 330
3480-#define PARS_REPLSTR_TOKEN 331
3481-#define PARS_CONCAT_TOKEN 332
3482-#define PARS_INSTR_TOKEN 333
3483-#define PARS_LENGTH_TOKEN 334
3484-#define PARS_SYSDATE_TOKEN 335
3485-#define PARS_PRINTF_TOKEN 336
3486-#define PARS_ASSERT_TOKEN 337
3487-#define PARS_RND_TOKEN 338
3488-#define PARS_RND_STR_TOKEN 339
3489-#define PARS_ROW_PRINTF_TOKEN 340
3490-#define PARS_COMMIT_TOKEN 341
3491-#define PARS_ROLLBACK_TOKEN 342
3492-#define PARS_WORK_TOKEN 343
3493-#define PARS_UNSIGNED_TOKEN 344
3494-#define PARS_EXIT_TOKEN 345
3495-#define PARS_FUNCTION_TOKEN 346
3496-#define PARS_LOCK_TOKEN 347
3497-#define PARS_SHARE_TOKEN 348
3498-#define PARS_MODE_TOKEN 349
3499-#define NEG 350
3500-
3501-
3502-
3503-
3504-/* Copy the first part of user declarations. */
3505-#line 13 "pars0grm.y"
3506-
3507-/* The value of the semantic attribute is a pointer to a query tree node
3508-que_node_t */
3509-
3510-#include "univ.i"
3511-#include <math.h> /* Can't be before univ.i */
3512-#include "pars0pars.h"
3513-#include "mem0mem.h"
3514-#include "que0types.h"
3515-#include "que0que.h"
3516-#include "row0sel.h"
3517-
3518-#define YYSTYPE que_node_t*
3519-
3520-/* #define __STDC__ */
3521-
3522-int
3523-yylex(void);
3524-
3525-
3526-/* Enabling traces. */
3527-#ifndef YYDEBUG
3528-# define YYDEBUG 0
3529-#endif
3530-
3531-/* Enabling verbose error messages. */
3532-#ifdef YYERROR_VERBOSE
3533-# undef YYERROR_VERBOSE
3534-# define YYERROR_VERBOSE 1
3535-#else
3536-# define YYERROR_VERBOSE 0
3537-#endif
3538-
3539-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
3540-typedef int YYSTYPE;
3541-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
3542-# define YYSTYPE_IS_DECLARED 1
3543-# define YYSTYPE_IS_TRIVIAL 1
3544-#endif
3545-
3546-
3547-
3548-/* Copy the second part of user declarations. */
3549-
3550-
3551-/* Line 213 of yacc.c. */
3552-#line 297 "pars0grm.c"
3553-
3554-#if ! defined (yyoverflow) || YYERROR_VERBOSE
3555-
3556-# ifndef YYFREE
3557-# define YYFREE free
3558-# endif
3559-# ifndef YYMALLOC
3560-# define YYMALLOC malloc
3561-# endif
3562-
3563-/* The parser invokes alloca or malloc; define the necessary symbols. */
3564-
3565-# ifdef YYSTACK_USE_ALLOCA
3566-# if YYSTACK_USE_ALLOCA
3567-# ifdef __GNUC__
3568-# define YYSTACK_ALLOC __builtin_alloca
3569-# else
3570-# define YYSTACK_ALLOC alloca
3571-# endif
3572-# endif
3573-# endif
3574-
3575-# ifdef YYSTACK_ALLOC
3576- /* Pacify GCC's `empty if-body' warning. */
3577-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
3578-# else
3579-# if defined (__STDC__) || defined (__cplusplus)
3580-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
3581-# define YYSIZE_T size_t
3582-# endif
3583-# define YYSTACK_ALLOC YYMALLOC
3584-# define YYSTACK_FREE YYFREE
3585-# endif
3586-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
3587-
3588-
3589-#if (! defined (yyoverflow) \
3590- && (! defined (__cplusplus) \
3591- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
3592-
3593-/* A type that is properly aligned for any stack member. */
3594-union yyalloc
3595-{
3596- short int yyss;
3597- YYSTYPE yyvs;
3598- };
3599-
3600-/* The size of the maximum gap between one aligned stack and the next. */
3601-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
3602-
3603-/* The size of an array large to enough to hold all stacks, each with
3604- N elements. */
3605-# define YYSTACK_BYTES(N) \
3606- ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
3607- + YYSTACK_GAP_MAXIMUM)
3608-
3609-/* Copy COUNT objects from FROM to TO. The source and destination do
3610- not overlap. */
3611-# ifndef YYCOPY
3612-# if defined (__GNUC__) && 1 < __GNUC__
3613-# define YYCOPY(To, From, Count) \
3614- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
3615-# else
3616-# define YYCOPY(To, From, Count) \
3617- do \
3618- { \
3619- register YYSIZE_T yyi; \
3620- for (yyi = 0; yyi < (Count); yyi++) \
3621- (To)[yyi] = (From)[yyi]; \
3622- } \
3623- while (0)
3624-# endif
3625-# endif
3626-
3627-/* Relocate STACK from its old location to the new one. The
3628- local variables YYSIZE and YYSTACKSIZE give the old and new number of
3629- elements in the stack, and YYPTR gives the new location of the
3630- stack. Advance YYPTR to a properly aligned location for the next
3631- stack. */
3632-# define YYSTACK_RELOCATE(Stack) \
3633- do \
3634- { \
3635- YYSIZE_T yynewbytes; \
3636- YYCOPY (&yyptr->Stack, Stack, yysize); \
3637- Stack = &yyptr->Stack; \
3638- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
3639- yyptr += yynewbytes / sizeof (*yyptr); \
3640- } \
3641- while (0)
3642-
3643-#endif
3644-
3645-#if defined (__STDC__) || defined (__cplusplus)
3646- typedef signed char yysigned_char;
3647-#else
3648- typedef short int yysigned_char;
3649-#endif
3650-
3651-/* YYFINAL -- State number of the termination state. */
3652-#define YYFINAL 5
3653-/* YYLAST -- Last index in YYTABLE. */
3654-#define YYLAST 752
3655-
3656-/* YYNTOKENS -- Number of terminals. */
3657-#define YYNTOKENS 111
3658-/* YYNNTS -- Number of nonterminals. */
3659-#define YYNNTS 70
3660-/* YYNRULES -- Number of rules. */
3661-#define YYNRULES 175
3662-/* YYNRULES -- Number of states. */
3663-#define YYNSTATES 339
3664-
3665-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
3666-#define YYUNDEFTOK 2
3667-#define YYMAXUTOK 350
3668-
3669-#define YYTRANSLATE(YYX) \
3670- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
3671-
3672-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
3673-static const unsigned char yytranslate[] =
3674-{
3675- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3676- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3677- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3678- 2, 2, 2, 2, 2, 2, 2, 103, 2, 2,
3679- 105, 106, 100, 99, 108, 98, 2, 101, 2, 2,
3680- 2, 2, 2, 2, 2, 2, 2, 2, 2, 104,
3681- 96, 95, 97, 107, 2, 2, 2, 2, 2, 2,
3682- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3683- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3684- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3685- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3686- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3687- 2, 2, 2, 109, 2, 110, 2, 2, 2, 2,
3688- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3689- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3690- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3691- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3692- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3693- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3694- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3695- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3696- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3697- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3698- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3699- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3700- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
3701- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3702- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3703- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
3704- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
3705- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3706- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3707- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3708- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3709- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
3710- 102
3711-};
3712-
3713-#if YYDEBUG
3714-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
3715- YYRHS. */
3716-static const unsigned short int yyprhs[] =
3717-{
3718- 0, 0, 3, 6, 8, 11, 14, 17, 20, 23,
3719- 26, 29, 32, 35, 38, 41, 44, 47, 50, 53,
3720- 56, 59, 62, 65, 68, 71, 73, 76, 78, 83,
3721- 85, 87, 89, 91, 93, 95, 97, 101, 105, 109,
3722- 113, 116, 120, 124, 128, 132, 136, 140, 144, 148,
3723- 152, 155, 159, 163, 165, 167, 169, 171, 173, 175,
3724- 177, 179, 181, 183, 185, 186, 188, 192, 199, 204,
3725- 206, 208, 210, 214, 216, 220, 221, 223, 227, 228,
3726- 230, 234, 236, 241, 247, 252, 253, 255, 259, 261,
3727- 265, 267, 268, 271, 272, 275, 276, 281, 282, 284,
3728- 286, 287, 292, 301, 305, 311, 314, 318, 320, 324,
3729- 329, 334, 337, 340, 344, 347, 350, 353, 357, 362,
3730- 364, 367, 368, 371, 373, 381, 388, 399, 401, 403,
3731- 406, 409, 414, 419, 425, 427, 431, 432, 436, 437,
3732- 439, 440, 443, 444, 446, 454, 456, 460, 461, 463,
3733- 464, 466, 477, 480, 483, 485, 487, 489, 491, 493,
3734- 497, 501, 502, 504, 508, 512, 513, 515, 518, 525,
3735- 530, 532, 534, 535, 537, 540
3736-};
3737-
3738-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
3739-static const short int yyrhs[] =
3740-{
3741- 112, 0, -1, 180, 104, -1, 118, -1, 119, 104,
3742- -1, 151, 104, -1, 152, 104, -1, 153, 104, -1,
3743- 150, 104, -1, 154, 104, -1, 146, 104, -1, 133,
3744- 104, -1, 135, 104, -1, 145, 104, -1, 143, 104,
3745- -1, 144, 104, -1, 140, 104, -1, 141, 104, -1,
3746- 155, 104, -1, 157, 104, -1, 156, 104, -1, 169,
3747- 104, -1, 170, 104, -1, 164, 104, -1, 168, 104,
3748- -1, 113, -1, 114, 113, -1, 9, -1, 116, 105,
3749- 124, 106, -1, 3, -1, 4, -1, 5, -1, 6,
3750- -1, 7, -1, 8, -1, 66, -1, 115, 99, 115,
3751- -1, 115, 98, 115, -1, 115, 100, 115, -1, 115,
3752- 101, 115, -1, 98, 115, -1, 105, 115, 106, -1,
3753- 115, 95, 115, -1, 115, 96, 115, -1, 115, 97,
3754- 115, -1, 115, 13, 115, -1, 115, 14, 115, -1,
3755- 115, 15, 115, -1, 115, 10, 115, -1, 115, 11,
3756- 115, -1, 12, 115, -1, 9, 103, 70, -1, 66,
3757- 103, 70, -1, 71, -1, 72, -1, 73, -1, 74,
3758- -1, 75, -1, 77, -1, 78, -1, 79, -1, 80,
3759- -1, 83, -1, 84, -1, -1, 107, -1, 117, 108,
3760- 107, -1, 109, 9, 105, 117, 106, 110, -1, 120,
3761- 105, 124, 106, -1, 76, -1, 81, -1, 82, -1,
3762- 9, 105, 106, -1, 9, -1, 122, 108, 9, -1,
3763- -1, 9, -1, 123, 108, 9, -1, -1, 115, -1,
3764- 124, 108, 115, -1, 115, -1, 37, 105, 100, 106,
3765- -1, 37, 105, 38, 9, 106, -1, 36, 105, 115,
3766- 106, -1, -1, 125, -1, 126, 108, 125, -1, 100,
3767- -1, 126, 49, 123, -1, 126, -1, -1, 40, 115,
3768- -1, -1, 41, 51, -1, -1, 92, 17, 93, 94,
3769- -1, -1, 46, -1, 47, -1, -1, 44, 45, 9,
3770- 131, -1, 35, 127, 39, 122, 128, 129, 130, 132,
3771- -1, 48, 49, 9, -1, 134, 50, 105, 124, 106,
3772- -1, 134, 133, -1, 9, 95, 115, -1, 136, -1,
3773- 137, 108, 136, -1, 40, 54, 55, 9, -1, 51,
3774- 9, 52, 137, -1, 139, 128, -1, 139, 138, -1,
3775- 53, 39, 9, -1, 142, 128, -1, 142, 138, -1,
3776- 85, 133, -1, 9, 63, 115, -1, 31, 115, 29,
3777- 114, -1, 147, -1, 148, 147, -1, -1, 30, 114,
3778- -1, 148, -1, 28, 115, 29, 114, 149, 27, 28,
3779- -1, 33, 115, 32, 114, 27, 32, -1, 41, 9,
3780- 17, 115, 42, 115, 32, 114, 27, 32, -1, 90,
3781- -1, 34, -1, 67, 9, -1, 69, 9, -1, 68,
3782- 9, 49, 123, -1, 68, 9, 49, 121, -1, 9,
3783- 171, 160, 161, 162, -1, 158, -1, 159, 108, 158,
3784- -1, -1, 105, 3, 106, -1, -1, 89, -1, -1,
3785- 12, 8, -1, -1, 61, -1, 56, 57, 9, 105,
3786- 159, 106, 163, -1, 9, -1, 165, 108, 9, -1,
3787- -1, 59, -1, -1, 60, -1, 56, 166, 167, 58,
3788- 9, 62, 9, 105, 165, 106, -1, 86, 88, -1,
3789- 87, 88, -1, 21, -1, 22, -1, 24, -1, 19,
3790- -1, 20, -1, 9, 17, 171, -1, 9, 18, 171,
3791- -1, -1, 172, -1, 173, 108, 172, -1, 9, 171,
3792- 104, -1, -1, 174, -1, 175, 174, -1, 64, 65,
3793- 9, 25, 133, 104, -1, 64, 91, 9, 104, -1,
3794- 176, -1, 177, -1, -1, 178, -1, 179, 178, -1,
3795- 16, 9, 105, 173, 106, 25, 175, 179, 26, 114,
3796- 27, -1
3797-};
3798-
3799-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
3800-static const unsigned short int yyrline[] =
3801-{
3802- 0, 138, 138, 141, 142, 143, 144, 145, 146, 147,
3803- 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3804- 158, 159, 160, 161, 162, 166, 167, 172, 173, 175,
3805- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
3806- 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
3807- 196, 197, 199, 204, 205, 206, 207, 209, 210, 211,
3808- 212, 213, 214, 215, 218, 220, 221, 225, 230, 235,
3809- 236, 237, 241, 245, 246, 251, 252, 253, 258, 259,
3810- 260, 264, 265, 270, 276, 283, 284, 285, 290, 292,
3811- 294, 298, 299, 303, 304, 309, 310, 315, 316, 317,
3812- 321, 322, 327, 337, 342, 344, 349, 353, 354, 359,
3813- 365, 372, 377, 382, 388, 393, 398, 403, 408, 414,
3814- 415, 420, 421, 423, 427, 434, 440, 448, 452, 456,
3815- 462, 468, 470, 475, 480, 481, 486, 487, 492, 493,
3816- 499, 500, 506, 507, 513, 519, 520, 525, 526, 530,
3817- 531, 535, 543, 548, 553, 554, 555, 556, 557, 561,
3818- 564, 570, 571, 572, 577, 581, 583, 584, 588, 594,
3819- 599, 600, 603, 605, 606, 610
3820-};
3821-#endif
3822-
3823-#if YYDEBUG || YYERROR_VERBOSE
3824-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
3825- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
3826-static const char *const yytname[] =
3827-{
3828- "$end", "error", "$undefined", "PARS_INT_LIT", "PARS_FLOAT_LIT",
3829- "PARS_STR_LIT", "PARS_FIXBINARY_LIT", "PARS_BLOB_LIT", "PARS_NULL_LIT",
3830- "PARS_ID_TOKEN", "PARS_AND_TOKEN", "PARS_OR_TOKEN", "PARS_NOT_TOKEN",
3831- "PARS_GE_TOKEN", "PARS_LE_TOKEN", "PARS_NE_TOKEN",
3832- "PARS_PROCEDURE_TOKEN", "PARS_IN_TOKEN", "PARS_OUT_TOKEN",
3833- "PARS_BINARY_TOKEN", "PARS_BLOB_TOKEN", "PARS_INT_TOKEN",
3834- "PARS_INTEGER_TOKEN", "PARS_FLOAT_TOKEN", "PARS_CHAR_TOKEN",
3835- "PARS_IS_TOKEN", "PARS_BEGIN_TOKEN", "PARS_END_TOKEN", "PARS_IF_TOKEN",
3836- "PARS_THEN_TOKEN", "PARS_ELSE_TOKEN", "PARS_ELSIF_TOKEN",
3837- "PARS_LOOP_TOKEN", "PARS_WHILE_TOKEN", "PARS_RETURN_TOKEN",
3838- "PARS_SELECT_TOKEN", "PARS_SUM_TOKEN", "PARS_COUNT_TOKEN",
3839- "PARS_DISTINCT_TOKEN", "PARS_FROM_TOKEN", "PARS_WHERE_TOKEN",
3840- "PARS_FOR_TOKEN", "PARS_DDOT_TOKEN", "PARS_READ_TOKEN",
3841- "PARS_ORDER_TOKEN", "PARS_BY_TOKEN", "PARS_ASC_TOKEN", "PARS_DESC_TOKEN",
3842- "PARS_INSERT_TOKEN", "PARS_INTO_TOKEN", "PARS_VALUES_TOKEN",
3843- "PARS_UPDATE_TOKEN", "PARS_SET_TOKEN", "PARS_DELETE_TOKEN",
3844- "PARS_CURRENT_TOKEN", "PARS_OF_TOKEN", "PARS_CREATE_TOKEN",
3845- "PARS_TABLE_TOKEN", "PARS_INDEX_TOKEN", "PARS_UNIQUE_TOKEN",
3846- "PARS_CLUSTERED_TOKEN", "PARS_DOES_NOT_FIT_IN_MEM_TOKEN",
3847- "PARS_ON_TOKEN", "PARS_ASSIGN_TOKEN", "PARS_DECLARE_TOKEN",
3848- "PARS_CURSOR_TOKEN", "PARS_SQL_TOKEN", "PARS_OPEN_TOKEN",
3849- "PARS_FETCH_TOKEN", "PARS_CLOSE_TOKEN", "PARS_NOTFOUND_TOKEN",
3850- "PARS_TO_CHAR_TOKEN", "PARS_TO_NUMBER_TOKEN", "PARS_TO_BINARY_TOKEN",
3851- "PARS_BINARY_TO_NUMBER_TOKEN", "PARS_SUBSTR_TOKEN", "PARS_REPLSTR_TOKEN",
3852- "PARS_CONCAT_TOKEN", "PARS_INSTR_TOKEN", "PARS_LENGTH_TOKEN",
3853- "PARS_SYSDATE_TOKEN", "PARS_PRINTF_TOKEN", "PARS_ASSERT_TOKEN",
3854- "PARS_RND_TOKEN", "PARS_RND_STR_TOKEN", "PARS_ROW_PRINTF_TOKEN",
3855- "PARS_COMMIT_TOKEN", "PARS_ROLLBACK_TOKEN", "PARS_WORK_TOKEN",
3856- "PARS_UNSIGNED_TOKEN", "PARS_EXIT_TOKEN", "PARS_FUNCTION_TOKEN",
3857- "PARS_LOCK_TOKEN", "PARS_SHARE_TOKEN", "PARS_MODE_TOKEN", "'='", "'<'",
3858- "'>'", "'-'", "'+'", "'*'", "'/'", "NEG", "'%'", "';'", "'('", "')'",
3859- "'?'", "','", "'{'", "'}'", "$accept", "top_statement", "statement",
3860- "statement_list", "exp", "function_name", "question_mark_list",
3861- "stored_procedure_call", "predefined_procedure_call",
3862- "predefined_procedure_name", "user_function_call", "table_list",
3863- "variable_list", "exp_list", "select_item", "select_item_list",
3864- "select_list", "search_condition", "for_update_clause",
3865- "lock_shared_clause", "order_direction", "order_by_clause",
3866- "select_statement", "insert_statement_start", "insert_statement",
3867- "column_assignment", "column_assignment_list", "cursor_positioned",
3868- "update_statement_start", "update_statement_searched",
3869- "update_statement_positioned", "delete_statement_start",
3870- "delete_statement_searched", "delete_statement_positioned",
3871- "row_printf_statement", "assignment_statement", "elsif_element",
3872- "elsif_list", "else_part", "if_statement", "while_statement",
3873- "for_statement", "exit_statement", "return_statement",
3874- "open_cursor_statement", "close_cursor_statement", "fetch_statement",
3875- "column_def", "column_def_list", "opt_column_len", "opt_unsigned",
3876- "opt_not_null", "not_fit_in_memory", "create_table", "column_list",
3877- "unique_def", "clustered_def", "create_index", "commit_statement",
3878- "rollback_statement", "type_name", "parameter_declaration",
3879- "parameter_declaration_list", "variable_declaration",
3880- "variable_declaration_list", "cursor_declaration",
3881- "function_declaration", "declaration", "declaration_list",
3882- "procedure_definition", 0
3883-};
3884-#endif
3885-
3886-# ifdef YYPRINT
3887-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
3888- token YYLEX-NUM. */
3889-static const unsigned short int yytoknum[] =
3890-{
3891- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
3892- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
3893- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
3894- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
3895- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
3896- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
3897- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
3898- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
3899- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
3900- 345, 346, 347, 348, 349, 61, 60, 62, 45, 43,
3901- 42, 47, 350, 37, 59, 40, 41, 63, 44, 123,
3902- 125
3903-};
3904-# endif
3905-
3906-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
3907-static const unsigned char yyr1[] =
3908-{
3909- 0, 111, 112, 113, 113, 113, 113, 113, 113, 113,
3910- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
3911- 113, 113, 113, 113, 113, 114, 114, 115, 115, 115,
3912- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
3913- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
3914- 115, 115, 115, 116, 116, 116, 116, 116, 116, 116,
3915- 116, 116, 116, 116, 117, 117, 117, 118, 119, 120,
3916- 120, 120, 121, 122, 122, 123, 123, 123, 124, 124,
3917- 124, 125, 125, 125, 125, 126, 126, 126, 127, 127,
3918- 127, 128, 128, 129, 129, 130, 130, 131, 131, 131,
3919- 132, 132, 133, 134, 135, 135, 136, 137, 137, 138,
3920- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
3921- 148, 149, 149, 149, 150, 151, 152, 153, 154, 155,
3922- 156, 157, 157, 158, 159, 159, 160, 160, 161, 161,
3923- 162, 162, 163, 163, 164, 165, 165, 166, 166, 167,
3924- 167, 168, 169, 170, 171, 171, 171, 171, 171, 172,
3925- 172, 173, 173, 173, 174, 175, 175, 175, 176, 177,
3926- 178, 178, 179, 179, 179, 180
3927-};
3928-
3929-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
3930-static const unsigned char yyr2[] =
3931-{
3932- 0, 2, 2, 1, 2, 2, 2, 2, 2, 2,
3933- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3934- 2, 2, 2, 2, 2, 1, 2, 1, 4, 1,
3935- 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
3936- 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3937- 2, 3, 3, 1, 1, 1, 1, 1, 1, 1,
3938- 1, 1, 1, 1, 0, 1, 3, 6, 4, 1,
3939- 1, 1, 3, 1, 3, 0, 1, 3, 0, 1,
3940- 3, 1, 4, 5, 4, 0, 1, 3, 1, 3,
3941- 1, 0, 2, 0, 2, 0, 4, 0, 1, 1,
3942- 0, 4, 8, 3, 5, 2, 3, 1, 3, 4,
3943- 4, 2, 2, 3, 2, 2, 2, 3, 4, 1,
3944- 2, 0, 2, 1, 7, 6, 10, 1, 1, 2,
3945- 2, 4, 4, 5, 1, 3, 0, 3, 0, 1,
3946- 0, 2, 0, 1, 7, 1, 3, 0, 1, 0,
3947- 1, 10, 2, 2, 1, 1, 1, 1, 1, 3,
3948- 3, 0, 1, 3, 3, 0, 1, 2, 6, 4,
3949- 1, 1, 0, 1, 2, 11
3950-};
3951-
3952-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
3953- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
3954- means the default is an error. */
3955-static const unsigned char yydefact[] =
3956-{
3957- 0, 0, 0, 0, 0, 1, 2, 161, 0, 162,
3958- 0, 0, 0, 0, 0, 157, 158, 154, 155, 156,
3959- 159, 160, 165, 163, 0, 166, 172, 0, 0, 167,
3960- 170, 171, 173, 0, 164, 0, 0, 0, 174, 0,
3961- 0, 0, 0, 0, 128, 85, 0, 0, 0, 0,
3962- 147, 0, 0, 0, 69, 70, 71, 0, 0, 0,
3963- 127, 0, 25, 0, 3, 0, 0, 0, 0, 0,
3964- 91, 0, 0, 91, 0, 0, 0, 0, 0, 0,
3965- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3966- 0, 169, 0, 29, 30, 31, 32, 33, 34, 27,
3967- 0, 35, 53, 54, 55, 56, 57, 58, 59, 60,
3968- 61, 62, 63, 0, 0, 0, 0, 0, 0, 0,
3969- 88, 81, 86, 90, 0, 0, 0, 0, 0, 0,
3970- 148, 149, 129, 0, 130, 116, 152, 153, 0, 175,
3971- 26, 4, 78, 11, 0, 105, 12, 0, 111, 112,
3972- 16, 17, 114, 115, 14, 15, 13, 10, 8, 5,
3973- 6, 7, 9, 18, 20, 19, 23, 24, 21, 22,
3974- 0, 117, 0, 50, 0, 40, 0, 0, 0, 0,
3975- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3976- 78, 0, 0, 0, 75, 0, 0, 0, 103, 0,
3977- 113, 0, 150, 0, 75, 64, 79, 0, 78, 0,
3978- 92, 168, 51, 52, 41, 48, 49, 45, 46, 47,
3979- 121, 42, 43, 44, 37, 36, 38, 39, 0, 0,
3980- 0, 0, 0, 76, 89, 87, 73, 91, 0, 0,
3981- 107, 110, 0, 0, 76, 132, 131, 65, 0, 68,
3982- 0, 0, 0, 0, 0, 119, 123, 0, 28, 0,
3983- 84, 0, 82, 0, 0, 0, 93, 0, 0, 0,
3984- 0, 134, 0, 0, 0, 0, 0, 80, 104, 109,
3985- 122, 0, 120, 0, 125, 83, 77, 74, 0, 95,
3986- 0, 106, 108, 136, 142, 0, 0, 72, 67, 66,
3987- 0, 124, 94, 0, 100, 0, 0, 138, 143, 144,
3988- 135, 0, 118, 0, 0, 102, 0, 0, 139, 140,
3989- 0, 0, 0, 0, 137, 0, 133, 145, 0, 96,
3990- 97, 126, 141, 151, 0, 98, 99, 101, 146
3991-};
3992-
3993-/* YYDEFGOTO[NTERM-NUM]. */
3994-static const short int yydefgoto[] =
3995-{
3996- -1, 2, 62, 63, 206, 116, 248, 64, 65, 66,
3997- 245, 237, 234, 207, 122, 123, 124, 148, 289, 304,
3998- 337, 315, 67, 68, 69, 240, 241, 149, 70, 71,
3999- 72, 73, 74, 75, 76, 77, 255, 256, 257, 78,
4000- 79, 80, 81, 82, 83, 84, 85, 271, 272, 307,
4001- 319, 326, 309, 86, 328, 131, 203, 87, 88, 89,
4002- 20, 9, 10, 25, 26, 30, 31, 32, 33, 3
4003-};
4004-
4005-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
4006- STATE-NUM. */
4007-#define YYPACT_NINF -177
4008-static const short int yypact[] =
4009-{
4010- 28, 38, 54, -46, -29, -177, -177, 56, 50, -177,
4011- -75, 8, 8, 46, 56, -177, -177, -177, -177, -177,
4012- -177, -177, 63, -177, 8, -177, 2, -26, -51, -177,
4013- -177, -177, -177, -13, -177, 71, 72, 587, -177, 57,
4014- -21, 26, 272, 272, -177, 13, 91, 55, 96, 67,
4015- -22, 99, 100, 103, -177, -177, -177, 75, 29, 35,
4016- -177, 116, -177, 396, -177, 22, 23, 27, -9, 30,
4017- 87, 31, 32, 87, 47, 49, 52, 58, 59, 60,
4018- 61, 62, 65, 66, 74, 77, 78, 86, 89, 102,
4019- 75, -177, 272, -177, -177, -177, -177, -177, -177, 39,
4020- 272, 51, -177, -177, -177, -177, -177, -177, -177, -177,
4021- -177, -177, -177, 272, 272, 361, 25, 489, 45, 90,
4022- -177, 651, -177, -39, 93, 142, 124, 108, 152, 170,
4023- -177, 131, -177, 143, -177, -177, -177, -177, 98, -177,
4024- -177, -177, 272, -177, 110, -177, -177, 256, -177, -177,
4025- -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
4026- -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
4027- 112, 651, 137, 101, 147, 204, 88, 272, 272, 272,
4028- 272, 272, 587, 272, 272, 272, 272, 272, 272, 272,
4029- 272, 587, 272, -30, 211, 168, 212, 272, -177, 213,
4030- -177, 118, -177, 167, 217, 122, 651, -63, 272, 175,
4031- 651, -177, -177, -177, -177, 101, 101, 21, 21, 651,
4032- 332, 21, 21, 21, -6, -6, 204, 204, -60, 460,
4033- 198, 222, 126, -177, 125, -177, -177, -33, 584, 140,
4034- -177, 128, 228, 229, 139, -177, 125, -177, -53, -177,
4035- 272, -49, 240, 587, 272, -177, 224, 226, -177, 225,
4036- -177, 150, -177, 258, 272, 260, 230, 272, 272, 213,
4037- 8, -177, -45, 208, 166, 164, 176, 651, -177, -177,
4038- 587, 631, -177, 254, -177, -177, -177, -177, 234, 194,
4039- 638, 651, -177, 182, 227, 228, 280, -177, -177, -177,
4040- 587, -177, -177, 273, 247, 587, 289, 214, -177, -177,
4041- -177, 195, 587, 209, 261, -177, 524, 199, -177, 295,
4042- 292, 215, 299, 279, -177, 304, -177, -177, -44, -177,
4043- -8, -177, -177, -177, 305, -177, -177, -177, -177
4044-};
4045-
4046-/* YYPGOTO[NTERM-NUM]. */
4047-static const short int yypgoto[] =
4048-{
4049- -177, -177, -62, -176, -40, -177, -177, -177, -177, -177,
4050- -177, -177, 109, -166, 120, -177, -177, -69, -177, -177,
4051- -177, -177, -34, -177, -177, 48, -177, 243, -177, -177,
4052- -177, -177, -177, -177, -177, -177, 64, -177, -177, -177,
4053- -177, -177, -177, -177, -177, -177, -177, 24, -177, -177,
4054- -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
4055- -12, 307, -177, 297, -177, -177, -177, 285, -177, -177
4056-};
4057-
4058-/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
4059- positive, shift that token. If negative, reduce the rule which
4060- number is the opposite. If zero, do what YYDEFACT says.
4061- If YYTABLE_NINF, syntax error. */
4062-#define YYTABLE_NINF -1
4063-static const unsigned short int yytable[] =
4064-{
4065- 21, 140, 115, 117, 152, 121, 220, 264, 231, 181,
4066- 194, 24, 27, 37, 35, 229, 93, 94, 95, 96,
4067- 97, 98, 99, 135, 228, 100, 45, 15, 16, 17,
4068- 18, 13, 19, 14, 145, 129, 181, 130, 335, 336,
4069- 36, 144, 251, 249, 1, 250, 258, 4, 250, 118,
4070- 119, 28, 171, 275, 5, 276, 170, 278, 6, 250,
4071- 173, 294, 333, 295, 334, 8, 28, 11, 12, 195,
4072- 232, 22, 24, 175, 176, 265, 7, 280, 34, 101,
4073- 39, 40, 90, 91, 102, 103, 104, 105, 106, 92,
4074- 107, 108, 109, 110, 188, 189, 111, 112, 177, 178,
4075- 125, 179, 180, 181, 126, 127, 128, 210, 132, 133,
4076- 45, 113, 134, 120, 179, 180, 181, 136, 114, 186,
4077- 187, 188, 189, 137, 312, 138, 141, 147, 142, 316,
4078- 190, 143, 196, 198, 146, 150, 151, 215, 216, 217,
4079- 218, 219, 172, 221, 222, 223, 224, 225, 226, 227,
4080- 192, 154, 230, 155, 174, 121, 156, 238, 140, 197,
4081- 199, 200, 157, 158, 159, 160, 161, 140, 266, 162,
4082- 163, 93, 94, 95, 96, 97, 98, 99, 164, 201,
4083- 100, 165, 166, 183, 184, 185, 186, 187, 188, 189,
4084- 167, 202, 204, 168, 214, 193, 183, 184, 185, 186,
4085- 187, 188, 189, 205, 118, 119, 169, 212, 177, 178,
4086- 277, 179, 180, 181, 281, 208, 211, 213, 140, 181,
4087- 233, 236, 239, 242, 210, 243, 244, 290, 291, 247,
4088- 252, 261, 262, 263, 101, 268, 269, 270, 273, 102,
4089- 103, 104, 105, 106, 274, 107, 108, 109, 110, 279,
4090- 140, 111, 112, 283, 140, 254, 285, 284, 293, 93,
4091- 94, 95, 96, 97, 98, 99, 113, 286, 100, 287,
4092- 296, 288, 297, 114, 298, 93, 94, 95, 96, 97,
4093- 98, 99, 301, 299, 100, 302, 303, 306, 308, 311,
4094- 313, 314, 317, 183, 184, 185, 186, 187, 188, 189,
4095- 320, 327, 321, 318, 260, 324, 322, 325, 330, 329,
4096- 209, 331, 332, 246, 338, 235, 153, 292, 38, 310,
4097- 282, 23, 101, 29, 0, 0, 0, 102, 103, 104,
4098- 105, 106, 0, 107, 108, 109, 110, 0, 101, 111,
4099- 112, 41, 0, 102, 103, 104, 105, 106, 0, 107,
4100- 108, 109, 110, 0, 113, 111, 112, 0, 0, 0,
4101- 42, 114, 253, 254, 0, 43, 44, 45, 0, 0,
4102- 113, 177, 178, 46, 179, 180, 181, 114, 0, 0,
4103- 47, 0, 0, 48, 0, 49, 0, 0, 50, 0,
4104- 182, 0, 0, 0, 0, 0, 0, 0, 0, 51,
4105- 52, 53, 0, 0, 0, 41, 0, 0, 54, 0,
4106- 0, 0, 0, 55, 56, 0, 0, 57, 58, 59,
4107- 0, 0, 60, 139, 42, 0, 0, 0, 0, 43,
4108- 44, 45, 0, 0, 0, 0, 0, 46, 0, 0,
4109- 0, 61, 0, 0, 47, 0, 0, 48, 0, 49,
4110- 0, 0, 50, 0, 0, 0, 183, 184, 185, 186,
4111- 187, 188, 189, 51, 52, 53, 0, 0, 0, 41,
4112- 0, 0, 54, 0, 0, 0, 0, 55, 56, 0,
4113- 0, 57, 58, 59, 0, 0, 60, 259, 42, 0,
4114- 0, 0, 0, 43, 44, 45, 0, 0, 0, 177,
4115- 178, 46, 179, 180, 181, 61, 0, 0, 47, 0,
4116- 0, 48, 0, 49, 0, 0, 50, 0, 0, 0,
4117- 0, 191, 0, 0, 0, 0, 0, 51, 52, 53,
4118- 0, 0, 0, 41, 0, 0, 54, 0, 0, 0,
4119- 0, 55, 56, 0, 0, 57, 58, 59, 0, 0,
4120- 60, 323, 42, 0, 0, 0, 0, 43, 44, 45,
4121- 0, 0, 0, 0, 0, 46, 0, 0, 0, 61,
4122- 0, 0, 47, 0, 0, 48, 0, 49, 0, 0,
4123- 50, 0, 0, 0, 183, 184, 185, 186, 187, 188,
4124- 189, 51, 52, 53, 177, 178, 41, 179, 180, 181,
4125- 54, 0, 0, 0, 0, 55, 56, 0, 0, 57,
4126- 58, 59, 0, 0, 60, 42, 0, 0, 0, 0,
4127- 43, 44, 45, 0, 0, 0, 267, 0, 46, 0,
4128- 0, 0, 0, 61, 0, 47, 0, 0, 48, 0,
4129- 49, 177, 178, 50, 179, 180, 181, 0, 177, 178,
4130- 0, 179, 180, 181, 51, 52, 53, 0, 0, 0,
4131- 300, 177, 178, 54, 179, 180, 181, 0, 55, 56,
4132- 305, 0, 57, 58, 59, 0, 0, 60, 0, 183,
4133- 184, 185, 186, 187, 188, 189, 0, 0, 0, 0,
4134- 0, 0, 0, 0, 0, 0, 61, 0, 0, 0,
4135- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4136- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4137- 0, 0, 0, 0, 0, 0, 183, 184, 185, 186,
4138- 187, 188, 189, 183, 184, 185, 186, 187, 188, 189,
4139- 0, 0, 0, 0, 0, 0, 183, 184, 185, 186,
4140- 187, 188, 189
4141-};
4142-
4143-static const short int yycheck[] =
4144-{
4145- 12, 63, 42, 43, 73, 45, 182, 40, 38, 15,
4146- 49, 9, 24, 26, 65, 191, 3, 4, 5, 6,
4147- 7, 8, 9, 57, 190, 12, 35, 19, 20, 21,
4148- 22, 106, 24, 108, 68, 57, 15, 59, 46, 47,
4149- 91, 50, 208, 106, 16, 108, 106, 9, 108, 36,
4150- 37, 64, 92, 106, 0, 108, 90, 106, 104, 108,
4151- 100, 106, 106, 108, 108, 9, 64, 17, 18, 108,
4152- 100, 25, 9, 113, 114, 108, 105, 253, 104, 66,
4153- 9, 9, 25, 104, 71, 72, 73, 74, 75, 63,
4154- 77, 78, 79, 80, 100, 101, 83, 84, 10, 11,
4155- 9, 13, 14, 15, 49, 9, 39, 147, 9, 9,
4156- 35, 98, 9, 100, 13, 14, 15, 88, 105, 98,
4157- 99, 100, 101, 88, 300, 9, 104, 40, 105, 305,
4158- 105, 104, 39, 9, 104, 104, 104, 177, 178, 179,
4159- 180, 181, 103, 183, 184, 185, 186, 187, 188, 189,
4160- 105, 104, 192, 104, 103, 195, 104, 197, 220, 17,
4161- 52, 9, 104, 104, 104, 104, 104, 229, 237, 104,
4162- 104, 3, 4, 5, 6, 7, 8, 9, 104, 9,
4163- 12, 104, 104, 95, 96, 97, 98, 99, 100, 101,
4164- 104, 60, 49, 104, 106, 105, 95, 96, 97, 98,
4165- 99, 100, 101, 105, 36, 37, 104, 70, 10, 11,
4166- 250, 13, 14, 15, 254, 105, 104, 70, 280, 15,
4167- 9, 9, 9, 105, 264, 58, 9, 267, 268, 107,
4168- 55, 9, 106, 108, 66, 95, 108, 9, 9, 71,
4169- 72, 73, 74, 75, 105, 77, 78, 79, 80, 9,
4170- 312, 83, 84, 27, 316, 31, 106, 32, 270, 3,
4171- 4, 5, 6, 7, 8, 9, 98, 9, 12, 9,
4172- 62, 41, 106, 105, 110, 3, 4, 5, 6, 7,
4173- 8, 9, 28, 107, 12, 51, 92, 105, 61, 9,
4174- 17, 44, 3, 95, 96, 97, 98, 99, 100, 101,
4175- 105, 9, 93, 89, 106, 106, 45, 12, 9, 94,
4176- 54, 32, 8, 204, 9, 195, 73, 269, 33, 295,
4177- 256, 14, 66, 26, -1, -1, -1, 71, 72, 73,
4178- 74, 75, -1, 77, 78, 79, 80, -1, 66, 83,
4179- 84, 9, -1, 71, 72, 73, 74, 75, -1, 77,
4180- 78, 79, 80, -1, 98, 83, 84, -1, -1, -1,
4181- 28, 105, 30, 31, -1, 33, 34, 35, -1, -1,
4182- 98, 10, 11, 41, 13, 14, 15, 105, -1, -1,
4183- 48, -1, -1, 51, -1, 53, -1, -1, 56, -1,
4184- 29, -1, -1, -1, -1, -1, -1, -1, -1, 67,
4185- 68, 69, -1, -1, -1, 9, -1, -1, 76, -1,
4186- -1, -1, -1, 81, 82, -1, -1, 85, 86, 87,
4187- -1, -1, 90, 27, 28, -1, -1, -1, -1, 33,
4188- 34, 35, -1, -1, -1, -1, -1, 41, -1, -1,
4189- -1, 109, -1, -1, 48, -1, -1, 51, -1, 53,
4190- -1, -1, 56, -1, -1, -1, 95, 96, 97, 98,
4191- 99, 100, 101, 67, 68, 69, -1, -1, -1, 9,
4192- -1, -1, 76, -1, -1, -1, -1, 81, 82, -1,
4193- -1, 85, 86, 87, -1, -1, 90, 27, 28, -1,
4194- -1, -1, -1, 33, 34, 35, -1, -1, -1, 10,
4195- 11, 41, 13, 14, 15, 109, -1, -1, 48, -1,
4196- -1, 51, -1, 53, -1, -1, 56, -1, -1, -1,
4197- -1, 32, -1, -1, -1, -1, -1, 67, 68, 69,
4198- -1, -1, -1, 9, -1, -1, 76, -1, -1, -1,
4199- -1, 81, 82, -1, -1, 85, 86, 87, -1, -1,
4200- 90, 27, 28, -1, -1, -1, -1, 33, 34, 35,
4201- -1, -1, -1, -1, -1, 41, -1, -1, -1, 109,
4202- -1, -1, 48, -1, -1, 51, -1, 53, -1, -1,
4203- 56, -1, -1, -1, 95, 96, 97, 98, 99, 100,
4204- 101, 67, 68, 69, 10, 11, 9, 13, 14, 15,
4205- 76, -1, -1, -1, -1, 81, 82, -1, -1, 85,
4206- 86, 87, -1, -1, 90, 28, -1, -1, -1, -1,
4207- 33, 34, 35, -1, -1, -1, 42, -1, 41, -1,
4208- -1, -1, -1, 109, -1, 48, -1, -1, 51, -1,
4209- 53, 10, 11, 56, 13, 14, 15, -1, 10, 11,
4210- -1, 13, 14, 15, 67, 68, 69, -1, -1, -1,
4211- 29, 10, 11, 76, 13, 14, 15, -1, 81, 82,
4212- 32, -1, 85, 86, 87, -1, -1, 90, -1, 95,
4213- 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
4214- -1, -1, -1, -1, -1, -1, 109, -1, -1, -1,
4215- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4216- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4217- -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
4218- 99, 100, 101, 95, 96, 97, 98, 99, 100, 101,
4219- -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
4220- 99, 100, 101
4221-};
4222-
4223-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
4224- symbol of state STATE-NUM. */
4225-static const unsigned char yystos[] =
4226-{
4227- 0, 16, 112, 180, 9, 0, 104, 105, 9, 172,
4228- 173, 17, 18, 106, 108, 19, 20, 21, 22, 24,
4229- 171, 171, 25, 172, 9, 174, 175, 171, 64, 174,
4230- 176, 177, 178, 179, 104, 65, 91, 26, 178, 9,
4231- 9, 9, 28, 33, 34, 35, 41, 48, 51, 53,
4232- 56, 67, 68, 69, 76, 81, 82, 85, 86, 87,
4233- 90, 109, 113, 114, 118, 119, 120, 133, 134, 135,
4234- 139, 140, 141, 142, 143, 144, 145, 146, 150, 151,
4235- 152, 153, 154, 155, 156, 157, 164, 168, 169, 170,
4236- 25, 104, 63, 3, 4, 5, 6, 7, 8, 9,
4237- 12, 66, 71, 72, 73, 74, 75, 77, 78, 79,
4238- 80, 83, 84, 98, 105, 115, 116, 115, 36, 37,
4239- 100, 115, 125, 126, 127, 9, 49, 9, 39, 57,
4240- 59, 166, 9, 9, 9, 133, 88, 88, 9, 27,
4241- 113, 104, 105, 104, 50, 133, 104, 40, 128, 138,
4242- 104, 104, 128, 138, 104, 104, 104, 104, 104, 104,
4243- 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
4244- 133, 115, 103, 115, 103, 115, 115, 10, 11, 13,
4245- 14, 15, 29, 95, 96, 97, 98, 99, 100, 101,
4246- 105, 32, 105, 105, 49, 108, 39, 17, 9, 52,
4247- 9, 9, 60, 167, 49, 105, 115, 124, 105, 54,
4248- 115, 104, 70, 70, 106, 115, 115, 115, 115, 115,
4249- 114, 115, 115, 115, 115, 115, 115, 115, 124, 114,
4250- 115, 38, 100, 9, 123, 125, 9, 122, 115, 9,
4251- 136, 137, 105, 58, 9, 121, 123, 107, 117, 106,
4252- 108, 124, 55, 30, 31, 147, 148, 149, 106, 27,
4253- 106, 9, 106, 108, 40, 108, 128, 42, 95, 108,
4254- 9, 158, 159, 9, 105, 106, 108, 115, 106, 9,
4255- 114, 115, 147, 27, 32, 106, 9, 9, 41, 129,
4256- 115, 115, 136, 171, 106, 108, 62, 106, 110, 107,
4257- 29, 28, 51, 92, 130, 32, 105, 160, 61, 163,
4258- 158, 9, 114, 17, 44, 132, 114, 3, 89, 161,
4259- 105, 93, 45, 27, 106, 12, 162, 9, 165, 94,
4260- 9, 32, 8, 106, 108, 46, 47, 131, 9
4261-};
4262-
4263-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
4264-# define YYSIZE_T __SIZE_TYPE__
4265-#endif
4266-#if ! defined (YYSIZE_T) && defined (size_t)
4267-# define YYSIZE_T size_t
4268-#endif
4269-#if ! defined (YYSIZE_T)
4270-# if defined (__STDC__) || defined (__cplusplus)
4271-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
4272-# define YYSIZE_T size_t
4273-# endif
4274-#endif
4275-#if ! defined (YYSIZE_T)
4276-# define YYSIZE_T unsigned int
4277-#endif
4278-
4279-#define yyerrok (yyerrstatus = 0)
4280-#define yyclearin (yychar = YYEMPTY)
4281-#define YYEMPTY (-2)
4282-#define YYEOF 0
4283-
4284-#define YYACCEPT goto yyacceptlab
4285-#define YYABORT goto yyabortlab
4286-#define YYERROR goto yyerrorlab
4287-
4288-
4289-/* Like YYERROR except do call yyerror. This remains here temporarily
4290- to ease the transition to the new meaning of YYERROR, for GCC.
4291- Once GCC version 2 has supplanted version 1, this can go. */
4292-
4293-#define YYFAIL goto yyerrlab
4294-
4295-#define YYRECOVERING() (!!yyerrstatus)
4296-
4297-#define YYBACKUP(Token, Value) \
4298-do \
4299- if (yychar == YYEMPTY && yylen == 1) \
4300- { \
4301- yychar = (Token); \
4302- yylval = (Value); \
4303- yytoken = YYTRANSLATE (yychar); \
4304- YYPOPSTACK; \
4305- goto yybackup; \
4306- } \
4307- else \
4308- { \
4309- yyerror ("syntax error: cannot back up");\
4310- YYERROR; \
4311- } \
4312-while (0)
4313-
4314-
4315-#define YYTERROR 1
4316-#define YYERRCODE 256
4317-
4318-
4319-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
4320- If N is 0, then set CURRENT to the empty location which ends
4321- the previous symbol: RHS[0] (always defined). */
4322-
4323-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
4324-#ifndef YYLLOC_DEFAULT
4325-# define YYLLOC_DEFAULT(Current, Rhs, N) \
4326- do \
4327- if (N) \
4328- { \
4329- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4330- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4331- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4332- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4333- } \
4334- else \
4335- { \
4336- (Current).first_line = (Current).last_line = \
4337- YYRHSLOC (Rhs, 0).last_line; \
4338- (Current).first_column = (Current).last_column = \
4339- YYRHSLOC (Rhs, 0).last_column; \
4340- } \
4341- while (0)
4342-#endif
4343-
4344-
4345-/* YY_LOCATION_PRINT -- Print the location on the stream.
4346- This macro was not mandated originally: define only if we know
4347- we won't break user code: when these are the locations we know. */
4348-
4349-#ifndef YY_LOCATION_PRINT
4350-# ifdef YYLTYPE_IS_TRIVIAL
4351-# define YY_LOCATION_PRINT(File, Loc) \
4352- fprintf (File, "%d.%d-%d.%d", \
4353- (Loc).first_line, (Loc).first_column, \
4354- (Loc).last_line, (Loc).last_column)
4355-# else
4356-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4357-# endif
4358-#endif
4359-
4360-
4361-/* YYLEX -- calling `yylex' with the right arguments. */
4362-
4363-#ifdef YYLEX_PARAM
4364-# define YYLEX yylex (YYLEX_PARAM)
4365-#else
4366-# define YYLEX yylex ()
4367-#endif
4368-
4369-/* Enable debugging if requested. */
4370-#if YYDEBUG
4371-
4372-# ifndef YYFPRINTF
4373-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
4374-# define YYFPRINTF fprintf
4375-# endif
4376-
4377-# define YYDPRINTF(Args) \
4378-do { \
4379- if (yydebug) \
4380- YYFPRINTF Args; \
4381-} while (0)
4382-
4383-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4384-do { \
4385- if (yydebug) \
4386- { \
4387- YYFPRINTF (stderr, "%s ", Title); \
4388- yysymprint (stderr, \
4389- Type, Value); \
4390- YYFPRINTF (stderr, "\n"); \
4391- } \
4392-} while (0)
4393-
4394-/*------------------------------------------------------------------.
4395-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
4396-| TOP (included). |
4397-`------------------------------------------------------------------*/
4398-
4399-#if defined (__STDC__) || defined (__cplusplus)
4400-static void
4401-yy_stack_print (short int *bottom, short int *top)
4402-#else
4403-static void
4404-yy_stack_print (bottom, top)
4405- short int *bottom;
4406- short int *top;
4407-#endif
4408-{
4409- YYFPRINTF (stderr, "Stack now");
4410- for (/* Nothing. */; bottom <= top; ++bottom)
4411- YYFPRINTF (stderr, " %d", *bottom);
4412- YYFPRINTF (stderr, "\n");
4413-}
4414-
4415-# define YY_STACK_PRINT(Bottom, Top) \
4416-do { \
4417- if (yydebug) \
4418- yy_stack_print ((Bottom), (Top)); \
4419-} while (0)
4420-
4421-
4422-/*------------------------------------------------.
4423-| Report that the YYRULE is going to be reduced. |
4424-`------------------------------------------------*/
4425-
4426-#if defined (__STDC__) || defined (__cplusplus)
4427-static void
4428-yy_reduce_print (int yyrule)
4429-#else
4430-static void
4431-yy_reduce_print (yyrule)
4432- int yyrule;
4433-#endif
4434-{
4435- int yyi;
4436- unsigned int yylno = yyrline[yyrule];
4437- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
4438- yyrule - 1, yylno);
4439- /* Print the symbols being reduced, and their result. */
4440- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
4441- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
4442- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
4443-}
4444-
4445-# define YY_REDUCE_PRINT(Rule) \
4446-do { \
4447- if (yydebug) \
4448- yy_reduce_print (Rule); \
4449-} while (0)
4450-
4451-/* Nonzero means print parse trace. It is left uninitialized so that
4452- multiple parsers can coexist. */
4453-int yydebug;
4454-#else /* !YYDEBUG */
4455-# define YYDPRINTF(Args)
4456-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4457-# define YY_STACK_PRINT(Bottom, Top)
4458-# define YY_REDUCE_PRINT(Rule)
4459-#endif /* !YYDEBUG */
4460-
4461-
4462-/* YYINITDEPTH -- initial size of the parser's stacks. */
4463-#ifndef YYINITDEPTH
4464-# define YYINITDEPTH 200
4465-#endif
4466-
4467-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4468- if the built-in stack extension method is used).
4469-
4470- Do not make this value too large; the results are undefined if
4471- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
4472- evaluated with infinite-precision integer arithmetic. */
4473-
4474-#ifndef YYMAXDEPTH
4475-# define YYMAXDEPTH 10000
4476-#endif
4477-
4478-
4479
4480-
4481-#if YYERROR_VERBOSE
4482-
4483-# ifndef yystrlen
4484-# if defined (__GLIBC__) && defined (_STRING_H)
4485-# define yystrlen strlen
4486-# else
4487-/* Return the length of YYSTR. */
4488-static YYSIZE_T
4489-# if defined (__STDC__) || defined (__cplusplus)
4490-yystrlen (const char *yystr)
4491-# else
4492-yystrlen (yystr)
4493- const char *yystr;
4494-# endif
4495-{
4496- register const char *yys = yystr;
4497-
4498- while (*yys++ != '\0')
4499- continue;
4500-
4501- return yys - yystr - 1;
4502-}
4503-# endif
4504-# endif
4505-
4506-# ifndef yystpcpy
4507-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
4508-# define yystpcpy stpcpy
4509-# else
4510-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4511- YYDEST. */
4512-static char *
4513-# if defined (__STDC__) || defined (__cplusplus)
4514-yystpcpy (char *yydest, const char *yysrc)
4515-# else
4516-yystpcpy (yydest, yysrc)
4517- char *yydest;
4518- const char *yysrc;
4519-# endif
4520-{
4521- register char *yyd = yydest;
4522- register const char *yys = yysrc;
4523-
4524- while ((*yyd++ = *yys++) != '\0')
4525- continue;
4526-
4527- return yyd - 1;
4528-}
4529-# endif
4530-# endif
4531-
4532-#endif /* !YYERROR_VERBOSE */
4533-
4534-
4535
4536-
4537-#if YYDEBUG
4538-/*--------------------------------.
4539-| Print this symbol on YYOUTPUT. |
4540-`--------------------------------*/
4541-
4542-#if defined (__STDC__) || defined (__cplusplus)
4543-static void
4544-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
4545-#else
4546-static void
4547-yysymprint (yyoutput, yytype, yyvaluep)
4548- FILE *yyoutput;
4549- int yytype;
4550- YYSTYPE *yyvaluep;
4551-#endif
4552-{
4553- /* Pacify ``unused variable'' warnings. */
4554- (void) yyvaluep;
4555-
4556- if (yytype < YYNTOKENS)
4557- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
4558- else
4559- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
4560-
4561-
4562-# ifdef YYPRINT
4563- if (yytype < YYNTOKENS)
4564- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4565-# endif
4566- switch (yytype)
4567- {
4568- default:
4569- break;
4570- }
4571- YYFPRINTF (yyoutput, ")");
4572-}
4573-
4574-#endif /* ! YYDEBUG */
4575-/*-----------------------------------------------.
4576-| Release the memory associated to this symbol. |
4577-`-----------------------------------------------*/
4578-
4579-#if defined (__STDC__) || defined (__cplusplus)
4580-static void
4581-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
4582-#else
4583-static void
4584-yydestruct (yymsg, yytype, yyvaluep)
4585- const char *yymsg;
4586- int yytype;
4587- YYSTYPE *yyvaluep;
4588-#endif
4589-{
4590- /* Pacify ``unused variable'' warnings. */
4591- (void) yyvaluep;
4592-
4593- if (!yymsg)
4594- yymsg = "Deleting";
4595- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
4596-
4597- switch (yytype)
4598- {
4599-
4600- default:
4601- break;
4602- }
4603-}
4604-
4605
4606-
4607-
4608-/* The look-ahead symbol. */
4609-static int yychar;
4610-
4611-/* The semantic value of the look-ahead symbol. */
4612-UNIV_INTERN YYSTYPE yylval;
4613-
4614-/* Number of syntax errors so far. */
4615-static int yynerrs;
4616-
4617-
4618-
4619-/*----------.
4620-| yyparse. |
4621-`----------*/
4622-
4623-#ifdef YYPARSE_PARAM
4624-# if defined (__STDC__) || defined (__cplusplus)
4625-UNIV_INTERN int yyparse (void *YYPARSE_PARAM)
4626-# else
4627-UNIV_INTERN int yyparse (YYPARSE_PARAM)
4628- void *YYPARSE_PARAM;
4629-# endif
4630-#else /* ! YYPARSE_PARAM */
4631-#if defined (__STDC__) || defined (__cplusplus)
4632-int
4633-yyparse (void)
4634-#else
4635-int
4636-yyparse ()
4637-
4638-#endif
4639-#endif
4640-{
4641-
4642- register int yystate;
4643- register int yyn;
4644- int yyresult;
4645- /* Number of tokens to shift before error messages enabled. */
4646- int yyerrstatus;
4647- /* Look-ahead token as an internal (translated) token number. */
4648- int yytoken = 0;
4649-
4650- /* Three stacks and their tools:
4651- `yyss': related to states,
4652- `yyvs': related to semantic values,
4653- `yyls': related to locations.
4654-
4655- Refer to the stacks thru separate pointers, to allow yyoverflow
4656- to reallocate them elsewhere. */
4657-
4658- /* The state stack. */
4659- short int yyssa[YYINITDEPTH];
4660- short int *yyss = yyssa;
4661- register short int *yyssp;
4662-
4663- /* The semantic value stack. */
4664- YYSTYPE yyvsa[YYINITDEPTH];
4665- YYSTYPE *yyvs = yyvsa;
4666- register YYSTYPE *yyvsp;
4667-
4668-
4669-
4670-#define YYPOPSTACK (yyvsp--, yyssp--)
4671-
4672- YYSIZE_T yystacksize = YYINITDEPTH;
4673-
4674- /* The variables used to return semantic value and location from the
4675- action routines. */
4676- YYSTYPE yyval;
4677-
4678-
4679- /* When reducing, the number of symbols on the RHS of the reduced
4680- rule. */
4681- int yylen;
4682-
4683- YYDPRINTF ((stderr, "Starting parse\n"));
4684-
4685- yystate = 0;
4686- yyerrstatus = 0;
4687- yynerrs = 0;
4688- yychar = YYEMPTY; /* Cause a token to be read. */
4689-
4690- /* Initialize stack pointers.
4691- Waste one element of value and location stack
4692- so that they stay on the same level as the state stack.
4693- The wasted elements are never initialized. */
4694-
4695- yyssp = yyss;
4696- yyvsp = yyvs;
4697-
4698-
4699- yyvsp[0] = yylval;
4700-
4701- goto yysetstate;
4702-
4703-/*------------------------------------------------------------.
4704-| yynewstate -- Push a new state, which is found in yystate. |
4705-`------------------------------------------------------------*/
4706- yynewstate:
4707- /* In all cases, when you get here, the value and location stacks
4708- have just been pushed. so pushing a state here evens the stacks.
4709- */
4710- yyssp++;
4711-
4712- yysetstate:
4713- *yyssp = yystate;
4714-
4715- if (yyss + yystacksize - 1 <= yyssp)
4716- {
4717- /* Get the current used size of the three stacks, in elements. */
4718- YYSIZE_T yysize = yyssp - yyss + 1;
4719-
4720-#ifdef yyoverflow
4721- {
4722- /* Give user a chance to reallocate the stack. Use copies of
4723- these so that the &'s don't force the real ones into
4724- memory. */
4725- YYSTYPE *yyvs1 = yyvs;
4726- short int *yyss1 = yyss;
4727-
4728-
4729- /* Each stack pointer address is followed by the size of the
4730- data in use in that stack, in bytes. This used to be a
4731- conditional around just the two extra args, but that might
4732- be undefined if yyoverflow is a macro. */
4733- yyoverflow ("parser stack overflow",
4734- &yyss1, yysize * sizeof (*yyssp),
4735- &yyvs1, yysize * sizeof (*yyvsp),
4736-
4737- &yystacksize);
4738-
4739- yyss = yyss1;
4740- yyvs = yyvs1;
4741- }
4742-#else /* no yyoverflow */
4743-# ifndef YYSTACK_RELOCATE
4744- goto yyoverflowlab;
4745-# else
4746- /* Extend the stack our own way. */
4747- if (YYMAXDEPTH <= yystacksize)
4748- goto yyoverflowlab;
4749- yystacksize *= 2;
4750- if (YYMAXDEPTH < yystacksize)
4751- yystacksize = YYMAXDEPTH;
4752-
4753- {
4754- short int *yyss1 = yyss;
4755- union yyalloc *yyptr =
4756- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4757- if (! yyptr)
4758- goto yyoverflowlab;
4759- YYSTACK_RELOCATE (yyss);
4760- YYSTACK_RELOCATE (yyvs);
4761-
4762-# undef YYSTACK_RELOCATE
4763- if (yyss1 != yyssa)
4764- YYSTACK_FREE (yyss1);
4765- }
4766-# endif
4767-#endif /* no yyoverflow */
4768-
4769- yyssp = yyss + yysize - 1;
4770- yyvsp = yyvs + yysize - 1;
4771-
4772-
4773- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4774- (unsigned long int) yystacksize));
4775-
4776- if (yyss + yystacksize - 1 <= yyssp)
4777- YYABORT;
4778- }
4779-
4780- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4781-
4782- goto yybackup;
4783-
4784-/*-----------.
4785-| yybackup. |
4786-`-----------*/
4787-yybackup:
4788-
4789-/* Do appropriate processing given the current state. */
4790-/* Read a look-ahead token if we need one and don't already have one. */
4791-/* yyresume: */
4792-
4793- /* First try to decide what to do without reference to look-ahead token. */
4794-
4795- yyn = yypact[yystate];
4796- if (yyn == YYPACT_NINF)
4797- goto yydefault;
4798-
4799- /* Not known => get a look-ahead token if don't already have one. */
4800-
4801- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
4802- if (yychar == YYEMPTY)
4803- {
4804- YYDPRINTF ((stderr, "Reading a token: "));
4805- yychar = YYLEX;
4806- }
4807-
4808- if (yychar <= YYEOF)
4809- {
4810- yychar = yytoken = YYEOF;
4811- YYDPRINTF ((stderr, "Now at end of input.\n"));
4812- }
4813- else
4814- {
4815- yytoken = YYTRANSLATE (yychar);
4816- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4817- }
4818-
4819- /* If the proper action on seeing token YYTOKEN is to reduce or to
4820- detect an error, take that action. */
4821- yyn += yytoken;
4822- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4823- goto yydefault;
4824- yyn = yytable[yyn];
4825- if (yyn <= 0)
4826- {
4827- if (yyn == 0 || yyn == YYTABLE_NINF)
4828- goto yyerrlab;
4829- yyn = -yyn;
4830- goto yyreduce;
4831- }
4832-
4833- if (yyn == YYFINAL)
4834- YYACCEPT;
4835-
4836- /* Shift the look-ahead token. */
4837- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4838-
4839- /* Discard the token being shifted unless it is eof. */
4840- if (yychar != YYEOF)
4841- yychar = YYEMPTY;
4842-
4843- *++yyvsp = yylval;
4844-
4845-
4846- /* Count tokens shifted since error; after three, turn off error
4847- status. */
4848- if (yyerrstatus)
4849- yyerrstatus--;
4850-
4851- yystate = yyn;
4852- goto yynewstate;
4853-
4854-
4855-/*-----------------------------------------------------------.
4856-| yydefault -- do the default action for the current state. |
4857-`-----------------------------------------------------------*/
4858-yydefault:
4859- yyn = yydefact[yystate];
4860- if (yyn == 0)
4861- goto yyerrlab;
4862- goto yyreduce;
4863-
4864-
4865-/*-----------------------------.
4866-| yyreduce -- Do a reduction. |
4867-`-----------------------------*/
4868-yyreduce:
4869- /* yyn is the number of a rule to reduce with. */
4870- yylen = yyr2[yyn];
4871-
4872- /* If YYLEN is nonzero, implement the default value of the action:
4873- `$$ = $1'.
4874-
4875- Otherwise, the following line sets YYVAL to garbage.
4876- This behavior is undocumented and Bison
4877- users should not rely upon it. Assigning to YYVAL
4878- unconditionally makes the parser a bit smaller, and it avoids a
4879- GCC warning that YYVAL may be used uninitialized. */
4880- yyval = yyvsp[1-yylen];
4881-
4882-
4883- YY_REDUCE_PRINT (yyn);
4884- switch (yyn)
4885- {
4886- case 25:
4887-#line 166 "pars0grm.y"
4888- { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
4889- break;
4890-
4891- case 26:
4892-#line 168 "pars0grm.y"
4893- { (yyval) = que_node_list_add_last((yyvsp[-1]), (yyvsp[0])); ;}
4894- break;
4895-
4896- case 27:
4897-#line 172 "pars0grm.y"
4898- { (yyval) = (yyvsp[0]);;}
4899- break;
4900-
4901- case 28:
4902-#line 174 "pars0grm.y"
4903- { (yyval) = pars_func((yyvsp[-3]), (yyvsp[-1])); ;}
4904- break;
4905-
4906- case 29:
4907-#line 175 "pars0grm.y"
4908- { (yyval) = (yyvsp[0]);;}
4909- break;
4910-
4911- case 30:
4912-#line 176 "pars0grm.y"
4913- { (yyval) = (yyvsp[0]);;}
4914- break;
4915-
4916- case 31:
4917-#line 177 "pars0grm.y"
4918- { (yyval) = (yyvsp[0]);;}
4919- break;
4920-
4921- case 32:
4922-#line 178 "pars0grm.y"
4923- { (yyval) = (yyvsp[0]);;}
4924- break;
4925-
4926- case 33:
4927-#line 179 "pars0grm.y"
4928- { (yyval) = (yyvsp[0]);;}
4929- break;
4930-
4931- case 34:
4932-#line 180 "pars0grm.y"
4933- { (yyval) = (yyvsp[0]);;}
4934- break;
4935-
4936- case 35:
4937-#line 181 "pars0grm.y"
4938- { (yyval) = (yyvsp[0]);;}
4939- break;
4940-
4941- case 36:
4942-#line 182 "pars0grm.y"
4943- { (yyval) = pars_op('+', (yyvsp[-2]), (yyvsp[0])); ;}
4944- break;
4945-
4946- case 37:
4947-#line 183 "pars0grm.y"
4948- { (yyval) = pars_op('-', (yyvsp[-2]), (yyvsp[0])); ;}
4949- break;
4950-
4951- case 38:
4952-#line 184 "pars0grm.y"
4953- { (yyval) = pars_op('*', (yyvsp[-2]), (yyvsp[0])); ;}
4954- break;
4955-
4956- case 39:
4957-#line 185 "pars0grm.y"
4958- { (yyval) = pars_op('/', (yyvsp[-2]), (yyvsp[0])); ;}
4959- break;
4960-
4961- case 40:
4962-#line 186 "pars0grm.y"
4963- { (yyval) = pars_op('-', (yyvsp[0]), NULL); ;}
4964- break;
4965-
4966- case 41:
4967-#line 187 "pars0grm.y"
4968- { (yyval) = (yyvsp[-1]); ;}
4969- break;
4970-
4971- case 42:
4972-#line 188 "pars0grm.y"
4973- { (yyval) = pars_op('=', (yyvsp[-2]), (yyvsp[0])); ;}
4974- break;
4975-
4976- case 43:
4977-#line 189 "pars0grm.y"
4978- { (yyval) = pars_op('<', (yyvsp[-2]), (yyvsp[0])); ;}
4979- break;
4980-
4981- case 44:
4982-#line 190 "pars0grm.y"
4983- { (yyval) = pars_op('>', (yyvsp[-2]), (yyvsp[0])); ;}
4984- break;
4985-
4986- case 45:
4987-#line 191 "pars0grm.y"
4988- { (yyval) = pars_op(PARS_GE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
4989- break;
4990-
4991- case 46:
4992-#line 192 "pars0grm.y"
4993- { (yyval) = pars_op(PARS_LE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
4994- break;
4995-
4996- case 47:
4997-#line 193 "pars0grm.y"
4998- { (yyval) = pars_op(PARS_NE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
4999- break;
5000-
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches