/lib_pq/src/pl/plpgsql/src/pl_gram.c
C | 6391 lines | 4633 code | 840 blank | 918 comment | 773 complexity | e753f34dd85997bb4304029f3d6863b3 MD5 | raw file
Possible License(s): Zlib, BSD-3-Clause, CC0-1.0, GPL-3.0, GPL-2.0, CPL-1.0, MPL-2.0-no-copyleft-exception, LGPL-2.0, LGPL-2.1, LGPL-3.0, 0BSD, Cube
Large files files are truncated, but you can click here to view the full file
- /* A Bison parser, made by GNU Bison 2.5. */
- /* Bison implementation for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
- /* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
- /* C LALR(1) parser skeleton written by Richard Stallman, by
- simplifying the original so-called "semantic" parser. */
- /* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
- /* Identify Bison output. */
- #define YYBISON 1
- /* Bison version. */
- #define YYBISON_VERSION "2.5"
- /* Skeleton name. */
- #define YYSKELETON_NAME "yacc.c"
- /* Pure parsers. */
- #define YYPURE 0
- /* Push parsers. */
- #define YYPUSH 0
- /* Pull parsers. */
- #define YYPULL 1
- /* Using locations. */
- #define YYLSP_NEEDED 1
- /* Substitute the variable and function names. */
- #define yyparse plpgsql_yyparse
- #define yylex plpgsql_yylex
- #define yyerror plpgsql_yyerror
- #define yylval plpgsql_yylval
- #define yychar plpgsql_yychar
- #define yydebug plpgsql_yydebug
- #define yynerrs plpgsql_yynerrs
- #define yylloc plpgsql_yylloc
- /* Copy the first part of user declarations. */
- /* Line 268 of yacc.c */
- #line 1 "pl_gram.y"
- /*-------------------------------------------------------------------------
- *
- * pl_gram.y - Parser for the PL/pgSQL procedural language
- *
- * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- * src/pl/plpgsql/src/pl_gram.y
- *
- *-------------------------------------------------------------------------
- */
- #include "plpgsql.h"
- #include "catalog/namespace.h"
- #include "catalog/pg_type.h"
- #include "parser/parser.h"
- #include "parser/parse_type.h"
- #include "parser/scanner.h"
- #include "parser/scansup.h"
- #include "utils/builtins.h"
- /* Location tracking support --- simpler than bison's default */
- #define YYLLOC_DEFAULT(Current, Rhs, N) \
- do { \
- if (N) \
- (Current) = (Rhs)[1]; \
- else \
- (Current) = (Rhs)[0]; \
- } while (0)
- /*
- * Bison doesn't allocate anything that needs to live across parser calls,
- * so we can easily have it use palloc instead of malloc. This prevents
- * memory leaks if we error out during parsing. Note this only works with
- * bison >= 2.0. However, in bison 1.875 the default is to use alloca()
- * if possible, so there's not really much problem anyhow, at least if
- * you're building with gcc.
- */
- #define YYMALLOC palloc
- #define YYFREE pfree
- typedef struct
- {
- int location;
- int leaderlen;
- } sql_error_callback_arg;
- #define parser_errposition(pos) plpgsql_scanner_errposition(pos)
- union YYSTYPE; /* need forward reference for tok_is_keyword */
- static bool tok_is_keyword(int token, union YYSTYPE *lval,
- int kw_token, const char *kw_str);
- static void word_is_not_variable(PLword *word, int location);
- static void cword_is_not_variable(PLcword *cword, int location);
- static void current_token_is_not_variable(int tok);
- static PLpgSQL_expr *read_sql_construct(int until,
- int until2,
- int until3,
- const char *expected,
- const char *sqlstart,
- bool isexpression,
- bool valid_sql,
- bool trim,
- int *startloc,
- int *endtoken);
- static PLpgSQL_expr *read_sql_expression(int until,
- const char *expected);
- static PLpgSQL_expr *read_sql_expression2(int until, int until2,
- const char *expected,
- int *endtoken);
- static PLpgSQL_expr *read_sql_stmt(const char *sqlstart);
- static PLpgSQL_type *read_datatype(int tok);
- static PLpgSQL_stmt *make_execsql_stmt(int firsttoken, int location);
- static PLpgSQL_stmt_fetch *read_fetch_direction(void);
- static void complete_direction(PLpgSQL_stmt_fetch *fetch,
- bool *check_FROM);
- static PLpgSQL_stmt *make_return_stmt(int location);
- static PLpgSQL_stmt *make_return_next_stmt(int location);
- static PLpgSQL_stmt *make_return_query_stmt(int location);
- static PLpgSQL_stmt *make_case(int location, PLpgSQL_expr *t_expr,
- List *case_when_list, List *else_stmts);
- static char *NameOfDatum(PLwdatum *wdatum);
- static void check_assignable(PLpgSQL_datum *datum, int location);
- static void read_into_target(PLpgSQL_rec **rec, PLpgSQL_row **row,
- bool *strict);
- static PLpgSQL_row *read_into_scalar_list(char *initial_name,
- PLpgSQL_datum *initial_datum,
- int initial_location);
- static PLpgSQL_row *make_scalar_list1(char *initial_name,
- PLpgSQL_datum *initial_datum,
- int lineno, int location);
- static void check_sql_expr(const char *stmt, int location,
- int leaderlen);
- static void plpgsql_sql_error_callback(void *arg);
- static PLpgSQL_type *parse_datatype(const char *string, int location);
- static void check_labels(const char *start_label,
- const char *end_label,
- int end_location);
- static PLpgSQL_expr *read_cursor_args(PLpgSQL_var *cursor,
- int until, const char *expected);
- static List *read_raise_options(void);
- /* Line 268 of yacc.c */
- #line 191 "pl_gram.c"
- /* Enabling traces. */
- #ifndef YYDEBUG
- # define YYDEBUG 0
- #endif
- /* Enabling verbose error messages. */
- #ifdef YYERROR_VERBOSE
- # undef YYERROR_VERBOSE
- # define YYERROR_VERBOSE 1
- #else
- # define YYERROR_VERBOSE 0
- #endif
- /* Enabling the token table. */
- #ifndef YYTOKEN_TABLE
- # define YYTOKEN_TABLE 0
- #endif
- /* Tokens. */
- #ifndef YYTOKENTYPE
- # define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- IDENT = 258,
- FCONST = 259,
- SCONST = 260,
- BCONST = 261,
- XCONST = 262,
- Op = 263,
- ICONST = 264,
- PARAM = 265,
- TYPECAST = 266,
- DOT_DOT = 267,
- COLON_EQUALS = 268,
- T_WORD = 269,
- T_CWORD = 270,
- T_DATUM = 271,
- LESS_LESS = 272,
- GREATER_GREATER = 273,
- K_ABSOLUTE = 274,
- K_ALIAS = 275,
- K_ALL = 276,
- K_ARRAY = 277,
- K_BACKWARD = 278,
- K_BEGIN = 279,
- K_BY = 280,
- K_CASE = 281,
- K_CLOSE = 282,
- K_COLLATE = 283,
- K_COLUMN = 284,
- K_COLUMN_NAME = 285,
- K_CONSTANT = 286,
- K_CONSTRAINT = 287,
- K_CONSTRAINT_NAME = 288,
- K_CONTINUE = 289,
- K_CURRENT = 290,
- K_CURSOR = 291,
- K_DATATYPE = 292,
- K_DEBUG = 293,
- K_DECLARE = 294,
- K_DEFAULT = 295,
- K_DETAIL = 296,
- K_DIAGNOSTICS = 297,
- K_DUMP = 298,
- K_ELSE = 299,
- K_ELSIF = 300,
- K_END = 301,
- K_ERRCODE = 302,
- K_ERROR = 303,
- K_EXCEPTION = 304,
- K_EXECUTE = 305,
- K_EXIT = 306,
- K_FETCH = 307,
- K_FIRST = 308,
- K_FOR = 309,
- K_FOREACH = 310,
- K_FORWARD = 311,
- K_FROM = 312,
- K_GET = 313,
- K_HINT = 314,
- K_IF = 315,
- K_IN = 316,
- K_INFO = 317,
- K_INSERT = 318,
- K_INTO = 319,
- K_IS = 320,
- K_LAST = 321,
- K_LOG = 322,
- K_LOOP = 323,
- K_MESSAGE = 324,
- K_MESSAGE_TEXT = 325,
- K_MOVE = 326,
- K_NEXT = 327,
- K_NO = 328,
- K_NOT = 329,
- K_NOTICE = 330,
- K_NULL = 331,
- K_OPEN = 332,
- K_OPTION = 333,
- K_OR = 334,
- K_PERFORM = 335,
- K_PG_CONTEXT = 336,
- K_PG_DATATYPE_NAME = 337,
- K_PG_EXCEPTION_CONTEXT = 338,
- K_PG_EXCEPTION_DETAIL = 339,
- K_PG_EXCEPTION_HINT = 340,
- K_PRINT_STRICT_PARAMS = 341,
- K_PRIOR = 342,
- K_QUERY = 343,
- K_RAISE = 344,
- K_RELATIVE = 345,
- K_RESULT_OID = 346,
- K_RETURN = 347,
- K_RETURNED_SQLSTATE = 348,
- K_REVERSE = 349,
- K_ROWTYPE = 350,
- K_ROW_COUNT = 351,
- K_SCHEMA = 352,
- K_SCHEMA_NAME = 353,
- K_SCROLL = 354,
- K_SLICE = 355,
- K_SQLSTATE = 356,
- K_STACKED = 357,
- K_STRICT = 358,
- K_TABLE = 359,
- K_TABLE_NAME = 360,
- K_THEN = 361,
- K_TO = 362,
- K_TYPE = 363,
- K_USE_COLUMN = 364,
- K_USE_VARIABLE = 365,
- K_USING = 366,
- K_VARIABLE_CONFLICT = 367,
- K_WARNING = 368,
- K_WHEN = 369,
- K_WHILE = 370
- };
- #endif
- #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
- typedef union YYSTYPE
- {
- /* Line 293 of yacc.c */
- #line 116 "pl_gram.y"
- core_YYSTYPE core_yystype;
- /* these fields must match core_YYSTYPE: */
- int ival;
- char *str;
- const char *keyword;
- PLword word;
- PLcword cword;
- PLwdatum wdatum;
- bool boolean;
- Oid oid;
- struct
- {
- char *name;
- int lineno;
- } varname;
- struct
- {
- char *name;
- int lineno;
- PLpgSQL_datum *scalar;
- PLpgSQL_rec *rec;
- PLpgSQL_row *row;
- } forvariable;
- struct
- {
- char *label;
- int n_initvars;
- int *initvarnos;
- } declhdr;
- struct
- {
- List *stmts;
- char *end_label;
- int end_label_location;
- } loop_body;
- List *list;
- PLpgSQL_type *dtype;
- PLpgSQL_datum *datum;
- PLpgSQL_var *var;
- PLpgSQL_expr *expr;
- PLpgSQL_stmt *stmt;
- PLpgSQL_condition *condition;
- PLpgSQL_exception *exception;
- PLpgSQL_exception_block *exception_block;
- PLpgSQL_nsitem *nsitem;
- PLpgSQL_diag_item *diagitem;
- PLpgSQL_stmt_fetch *fetch;
- PLpgSQL_case_when *casewhen;
- /* Line 293 of yacc.c */
- #line 396 "pl_gram.c"
- } YYSTYPE;
- # define YYSTYPE_IS_TRIVIAL 1
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- #endif
- #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
- typedef struct YYLTYPE
- {
- int first_line;
- int first_column;
- int last_line;
- int last_column;
- } YYLTYPE;
- # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
- # define YYLTYPE_IS_DECLARED 1
- # define YYLTYPE_IS_TRIVIAL 1
- #endif
- /* Copy the second part of user declarations. */
- /* Line 343 of yacc.c */
- #line 421 "pl_gram.c"
- #ifdef short
- # undef short
- #endif
- #ifdef YYTYPE_UINT8
- typedef YYTYPE_UINT8 yytype_uint8;
- #else
- typedef unsigned char yytype_uint8;
- #endif
- #ifdef YYTYPE_INT8
- typedef YYTYPE_INT8 yytype_int8;
- #elif (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
- typedef signed char yytype_int8;
- #else
- typedef short int yytype_int8;
- #endif
- #ifdef YYTYPE_UINT16
- typedef YYTYPE_UINT16 yytype_uint16;
- #else
- typedef unsigned short int yytype_uint16;
- #endif
- #ifdef YYTYPE_INT16
- typedef YYTYPE_INT16 yytype_int16;
- #else
- typedef short int yytype_int16;
- #endif
- #ifndef YYSIZE_T
- # ifdef __SIZE_TYPE__
- # define YYSIZE_T __SIZE_TYPE__
- # elif defined size_t
- # define YYSIZE_T size_t
- # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
- # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
- # define YYSIZE_T size_t
- # else
- # define YYSIZE_T unsigned int
- # endif
- #endif
- #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
- #ifndef YY_
- # if defined YYENABLE_NLS && YYENABLE_NLS
- # if ENABLE_NLS
- # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
- # define YY_(msgid) dgettext ("bison-runtime", msgid)
- # endif
- # endif
- # ifndef YY_
- # define YY_(msgid) msgid
- # endif
- #endif
- /* Suppress unused-variable warnings by "using" E. */
- #if ! defined lint || defined __GNUC__
- # define YYUSE(e) ((void) (e))
- #else
- # define YYUSE(e) /* empty */
- #endif
- /* Identity function, used to suppress warnings about constant conditions. */
- #ifndef lint
- # define YYID(n) (n)
- #else
- #if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
- static int
- YYID (int yyi)
- #else
- static int
- YYID (yyi)
- int yyi;
- #endif
- {
- return yyi;
- }
- #endif
- #if ! defined yyoverflow || YYERROR_VERBOSE
- /* The parser invokes alloca or malloc; define the necessary symbols. */
- # ifdef YYSTACK_USE_ALLOCA
- # if YYSTACK_USE_ALLOCA
- # ifdef __GNUC__
- # define YYSTACK_ALLOC __builtin_alloca
- # elif defined __BUILTIN_VA_ARG_INCR
- # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
- # elif defined _AIX
- # define YYSTACK_ALLOC __alloca
- # elif defined _MSC_VER
- # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
- # define alloca _alloca
- # else
- # define YYSTACK_ALLOC alloca
- # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
- # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
- # ifndef EXIT_SUCCESS
- # define EXIT_SUCCESS 0
- # endif
- # endif
- # endif
- # endif
- # endif
- # ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
- # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
- # ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
- # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
- # endif
- # else
- # define YYSTACK_ALLOC YYMALLOC
- # define YYSTACK_FREE YYFREE
- # ifndef YYSTACK_ALLOC_MAXIMUM
- # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
- # endif
- # if (defined __cplusplus && ! defined EXIT_SUCCESS \
- && ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
- # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
- # ifndef EXIT_SUCCESS
- # define EXIT_SUCCESS 0
- # endif
- # endif
- # ifndef YYMALLOC
- # define YYMALLOC malloc
- # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
- void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
- # endif
- # endif
- # ifndef YYFREE
- # define YYFREE free
- # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
- void free (void *); /* INFRINGES ON USER NAME SPACE */
- # endif
- # endif
- # endif
- #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
- #if (! defined yyoverflow \
- && (! defined __cplusplus \
- || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
- && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
- /* A type that is properly aligned for any stack member. */
- union yyalloc
- {
- yytype_int16 yyss_alloc;
- YYSTYPE yyvs_alloc;
- YYLTYPE yyls_alloc;
- };
- /* The size of the maximum gap between one aligned stack and the next. */
- # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
- /* The size of an array large to enough to hold all stacks, each with
- N elements. */
- # define YYSTACK_BYTES(N) \
- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
- + 2 * YYSTACK_GAP_MAXIMUM)
- # define YYCOPY_NEEDED 1
- /* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
- # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
- Stack = &yyptr->Stack_alloc; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (YYID (0))
- #endif
- #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
- /* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
- # ifndef YYCOPY
- # if defined __GNUC__ && 1 < __GNUC__
- # define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
- # else
- # define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
- # endif
- # endif
- #endif /* !YYCOPY_NEEDED */
- /* YYFINAL -- State number of the termination state. */
- #define YYFINAL 3
- /* YYLAST -- Last index in YYTABLE. */
- #define YYLAST 1042
- /* YYNTOKENS -- Number of terminals. */
- #define YYNTOKENS 123
- /* YYNNTS -- Number of nonterminals. */
- #define YYNNTS 84
- /* YYNRULES -- Number of rules. */
- #define YYNRULES 217
- /* YYNRULES -- Number of states. */
- #define YYNSTATES 295
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
- #define YYUNDEFTOK 2
- #define YYMAXUTOK 370
- #define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
- static const yytype_uint8 yytranslate[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 116, 2, 2, 2, 2,
- 118, 119, 2, 2, 120, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 117,
- 2, 121, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 122, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
- 115
- };
- #if YYDEBUG
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
- static const yytype_uint16 yyprhs[] =
- {
- 0, 0, 3, 7, 8, 11, 15, 19, 23, 27,
- 31, 33, 35, 36, 38, 45, 47, 50, 54, 56,
- 59, 61, 63, 65, 69, 76, 82, 83, 91, 92,
- 95, 97, 98, 99, 103, 105, 109, 112, 114, 116,
- 118, 120, 122, 124, 126, 127, 129, 130, 131, 134,
- 137, 140, 141, 144, 146, 148, 150, 152, 154, 156,
- 157, 159, 162, 164, 167, 169, 171, 173, 175, 177,
- 179, 181, 183, 185, 187, 189, 191, 193, 195, 197,
- 199, 201, 203, 205, 208, 212, 218, 219, 221, 223,
- 227, 229, 233, 234, 236, 238, 240, 242, 246, 255,
- 256, 261, 262, 265, 273, 274, 277, 279, 283, 284,
- 287, 291, 296, 301, 304, 306, 308, 310, 319, 320,
- 323, 327, 329, 331, 333, 335, 341, 343, 345, 347,
- 349, 352, 357, 362, 363, 367, 370, 372, 374, 376,
- 377, 378, 382, 385, 387, 392, 396, 398, 400, 401,
- 402, 403, 404, 405, 409, 410, 412, 414, 417, 419,
- 421, 423, 425, 427, 429, 431, 433, 435, 437, 439,
- 441, 443, 445, 447, 449, 451, 453, 455, 457, 459,
- 461, 463, 465, 467, 469, 471, 473, 475, 477, 479,
- 481, 483, 485, 487, 489, 491, 493, 495, 497, 499,
- 501, 503, 505, 507, 509, 511, 513, 515, 517, 519,
- 521, 523, 525, 527, 529, 531, 533, 535
- };
- /* YYRHS -- A `-1'-separated list of the rules' RHS. */
- static const yytype_int16 yyrhs[] =
- {
- 124, 0, -1, 125, 129, 128, -1, -1, 125, 126,
- -1, 116, 78, 43, -1, 116, 86, 127, -1, 116,
- 112, 48, -1, 116, 112, 110, -1, 116, 112, 109,
- -1, 14, -1, 206, -1, -1, 117, -1, 130, 24,
- 151, 192, 46, 203, -1, 202, -1, 202, 131, -1,
- 202, 131, 132, -1, 39, -1, 132, 133, -1, 133,
- -1, 134, -1, 39, -1, 17, 205, 18, -1, 143,
- 144, 145, 146, 147, 148, -1, 143, 20, 54, 142,
- 117, -1, -1, 143, 136, 36, 135, 138, 141, 137,
- -1, -1, 73, 99, -1, 99, -1, -1, -1, 118,
- 139, 119, -1, 140, -1, 139, 120, 140, -1, 143,
- 145, -1, 65, -1, 54, -1, 14, -1, 206, -1,
- 15, -1, 14, -1, 206, -1, -1, 31, -1, -1,
- -1, 28, 14, -1, 28, 206, -1, 28, 15, -1,
- -1, 74, 76, -1, 117, -1, 149, -1, 150, -1,
- 40, -1, 121, -1, 13, -1, -1, 152, -1, 152,
- 153, -1, 153, -1, 129, 117, -1, 155, -1, 163,
- -1, 166, -1, 171, -1, 172, -1, 173, -1, 176,
- -1, 178, -1, 180, -1, 181, -1, 183, -1, 184,
- -1, 154, -1, 156, -1, 185, -1, 186, -1, 187,
- -1, 189, -1, 190, -1, 80, 198, -1, 162, 150,
- 198, -1, 58, 157, 42, 158, 117, -1, -1, 35,
- -1, 102, -1, 158, 120, 159, -1, 159, -1, 161,
- 150, 160, -1, -1, 16, -1, 14, -1, 15, -1,
- 16, -1, 162, 122, 199, -1, 60, 200, 151, 164,
- 165, 46, 60, 117, -1, -1, 164, 45, 200, 151,
- -1, -1, 44, 151, -1, 26, 167, 168, 170, 46,
- 26, 117, -1, -1, 168, 169, -1, 169, -1, 114,
- 200, 151, -1, -1, 44, 151, -1, 202, 68, 182,
- -1, 202, 115, 201, 182, -1, 202, 54, 174, 182,
- -1, 175, 61, -1, 16, -1, 14, -1, 15, -1,
- 202, 55, 175, 177, 61, 22, 201, 182, -1, -1,
- 100, 9, -1, 179, 203, 204, -1, 51, -1, 34,
- -1, 92, -1, 89, -1, 151, 46, 68, 203, 117,
- -1, 63, -1, 14, -1, 15, -1, 50, -1, 77,
- 191, -1, 52, 188, 191, 64, -1, 71, 188, 191,
- 117, -1, -1, 27, 191, 117, -1, 76, 117, -1,
- 16, -1, 14, -1, 15, -1, -1, -1, 49, 193,
- 194, -1, 194, 195, -1, 195, -1, 114, 196, 106,
- 151, -1, 196, 79, 197, -1, 197, -1, 205, -1,
- -1, -1, -1, -1, -1, 17, 205, 18, -1, -1,
- 205, -1, 117, -1, 114, 198, -1, 14, -1, 206,
- -1, 16, -1, 19, -1, 20, -1, 22, -1, 23,
- -1, 29, -1, 30, -1, 31, -1, 32, -1, 33,
- -1, 35, -1, 36, -1, 37, -1, 38, -1, 41,
- -1, 43, -1, 47, -1, 48, -1, 53, -1, 56,
- -1, 59, -1, 62, -1, 65, -1, 66, -1, 67,
- -1, 69, -1, 70, -1, 72, -1, 73, -1, 75,
- -1, 78, -1, 81, -1, 82, -1, 83, -1, 84,
- -1, 85, -1, 87, -1, 86, -1, 88, -1, 90,
- -1, 91, -1, 93, -1, 94, -1, 96, -1, 95,
- -1, 97, -1, 98, -1, 99, -1, 100, -1, 101,
- -1, 102, -1, 104, -1, 105, -1, 108, -1, 109,
- -1, 110, -1, 112, -1, 113, -1
- };
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
- static const yytype_uint16 yyrline[] =
- {
- 0, 344, 344, 350, 351, 354, 358, 367, 371, 375,
- 381, 385, 390, 391, 394, 416, 424, 431, 440, 452,
- 453, 456, 457, 461, 474, 529, 535, 534, 587, 590,
- 594, 601, 607, 610, 639, 643, 649, 657, 658, 660,
- 675, 690, 718, 746, 777, 778, 783, 794, 795, 800,
- 805, 812, 813, 817, 819, 825, 826, 834, 835, 839,
- 840, 844, 851, 860, 862, 864, 866, 868, 870, 872,
- 874, 876, 878, 880, 882, 884, 886, 888, 890, 892,
- 894, 896, 898, 902, 915, 929, 992, 995, 999, 1005,
- 1009, 1015, 1028, 1075, 1087, 1092, 1100, 1105, 1122, 1139,
- 1142, 1156, 1159, 1165, 1172, 1186, 1190, 1196, 1208, 1211,
- 1226, 1243, 1261, 1295, 1557, 1589, 1604, 1611, 1654, 1657,
- 1663, 1678, 1682, 1688, 1714, 1856, 1874, 1878, 1888, 1900,
- 1964, 2041, 2073, 2086, 2091, 2104, 2111, 2127, 2132, 2140,
- 2142, 2141, 2181, 2185, 2191, 2204, 2213, 2219, 2256, 2260,
- 2264, 2268, 2272, 2276, 2284, 2287, 2295, 2297, 2304, 2308,
- 2312, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329,
- 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339,
- 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349,
- 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359,
- 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369,
- 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377
- };
- #endif
- #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
- /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
- static const char *const yytname[] =
- {
- "$end", "error", "$undefined", "IDENT", "FCONST", "SCONST", "BCONST",
- "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS",
- "T_WORD", "T_CWORD", "T_DATUM", "LESS_LESS", "GREATER_GREATER",
- "K_ABSOLUTE", "K_ALIAS", "K_ALL", "K_ARRAY", "K_BACKWARD", "K_BEGIN",
- "K_BY", "K_CASE", "K_CLOSE", "K_COLLATE", "K_COLUMN", "K_COLUMN_NAME",
- "K_CONSTANT", "K_CONSTRAINT", "K_CONSTRAINT_NAME", "K_CONTINUE",
- "K_CURRENT", "K_CURSOR", "K_DATATYPE", "K_DEBUG", "K_DECLARE",
- "K_DEFAULT", "K_DETAIL", "K_DIAGNOSTICS", "K_DUMP", "K_ELSE", "K_ELSIF",
- "K_END", "K_ERRCODE", "K_ERROR", "K_EXCEPTION", "K_EXECUTE", "K_EXIT",
- "K_FETCH", "K_FIRST", "K_FOR", "K_FOREACH", "K_FORWARD", "K_FROM",
- "K_GET", "K_HINT", "K_IF", "K_IN", "K_INFO", "K_INSERT", "K_INTO",
- "K_IS", "K_LAST", "K_LOG", "K_LOOP", "K_MESSAGE", "K_MESSAGE_TEXT",
- "K_MOVE", "K_NEXT", "K_NO", "K_NOT", "K_NOTICE", "K_NULL", "K_OPEN",
- "K_OPTION", "K_OR", "K_PERFORM", "K_PG_CONTEXT", "K_PG_DATATYPE_NAME",
- "K_PG_EXCEPTION_CONTEXT", "K_PG_EXCEPTION_DETAIL", "K_PG_EXCEPTION_HINT",
- "K_PRINT_STRICT_PARAMS", "K_PRIOR", "K_QUERY", "K_RAISE", "K_RELATIVE",
- "K_RESULT_OID", "K_RETURN", "K_RETURNED_SQLSTATE", "K_REVERSE",
- "K_ROWTYPE", "K_ROW_COUNT", "K_SCHEMA", "K_SCHEMA_NAME", "K_SCROLL",
- "K_SLICE", "K_SQLSTATE", "K_STACKED", "K_STRICT", "K_TABLE",
- "K_TABLE_NAME", "K_THEN", "K_TO", "K_TYPE", "K_USE_COLUMN",
- "K_USE_VARIABLE", "K_USING", "K_VARIABLE_CONFLICT", "K_WARNING",
- "K_WHEN", "K_WHILE", "'#'", "';'", "'('", "')'", "','", "'='", "'['",
- "$accept", "pl_function", "comp_options", "comp_option", "option_value",
- "opt_semi", "pl_block", "decl_sect", "decl_start", "decl_stmts",
- "decl_stmt", "decl_statement", "$@1", "opt_scrollable",
- "decl_cursor_query", "decl_cursor_args", "decl_cursor_arglist",
- "decl_cursor_arg", "decl_is_for", "decl_aliasitem", "decl_varname",
- "decl_const", "decl_datatype", "decl_collate", "decl_notnull",
- "decl_defval", "decl_defkey", "assign_operator", "proc_sect",
- "proc_stmts", "proc_stmt", "stmt_perform", "stmt_assign", "stmt_getdiag",
- "getdiag_area_opt", "getdiag_list", "getdiag_list_item", "getdiag_item",
- "getdiag_target", "assign_var", "stmt_if", "stmt_elsifs", "stmt_else",
- "stmt_case", "opt_expr_until_when", "case_when_list", "case_when",
- "opt_case_else", "stmt_loop", "stmt_while", "stmt_for", "for_control",
- "for_variable", "stmt_foreach_a", "foreach_slice", "stmt_exit",
- "exit_type", "stmt_return", "stmt_raise", "loop_body", "stmt_execsql",
- "stmt_dynexecute", "stmt_open", "stmt_fetch", "stmt_move",
- "opt_fetch_direction", "stmt_close", "stmt_null", "cursor_variable",
- "exception_sect", "@2", "proc_exceptions", "proc_exception",
- "proc_conditions", "proc_condition", "expr_until_semi",
- "expr_until_rightbracket", "expr_until_then", "expr_until_loop",
- "opt_block_label", "opt_label", "opt_exitcond", "any_identifier",
- "unreserved_keyword", 0
- };
- #endif
- # ifdef YYPRINT
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
- static const yytype_uint16 yytoknum[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 35, 59, 40, 41,
- 44, 61, 91
- };
- # endif
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
- static const yytype_uint8 yyr1[] =
- {
- 0, 123, 124, 125, 125, 126, 126, 126, 126, 126,
- 127, 127, 128, 128, 129, 130, 130, 130, 131, 132,
- 132, 133, 133, 133, 134, 134, 135, 134, 136, 136,
- 136, 137, 138, 138, 139, 139, 140, 141, 141, 142,
- 142, 142, 143, 143, 144, 144, 145, 146, 146, 146,
- 146, 147, 147, 148, 148, 149, 149, 150, 150, 151,
- 151, 152, 152, 153, 153, 153, 153, 153, 153, 153,
- 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
- 153, 153, 153, 154, 155, 156, 157, 157, 157, 158,
- 158, 159, 160, 161, 161, 161, 162, 162, 163, 164,
- 164, 165, 165, 166, 167, 168, 168, 169, 170, 170,
- 171, 172, 173, 174, 175, 175, 175, 176, 177, 177,
- 178, 179, 179, 180, 181, 182, 183, 183, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 191, 191, 192,
- 193, 192, 194, 194, 195, 196, 196, 197, 198, 199,
- 200, 201, 202, 202, 203, 203, 204, 204, 205, 205,
- 205, 206, 206, 206, 206, 206, 206, 206, 206, 206,
- 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
- 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
- 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
- 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
- 206, 206, 206, 206, 206, 206, 206, 206
- };
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
- static const yytype_uint8 yyr2[] =
- {
- 0, 2, 3, 0, 2, 3, 3, 3, 3, 3,
- 1, 1, 0, 1, 6, 1, 2, 3, 1, 2,
- 1, 1, 1, 3, 6, 5, 0, 7, 0, 2,
- 1, 0, 0, 3, 1, 3, 2, 1, 1, 1,
- 1, 1, 1, 1, 0, 1, 0, 0, 2, 2,
- 2, 0, 2, 1, 1, 1, 1, 1, 1, 0,
- 1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 2, 3, 5, 0, 1, 1, 3,
- 1, 3, 0, 1, 1, 1, 1, 3, 8, 0,
- 4, 0, 2, 7, 0, 2, 1, 3, 0, 2,
- 3, 4, 4, 2, 1, 1, 1, 8, 0, 2,
- 3, 1, 1, 1, 1, 5, 1, 1, 1, 1,
- 2, 4, 4, 0, 3, 2, 1, 1, 1, 0,
- 0, 3, 2, 1, 4, 3, 1, 1, 0, 0,
- 0, 0, 0, 3, 0, 1, 1, 2, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1
- };
- /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
- static const yytype_uint8 yydefact[] =
- {
- 3, 0, 152, 1, 0, 0, 4, 12, 0, 15,
- 158, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 197, 196, 198,
- 199, 200, 201, 202, 204, 203, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, 216, 217, 0,
- 159, 0, 0, 0, 13, 2, 152, 18, 16, 153,
- 5, 10, 6, 11, 7, 9, 8, 127, 128, 96,
- 104, 0, 122, 129, 121, 133, 86, 150, 126, 133,
- 0, 0, 148, 124, 123, 0, 139, 152, 62, 76,
- 64, 77, 0, 65, 66, 67, 68, 69, 70, 71,
- 154, 72, 73, 74, 75, 78, 79, 80, 81, 82,
- 15, 42, 0, 22, 17, 20, 21, 44, 43, 0,
- 137, 138, 136, 0, 0, 87, 88, 0, 152, 0,
- 135, 130, 83, 63, 140, 0, 61, 58, 57, 149,
- 148, 0, 155, 0, 0, 152, 151, 0, 19, 0,
- 45, 0, 30, 0, 46, 150, 108, 106, 134, 0,
- 0, 99, 0, 0, 154, 97, 84, 148, 156, 120,
- 115, 116, 114, 152, 0, 118, 0, 110, 152, 23,
- 0, 29, 26, 47, 152, 152, 105, 0, 131, 94,
- 95, 93, 0, 90, 0, 101, 132, 0, 141, 143,
- 14, 157, 112, 113, 0, 0, 0, 111, 39, 41,
- 0, 40, 32, 0, 51, 107, 109, 0, 85, 0,
- 92, 152, 150, 0, 0, 146, 147, 142, 119, 0,
- 154, 25, 0, 0, 48, 50, 49, 0, 0, 0,
- 89, 91, 102, 152, 0, 0, 152, 151, 0, 0,
- 34, 46, 38, 37, 31, 52, 56, 53, 24, 54,
- 55, 103, 100, 0, 145, 144, 152, 125, 33, 0,
- 36, 27, 98, 117, 35
- };
- /* YYDEFGOTO[NTERM-NUM]. */
- static const yytype_int16 yydefgoto[] =
- {
- -1, 1, 2, 6, 82, 75, 105, 8, 78, 134,
- 135, 136, 232, 173, 291, 253, 269, 270, 274, 230,
- 137, 174, 203, 234, 258, 278, 279, 160, 196, 107,
- 108, 109, 110, 111, 147, 212, 213, 261, 214, 112,
- 113, 215, 243, 114, 139, 176, 177, 207, 115, 116,
- 117, 193, 194, 118, 225, 119, 120, 121, 122, 197,
- 123, 124, 125, 126, 127, 144, 128, 129, 143, 155,
- 183, 218, 219, 244, 245, 152, 185, 148, 198, 130,
- 161, 189, 162, 70
- };
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
- #define YYPACT_NINF -223
- static const yytype_int16 yypact[] =
- {
- -223, 14, -13, -223, 352, -52, -223, -93, 13, 0,
- -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
- -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
- -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
- -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
- -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
- -223, -223, -223, -223, -223, -223, -223, -223, -223, 36,
- -223, 32, 649, -26, -223, -223, 898, -223, 252, -223,
- -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
- -223, 28, -223, -223, -223, -223, -23, -223, -223, -223,
- -35, 28, -223, -223, -223, -32, 40, 1, -223, -223,
- -223, -223, -10, -223, -223, -223, -223, -223, -223, -223,
- 352, -223, -223, -223, -223, -223, -223, -223, -223, -223,
- 2, -223, 352, -223, 252, -223, -223, -11, -223, -22,
- -223, -223, -223, -17, 28, -223, -223, 49, 846, 28,
- -223, -223, -223, -223, -223, 56, -223, -223, -223, -223,
- -223, -81, -223, 80, 80, 950, -223, 86, -223, 51,
- -223, 7, -223, 71, -223, -223, -34, -223, -223, 44,
- 83, -223, -1, 5, 352, -223, -223, -223, -223, -223,
- -223, -223, -223, 950, 57, 10, 78, -223, 950, -223,
- 452, -223, -223, 97, 106, 950, -223, 81, -223, -223,
- -223, -223, -44, -223, -7, 4, -223, 352, 5, -223,
- -223, -223, -223, -223, 117, 73, 67, -223, -223, -223,
- 19, -223, 20, 552, 63, -223, -223, 113, -223, 83,
- -223, 950, -223, 95, -48, -223, -223, -223, -223, 120,
- 352, -223, 746, -25, -223, -223, -223, 68, -8, 26,
- -223, -223, -223, 846, 85, 352, 188, -223, 29, -51,
- -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
- -223, -223, -223, 30, -223, -223, 950, -223, -223, 746,
- -223, -223, -223, -223, -223
- };
- /* YYPGOTO[NTERM-NUM]. */
- static const yytype_int16 yypgoto[] =
- {
- -223, -223, -223, -223, -223, -223, 146, -223, -223, -223,
- 15, -223, -223, -223, -223, -223, -223, -138, -223, -223,
- -222, -223, -118, -223, -223, -223, -223, -203, -74, -223,
- 47, -223, -223, -223, -223, -223, -84, -223, -223, -223,
- -223, -223, -223, -223, -223, -223, -16, -223, -223, -223,
- -223, -223, -5, -223, -223, -223, -223, -223, -223, -185,
- -223, -223, -223, -223, -223, 62, -223, -223, -78, -223,
- -223, -223, -55, -223, -100, -122, -223, -156, -99, 168,
- -163, -223, -4, -71
- };
- /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule which
- number is the opposite. If YYTABLE_NINF, syntax error. */
- #define YYTABLE_NINF -61
- static const yytype_int16 yytable[] =
- {
- 69, 83, 106, 157, 4, 157, 157, 138, 222, 169,
- 205, 240, 145, 227, 3, 87, 88, 89, 4, 204,
- 170, 220, 84, 151, 74, -28, 71, 90, 91, 272,
- 271, 265, 276, 187, 72, 92, 188, 76, 186, 77,
- 273, 77, 140, 141, 142, -60, -60, -60, 241, 242,
- -60, 93, 94, 95, 79, 280, 163, 164, 266, 96,
- 73, 97, 171, 138, 98, 221, 179, 271, 288, 289,
- 165, 182, 99, 238, 181, 80, 239, 100, 101, 146,
- 175, 102, 150, 85, 86, 153, 263, 268, 172, 154,
- 103, 180, 175, 104, 190, 191, 192, 209, 210, 211,
- 178, 293, 184, 5, 199, 200, 201, 202, 208, 277,
- 224, 158, 159, 158, 158, -60, 216, 166, 223, 217,
- 87, 88, 89, 4, 226, 233, 248, 237, 167, 231,
- 235, 236, 90, 91, 249, 250, 251, 257, 252, 259,
- 92, 264, 267, 281, 275, 283, 287, 292, 7, 168,
- -59, 294, -59, 290, 156, 260, 93, 94, 95, 195,
- 206, 149, 256, 247, 96, 284, 97, 262, 286, 98,
- 9, 0, 0, 0, 0, 0, 0, 99, 0, 0,
- 0, 138, 100, 101, 0, 0, 102, 0, 0, 282,
- 0, 0, 285, 0, 0, 103, 0, 0, 104, 0,
- 0, 0, 87, 88, 89, 4, 0, 0, 0, 0,
- 0, 0, 0, 246, 90, 91, 0, 0, 138, 0,
- -59, 0, 92, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -59, 0, 0, 0, 93, 94,
- 95, 0, 0, 0, 0, 0, 96, 0, 97, 0,
- 0, 98, 0, 0, 0, 0, 0, 0, 0, 99,
- 0, 246, 0, 0, 100, 101, 131, 0, 102, 132,
- 0, 12, 13, 0, 14, 15, 0, 103, 0, 0,
- 104, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 133, 0, 25, 0, 26, 0, 0, 0, 27,
- 28, 0, -59, 0, 0, 29, 0, 0, 30, 0,
- 0, 31, 0, 0, 32, 0, 0, 33, 34, 35,
- 0, 36, 37, 0, 38, 39, 0, 40, 0, 0,
- 41, 0, 0, 42, 43, 44, 45, 46, 47, 48,
- 49, 0, 50, 51, 0, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 0, 62, 63, 0, 0,
- 64, 65, 66, 0, 67, 68, 10, 0, 11, 0,
- 0, 12, 13, 0, 14, 15, 0, 0, 0, 0,
- 0, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 0, 25, 0, 26, 0, 0, 0, 27,
- 28, 0, 0, 0, 0, 29, 0, 0, 30, 0,
- 0, 31, 0, 0, 32, 0, 0, 33, 34, 35,
- 0, 36, 37, 0, 38, 39, 0, 40, 0, 0,
- 41, 0, 0, 42, 43, 44, 45, 46, 47, 48,
- 49, 0, 50, 51, 0, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 0, 62, 63, 0, 0,
- 64, 65, 66, 0, 67, 68, 228, 229, 0, 0,
- 0, 12, 13, 0, 14, 15, 0, 0, 0, 0,
- 0, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 0, 25, 0, 26, 0, 0, 0, 27,
- 28, 0, 0, 0, 0, 29, 0, 0, 30, 0,
- 0, 31, 0, 0, 32, 0, 0, 33, 34, 35,
- 0, 36, 37, 0, 38, 39, 0, 40, 0, 0,
- 41, 0, 0, 42, 43, 44, 45, 46, 47, 48,
- 49, 0, 50, 51, 0, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 0, 62, 63, 0, 0,
- 64, 65, 66, 0, 67, 68, 254, 255, 0, 0,
- 0, 12, 13, 0, 14, 15, 0, 0, 0, 0,
- 0, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 0, 25, 0, 26, 0, 0, 0, 27,
- 28, 0, 0, 0, 0, 29, 0, 0, 30, 0,
- 0, 31, 0, 0, 32, 0, 0, 33, 34, 35,
- 0, 36, 37, 0, 38, 39, 0, 40, 0, 0,
- 41, 0, 0, 42, 43, 44, 45, 46, 47, 48,
- 49, 0, 50, 51, 0, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 0, 62, 63, 0, 0,
- 64, 65, 66, 81, 67, 68, 0, 0, 12, 13,
- 0, 14, 15, 0, 0, 0, 0, 0, 16, 17,
- 18, 19, 20, 0, 21, 22, 23, 24, 0, 0,
- 25, 0, 26, 0, 0, 0, 27, 28, 0, 0,
- 0, 0, 29, 0, 0, 30, 0, 0, 31, 0,
- 0, 32, 0, 0, 33, 34, 35, 0, 36, 37,
- 0, 38, 39, 0, 40, 0, 0, 41, 0, 0,
- 42, 43, 44, 45, 46, 47, 48, 49, 0, 50,
- 51, 0, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 0, 62, 63, 0, 0, 64, 65, 66,
- 131, 67, 68, 0, 0, 12, 13, 0, 14, 15,
- 0, 0, 0, 0, 0, 16, 17, 18, 19, 20,
- 0, 21, 22, 23, 24, 0, 0, 25, 0, 26,
- 0, 0, 0, 27, 28, 0, 0, 0, 0, 29,
- 0, 0, 30, 0, 0, 31, 0, 0, 32, 0,
- 0, 33, 34, 35, 0, 36, 37, 0, 38, 39,
- 0, 40, 0, 0, 41, 0, 0, 42, 43, 44,
- 45, 46, 47, 48, 49, 0, 50, 51, 0, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 0,
- 62, 63, 0, 0, 64, 65, 66, 0, 67, 68,
- 87, 88, 89, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 90, 91, 0, 0, 0, 0, 0, 0,
- 92, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -59, -59, -59, 0, 0, 0, 93, 94, 95, 0,
- 0, 0, 0, 0, 96, 0, 97, 0, 0, 98,
- 0, 0, 87, 88, 89, 4, 0, 99, 0, 0,
- 0, 0, 100, 101, 90, 91, 102, 0, 0, 0,
- 0, 0, 92, 0, 0, 103, 0, 0, 104, 0,
- 0, 0, 0, 0, -59, 0, 0, -59, 93, 94,
- 95, 0, 0, 0, 0, 0, 96, 0, 97, 0,
- 0, 98, 0, 0, 87, 88, 89, 4, 0, 99,
- 0, 0, 0, 0, 100, 101, 90, 91, 102, 0,
- 0, 0, 0, 0, 92, 0, 0, 103, 0, 0,
- 104, 0, 0, 0, 0, 0, -59, 0, 0, 0,
- 93, 94, 95, 0, 0, 0, 0, 0, 96, 0,
- 97, 0, 0, 98, 0, 0, 0, 0, 0, 0,
- 0, 99, 0, 0, 0, 0, 100, 101, 0, 0,
- 102, 0, 0, 0, 0, 0, 0, 0, 0, 103,
- 0, 0, 104
- };
- #define yypact_value_is…
Large files files are truncated, but you can click here to view the full file