openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

api_grammar.tab.c (57044B)


      1 /*
      2  * 
      3  *
      4  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      5  * 
      6  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      7  */
      8 
      9 /* A Bison parser, made by GNU Bison 2.4.1.  */
     10 
     11 /* Skeleton implementation for Bison's Yacc-like parsers in C
     12    
     13       Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     14    Free Software Foundation, Inc.
     15    
     16    This program is free software: you can redistribute it and/or modify
     17    it under the terms of the GNU General Public License as published by
     18    the Free Software Foundation, either version 3 of the License, or
     19    (at your option) any later version.
     20    
     21    This program is distributed in the hope that it will be useful,
     22    but WITHOUT ANY WARRANTY; without even the implied warranty of
     23    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     24    GNU General Public License for more details.
     25    
     26    You should have received a copy of the GNU General Public License
     27    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     28 
     29 /* As a special exception, you may create a larger work that contains
     30    part or all of the Bison parser skeleton and distribute that work
     31    under terms of your choice, so long as that work isn't itself a
     32    parser generator using the skeleton or a modified version thereof
     33    as a parser skeleton.  Alternatively, if you modify or redistribute
     34    the parser skeleton itself, you may (at your option) remove this
     35    special exception, which will cause the skeleton and the resulting
     36    Bison output files to be licensed under the GNU General Public
     37    License without this special exception.
     38    
     39    This special exception was added by the Free Software Foundation in
     40    version 2.2 of Bison.  */
     41 
     42 /* C LALR(1) parser skeleton written by Richard Stallman, by
     43    simplifying the original so-called "semantic" parser.  */
     44 
     45 /* All symbols defined below should begin with yy or YY, to avoid
     46    infringing on user name space.  This should be done even for local
     47    variables, as they might otherwise be expanded by user macros.
     48    There are some unavoidable exceptions within include files to
     49    define necessary library symbols; they are noted "INFRINGES ON
     50    USER NAME SPACE" below.  */
     51 
     52 /* Identify Bison output.  */
     53 #define YYBISON 1
     54 
     55 /* Bison version.  */
     56 #define YYBISON_VERSION "2.4.1"
     57 
     58 /* Skeleton name.  */
     59 #define YYSKELETON_NAME "yacc.c"
     60 
     61 /* Pure parsers.  */
     62 #define YYPURE 1
     63 
     64 /* Push parsers.  */
     65 #define YYPUSH 1
     66 
     67 /* Pull parsers.  */
     68 #define YYPULL 1
     69 
     70 /* Using locations.  */
     71 #define YYLSP_NEEDED 1
     72 
     73 /* Substitute the variable and function names.  */
     74 #define yyparse         api_mode_parse
     75 #define yypush_parse    api_mode_push_parse
     76 #define yypull_parse    api_mode_pull_parse
     77 #define yypstate_new    api_mode_pstate_new
     78 #define yypstate_delete api_mode_pstate_delete
     79 #define yypstate        api_mode_pstate
     80 #define yylex           api_mode_lex
     81 #define yyerror         api_mode_error
     82 #define yylval          api_mode_lval
     83 #define yychar          api_mode_char
     84 #define yydebug         api_mode_debug
     85 #define yynerrs         api_mode_nerrs
     86 #define yylloc          api_mode_lloc
     87 
     88 /* Copy the first part of user declarations.  */
     89 
     90 /* Line 189 of yacc.c  */
     91 #line 1 "api_grammar.y"
     92 
     93 /*
     94  * 
     95  * $Copyright: (c) 2011 Broadcom Corp.
     96  * All Rights Reserved.$
     97  *
     98  * File:        api_grammar.y
     99  * Purpose:     API mode parser
    100  */
    101 
    102 /* Line 189 of yacc.c  */
    103 #line 15 "api_grammar.y"
    104 
    105 #include "api_mode_yy.h"
    106 extern void api_mode_error(yyltype *loc, yyscan_t yyscanner,
    107                            void *parser, char const *s);
    108 
    109 
    110 /* Line 189 of yacc.c  */
    111 #line 106 "api_grammar.tab.c"
    112 
    113 /* Enabling traces.  */
    114 #ifndef YYDEBUG
    115 # define YYDEBUG 1
    116 #endif
    117 
    118 /* Enabling verbose error messages.  */
    119 #ifdef YYERROR_VERBOSE
    120 # undef YYERROR_VERBOSE
    121 # define YYERROR_VERBOSE 1
    122 #else
    123 # define YYERROR_VERBOSE 1
    124 #endif
    125 
    126 /* Enabling the token table.  */
    127 #ifndef YYTOKEN_TABLE
    128 # define YYTOKEN_TABLE 0
    129 #endif
    130 
    131 
    132 /* Tokens.  */
    133 #ifndef YYTOKENTYPE
    134 # define YYTOKENTYPE
    135    /* Put the tokens into the symbol table, so that GDB and other debuggers
    136       know about them.  */
    137    enum yytokentype {
    138      IDENT = 258,
    139      KEY = 259,
    140      CONSTANT = 260,
    141      AGGREGATE = 261,
    142      PROMPT = 262,
    143      EMPTY = 263,
    144      KEY_VALUE = 264,
    145      RANGE = 265,
    146      ITEM = 266,
    147      ASSIGN = 267,
    148      VALUE = 268,
    149      PRINT = 269,
    150      VAR = 270,
    151      CREATE = 271
    152    };
    153 #endif
    154 
    155 
    156 
    157 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    158 typedef int YYSTYPE;
    159 # define YYSTYPE_IS_TRIVIAL 1
    160 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    161 # define YYSTYPE_IS_DECLARED 1
    162 #endif
    163 
    164 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
    165 typedef struct YYLTYPE
    166 {
    167   int first_line;
    168   int first_column;
    169   int last_line;
    170   int last_column;
    171 } YYLTYPE;
    172 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
    173 # define YYLTYPE_IS_DECLARED 1
    174 # define YYLTYPE_IS_TRIVIAL 1
    175 #endif
    176 
    177 #ifndef YYPUSH_DECLS
    178 #  define YYPUSH_DECLS
    179 struct yypstate;
    180 typedef struct yypstate yypstate;
    181 enum { YYPUSH_MORE = 4 };
    182 
    183 #if defined __STDC__ || defined __cplusplus
    184 int yyparse (yyscan_t yyscanner, void *parser);
    185 #else
    186 int yyparse ();
    187 #endif
    188 #if defined __STDC__ || defined __cplusplus
    189 int yypush_parse (yypstate *yyps, int yypushed_char, YYSTYPE const *yypushed_val, YYLTYPE const *yypushed_loc, yyscan_t yyscanner, void *parser);
    190 #else
    191 int yypush_parse ();
    192 #endif
    193 #if defined __STDC__ || defined __cplusplus
    194 int yypull_parse (yypstate *yyps, yyscan_t yyscanner, void *parser);
    195 #else
    196 int yypull_parse ();
    197 #endif
    198 #if defined __STDC__ || defined __cplusplus
    199 yypstate * yypstate_new (void);
    200 #else
    201 yypstate * yypstate_new ();
    202 #endif
    203 #if defined __STDC__ || defined __cplusplus
    204 void yypstate_delete (yypstate *yyps);
    205 #else
    206 void yypstate_delete ();
    207 #endif
    208 #endif
    209 
    210 
    211 /* Copy the second part of user declarations.  */
    212 
    213 
    214 /* Line 264 of yacc.c  */
    215 #line 210 "api_grammar.tab.c"
    216 
    217 #ifdef short
    218 # undef short
    219 #endif
    220 
    221 #ifdef YYTYPE_UINT8
    222 typedef YYTYPE_UINT8 yytype_uint8;
    223 #else
    224 typedef unsigned char yytype_uint8;
    225 #endif
    226 
    227 #ifdef YYTYPE_INT8
    228 typedef YYTYPE_INT8 yytype_int8;
    229 #elif (defined __STDC__ || defined __C99__FUNC__ \
    230      || defined __cplusplus || defined _MSC_VER)
    231 typedef signed char yytype_int8;
    232 #else
    233 typedef short int yytype_int8;
    234 #endif
    235 
    236 #ifdef YYTYPE_UINT16
    237 typedef YYTYPE_UINT16 yytype_uint16;
    238 #else
    239 typedef unsigned short int yytype_uint16;
    240 #endif
    241 
    242 #ifdef YYTYPE_INT16
    243 typedef YYTYPE_INT16 yytype_int16;
    244 #else
    245 typedef short int yytype_int16;
    246 #endif
    247 
    248 #ifndef YYSIZE_T
    249 # ifdef __SIZE_TYPE__
    250 #  define YYSIZE_T __SIZE_TYPE__
    251 # elif defined size_t
    252 #  define YYSIZE_T size_t
    253 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
    254      || defined __cplusplus || defined _MSC_VER)
    255 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    256 #  define YYSIZE_T size_t
    257 # else
    258 #  define YYSIZE_T unsigned int
    259 # endif
    260 #endif
    261 
    262 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
    263 
    264 #ifndef YY_
    265 # if YYENABLE_NLS
    266 #  if ENABLE_NLS
    267 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    268 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
    269 #  endif
    270 # endif
    271 # ifndef YY_
    272 #  define YY_(msgid) msgid
    273 # endif
    274 #endif
    275 
    276 /* Suppress unused-variable warnings by "using" E.  */
    277 #if ! defined lint || defined __GNUC__
    278 # define YYUSE(e) ((void) (e))
    279 #else
    280 # define YYUSE(e) /* empty */
    281 #endif
    282 
    283 /* Identity function, used to suppress warnings about constant conditions.  */
    284 #ifndef lint
    285 # define YYID(n) (n)
    286 #else
    287 #if (defined __STDC__ || defined __C99__FUNC__ \
    288      || defined __cplusplus || defined _MSC_VER)
    289 static int
    290 YYID (int yyi)
    291 #else
    292 static int
    293 YYID (yyi)
    294     int yyi;
    295 #endif
    296 {
    297   return yyi;
    298 }
    299 #endif
    300 
    301 #if ! defined yyoverflow || YYERROR_VERBOSE
    302 
    303 # ifdef YYSTACK_ALLOC
    304    /* Pacify GCC's `empty if-body' warning.  */
    305 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
    306 #  ifndef YYSTACK_ALLOC_MAXIMUM
    307     /* The OS might guarantee only one guard page at the bottom of the stack,
    308        and a page size can be as small as 4096 bytes.  So we cannot safely
    309        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
    310        to allow for a few compiler-allocated temporary stack slots.  */
    311 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
    312 #  endif
    313 # else
    314 #  define YYSTACK_ALLOC YYMALLOC
    315 #  define YYSTACK_FREE YYFREE
    316 #  ifndef YYSTACK_ALLOC_MAXIMUM
    317 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
    318 #  endif
    319 #  if (! defined _STDLIB_H \
    320        && ! ((defined YYMALLOC || defined malloc) \
    321 	     && (defined YYFREE || defined free)))
    322 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    323 #   ifndef _STDLIB_H
    324 #    define _STDLIB_H 1
    325 #   endif
    326 #  endif
    327 #  ifndef YYMALLOC
    328 #   define YYMALLOC malloc
    329 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    330      || defined __cplusplus || defined _MSC_VER)
    331 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    332 #   endif
    333 #  endif
    334 #  ifndef YYFREE
    335 #   define YYFREE free
    336 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    337      || defined __cplusplus || defined _MSC_VER)
    338 void free (void *); /* INFRINGES ON USER NAME SPACE */
    339 #   endif
    340 #  endif
    341 # endif
    342 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
    343 
    344 
    345 #if (! defined yyoverflow \
    346      && (! defined __cplusplus \
    347 	 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
    348 	     && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    349 
    350 /* A type that is properly aligned for any stack member.  */
    351 union yyalloc
    352 {
    353   yytype_int16 yyss_alloc;
    354   YYSTYPE yyvs_alloc;
    355   YYLTYPE yyls_alloc;
    356 };
    357 
    358 /* The size of the maximum gap between one aligned stack and the next.  */
    359 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
    360 
    361 /* The size of an array large to enough to hold all stacks, each with
    362    N elements.  */
    363 # define YYSTACK_BYTES(N) \
    364      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
    365       + 2 * YYSTACK_GAP_MAXIMUM)
    366 
    367 /* Copy COUNT objects from FROM to TO.  The source and destination do
    368    not overlap.  */
    369 # ifndef YYCOPY
    370 #  if defined __GNUC__ && 1 < __GNUC__
    371 #   define YYCOPY(To, From, Count) \
    372       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
    373 #  else
    374 #   define YYCOPY(To, From, Count)		\
    375       do					\
    376 	{					\
    377 	  YYSIZE_T yyi;				\
    378 	  for (yyi = 0; yyi < (Count); yyi++)	\
    379 	    (To)[yyi] = (From)[yyi];		\
    380 	}					\
    381       while (YYID (0))
    382 #  endif
    383 # endif
    384 
    385 /* Relocate STACK from its old location to the new one.  The
    386    local variables YYSIZE and YYSTACKSIZE give the old and new number of
    387    elements in the stack, and YYPTR gives the new location of the
    388    stack.  Advance YYPTR to a properly aligned location for the next
    389    stack.  */
    390 # define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
    391     do									\
    392       {									\
    393 	YYSIZE_T yynewbytes;						\
    394 	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
    395 	Stack = &yyptr->Stack_alloc;					\
    396 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    397 	yyptr += yynewbytes / sizeof (*yyptr);				\
    398       }									\
    399     while (YYID (0))
    400 
    401 #endif
    402 
    403 /* YYFINAL -- State number of the termination state.  */
    404 #define YYFINAL  18
    405 /* YYLAST -- Last index in YYTABLE.  */
    406 #define YYLAST   72
    407 
    408 /* YYNTOKENS -- Number of terminals.  */
    409 #define YYNTOKENS  28
    410 /* YYNNTS -- Number of nonterminals.  */
    411 #define YYNNTS  16
    412 /* YYNRULES -- Number of rules.  */
    413 #define YYNRULES  43
    414 /* YYNRULES -- Number of states.  */
    415 #define YYNSTATES  65
    416 
    417 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    418 #define YYUNDEFTOK  2
    419 #define YYMAXUTOK   271
    420 
    421 #define YYTRANSLATE(YYX)						\
    422   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    423 
    424 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
    425 static const yytype_uint8 yytranslate[] =
    426 {
    427        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    428        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    429        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    430        2,     2,     2,    19,     2,     2,     2,     2,     2,     2,
    431        2,     2,    23,     2,    25,    22,    21,    24,     2,     2,
    432        2,     2,     2,     2,     2,     2,     2,     2,     2,    18,
    433        2,     3,     2,    20,     2,     2,     2,     2,     2,     2,
    434        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    435        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    436        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    437        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    438        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    439        2,     2,     2,    26,     2,    27,     2,     2,     2,     2,
    440        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    441        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    442        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    443        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    444        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    445        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    446        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    447        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    448        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    449        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    450        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    451        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    452        2,     2,     2,     2,     2,     2,     1,     2,     4,     5,
    453        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    454       16,    17
    455 };
    456 
    457 #if YYDEBUG
    458 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    459    YYRHS.  */
    460 static const yytype_uint8 yyprhs[] =
    461 {
    462        0,     0,     3,     5,     9,    11,    13,    16,    19,    22,
    463       26,    31,    35,    37,    40,    43,    46,    48,    51,    53,
    464       57,    59,    62,    64,    67,    69,    72,    74,    78,    82,
    465       88,    94,    96,   100,   102,   105,   109,   111,   113,   115,
    466      119,   121,   123,   125
    467 };
    468 
    469 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
    470 static const yytype_int8 yyrhs[] =
    471 {
    472       29,     0,    -1,    30,    -1,    29,    18,    30,    -1,    31,
    473       -1,    19,    -1,    19,    31,    -1,    32,    20,    -1,    15,
    474       34,    -1,    17,    32,    35,    -1,    16,    34,     3,    41,
    475       -1,    16,    33,     8,    -1,    32,    -1,    32,     8,    -1,
    476       32,    36,    -1,    32,    39,    -1,     4,    -1,    32,     4,
    477       -1,     4,    -1,    33,    21,     4,    -1,    33,    -1,    34,
    478       33,    -1,     5,    -1,    35,     5,    -1,    41,    -1,    36,
    479       41,    -1,    12,    -1,    12,    22,    12,    -1,    12,    23,
    480        6,    -1,    12,    22,    12,    24,     6,    -1,    12,    23,
    481       12,    24,     6,    -1,    37,    -1,    38,    25,    37,    -1,
    482       40,    -1,    39,    40,    -1,     5,     3,    41,    -1,     6,
    483       -1,    14,    -1,    42,    -1,    26,    43,    27,    -1,    38,
    484       -1,    39,    -1,    36,    -1,     3,    -1
    485 };
    486 
    487 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
    488 static const yytype_uint8 yyrline[] =
    489 {
    490        0,    53,    53,    55,    60,    61,    62,    64,    66,    68,
    491       70,    72,    77,    78,    80,    82,    87,    89,    94,    96,
    492      101,   103,   108,   110,   115,   117,   122,   123,   125,   127,
    493      129,   134,   136,   141,   143,   148,   153,   154,   155,   159,
    494      161,   166,   167,   168
    495 };
    496 #endif
    497 
    498 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
    499 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    500    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
    501 static const char *const yytname[] =
    502 {
    503   "$end", "error", "$undefined", "'='", "IDENT", "KEY", "CONSTANT",
    504   "AGGREGATE", "PROMPT", "EMPTY", "KEY_VALUE", "RANGE", "ITEM", "ASSIGN",
    505   "VALUE", "PRINT", "VAR", "CREATE", "';'", "'!'", "'?'", "'.'", "'-'",
    506   "'*'", "'/'", "','", "'{'", "'}'", "$accept", "statements", "statement",
    507   "executable", "identifiers", "selectors", "selector_list", "keys",
    508   "positional_arguments", "positional_item", "positional_list",
    509   "keyword_arguments", "keyword_argument", "argument", "aggregate",
    510   "aggregate_arguments", 0
    511 };
    512 #endif
    513 
    514 # ifdef YYPRINT
    515 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    516    token YYLEX-NUM.  */
    517 static const yytype_uint16 yytoknum[] =
    518 {
    519        0,   256,   257,    61,   258,   259,   260,   261,   262,   263,
    520      264,   265,   266,   267,   268,   269,   270,   271,    59,    33,
    521       63,    46,    45,    42,    47,    44,   123,   125
    522 };
    523 # endif
    524 
    525 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    526 static const yytype_uint8 yyr1[] =
    527 {
    528        0,    28,    29,    29,    30,    30,    30,    30,    30,    30,
    529       30,    30,    31,    31,    31,    31,    32,    32,    33,    33,
    530       34,    34,    35,    35,    36,    36,    37,    37,    37,    37,
    531       37,    38,    38,    39,    39,    40,    41,    41,    41,    42,
    532       42,    43,    43,    43
    533 };
    534 
    535 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    536 static const yytype_uint8 yyr2[] =
    537 {
    538        0,     2,     1,     3,     1,     1,     2,     2,     2,     3,
    539        4,     3,     1,     2,     2,     2,     1,     2,     1,     3,
    540        1,     2,     1,     2,     1,     2,     1,     3,     3,     5,
    541        5,     1,     3,     1,     2,     3,     1,     1,     1,     3,
    542        1,     1,     1,     1
    543 };
    544 
    545 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    546    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    547    means the default is an error.  */
    548 static const yytype_uint8 yydefact[] =
    549 {
    550        0,    16,     0,     0,     0,     5,     0,     2,     4,    12,
    551       18,    20,     8,    20,     0,     0,     6,    12,     1,     0,
    552       17,     0,    36,    13,    26,    37,     7,     0,    14,    31,
    553       40,    15,    33,    24,    38,     0,    21,    11,     0,    22,
    554        9,     3,     0,     0,     0,    43,    42,    41,     0,    25,
    555        0,    34,    19,    10,    23,    35,    27,    28,     0,    39,
    556       32,     0,     0,    29,    30
    557 };
    558 
    559 /* YYDEFGOTO[NTERM-NUM].  */
    560 static const yytype_int8 yydefgoto[] =
    561 {
    562       -1,     6,     7,     8,     9,    36,    12,    40,    28,    29,
    563       30,    31,    32,    33,    34,    48
    564 };
    565 
    566 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    567    STATE-NUM.  */
    568 #define YYPACT_NINF -19
    569 static const yytype_int8 yypact[] =
    570 {
    571       30,   -19,     6,     6,    31,    31,    15,   -19,   -19,     0,
    572      -19,    34,     6,    20,    28,    33,   -19,    13,   -19,    30,
    573      -19,    47,   -19,   -19,    29,   -19,   -19,    -3,    10,   -19,
    574       32,    53,   -19,   -19,   -19,    52,    34,   -19,    10,   -19,
    575       54,   -19,    10,    48,    -5,   -19,    10,    53,    35,   -19,
    576       49,   -19,   -19,   -19,   -19,   -19,    39,   -19,    40,   -19,
    577      -19,    59,    60,   -19,   -19
    578 };
    579 
    580 /* YYPGOTO[NTERM-NUM].  */
    581 static const yytype_int8 yypgoto[] =
    582 {
    583      -19,   -19,    50,    62,    38,    51,    65,   -19,    43,    21,
    584      -19,    45,   -18,     2,   -19,   -19
    585 };
    586 
    587 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    588    positive, shift that token.  If negative, reduce the rule which
    589    number is the opposite.  If zero, do what YYDEFACT says.
    590    If YYTABLE_NINF, syntax error.  */
    591 #define YYTABLE_NINF -1
    592 static const yytype_uint8 yytable[] =
    593 {
    594       45,    57,    21,    22,    20,    21,    22,    58,    23,    24,
    595       10,    25,    24,    51,    25,    18,    22,    20,    21,    22,
    596       26,    23,    24,    27,    25,    24,    27,    25,    37,    51,
    597       49,    38,    10,    19,     1,     1,    27,    20,    39,    27,
    598       53,    35,    15,    17,    55,     2,     3,     4,    49,     5,
    599       42,    43,    44,    11,    13,    35,    52,    50,    21,    54,
    600       56,    24,    59,    61,    62,    63,    64,    16,    14,    41,
    601       46,    60,    47
    602 };
    603 
    604 static const yytype_uint8 yycheck[] =
    605 {
    606        3,     6,     5,     6,     4,     5,     6,    12,     8,    12,
    607        4,    14,    12,    31,    14,     0,     6,     4,     5,     6,
    608       20,     8,    12,    26,    14,    12,    26,    14,     8,    47,
    609       28,     3,     4,    18,     4,     4,    26,     4,     5,    26,
    610       38,    21,     4,     5,    42,    15,    16,    17,    46,    19,
    611        3,    22,    23,     2,     3,    21,     4,    25,     5,     5,
    612       12,    12,    27,    24,    24,     6,     6,     5,     3,    19,
    613       27,    50,    27
    614 };
    615 
    616 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    617    symbol of state STATE-NUM.  */
    618 static const yytype_uint8 yystos[] =
    619 {
    620        0,     4,    15,    16,    17,    19,    29,    30,    31,    32,
    621        4,    33,    34,    33,    34,    32,    31,    32,     0,    18,
    622        4,     5,     6,     8,    12,    14,    20,    26,    36,    37,
    623       38,    39,    40,    41,    42,    21,    33,     8,     3,     5,
    624       35,    30,     3,    22,    23,     3,    36,    39,    43,    41,
    625       25,    40,     4,    41,     5,    41,    12,     6,    12,    27,
    626       37,    24,    24,     6,     6
    627 };
    628 
    629 #define yyerrok		(yyerrstatus = 0)
    630 #define yyclearin	(yychar = YYEMPTY)
    631 #define YYEMPTY		(-2)
    632 #define YYEOF		0
    633 
    634 #define YYACCEPT	goto yyacceptlab
    635 #define YYABORT		goto yyabortlab
    636 #define YYERROR		goto yyerrorlab
    637 
    638 
    639 /* Like YYERROR except do call yyerror.  This remains here temporarily
    640    to ease the transition to the new meaning of YYERROR, for GCC.
    641    Once GCC version 2 has supplanted version 1, this can go.  */
    642 
    643 #define YYFAIL		goto yyerrlab
    644 
    645 #define YYRECOVERING()  (!!yyerrstatus)
    646 
    647 #define YYBACKUP(Token, Value)					\
    648 do								\
    649   if (yychar == YYEMPTY && yylen == 1)				\
    650     {								\
    651       yychar = (Token);						\
    652       yylval = (Value);						\
    653       yytoken = YYTRANSLATE (yychar);				\
    654       YYPOPSTACK (1);						\
    655       goto yybackup;						\
    656     }								\
    657   else								\
    658     {								\
    659       yyerror (&yylloc, yyscanner, parser, YY_("syntax error: cannot back up")); \
    660       YYERROR;							\
    661     }								\
    662 while (YYID (0))
    663 
    664 
    665 #define YYTERROR	1
    666 #define YYERRCODE	256
    667 
    668 
    669 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    670    If N is 0, then set CURRENT to the empty location which ends
    671    the previous symbol: RHS[0] (always defined).  */
    672 
    673 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    674 #ifndef YYLLOC_DEFAULT
    675 # define YYLLOC_DEFAULT(Current, Rhs, N)				\
    676     do									\
    677       if (YYID (N))                                                    \
    678 	{								\
    679 	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
    680 	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
    681 	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
    682 	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
    683 	}								\
    684       else								\
    685 	{								\
    686 	  (Current).first_line   = (Current).last_line   =		\
    687 	    YYRHSLOC (Rhs, 0).last_line;				\
    688 	  (Current).first_column = (Current).last_column =		\
    689 	    YYRHSLOC (Rhs, 0).last_column;				\
    690 	}								\
    691     while (YYID (0))
    692 #endif
    693 
    694 
    695 /* YY_LOCATION_PRINT -- Print the location on the stream.
    696    This macro was not mandated originally: define only if we know
    697    we won't break user code: when these are the locations we know.  */
    698 
    699 #ifndef YY_LOCATION_PRINT
    700 # if YYLTYPE_IS_TRIVIAL
    701 #  define YY_LOCATION_PRINT(File, Loc)			\
    702      fprintf (File, "%d.%d-%d.%d",			\
    703 	      (Loc).first_line, (Loc).first_column,	\
    704 	      (Loc).last_line,  (Loc).last_column)
    705 # else
    706 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    707 # endif
    708 #endif
    709 
    710 
    711 /* YYLEX -- calling `yylex' with the right arguments.  */
    712 
    713 #ifdef YYLEX_PARAM
    714 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
    715 #else
    716 # define YYLEX yylex (&yylval, &yylloc, yyscanner)
    717 #endif
    718 
    719 /* Enable debugging if requested.  */
    720 #if YYDEBUG
    721 
    722 # ifndef YYFPRINTF
    723 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
    724 #  define YYFPRINTF fprintf
    725 # endif
    726 
    727 # define YYDPRINTF(Args)			\
    728 do {						\
    729   if (yydebug)					\
    730     YYFPRINTF Args;				\
    731 } while (YYID (0))
    732 
    733 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
    734 do {									  \
    735   if (yydebug)								  \
    736     {									  \
    737       YYFPRINTF (stderr, "%s ", Title);					  \
    738       yy_symbol_print (stderr,						  \
    739 		  Type, Value, Location, yyscanner, parser); \
    740       YYFPRINTF (stderr, "\n");						  \
    741     }									  \
    742 } while (YYID (0))
    743 
    744 
    745 /*--------------------------------.
    746 | Print this symbol on YYOUTPUT.  |
    747 `--------------------------------*/
    748 
    749 /*ARGSUSED*/
    750 #if (defined __STDC__ || defined __C99__FUNC__ \
    751      || defined __cplusplus || defined _MSC_VER)
    752 static void
    753 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, yyscan_t yyscanner, void *parser)
    754 #else
    755 static void
    756 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner, parser)
    757     FILE *yyoutput;
    758     int yytype;
    759     YYSTYPE const * const yyvaluep;
    760     YYLTYPE const * const yylocationp;
    761     yyscan_t yyscanner;
    762     void *parser;
    763 #endif
    764 {
    765   if (!yyvaluep)
    766     return;
    767   YYUSE (yylocationp);
    768   YYUSE (yyscanner);
    769   YYUSE (parser);
    770 # ifdef YYPRINT
    771   if (yytype < YYNTOKENS)
    772     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    773 # else
    774   YYUSE (yyoutput);
    775 # endif
    776   switch (yytype)
    777     {
    778       default:
    779 	break;
    780     }
    781 }
    782 
    783 
    784 /*--------------------------------.
    785 | Print this symbol on YYOUTPUT.  |
    786 `--------------------------------*/
    787 
    788 #if (defined __STDC__ || defined __C99__FUNC__ \
    789      || defined __cplusplus || defined _MSC_VER)
    790 static void
    791 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, yyscan_t yyscanner, void *parser)
    792 #else
    793 static void
    794 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner, parser)
    795     FILE *yyoutput;
    796     int yytype;
    797     YYSTYPE const * const yyvaluep;
    798     YYLTYPE const * const yylocationp;
    799     yyscan_t yyscanner;
    800     void *parser;
    801 #endif
    802 {
    803   if (yytype < YYNTOKENS)
    804     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    805   else
    806     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    807 
    808   YY_LOCATION_PRINT (yyoutput, *yylocationp);
    809   YYFPRINTF (yyoutput, ": ");
    810   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner, parser);
    811   YYFPRINTF (yyoutput, ")");
    812 }
    813 
    814 /*------------------------------------------------------------------.
    815 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
    816 | TOP (included).                                                   |
    817 `------------------------------------------------------------------*/
    818 
    819 #if (defined __STDC__ || defined __C99__FUNC__ \
    820      || defined __cplusplus || defined _MSC_VER)
    821 static void
    822 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
    823 #else
    824 static void
    825 yy_stack_print (yybottom, yytop)
    826     yytype_int16 *yybottom;
    827     yytype_int16 *yytop;
    828 #endif
    829 {
    830   YYFPRINTF (stderr, "Stack now");
    831   for (; yybottom <= yytop; yybottom++)
    832     {
    833       int yybot = *yybottom;
    834       YYFPRINTF (stderr, " %d", yybot);
    835     }
    836   YYFPRINTF (stderr, "\n");
    837 }
    838 
    839 # define YY_STACK_PRINT(Bottom, Top)				\
    840 do {								\
    841   if (yydebug)							\
    842     yy_stack_print ((Bottom), (Top));				\
    843 } while (YYID (0))
    844 
    845 
    846 /*------------------------------------------------.
    847 | Report that the YYRULE is going to be reduced.  |
    848 `------------------------------------------------*/
    849 
    850 #if (defined __STDC__ || defined __C99__FUNC__ \
    851      || defined __cplusplus || defined _MSC_VER)
    852 static void
    853 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, yyscan_t yyscanner, void *parser)
    854 #else
    855 static void
    856 yy_reduce_print (yyvsp, yylsp, yyrule, yyscanner, parser)
    857     YYSTYPE *yyvsp;
    858     YYLTYPE *yylsp;
    859     int yyrule;
    860     yyscan_t yyscanner;
    861     void *parser;
    862 #endif
    863 {
    864   int yynrhs = yyr2[yyrule];
    865   int yyi;
    866   unsigned long int yylno = yyrline[yyrule];
    867   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    868 	     yyrule - 1, yylno);
    869   /* The symbols being reduced.  */
    870   for (yyi = 0; yyi < yynrhs; yyi++)
    871     {
    872       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    873       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    874 		       &(yyvsp[(yyi + 1) - (yynrhs)])
    875 		       , &(yylsp[(yyi + 1) - (yynrhs)])		       , yyscanner, parser);
    876       YYFPRINTF (stderr, "\n");
    877     }
    878 }
    879 
    880 # define YY_REDUCE_PRINT(Rule)		\
    881 do {					\
    882   if (yydebug)				\
    883     yy_reduce_print (yyvsp, yylsp, Rule, yyscanner, parser); \
    884 } while (YYID (0))
    885 
    886 /* Nonzero means print parse trace.  It is left uninitialized so that
    887    multiple parsers can coexist.  */
    888 int yydebug;
    889 #else /* !YYDEBUG */
    890 # define YYDPRINTF(Args)
    891 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
    892 # define YY_STACK_PRINT(Bottom, Top)
    893 # define YY_REDUCE_PRINT(Rule)
    894 #endif /* !YYDEBUG */
    895 
    896 
    897 /* YYINITDEPTH -- initial size of the parser's stacks.  */
    898 #ifndef	YYINITDEPTH
    899 # define YYINITDEPTH 200
    900 #endif
    901 
    902 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
    903    if the built-in stack extension method is used).
    904 
    905    Do not make this value too large; the results are undefined if
    906    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
    907    evaluated with infinite-precision integer arithmetic.  */
    908 
    909 #ifndef YYMAXDEPTH
    910 # define YYMAXDEPTH 10000
    911 #endif
    912 
    913 
    914 
    915 #if YYERROR_VERBOSE
    916 
    917 # ifndef yystrlen
    918 #  if defined __GLIBC__ && defined _STRING_H
    919 #   define yystrlen strlen
    920 #  else
    921 /* Return the length of YYSTR.  */
    922 #if (defined __STDC__ || defined __C99__FUNC__ \
    923      || defined __cplusplus || defined _MSC_VER)
    924 static YYSIZE_T
    925 yystrlen (const char *yystr)
    926 #else
    927 static YYSIZE_T
    928 yystrlen (yystr)
    929     const char *yystr;
    930 #endif
    931 {
    932   YYSIZE_T yylen;
    933   for (yylen = 0; yystr[yylen]; yylen++)
    934     continue;
    935   return yylen;
    936 }
    937 #  endif
    938 # endif
    939 
    940 # ifndef yystpcpy
    941 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
    942 #   define yystpcpy stpcpy
    943 #  else
    944 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    945    YYDEST.  */
    946 #if (defined __STDC__ || defined __C99__FUNC__ \
    947      || defined __cplusplus || defined _MSC_VER)
    948 static char *
    949 yystpcpy (char *yydest, const char *yysrc)
    950 #else
    951 static char *
    952 yystpcpy (yydest, yysrc)
    953     char *yydest;
    954     const char *yysrc;
    955 #endif
    956 {
    957   char *yyd = yydest;
    958   const char *yys = yysrc;
    959 
    960   while ((*yyd++ = *yys++) != '\0')
    961     continue;
    962 
    963   return yyd - 1;
    964 }
    965 #  endif
    966 # endif
    967 
    968 # ifndef yytnamerr
    969 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
    970    quotes and backslashes, so that it's suitable for yyerror.  The
    971    heuristic is that double-quoting is unnecessary unless the string
    972    contains an apostrophe, a comma, or backslash (other than
    973    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
    974    null, do not copy; instead, return the length of what the result
    975    would have been.  */
    976 static YYSIZE_T
    977 yytnamerr (char *yyres, const char *yystr)
    978 {
    979   if (*yystr == '"')
    980     {
    981       YYSIZE_T yyn = 0;
    982       char const *yyp = yystr;
    983 
    984       for (;;)
    985 	switch (*++yyp)
    986 	  {
    987 	  case '\'':
    988 	  case ',':
    989 	    goto do_not_strip_quotes;
    990 
    991 	  case '\\':
    992 	    if (*++yyp != '\\')
    993 	      goto do_not_strip_quotes;
    994 	    /* Fall through.  */
    995 	  default:
    996 	    if (yyres)
    997 	      yyres[yyn] = *yyp;
    998 	    yyn++;
    999 	    break;
   1000 
   1001 	  case '"':
   1002 	    if (yyres)
   1003 	      yyres[yyn] = '\0';
   1004 	    return yyn;
   1005 	  }
   1006     do_not_strip_quotes: ;
   1007     }
   1008 
   1009   if (! yyres)
   1010     return yystrlen (yystr);
   1011 
   1012   return yystpcpy (yyres, yystr) - yyres;
   1013 }
   1014 # endif
   1015 
   1016 /* Copy into YYRESULT an error message about the unexpected token
   1017    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
   1018    including the terminating null byte.  If YYRESULT is null, do not
   1019    copy anything; just return the number of bytes that would be
   1020    copied.  As a special case, return 0 if an ordinary "syntax error"
   1021    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
   1022    size calculation.  */
   1023 static YYSIZE_T
   1024 yysyntax_error (char *yyresult, int yystate, int yychar)
   1025 {
   1026   int yyn = yypact[yystate];
   1027 
   1028   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
   1029     return 0;
   1030   else
   1031     {
   1032       int yytype = YYTRANSLATE (yychar);
   1033       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
   1034       YYSIZE_T yysize = yysize0;
   1035       YYSIZE_T yysize1;
   1036       int yysize_overflow = 0;
   1037       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   1038       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   1039       int yyx;
   1040 
   1041 # if 0
   1042       /* This is so xgettext sees the translatable formats that are
   1043 	 constructed on the fly.  */
   1044       YY_("syntax error, unexpected %s");
   1045       YY_("syntax error, unexpected %s, expecting %s");
   1046       YY_("syntax error, unexpected %s, expecting %s or %s");
   1047       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
   1048       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
   1049 # endif
   1050       char *yyfmt;
   1051       char const *yyf;
   1052       static char const yyunexpected[] = "syntax error, unexpected %s";
   1053       static char const yyexpecting[] = ", expecting %s";
   1054       static char const yyor[] = " or %s";
   1055       char yyformat[sizeof yyunexpected
   1056 		    + sizeof yyexpecting - 1
   1057 		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
   1058 		       * (sizeof yyor - 1))];
   1059       char const *yyprefix = yyexpecting;
   1060 
   1061       /* Start YYX at -YYN if negative to avoid negative indexes in
   1062 	 YYCHECK.  */
   1063       int yyxbegin = yyn < 0 ? -yyn : 0;
   1064 
   1065       /* Stay within bounds of both yycheck and yytname.  */
   1066       int yychecklim = YYLAST - yyn + 1;
   1067       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
   1068       int yycount = 1;
   1069 
   1070       yyarg[0] = yytname[yytype];
   1071       yyfmt = yystpcpy (yyformat, yyunexpected);
   1072 
   1073       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
   1074 	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
   1075 	  {
   1076 	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
   1077 	      {
   1078 		yycount = 1;
   1079 		yysize = yysize0;
   1080 		yyformat[sizeof yyunexpected - 1] = '\0';
   1081 		break;
   1082 	      }
   1083 	    yyarg[yycount++] = yytname[yyx];
   1084 	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
   1085 	    yysize_overflow |= (yysize1 < yysize);
   1086 	    yysize = yysize1;
   1087 	    yyfmt = yystpcpy (yyfmt, yyprefix);
   1088 	    yyprefix = yyor;
   1089 	  }
   1090 
   1091       yyf = YY_(yyformat);
   1092       yysize1 = yysize + yystrlen (yyf);
   1093       yysize_overflow |= (yysize1 < yysize);
   1094       yysize = yysize1;
   1095 
   1096       if (yysize_overflow)
   1097 	return YYSIZE_MAXIMUM;
   1098 
   1099       if (yyresult)
   1100 	{
   1101 	  /* Avoid sprintf, as that infringes on the user's name space.
   1102 	     Don't have undefined behavior even if the translation
   1103 	     produced a string with the wrong number of "%s"s.  */
   1104 	  char *yyp = yyresult;
   1105 	  int yyi = 0;
   1106 	  while ((*yyp = *yyf) != '\0')
   1107 	    {
   1108 	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
   1109 		{
   1110 		  yyp += yytnamerr (yyp, yyarg[yyi++]);
   1111 		  yyf += 2;
   1112 		}
   1113 	      else
   1114 		{
   1115 		  yyp++;
   1116 		  yyf++;
   1117 		}
   1118 	    }
   1119 	}
   1120       return yysize;
   1121     }
   1122 }
   1123 #endif /* YYERROR_VERBOSE */
   1124 
   1125 
   1126 /*-----------------------------------------------.
   1127 | Release the memory associated to this symbol.  |
   1128 `-----------------------------------------------*/
   1129 
   1130 /*ARGSUSED*/
   1131 #if (defined __STDC__ || defined __C99__FUNC__ \
   1132      || defined __cplusplus || defined _MSC_VER)
   1133 static void
   1134 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, yyscan_t yyscanner, void *parser)
   1135 #else
   1136 static void
   1137 yydestruct (yymsg, yytype, yyvaluep, yylocationp, yyscanner, parser)
   1138     const char *yymsg;
   1139     int yytype;
   1140     YYSTYPE *yyvaluep;
   1141     YYLTYPE *yylocationp;
   1142     yyscan_t yyscanner;
   1143     void *parser;
   1144 #endif
   1145 {
   1146   YYUSE (yyvaluep);
   1147   YYUSE (yylocationp);
   1148   YYUSE (yyscanner);
   1149   YYUSE (parser);
   1150 
   1151   if (!yymsg)
   1152     yymsg = "Deleting";
   1153   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
   1154 
   1155   switch (yytype)
   1156     {
   1157 
   1158       default:
   1159 	break;
   1160     }
   1161 }
   1162 
   1163 
   1164 
   1165 
   1166 
   1167 
   1168 struct yypstate
   1169   {
   1170         /* Number of syntax errors so far.  */
   1171     int yynerrs;
   1172 
   1173     int yystate;
   1174     /* Number of tokens to shift before error messages enabled.  */
   1175     int yyerrstatus;
   1176 
   1177     /* The stacks and their tools:
   1178        `yyss': related to states.
   1179        `yyvs': related to semantic values.
   1180        `yyls': related to locations.
   1181 
   1182        Refer to the stacks thru separate pointers, to allow yyoverflow
   1183        to reallocate them elsewhere.  */
   1184 
   1185     /* The state stack.  */
   1186     yytype_int16 yyssa[YYINITDEPTH];
   1187     yytype_int16 *yyss;
   1188     yytype_int16 *yyssp;
   1189 
   1190     /* The semantic value stack.  */
   1191     YYSTYPE yyvsa[YYINITDEPTH];
   1192     YYSTYPE *yyvs;
   1193     YYSTYPE *yyvsp;
   1194 
   1195     /* The location stack.  */
   1196     YYLTYPE yylsa[YYINITDEPTH];
   1197     YYLTYPE *yyls;
   1198     YYLTYPE *yylsp;
   1199 
   1200     /* The locations where the error started and ended.  */
   1201     YYLTYPE yyerror_range[2];
   1202 
   1203     YYSIZE_T yystacksize;
   1204 
   1205     /* Used to determine if this is the first time this instance has
   1206        been used.  */
   1207     int yynew;
   1208   };
   1209 
   1210 #if (defined __STDC__ || defined __C99__FUNC__ \
   1211      || defined __cplusplus || defined _MSC_VER)
   1212 int
   1213 yyparse (yyscan_t yyscanner, void *parser)
   1214 #else
   1215 int
   1216 yyparse (yyscanner, parser)
   1217     yyscan_t yyscanner;
   1218     void *parser;
   1219 #endif
   1220 {
   1221   return yypull_parse (0, yyscanner, parser);
   1222 }
   1223 
   1224 #if (defined __STDC__ || defined __C99__FUNC__ \
   1225      || defined __cplusplus || defined _MSC_VER)
   1226 int
   1227 yypull_parse (yypstate *yyps, yyscan_t yyscanner, void *parser)
   1228 #else
   1229 int
   1230 yypull_parse (yyps, yyscanner, parser)
   1231     yypstate *yyps;
   1232     yyscan_t yyscanner;
   1233     void *parser;
   1234 #endif
   1235 {
   1236   int yystatus;
   1237   yypstate *yyps_local;
   1238   int yychar;
   1239   YYSTYPE yylval;
   1240   YYLTYPE yylloc;
   1241   if (yyps == 0)
   1242     {
   1243       yyps_local = yypstate_new ();
   1244       if (!yyps_local)
   1245         {
   1246           yyerror (&yylloc, yyscanner, parser, YY_("memory exhausted"));
   1247           return 2;
   1248         }
   1249     }
   1250   else
   1251     yyps_local = yyps;
   1252   do {
   1253     yychar = YYLEX;
   1254     yystatus =
   1255       yypush_parse (yyps_local, yychar, &yylval, &yylloc, yyscanner, parser);
   1256   } while (yystatus == YYPUSH_MORE);
   1257   if (yyps == 0)
   1258     yypstate_delete (yyps_local);
   1259   return yystatus;
   1260 }
   1261 
   1262 /* Initialize the parser data structure.  */
   1263 #if (defined __STDC__ || defined __C99__FUNC__ \
   1264      || defined __cplusplus || defined _MSC_VER)
   1265 yypstate *
   1266 yypstate_new (void)
   1267 #else
   1268 yypstate *
   1269 yypstate_new ()
   1270 
   1271 #endif
   1272 {
   1273   yypstate *yyps;
   1274   yyps = (yypstate *) malloc (sizeof *yyps);
   1275   if (!yyps)
   1276     return 0;
   1277   yyps->yynew = 1;
   1278   return yyps;
   1279 }
   1280 
   1281 #if (defined __STDC__ || defined __C99__FUNC__ \
   1282      || defined __cplusplus || defined _MSC_VER)
   1283 void
   1284 yypstate_delete (yypstate *yyps)
   1285 #else
   1286 void
   1287 yypstate_delete (yyps)
   1288     yypstate *yyps;
   1289 #endif
   1290 {
   1291 #ifndef yyoverflow
   1292   /* If the stack was reallocated but the parse did not complete, then the
   1293      stack still needs to be freed.  */
   1294   if (!yyps->yynew && yyps->yyss != yyps->yyssa)
   1295     YYSTACK_FREE (yyps->yyss);
   1296 #endif
   1297   free (yyps);
   1298 }
   1299 
   1300 #define api_mode_nerrs yyps->api_mode_nerrs
   1301 #define yystate yyps->yystate
   1302 #define yyerrstatus yyps->yyerrstatus
   1303 #define yyssa yyps->yyssa
   1304 #define yyss yyps->yyss
   1305 #define yyssp yyps->yyssp
   1306 #define yyvsa yyps->yyvsa
   1307 #define yyvs yyps->yyvs
   1308 #define yyvsp yyps->yyvsp
   1309 #define yylsa yyps->yylsa
   1310 #define yyls yyps->yyls
   1311 #define yylsp yyps->yylsp
   1312 #define yyerror_range yyps->yyerror_range
   1313 #define yystacksize yyps->yystacksize
   1314 
   1315 /*-------------------------.
   1316 | yyparse or yypush_parse.  |
   1317 `-------------------------*/
   1318 
   1319 #if (defined __STDC__ || defined __C99__FUNC__ \
   1320      || defined __cplusplus || defined _MSC_VER)
   1321 int
   1322 yypush_parse (yypstate *yyps, int yypushed_char, YYSTYPE const *yypushed_val, YYLTYPE const *yypushed_loc, yyscan_t yyscanner, void *parser)
   1323 #else
   1324 int
   1325 yypush_parse (yyps, yypushed_char, yypushed_val, yypushed_loc, yyscanner, parser)
   1326     yypstate *yyps;
   1327     int yypushed_char;
   1328     YYSTYPE const *yypushed_val;
   1329     YYLTYPE const *yypushed_loc;
   1330     yyscan_t yyscanner;
   1331     void *parser;
   1332 #endif
   1333 {
   1334 /* The lookahead symbol.  */
   1335 int yychar;
   1336 
   1337 /* The semantic value of the lookahead symbol.  */
   1338 YYSTYPE yylval;
   1339 
   1340 /* Location data for the lookahead symbol.  */
   1341 YYLTYPE yylloc;
   1342 
   1343 
   1344   int yyn;
   1345   int yyresult;
   1346   /* Lookahead token as an internal (translated) token number.  */
   1347   int yytoken;
   1348   /* The variables used to return semantic value and location from the
   1349      action routines.  */
   1350   YYSTYPE yyval;
   1351   YYLTYPE yyloc;
   1352 
   1353 #if YYERROR_VERBOSE
   1354   /* Buffer for error messages, and its allocated size.  */
   1355   char yymsgbuf[128];
   1356   char *yymsg = yymsgbuf;
   1357   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
   1358 #endif
   1359 
   1360 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
   1361 
   1362   /* The number of symbols on the RHS of the reduced rule.
   1363      Keep to zero when no symbol should be popped.  */
   1364   int yylen = 0;
   1365 
   1366   yylval = 0;
   1367   if (!yyps->yynew)
   1368     {
   1369       yyn = yypact[yystate];
   1370       goto yyread_pushed_token;
   1371     }
   1372 
   1373   yytoken = 0;
   1374   yyss = yyssa;
   1375   yyvs = yyvsa;
   1376   yyls = yylsa;
   1377   yystacksize = YYINITDEPTH;
   1378 
   1379   YYDPRINTF ((stderr, "Starting parse\n"));
   1380 
   1381   yystate = 0;
   1382   yyerrstatus = 0;
   1383   yynerrs = 0;
   1384   yychar = YYEMPTY; /* Cause a token to be read.  */
   1385 
   1386   /* Initialize stack pointers.
   1387      Waste one element of value and location stack
   1388      so that they stay on the same level as the state stack.
   1389      The wasted elements are never initialized.  */
   1390   yyssp = yyss;
   1391   yyvsp = yyvs;
   1392   yylsp = yyls;
   1393 
   1394 #if YYLTYPE_IS_TRIVIAL
   1395   /* Initialize the default location before parsing starts.  */
   1396   yylloc.first_line   = yylloc.last_line   = 1;
   1397   yylloc.first_column = yylloc.last_column = 1;
   1398 #endif
   1399 
   1400   goto yysetstate;
   1401 
   1402 /*------------------------------------------------------------.
   1403 | yynewstate -- Push a new state, which is found in yystate.  |
   1404 `------------------------------------------------------------*/
   1405  yynewstate:
   1406   /* In all cases, when you get here, the value and location stacks
   1407      have just been pushed.  So pushing a state here evens the stacks.  */
   1408   yyssp++;
   1409 
   1410  yysetstate:
   1411   *yyssp = yystate;
   1412 
   1413   if (yyss + yystacksize - 1 <= yyssp)
   1414     {
   1415       /* Get the current used size of the three stacks, in elements.  */
   1416       YYSIZE_T yysize = yyssp - yyss + 1;
   1417 
   1418 #ifdef yyoverflow
   1419       {
   1420 	/* Give user a chance to reallocate the stack.  Use copies of
   1421 	   these so that the &'s don't force the real ones into
   1422 	   memory.  */
   1423 	YYSTYPE *yyvs1 = yyvs;
   1424 	yytype_int16 *yyss1 = yyss;
   1425 	YYLTYPE *yyls1 = yyls;
   1426 
   1427 	/* Each stack pointer address is followed by the size of the
   1428 	   data in use in that stack, in bytes.  This used to be a
   1429 	   conditional around just the two extra args, but that might
   1430 	   be undefined if yyoverflow is a macro.  */
   1431 	yyoverflow (YY_("memory exhausted"),
   1432 		    &yyss1, yysize * sizeof (*yyssp),
   1433 		    &yyvs1, yysize * sizeof (*yyvsp),
   1434 		    &yyls1, yysize * sizeof (*yylsp),
   1435 		    &yystacksize);
   1436 
   1437 	yyls = yyls1;
   1438 	yyss = yyss1;
   1439 	yyvs = yyvs1;
   1440       }
   1441 #else /* no yyoverflow */
   1442 # ifndef YYSTACK_RELOCATE
   1443       goto yyexhaustedlab;
   1444 # else
   1445       /* Extend the stack our own way.  */
   1446       if (YYMAXDEPTH <= yystacksize)
   1447 	goto yyexhaustedlab;
   1448       yystacksize *= 2;
   1449       if (YYMAXDEPTH < yystacksize)
   1450 	yystacksize = YYMAXDEPTH;
   1451 
   1452       {
   1453 	yytype_int16 *yyss1 = yyss;
   1454 	union yyalloc *yyptr =
   1455 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
   1456 	if (! yyptr)
   1457 	  goto yyexhaustedlab;
   1458 	YYSTACK_RELOCATE (yyss_alloc, yyss);
   1459 	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
   1460 	YYSTACK_RELOCATE (yyls_alloc, yyls);
   1461 #  undef YYSTACK_RELOCATE
   1462 	if (yyss1 != yyssa)
   1463 	  YYSTACK_FREE (yyss1);
   1464       }
   1465 # endif
   1466 #endif /* no yyoverflow */
   1467 
   1468       yyssp = yyss + yysize - 1;
   1469       yyvsp = yyvs + yysize - 1;
   1470       yylsp = yyls + yysize - 1;
   1471 
   1472       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
   1473 		  (unsigned long int) yystacksize));
   1474 
   1475       if (yyss + yystacksize - 1 <= yyssp)
   1476 	YYABORT;
   1477     }
   1478 
   1479   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
   1480 
   1481   if (yystate == YYFINAL)
   1482     YYACCEPT;
   1483 
   1484   goto yybackup;
   1485 
   1486 /*-----------.
   1487 | yybackup.  |
   1488 `-----------*/
   1489 yybackup:
   1490 
   1491   /* Do appropriate processing given the current state.  Read a
   1492      lookahead token if we need one and don't already have one.  */
   1493 
   1494   /* First try to decide what to do without reference to lookahead token.  */
   1495   yyn = yypact[yystate];
   1496   if (yyn == YYPACT_NINF)
   1497     goto yydefault;
   1498 
   1499   /* Not known => get a lookahead token if don't already have one.  */
   1500 
   1501   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   1502   if (yychar == YYEMPTY)
   1503     {
   1504       if (!yyps->yynew)
   1505         {
   1506           YYDPRINTF ((stderr, "Return for a new token:\n"));
   1507           yyresult = YYPUSH_MORE;
   1508           goto yypushreturn;
   1509         }
   1510       yyps->yynew = 0;
   1511 yyread_pushed_token:
   1512       YYDPRINTF ((stderr, "Reading a token: "));
   1513       yychar = yypushed_char;
   1514       if (yypushed_val)
   1515         yylval = *yypushed_val;
   1516       if (yypushed_loc)
   1517         yylloc = *yypushed_loc;
   1518     }
   1519 
   1520   if (yychar <= YYEOF)
   1521     {
   1522       yychar = yytoken = YYEOF;
   1523       YYDPRINTF ((stderr, "Now at end of input.\n"));
   1524     }
   1525   else
   1526     {
   1527       yytoken = YYTRANSLATE (yychar);
   1528       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
   1529     }
   1530 
   1531   /* If the proper action on seeing token YYTOKEN is to reduce or to
   1532      detect an error, take that action.  */
   1533   yyn += yytoken;
   1534   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
   1535     goto yydefault;
   1536   yyn = yytable[yyn];
   1537   if (yyn <= 0)
   1538     {
   1539       if (yyn == 0 || yyn == YYTABLE_NINF)
   1540 	goto yyerrlab;
   1541       yyn = -yyn;
   1542       goto yyreduce;
   1543     }
   1544 
   1545   /* Count tokens shifted since error; after three, turn off error
   1546      status.  */
   1547   if (yyerrstatus)
   1548     yyerrstatus--;
   1549 
   1550   /* Shift the lookahead token.  */
   1551   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
   1552 
   1553   /* Discard the shifted token.  */
   1554   yychar = YYEMPTY;
   1555 
   1556   yystate = yyn;
   1557   *++yyvsp = yylval;
   1558   *++yylsp = yylloc;
   1559   goto yynewstate;
   1560 
   1561 
   1562 /*-----------------------------------------------------------.
   1563 | yydefault -- do the default action for the current state.  |
   1564 `-----------------------------------------------------------*/
   1565 yydefault:
   1566   yyn = yydefact[yystate];
   1567   if (yyn == 0)
   1568     goto yyerrlab;
   1569   goto yyreduce;
   1570 
   1571 
   1572 /*-----------------------------.
   1573 | yyreduce -- Do a reduction.  |
   1574 `-----------------------------*/
   1575 yyreduce:
   1576   /* yyn is the number of a rule to reduce with.  */
   1577   yylen = yyr2[yyn];
   1578 
   1579   /* If YYLEN is nonzero, implement the default value of the action:
   1580      `$$ = $1'.
   1581 
   1582      Otherwise, the following line sets YYVAL to garbage.
   1583      This behavior is undocumented and Bison
   1584      users should not rely upon it.  Assigning to YYVAL
   1585      unconditionally makes the parser a bit smaller, and it avoids a
   1586      GCC warning that YYVAL may be used uninitialized.  */
   1587   yyval = yyvsp[1-yylen];
   1588 
   1589   /* Default location.  */
   1590   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
   1591   YY_REDUCE_PRINT (yyn);
   1592   switch (yyn)
   1593     {
   1594         case 2:
   1595 
   1596 /* Line 1455 of yacc.c  */
   1597 #line 54 "api_grammar.y"
   1598     { api_mode_execute(parser, (yyvsp[(1) - (1)])); YYACCEPT; ;}
   1599     break;
   1600 
   1601   case 3:
   1602 
   1603 /* Line 1455 of yacc.c  */
   1604 #line 56 "api_grammar.y"
   1605     { (yyval) = api_mode_append((yyvsp[(1) - (3)]), api_mode_append((yyvsp[(2) - (3)]),(yyvsp[(3) - (3)]))); ;}
   1606     break;
   1607 
   1608   case 6:
   1609 
   1610 /* Line 1455 of yacc.c  */
   1611 #line 63 "api_grammar.y"
   1612     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1613     break;
   1614 
   1615   case 7:
   1616 
   1617 /* Line 1455 of yacc.c  */
   1618 #line 65 "api_grammar.y"
   1619     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1620     break;
   1621 
   1622   case 8:
   1623 
   1624 /* Line 1455 of yacc.c  */
   1625 #line 67 "api_grammar.y"
   1626     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1627     break;
   1628 
   1629   case 9:
   1630 
   1631 /* Line 1455 of yacc.c  */
   1632 #line 69 "api_grammar.y"
   1633     { (yyval) =  api_mode_append((yyvsp[(1) - (3)]),api_mode_append((yyvsp[(2) - (3)]),(yyvsp[(3) - (3)]))); ;}
   1634     break;
   1635 
   1636   case 10:
   1637 
   1638 /* Line 1455 of yacc.c  */
   1639 #line 71 "api_grammar.y"
   1640     { (yyval) = api_mode_append((yyvsp[(1) - (4)]),api_mode_append((yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]))); ;}
   1641     break;
   1642 
   1643   case 11:
   1644 
   1645 /* Line 1455 of yacc.c  */
   1646 #line 73 "api_grammar.y"
   1647     { (yyval) = api_mode_append((yyvsp[(1) - (3)]),api_mode_append((yyvsp[(2) - (3)]),(yyvsp[(3) - (3)]))); ;}
   1648     break;
   1649 
   1650   case 13:
   1651 
   1652 /* Line 1455 of yacc.c  */
   1653 #line 79 "api_grammar.y"
   1654     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1655     break;
   1656 
   1657   case 14:
   1658 
   1659 /* Line 1455 of yacc.c  */
   1660 #line 81 "api_grammar.y"
   1661     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1662     break;
   1663 
   1664   case 15:
   1665 
   1666 /* Line 1455 of yacc.c  */
   1667 #line 83 "api_grammar.y"
   1668     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1669     break;
   1670 
   1671   case 16:
   1672 
   1673 /* Line 1455 of yacc.c  */
   1674 #line 88 "api_grammar.y"
   1675     { (yyval) = api_mode_mark((yyvsp[(1) - (1)]), IS_FIRST); ;}
   1676     break;
   1677 
   1678   case 17:
   1679 
   1680 /* Line 1455 of yacc.c  */
   1681 #line 90 "api_grammar.y"
   1682     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1683     break;
   1684 
   1685   case 18:
   1686 
   1687 /* Line 1455 of yacc.c  */
   1688 #line 95 "api_grammar.y"
   1689     { (yyval) = api_mode_mark((yyvsp[(1) - (1)]), IS_FIRST); ;}
   1690     break;
   1691 
   1692   case 19:
   1693 
   1694 /* Line 1455 of yacc.c  */
   1695 #line 97 "api_grammar.y"
   1696     { (yyval) = api_mode_sub_append((yyvsp[(1) - (3)]),(yyvsp[(3) - (3)])); ;}
   1697     break;
   1698 
   1699   case 20:
   1700 
   1701 /* Line 1455 of yacc.c  */
   1702 #line 102 "api_grammar.y"
   1703     { (yyval) = api_mode_mark((yyvsp[(1) - (1)]), IS_FIRST); ;}
   1704     break;
   1705 
   1706   case 21:
   1707 
   1708 /* Line 1455 of yacc.c  */
   1709 #line 104 "api_grammar.y"
   1710     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1711     break;
   1712 
   1713   case 22:
   1714 
   1715 /* Line 1455 of yacc.c  */
   1716 #line 109 "api_grammar.y"
   1717     { (yyval) = api_mode_mark((yyvsp[(1) - (1)]), IS_FIRST); ;}
   1718     break;
   1719 
   1720   case 23:
   1721 
   1722 /* Line 1455 of yacc.c  */
   1723 #line 111 "api_grammar.y"
   1724     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1725     break;
   1726 
   1727   case 24:
   1728 
   1729 /* Line 1455 of yacc.c  */
   1730 #line 116 "api_grammar.y"
   1731     { (yyval) = api_mode_mark((yyvsp[(1) - (1)]), IS_FIRST); ;}
   1732     break;
   1733 
   1734   case 25:
   1735 
   1736 /* Line 1455 of yacc.c  */
   1737 #line 118 "api_grammar.y"
   1738     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1739     break;
   1740 
   1741   case 27:
   1742 
   1743 /* Line 1455 of yacc.c  */
   1744 #line 124 "api_grammar.y"
   1745     { (yyval) = api_mode_range((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), NULL, NULL); ;}
   1746     break;
   1747 
   1748   case 28:
   1749 
   1750 /* Line 1455 of yacc.c  */
   1751 #line 126 "api_grammar.y"
   1752     { (yyval) = api_mode_range((yyvsp[(1) - (3)]), NULL, NULL, (yyvsp[(3) - (3)])); ;}
   1753     break;
   1754 
   1755   case 29:
   1756 
   1757 /* Line 1455 of yacc.c  */
   1758 #line 128 "api_grammar.y"
   1759     { (yyval) = api_mode_range((yyvsp[(1) - (5)]), (yyvsp[(3) - (5)]), NULL, (yyvsp[(5) - (5)])); ;}
   1760     break;
   1761 
   1762   case 30:
   1763 
   1764 /* Line 1455 of yacc.c  */
   1765 #line 130 "api_grammar.y"
   1766     { (yyval) = api_mode_range((yyvsp[(1) - (5)]), NULL, (yyvsp[(3) - (5)]), (yyvsp[(5) - (5)])); ;}
   1767     break;
   1768 
   1769   case 31:
   1770 
   1771 /* Line 1455 of yacc.c  */
   1772 #line 135 "api_grammar.y"
   1773     { (yyval) = api_mode_mark((yyvsp[(1) - (1)]), IS_FIRST); ;}
   1774     break;
   1775 
   1776   case 32:
   1777 
   1778 /* Line 1455 of yacc.c  */
   1779 #line 137 "api_grammar.y"
   1780     { (yyval) = api_mode_append((yyvsp[(1) - (3)]),(yyvsp[(3) - (3)])); ;}
   1781     break;
   1782 
   1783   case 33:
   1784 
   1785 /* Line 1455 of yacc.c  */
   1786 #line 142 "api_grammar.y"
   1787     { (yyval) = api_mode_mark((yyvsp[(1) - (1)]), IS_FIRST); ;}
   1788     break;
   1789 
   1790   case 34:
   1791 
   1792 /* Line 1455 of yacc.c  */
   1793 #line 144 "api_grammar.y"
   1794     { (yyval) = api_mode_append((yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;}
   1795     break;
   1796 
   1797   case 35:
   1798 
   1799 /* Line 1455 of yacc.c  */
   1800 #line 149 "api_grammar.y"
   1801     { (yyval) = api_mode_key_value((yyvsp[(1) - (3)]),(yyvsp[(3) - (3)])); ;}
   1802     break;
   1803 
   1804   case 39:
   1805 
   1806 /* Line 1455 of yacc.c  */
   1807 #line 160 "api_grammar.y"
   1808     { (yyval) = api_mode_sub(api_mode_node(parser,"", AGGREGATE), (yyvsp[(2) - (3)])); ;}
   1809     break;
   1810 
   1811   case 40:
   1812 
   1813 /* Line 1455 of yacc.c  */
   1814 #line 162 "api_grammar.y"
   1815     { (yyval) = api_mode_sub(api_mode_node(parser,"", AGGREGATE), (yyvsp[(1) - (1)])); ;}
   1816     break;
   1817 
   1818   case 43:
   1819 
   1820 /* Line 1455 of yacc.c  */
   1821 #line 169 "api_grammar.y"
   1822     { (yyval) = api_mode_node(parser,"{=}", PROMPT); ;}
   1823     break;
   1824 
   1825 
   1826 
   1827 /* Line 1455 of yacc.c  */
   1828 #line 1822 "api_grammar.tab.c"
   1829       default: break;
   1830     }
   1831   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
   1832 
   1833   YYPOPSTACK (yylen);
   1834   yylen = 0;
   1835   YY_STACK_PRINT (yyss, yyssp);
   1836 
   1837   *++yyvsp = yyval;
   1838   *++yylsp = yyloc;
   1839 
   1840   /* Now `shift' the result of the reduction.  Determine what state
   1841      that goes to, based on the state we popped back to and the rule
   1842      number reduced by.  */
   1843 
   1844   yyn = yyr1[yyn];
   1845 
   1846   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
   1847   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
   1848     yystate = yytable[yystate];
   1849   else
   1850     yystate = yydefgoto[yyn - YYNTOKENS];
   1851 
   1852   goto yynewstate;
   1853 
   1854 
   1855 /*------------------------------------.
   1856 | yyerrlab -- here on detecting error |
   1857 `------------------------------------*/
   1858 yyerrlab:
   1859   /* If not already recovering from an error, report this error.  */
   1860   if (!yyerrstatus)
   1861     {
   1862       ++yynerrs;
   1863 #if ! YYERROR_VERBOSE
   1864       yyerror (&yylloc, yyscanner, parser, YY_("syntax error"));
   1865 #else
   1866       {
   1867 	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
   1868 	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
   1869 	  {
   1870 	    YYSIZE_T yyalloc = 2 * yysize;
   1871 	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
   1872 	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
   1873 	    if (yymsg != yymsgbuf)
   1874 	      YYSTACK_FREE (yymsg);
   1875 	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
   1876 	    if (yymsg)
   1877 	      yymsg_alloc = yyalloc;
   1878 	    else
   1879 	      {
   1880 		yymsg = yymsgbuf;
   1881 		yymsg_alloc = sizeof yymsgbuf;
   1882 	      }
   1883 	  }
   1884 
   1885 	if (0 < yysize && yysize <= yymsg_alloc)
   1886 	  {
   1887 	    (void) yysyntax_error (yymsg, yystate, yychar);
   1888 	    yyerror (&yylloc, yyscanner, parser, yymsg);
   1889 	  }
   1890 	else
   1891 	  {
   1892 	    yyerror (&yylloc, yyscanner, parser, YY_("syntax error"));
   1893 	    if (yysize != 0)
   1894 	      goto yyexhaustedlab;
   1895 	  }
   1896       }
   1897 #endif
   1898     }
   1899 
   1900   yyerror_range[0] = yylloc;
   1901 
   1902   if (yyerrstatus == 3)
   1903     {
   1904       /* If just tried and failed to reuse lookahead token after an
   1905 	 error, discard it.  */
   1906 
   1907       if (yychar <= YYEOF)
   1908 	{
   1909 	  /* Return failure if at end of input.  */
   1910 	  if (yychar == YYEOF)
   1911 	    YYABORT;
   1912 	}
   1913       else
   1914 	{
   1915 	  yydestruct ("Error: discarding",
   1916 		      yytoken, &yylval, &yylloc, yyscanner, parser);
   1917 	  yychar = YYEMPTY;
   1918 	}
   1919     }
   1920 
   1921   /* Else will try to reuse lookahead token after shifting the error
   1922      token.  */
   1923   goto yyerrlab1;
   1924 
   1925 
   1926 /*---------------------------------------------------.
   1927 | yyerrorlab -- error raised explicitly by YYERROR.  |
   1928 `---------------------------------------------------*/
   1929 yyerrorlab:
   1930 
   1931   /* Pacify compilers like GCC when the user code never invokes
   1932      YYERROR and the label yyerrorlab therefore never appears in user
   1933      code.  */
   1934   if (/*CONSTCOND*/ 0)
   1935      goto yyerrorlab;
   1936 
   1937   yyerror_range[0] = yylsp[1-yylen];
   1938   /* Do not reclaim the symbols of the rule which action triggered
   1939      this YYERROR.  */
   1940   YYPOPSTACK (yylen);
   1941   yylen = 0;
   1942   YY_STACK_PRINT (yyss, yyssp);
   1943   yystate = *yyssp;
   1944   goto yyerrlab1;
   1945 
   1946 
   1947 /*-------------------------------------------------------------.
   1948 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
   1949 `-------------------------------------------------------------*/
   1950 yyerrlab1:
   1951   yyerrstatus = 3;	/* Each real token shifted decrements this.  */
   1952 
   1953   for (;;)
   1954     {
   1955       yyn = yypact[yystate];
   1956       if (yyn != YYPACT_NINF)
   1957 	{
   1958 	  yyn += YYTERROR;
   1959 	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
   1960 	    {
   1961 	      yyn = yytable[yyn];
   1962 	      if (0 < yyn)
   1963 		break;
   1964 	    }
   1965 	}
   1966 
   1967       /* Pop the current state because it cannot handle the error token.  */
   1968       if (yyssp == yyss)
   1969 	YYABORT;
   1970 
   1971       yyerror_range[0] = *yylsp;
   1972       yydestruct ("Error: popping",
   1973 		  yystos[yystate], yyvsp, yylsp, yyscanner, parser);
   1974       YYPOPSTACK (1);
   1975       yystate = *yyssp;
   1976       YY_STACK_PRINT (yyss, yyssp);
   1977     }
   1978 
   1979   *++yyvsp = yylval;
   1980 
   1981   yyerror_range[1] = yylloc;
   1982   /* Using YYLLOC is tempting, but would change the location of
   1983      the lookahead.  YYLOC is available though.  */
   1984   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
   1985   *++yylsp = yyloc;
   1986 
   1987   /* Shift the error token.  */
   1988   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
   1989 
   1990   yystate = yyn;
   1991   goto yynewstate;
   1992 
   1993 
   1994 /*-------------------------------------.
   1995 | yyacceptlab -- YYACCEPT comes here.  |
   1996 `-------------------------------------*/
   1997 yyacceptlab:
   1998   yyresult = 0;
   1999   goto yyreturn;
   2000 
   2001 /*-----------------------------------.
   2002 | yyabortlab -- YYABORT comes here.  |
   2003 `-----------------------------------*/
   2004 yyabortlab:
   2005   yyresult = 1;
   2006   goto yyreturn;
   2007 
   2008 #if !defined(yyoverflow) || YYERROR_VERBOSE
   2009 /*-------------------------------------------------.
   2010 | yyexhaustedlab -- memory exhaustion comes here.  |
   2011 `-------------------------------------------------*/
   2012 yyexhaustedlab:
   2013   yyerror (&yylloc, yyscanner, parser, YY_("memory exhausted"));
   2014   yyresult = 2;
   2015   /* Fall through.  */
   2016 #endif
   2017 
   2018 yyreturn:
   2019   if (yychar != YYEMPTY)
   2020      yydestruct ("Cleanup: discarding lookahead",
   2021 		 yytoken, &yylval, &yylloc, yyscanner, parser);
   2022   /* Do not reclaim the symbols of the rule which action triggered
   2023      this YYABORT or YYACCEPT.  */
   2024   YYPOPSTACK (yylen);
   2025   YY_STACK_PRINT (yyss, yyssp);
   2026   while (yyssp != yyss)
   2027     {
   2028       yydestruct ("Cleanup: popping",
   2029 		  yystos[*yyssp], yyvsp, yylsp, yyscanner, parser);
   2030       YYPOPSTACK (1);
   2031     }
   2032 #ifndef yyoverflow
   2033   if (yyss != yyssa)
   2034     YYSTACK_FREE (yyss);
   2035 #endif
   2036   yyps->yynew = 1;
   2037 
   2038 yypushreturn:
   2039 #if YYERROR_VERBOSE
   2040   if (yymsg != yymsgbuf)
   2041     YYSTACK_FREE (yymsg);
   2042 #endif
   2043   /* Make sure YYID is used.  */
   2044   return YYID (yyresult);
   2045 }
   2046 
   2047 
   2048