Ignore:
Timestamp:
Jul 11, 2015, 9:56:07 AM (10 years ago)
Author:
Paul Smedley
Message:

heimdal: applied os2 patches, added conf.cmd

File:
1 edited

Legend:

Unmodified
Added
Removed
  • heimdal/trunk/lib/hx509/sel-gram.c

    r1 r4  
    1 /* A Bison parser, made by GNU Bison 2.3.  */
    2 
    3 /* Skeleton implementation for Bison's Yacc-like parsers in C
    4 
    5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    6    Free Software Foundation, Inc.
     1
     2/*  A Bison parser, made from U:/DEV/heimdal-1.5.3/lib/hx509/sel-gram.y
     3    by GNU Bison version 1.28  */
     4
     5#define YYBISON 1  /* Identify Bison output.  */
     6
     7#define kw_TRUE 257
     8#define kw_FALSE        258
     9#define kw_AND  259
     10#define kw_OR   260
     11#define kw_IN   261
     12#define kw_TAILMATCH    262
     13#define NUMBER  263
     14#define STRING  264
     15#define IDENTIFIER      265
     16
     17#line 34 "sel-gram.y"
     18
     19#ifdef HAVE_CONFIG_H
     20#include <config.h>
     21#endif
     22#include <stdio.h>
     23#include <stdlib.h>
     24#include <hx_locl.h>
     25
     26
     27
     28#line 45 "sel-gram.y"
     29typedef union {
     30    char *string;
     31    struct hx_expr *expr;
     32} YYSTYPE;
     33#include <stdio.h>
     34
     35#ifndef __cplusplus
     36#ifndef __STDC__
     37#define const
     38#endif
     39#endif
     40
     41
     42
     43#define YYFINAL         50
     44#define YYFLAG          -32768
     45#define YYNTBASE        21
     46
     47#define YYTRANSLATE(x) ((unsigned)(x) <= 265 ? yytranslate[x] : 31)
     48
     49static const char yytranslate[] = {     0,
     50     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     51     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     52     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     53     2,     2,    12,     2,     2,     2,    17,     2,     2,    13,
     54    14,     2,     2,    15,     2,    20,     2,     2,     2,     2,
     55     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     56    16,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     57     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     58     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     59     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     60     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     61     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     62     2,     2,    18,     2,    19,     2,     2,     2,     2,     2,
     63     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     64     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     65     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     66     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     67     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     68     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     69     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     70     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     71     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     72     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     73     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     74     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     75     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
     76     7,     8,     9,    10,    11
     77};
     78
     79#if YYDEBUG != 0
     80static const short yyprhs[] = {     0,
     81     0,     2,     4,     6,     9,    13,    17,    21,    23,    25,
     82    29,    34,    39,    43,    49,    53,    55,    57,    59,    61,
     83    63,    65,    70,    75,    79
     84};
     85
     86static const short yyrhs[] = {    22,
     87     0,     3,     0,     4,     0,    12,    22,     0,    22,     5,
     88    22,     0,    22,     6,    22,     0,    13,    22,    14,     0,
     89    24,     0,    25,     0,    25,    15,    23,     0,    25,    16,
     90    16,    25,     0,    25,    12,    16,    25,     0,    25,     8,
     91    25,     0,    25,     7,    13,    23,    14,     0,    25,     7,
     92    29,     0,    26,     0,    27,     0,    28,     0,    29,     0,
     93     9,     0,    10,     0,    11,    13,    23,    14,     0,    17,
     94    18,    30,    19,     0,    11,    20,    30,     0,    11,     0
     95};
     96
     97#endif
     98
     99#if YYDEBUG != 0
     100static const short yyrline[] = { 0,
     101    73,    75,    76,    77,    78,    79,    80,    81,    84,    85,
     102    88,    89,    90,    91,    92,    95,    96,    97,    98,   101,
     103   102,   104,   107,   110,   112
     104};
     105#endif
     106
     107
     108#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
     109
     110static const char * const yytname[] = {   "$","error","$undefined.","kw_TRUE",
     111"kw_FALSE","kw_AND","kw_OR","kw_IN","kw_TAILMATCH","NUMBER","STRING","IDENTIFIER",
     112"'!'","'('","')'","','","'='","'%'","'{'","'}'","'.'","start","expr","words",
     113"comp","word","number","string","function","variable","variables", NULL
     114};
     115#endif
     116
     117static const short yyr1[] = {     0,
     118    21,    22,    22,    22,    22,    22,    22,    22,    23,    23,
     119    24,    24,    24,    24,    24,    25,    25,    25,    25,    26,
     120    27,    28,    29,    30,    30
     121};
     122
     123static const short yyr2[] = {     0,
     124     1,     1,     1,     2,     3,     3,     3,     1,     1,     3,
     125     4,     4,     3,     5,     3,     1,     1,     1,     1,     1,
     126     1,     4,     4,     3,     1
     127};
     128
     129static const short yydefact[] = {     0,
     130     2,     3,    20,    21,     0,     0,     0,     0,     1,     8,
     131     0,    16,    17,    18,    19,     0,     4,     0,     0,     0,
     132     0,     0,     0,     0,     0,     0,     9,     7,    25,     0,
     133     5,     6,     0,    15,    13,     0,     0,    22,     0,     0,
     134    23,     0,    12,    11,    10,    24,    14,     0,     0,     0
     135};
     136
     137static const short yydefgoto[] = {    48,
     138     9,    26,    10,    11,    12,    13,    14,    15,    30
     139};
     140
     141static const short yypact[] = {     1,
     142-32768,-32768,-32768,-32768,    -7,     1,     1,   -10,    25,-32768,
     143    17,-32768,-32768,-32768,-32768,    27,    25,    21,     8,     1,
     144     1,    15,    27,     6,    18,    26,    24,-32768,    22,    28,
     145    25,    25,    27,-32768,-32768,    27,    27,-32768,    27,     8,
     146-32768,    29,-32768,-32768,-32768,-32768,-32768,    41,    45,-32768
     147};
     148
     149static const short yypgoto[] = {-32768,
     150    -5,   -30,-32768,   -16,-32768,-32768,-32768,    30,     9
     151};
     152
     153
     154#define YYLAST          52
     155
     156
     157static const short yytable[] = {    27,
     158    17,    18,    42,     1,     2,    16,    35,    19,    45,     3,
     159     4,     5,     6,     7,    31,    32,    27,     8,    29,    43,
     160    44,    36,    27,    22,    23,    20,    21,    33,    24,    20,
     161    21,     8,    25,    37,    28,     3,     4,     5,    39,    38,
     162    49,    40,    47,     8,    50,     0,    41,     0,    46,     0,
     163     0,    34
     164};
     165
     166static const short yycheck[] = {    16,
     167     6,     7,    33,     3,     4,    13,    23,    18,    39,     9,
     168    10,    11,    12,    13,    20,    21,    33,    17,    11,    36,
     169    37,    16,    39,     7,     8,     5,     6,    13,    12,     5,
     170     6,    17,    16,    16,    14,     9,    10,    11,    15,    14,
     171     0,    20,    14,    17,     0,    -1,    19,    -1,    40,    -1,
     172    -1,    22
     173};
     174/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
     175#line 3 "/emx/share/bison.simple"
     176/* This file comes from bison-1.28.  */
     177
     178/* Skeleton output parser for bison,
     179   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
    7180
    8181   This program is free software; you can redistribute it and/or modify
     
    18191   You should have received a copy of the GNU General Public License
    19192   along with this program; if not, write to the Free Software
    20    Foundation, Inc., 51 Franklin Street, Fifth Floor,
    21    Boston, MA 02110-1301, USA.  */
    22 
    23 /* As a special exception, you may create a larger work that contains
    24    part or all of the Bison parser skeleton and distribute that work
    25    under terms of your choice, so long as that work isn't itself a
    26    parser generator using the skeleton or a modified version thereof
    27    as a parser skeleton.  Alternatively, if you modify or redistribute
    28    the parser skeleton itself, you may (at your option) remove this
    29    special exception, which will cause the skeleton and the resulting
    30    Bison output files to be licensed under the GNU General Public
    31    License without this special exception.
    32 
    33    This special exception was added by the Free Software Foundation in
    34    version 2.2 of Bison.  */
    35 
    36 /* C LALR(1) parser skeleton written by Richard Stallman, by
    37    simplifying the original so-called "semantic" parser.  */
    38 
    39 /* All symbols defined below should begin with yy or YY, to avoid
    40    infringing on user name space.  This should be done even for local
    41    variables, as they might otherwise be expanded by user macros.
    42    There are some unavoidable exceptions within include files to
    43    define necessary library symbols; they are noted "INFRINGES ON
    44    USER NAME SPACE" below.  */
    45 
    46 /* Identify Bison output.  */
    47 #define YYBISON 1
    48 
    49 /* Bison version.  */
    50 #define YYBISON_VERSION "2.3"
    51 
    52 /* Skeleton name.  */
    53 #define YYSKELETON_NAME "yacc.c"
    54 
    55 /* Pure parsers.  */
    56 #define YYPURE 0
    57 
    58 /* Using locations.  */
    59 #define YYLSP_NEEDED 0
    60 
    61 
    62 
    63 /* Tokens.  */
    64 #ifndef YYTOKENTYPE
    65 # define YYTOKENTYPE
    66    /* Put the tokens into the symbol table, so that GDB and other debuggers
    67       know about them.  */
    68    enum yytokentype {
    69      kw_TRUE = 258,
    70      kw_FALSE = 259,
    71      kw_AND = 260,
    72      kw_OR = 261,
    73      kw_IN = 262,
    74      kw_TAILMATCH = 263,
    75      NUMBER = 264,
    76      STRING = 265,
    77      IDENTIFIER = 266
    78    };
    79 #endif
    80 /* Tokens.  */
    81 #define kw_TRUE 258
    82 #define kw_FALSE 259
    83 #define kw_AND 260
    84 #define kw_OR 261
    85 #define kw_IN 262
    86 #define kw_TAILMATCH 263
    87 #define NUMBER 264
    88 #define STRING 265
    89 #define IDENTIFIER 266
    90 
    91 
    92 
    93 
    94 /* Copy the first part of user declarations.  */
    95 #line 34 "sel-gram.y"
    96 
    97 #ifdef HAVE_CONFIG_H
    98 #include <config.h>
    99 #endif
    100 #include <stdio.h>
    101 #include <stdlib.h>
    102 #include <hx_locl.h>
    103 
    104 
    105 
    106 
    107 /* Enabling traces.  */
    108 #ifndef YYDEBUG
    109 # define YYDEBUG 0
    110 #endif
    111 
    112 /* Enabling verbose error messages.  */
    113 #ifdef YYERROR_VERBOSE
    114 # undef YYERROR_VERBOSE
    115 # define YYERROR_VERBOSE 1
     193   Foundation, Inc., 59 Temple Place - Suite 330,
     194   Boston, MA 02111-1307, USA.  */
     195
     196/* As a special exception, when this file is copied by Bison into a
     197   Bison output file, you may use that output file without restriction.
     198   This special exception was added by the Free Software Foundation
     199   in version 1.24 of Bison.  */
     200
     201/* This is the parser code that is written into each bison parser
     202  when the %semantic_parser declaration is not specified in the grammar.
     203  It was written by Richard Stallman by simplifying the hairy parser
     204  used when %semantic_parser is specified.  */
     205
     206#ifndef YYSTACK_USE_ALLOCA
     207#ifdef alloca
     208#define YYSTACK_USE_ALLOCA
     209#else /* alloca not defined */
     210#ifdef __GNUC__
     211#define YYSTACK_USE_ALLOCA
     212#define alloca __builtin_alloca
     213#else /* not GNU C.  */
     214#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
     215#define YYSTACK_USE_ALLOCA
     216#include <alloca.h>
     217#else /* not sparc */
     218/* We think this test detects Watcom and Microsoft C.  */
     219/* This used to test MSDOS, but that is a bad idea
     220   since that symbol is in the user namespace.  */
     221#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
     222#if 0 /* No need for malloc.h, which pollutes the namespace;
     223         instead, just don't use alloca.  */
     224#include <malloc.h>
     225#endif
     226#else /* not MSDOS, or __TURBOC__ */
     227#if defined(_AIX)
     228/* I don't know what this was needed for, but it pollutes the namespace.
     229   So I turned it off.   rms, 2 May 1997.  */
     230/* #include <malloc.h>  */
     231 #pragma alloca
     232#define YYSTACK_USE_ALLOCA
     233#else /* not MSDOS, or __TURBOC__, or _AIX */
     234#if 0
     235#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
     236                 and on HPUX 10.  Eventually we can turn this on.  */
     237#define YYSTACK_USE_ALLOCA
     238#define alloca __builtin_alloca
     239#endif /* __hpux */
     240#endif
     241#endif /* not _AIX */
     242#endif /* not MSDOS, or __TURBOC__ */
     243#endif /* not sparc */
     244#endif /* not GNU C */
     245#endif /* alloca not defined */
     246#endif /* YYSTACK_USE_ALLOCA not defined */
     247
     248#ifdef YYSTACK_USE_ALLOCA
     249#define YYSTACK_ALLOC alloca
    116250#else
    117 # define YYERROR_VERBOSE 0
    118 #endif
    119 
    120 /* Enabling the token table.  */
    121 #ifndef YYTOKEN_TABLE
    122 # define YYTOKEN_TABLE 0
    123 #endif
    124 
    125 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    126 typedef union YYSTYPE
    127 #line 45 "sel-gram.y"
    128 {
    129     char *string;
    130     struct hx_expr *expr;
    131 }
    132 /* Line 193 of yacc.c.  */
    133 #line 134 "sel-gram.c"
    134         YYSTYPE;
    135 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    136 # define YYSTYPE_IS_DECLARED 1
    137 # define YYSTYPE_IS_TRIVIAL 1
    138 #endif
    139 
    140 
    141 
    142 /* Copy the second part of user declarations.  */
    143 
    144 
    145 /* Line 216 of yacc.c.  */
    146 #line 147 "sel-gram.c"
    147 
    148 #ifdef short
    149 # undef short
    150 #endif
    151 
    152 #ifdef YYTYPE_UINT8
    153 typedef YYTYPE_UINT8 yytype_uint8;
    154 #else
    155 typedef unsigned char yytype_uint8;
    156 #endif
    157 
    158 #ifdef YYTYPE_INT8
    159 typedef YYTYPE_INT8 yytype_int8;
    160 #elif (defined __STDC__ || defined __C99__FUNC__ \
    161      || defined __cplusplus || defined _MSC_VER)
    162 typedef signed char yytype_int8;
    163 #else
    164 typedef short int yytype_int8;
    165 #endif
    166 
    167 #ifdef YYTYPE_UINT16
    168 typedef YYTYPE_UINT16 yytype_uint16;
    169 #else
    170 typedef unsigned short int yytype_uint16;
    171 #endif
    172 
    173 #ifdef YYTYPE_INT16
    174 typedef YYTYPE_INT16 yytype_int16;
    175 #else
    176 typedef short int yytype_int16;
    177 #endif
    178 
    179 #ifndef YYSIZE_T
    180 # ifdef __SIZE_TYPE__
    181 #  define YYSIZE_T __SIZE_TYPE__
    182 # elif defined size_t
    183 #  define YYSIZE_T size_t
    184 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
    185      || defined __cplusplus || defined _MSC_VER)
    186 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    187 #  define YYSIZE_T size_t
    188 # else
    189 #  define YYSIZE_T unsigned int
    190 # endif
    191 #endif
    192 
    193 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
    194 
    195 #ifndef YY_
    196 # if defined YYENABLE_NLS && YYENABLE_NLS
    197 #  if ENABLE_NLS
    198 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    199 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
    200 #  endif
    201 # endif
    202 # ifndef YY_
    203 #  define YY_(msgid) msgid
    204 # endif
    205 #endif
    206 
    207 /* Suppress unused-variable warnings by "using" E.  */
    208 #if ! defined lint || defined __GNUC__
    209 # define YYUSE(e) ((void) (e))
    210 #else
    211 # define YYUSE(e) /* empty */
    212 #endif
    213 
    214 /* Identity function, used to suppress warnings about constant conditions.  */
    215 #ifndef lint
    216 # define YYID(n) (n)
    217 #else
    218 #if (defined __STDC__ || defined __C99__FUNC__ \
    219      || defined __cplusplus || defined _MSC_VER)
    220 static int
    221 YYID (int i)
    222 #else
    223 static int
    224 YYID (i)
    225     int i;
    226 #endif
    227 {
    228   return i;
    229 }
    230 #endif
    231 
    232 #if ! defined yyoverflow || YYERROR_VERBOSE
    233 
    234 /* The parser invokes alloca or malloc; define the necessary symbols.  */
    235 
    236 # ifdef YYSTACK_USE_ALLOCA
    237 #  if YYSTACK_USE_ALLOCA
    238 #   ifdef __GNUC__
    239 #    define YYSTACK_ALLOC __builtin_alloca
    240 #   elif defined __BUILTIN_VA_ARG_INCR
    241 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
    242 #   elif defined _AIX
    243 #    define YYSTACK_ALLOC __alloca
    244 #   elif defined _MSC_VER
    245 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
    246 #    define alloca _alloca
    247 #   else
    248 #    define YYSTACK_ALLOC alloca
    249 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    250      || defined __cplusplus || defined _MSC_VER)
    251 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    252 #     ifndef _STDLIB_H
    253 #      define _STDLIB_H 1
    254 #     endif
    255 #    endif
    256 #   endif
    257 #  endif
    258 # endif
    259 
    260 # ifdef YYSTACK_ALLOC
    261    /* Pacify GCC's `empty if-body' warning.  */
    262 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
    263 #  ifndef YYSTACK_ALLOC_MAXIMUM
    264     /* The OS might guarantee only one guard page at the bottom of the stack,
    265        and a page size can be as small as 4096 bytes.  So we cannot safely
    266        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
    267        to allow for a few compiler-allocated temporary stack slots.  */
    268 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
    269 #  endif
    270 # else
    271 #  define YYSTACK_ALLOC YYMALLOC
    272 #  define YYSTACK_FREE YYFREE
    273 #  ifndef YYSTACK_ALLOC_MAXIMUM
    274 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
    275 #  endif
    276 #  if (defined __cplusplus && ! defined _STDLIB_H \
    277        && ! ((defined YYMALLOC || defined malloc) \
    278              && (defined YYFREE || defined free)))
    279 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    280 #   ifndef _STDLIB_H
    281 #    define _STDLIB_H 1
    282 #   endif
    283 #  endif
    284 #  ifndef YYMALLOC
    285 #   define YYMALLOC malloc
    286 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    287      || defined __cplusplus || defined _MSC_VER)
    288 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    289 #   endif
    290 #  endif
    291 #  ifndef YYFREE
    292 #   define YYFREE free
    293 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    294      || defined __cplusplus || defined _MSC_VER)
    295 void free (void *); /* INFRINGES ON USER NAME SPACE */
    296 #   endif
    297 #  endif
    298 # endif
    299 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
    300 
    301 
    302 #if (! defined yyoverflow \
    303      && (! defined __cplusplus \
    304          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    305 
    306 /* A type that is properly aligned for any stack member.  */
    307 union yyalloc
    308 {
    309   yytype_int16 yyss;
    310   YYSTYPE yyvs;
    311   };
    312 
    313 /* The size of the maximum gap between one aligned stack and the next.  */
    314 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
    315 
    316 /* The size of an array large to enough to hold all stacks, each with
    317    N elements.  */
    318 # define YYSTACK_BYTES(N) \
    319      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
    320       + YYSTACK_GAP_MAXIMUM)
    321 
    322 /* Copy COUNT objects from FROM to TO.  The source and destination do
    323    not overlap.  */
    324 # ifndef YYCOPY
    325 #  if defined __GNUC__ && 1 < __GNUC__
    326 #   define YYCOPY(To, From, Count) \
    327       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
    328 #  else
    329 #   define YYCOPY(To, From, Count)              \
    330       do                                        \
    331         {                                       \
    332           YYSIZE_T yyi;                         \
    333           for (yyi = 0; yyi < (Count); yyi++)   \
    334             (To)[yyi] = (From)[yyi];            \
    335         }                                       \
    336       while (YYID (0))
    337 #  endif
    338 # endif
    339 
    340 /* Relocate STACK from its old location to the new one.  The
    341    local variables YYSIZE and YYSTACKSIZE give the old and new number of
    342    elements in the stack, and YYPTR gives the new location of the
    343    stack.  Advance YYPTR to a properly aligned location for the next
    344    stack.  */
    345 # define YYSTACK_RELOCATE(Stack)                                        \
    346     do                                                                  \
    347       {                                                                 \
    348         YYSIZE_T yynewbytes;                                            \
    349         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
    350         Stack = &yyptr->Stack;                                          \
    351         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    352         yyptr += yynewbytes / sizeof (*yyptr);                          \
    353       }                                                                 \
    354     while (YYID (0))
    355 
    356 #endif
    357 
    358 /* YYFINAL -- State number of the termination state.  */
    359 #define YYFINAL  21
    360 /* YYLAST -- Last index in YYTABLE.  */
    361 #define YYLAST   50
    362 
    363 /* YYNTOKENS -- Number of terminals.  */
    364 #define YYNTOKENS  21
    365 /* YYNNTS -- Number of nonterminals.  */
    366 #define YYNNTS  11
    367 /* YYNRULES -- Number of rules.  */
    368 #define YYNRULES  26
    369 /* YYNRULES -- Number of states.  */
    370 #define YYNSTATES  50
    371 
    372 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    373 #define YYUNDEFTOK  2
    374 #define YYMAXUTOK   266
    375 
    376 #define YYTRANSLATE(YYX)                                                \
    377   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    378 
    379 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
    380 static const yytype_uint8 yytranslate[] =
    381 {
    382        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    383        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    384        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    385        2,     2,     2,    12,     2,     2,     2,    17,     2,     2,
    386       13,    14,     2,     2,    15,     2,    20,     2,     2,     2,
    387        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    388        2,    16,     2,     2,     2,     2,     2,     2,     2,     2,
    389        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    390        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    391        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    392        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    393        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    394        2,     2,     2,    18,     2,    19,     2,     2,     2,     2,
    395        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    396        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    397        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    398        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    399        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    400        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    401        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    402        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    403        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    404        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    405        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    406        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    407        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
    408        5,     6,     7,     8,     9,    10,    11
    409 };
    410 
    411 #if YYDEBUG
    412 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    413    YYRHS.  */
    414 static const yytype_uint8 yyprhs[] =
    415 {
    416        0,     0,     3,     5,     7,     9,    12,    16,    20,    24,
    417       26,    28,    32,    37,    42,    46,    52,    56,    58,    60,
    418       62,    64,    66,    68,    73,    78,    82
    419 };
    420 
    421 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
    422 static const yytype_int8 yyrhs[] =
    423 {
    424       22,     0,    -1,    23,    -1,     3,    -1,     4,    -1,    12,
    425       23,    -1,    23,     5,    23,    -1,    23,     6,    23,    -1,
    426       13,    23,    14,    -1,    25,    -1,    26,    -1,    26,    15,
    427       24,    -1,    26,    16,    16,    26,    -1,    26,    12,    16,
    428       26,    -1,    26,     8,    26,    -1,    26,     7,    13,    24,
    429       14,    -1,    26,     7,    30,    -1,    27,    -1,    28,    -1,
    430       29,    -1,    30,    -1,     9,    -1,    10,    -1,    11,    13,
    431       24,    14,    -1,    17,    18,    31,    19,    -1,    11,    20,
    432       31,    -1,    11,    -1
    433 };
    434 
    435 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
    436 static const yytype_uint8 yyrline[] =
    437 {
    438        0,    73,    73,    75,    76,    77,    78,    79,    80,    81,
    439       84,    85,    88,    89,    90,    91,    92,    95,    96,    97,
    440       98,   101,   102,   104,   107,   110,   112
    441 };
    442 #endif
    443 
    444 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
    445 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    446    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
    447 static const char *const yytname[] =
    448 {
    449   "$end", "error", "$undefined", "kw_TRUE", "kw_FALSE", "kw_AND", "kw_OR",
    450   "kw_IN", "kw_TAILMATCH", "NUMBER", "STRING", "IDENTIFIER", "'!'", "'('",
    451   "')'", "','", "'='", "'%'", "'{'", "'}'", "'.'", "$accept", "start",
    452   "expr", "words", "comp", "word", "number", "string", "function",
    453   "variable", "variables", 0
    454 };
    455 #endif
    456 
    457 # ifdef YYPRINT
    458 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    459    token YYLEX-NUM.  */
    460 static const yytype_uint16 yytoknum[] =
    461 {
    462        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
    463      265,   266,    33,    40,    41,    44,    61,    37,   123,   125,
    464       46
    465 };
    466 # endif
    467 
    468 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    469 static const yytype_uint8 yyr1[] =
    470 {
    471        0,    21,    22,    23,    23,    23,    23,    23,    23,    23,
    472       24,    24,    25,    25,    25,    25,    25,    26,    26,    26,
    473       26,    27,    28,    29,    30,    31,    31
    474 };
    475 
    476 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    477 static const yytype_uint8 yyr2[] =
    478 {
    479        0,     2,     1,     1,     1,     2,     3,     3,     3,     1,
    480        1,     3,     4,     4,     3,     5,     3,     1,     1,     1,
    481        1,     1,     1,     4,     4,     3,     1
    482 };
    483 
    484 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    485    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    486    means the default is an error.  */
    487 static const yytype_uint8 yydefact[] =
    488 {
    489        0,     3,     4,    21,    22,     0,     0,     0,     0,     0,
    490        2,     9,     0,    17,    18,    19,    20,     0,     5,     0,
    491        0,     1,     0,     0,     0,     0,     0,     0,     0,    10,
    492        8,    26,     0,     6,     7,     0,    16,    14,     0,     0,
    493       23,     0,     0,    24,     0,    13,    12,    11,    25,    15
    494 };
    495 
    496 /* YYDEFGOTO[NTERM-NUM].  */
    497 static const yytype_int8 yydefgoto[] =
    498 {
    499       -1,     9,    10,    28,    11,    12,    13,    14,    15,    16,
    500       32
    501 };
    502 
    503 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    504    STATE-NUM.  */
    505 #define YYPACT_NINF -31
    506 static const yytype_int8 yypact[] =
    507 {
    508       22,   -31,   -31,   -31,   -31,    -1,    22,    22,   -11,    27,
    509       11,   -31,    -6,   -31,   -31,   -31,   -31,    19,    11,     9,
    510       26,   -31,    22,    22,    -4,    19,    24,    25,    28,    23,
    511      -31,    29,    31,    11,    11,    19,   -31,   -31,    19,    19,
    512      -31,    19,    26,   -31,    30,   -31,   -31,   -31,   -31,   -31
    513 };
    514 
    515 /* YYPGOTO[NTERM-NUM].  */
    516 static const yytype_int8 yypgoto[] =
    517 {
    518      -31,   -31,    -3,   -30,   -31,   -17,   -31,   -31,   -31,    21,
    519        1
    520 };
    521 
    522 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    523    positive, shift that token.  If negative, reduce the rule which
    524    number is the opposite.  If zero, do what YYDEFACT says.
    525    If YYTABLE_NINF, syntax error.  */
    526 #define YYTABLE_NINF -1
    527 static const yytype_uint8 yytable[] =
    528 {
    529       29,    24,    25,    18,    19,    44,    26,    20,    37,    35,
    530       27,    47,    17,     8,    22,    23,    22,    23,    29,    33,
    531       34,    45,    46,    30,    29,     1,     2,    21,     3,     4,
    532        5,     3,     4,     5,     6,     7,     8,    31,    41,     8,
    533       38,    39,    40,    48,    49,    36,     0,     0,     0,    42,
    534       43
    535 };
    536 
    537 static const yytype_int8 yycheck[] =
    538 {
    539       17,     7,     8,     6,     7,    35,    12,    18,    25,    13,
    540       16,    41,    13,    17,     5,     6,     5,     6,    35,    22,
    541       23,    38,    39,    14,    41,     3,     4,     0,     9,    10,
    542       11,     9,    10,    11,    12,    13,    17,    11,    15,    17,
    543       16,    16,    14,    42,    14,    24,    -1,    -1,    -1,    20,
    544       19
    545 };
    546 
    547 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    548    symbol of state STATE-NUM.  */
    549 static const yytype_uint8 yystos[] =
    550 {
    551        0,     3,     4,     9,    10,    11,    12,    13,    17,    22,
    552       23,    25,    26,    27,    28,    29,    30,    13,    23,    23,
    553       18,     0,     5,     6,     7,     8,    12,    16,    24,    26,
    554       14,    11,    31,    23,    23,    13,    30,    26,    16,    16,
    555       14,    15,    20,    19,    24,    26,    26,    24,    31,    14
    556 };
     251#define YYSTACK_ALLOC malloc
     252#endif
     253
     254/* Note: there must be only one dollar sign in this file.
     255   It is replaced by the list of actions, each action
     256   as one case of the switch.  */
    557257
    558258#define yyerrok         (yyerrstatus = 0)
    559259#define yyclearin       (yychar = YYEMPTY)
    560 #define YYEMPTY         (-2)
     260#define YYEMPTY         -2
    561261#define YYEOF           0
    562 
    563262#define YYACCEPT        goto yyacceptlab
    564 #define YYABORT         goto yyabortlab
    565 #define YYERROR         goto yyerrorlab
    566 
    567 
    568 /* Like YYERROR except do call yyerror.  This remains here temporarily
    569    to ease the transition to the new meaning of YYERROR, for GCC.
     263#define YYABORT         goto yyabortlab
     264#define YYERROR         goto yyerrlab1
     265/* Like YYERROR except do call yyerror.
     266   This remains here temporarily to ease the
     267   transition to the new meaning of YYERROR, for GCC.
    570268   Once GCC version 2 has supplanted version 1, this can go.  */
    571 
    572269#define YYFAIL          goto yyerrlab
    573 
    574270#define YYRECOVERING()  (!!yyerrstatus)
    575 
    576 #define YYBACKUP(Token, Value)                                  \
     271#define YYBACKUP(token, value) \
    577272do                                                              \
    578273  if (yychar == YYEMPTY && yylen == 1)                          \
    579     {                                                           \
    580       yychar = (Token);                                         \
    581       yylval = (Value);                                         \
    582       yytoken = YYTRANSLATE (yychar);                           \
    583       YYPOPSTACK (1);                                           \
     274    { yychar = (token), yylval = (value);                       \
     275      yychar1 = YYTRANSLATE (yychar);                           \
     276      YYPOPSTACK;                                               \
    584277      goto yybackup;                                            \
    585278    }                                                           \
    586279  else                                                          \
    587     {                                                           \
    588       yyerror (YY_("syntax error: cannot back up")); \
    589       YYERROR;                                                  \
    590     }                                                           \
    591 while (YYID (0))
    592 
     280    { yyerror ("syntax error: cannot back up"); YYERROR; }      \
     281while (0)
    593282
    594283#define YYTERROR        1
    595284#define YYERRCODE       256
    596285
    597 
    598 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    599    If N is 0, then set CURRENT to the empty location which ends
    600    the previous symbol: RHS[0] (always defined).  */
    601 
    602 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    603 #ifndef YYLLOC_DEFAULT
    604 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
    605     do                                                                  \
    606       if (YYID (N))                                                    \
    607         {                                                               \
    608           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
    609           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
    610           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
    611           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
    612         }                                                               \
    613       else                                                              \
    614         {                                                               \
    615           (Current).first_line   = (Current).last_line   =              \
    616             YYRHSLOC (Rhs, 0).last_line;                                \
    617           (Current).first_column = (Current).last_column =              \
    618             YYRHSLOC (Rhs, 0).last_column;                              \
    619         }                                                               \
    620     while (YYID (0))
    621 #endif
    622 
    623 
    624 /* YY_LOCATION_PRINT -- Print the location on the stream.
    625    This macro was not mandated originally: define only if we know
    626    we won't break user code: when these are the locations we know.  */
    627 
    628 #ifndef YY_LOCATION_PRINT
    629 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
    630 #  define YY_LOCATION_PRINT(File, Loc)                  \
    631      fprintf (File, "%d.%d-%d.%d",                      \
    632               (Loc).first_line, (Loc).first_column,     \
    633               (Loc).last_line,  (Loc).last_column)
    634 # else
    635 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    636 # endif
    637 #endif
    638 
    639 
    640 /* YYLEX -- calling `yylex' with the right arguments.  */
    641 
     286#ifndef YYPURE
     287#define YYLEX           yylex()
     288#endif
     289
     290#ifdef YYPURE
     291#ifdef YYLSP_NEEDED
    642292#ifdef YYLEX_PARAM
    643 # define YYLEX yylex (YYLEX_PARAM)
     293#define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
    644294#else
    645 # define YYLEX yylex ()
    646 #endif
    647 
    648 /* Enable debugging if requested.  */
    649 #if YYDEBUG
    650 
    651 # ifndef YYFPRINTF
    652 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
    653 #  define YYFPRINTF fprintf
    654 # endif
    655 
    656 # define YYDPRINTF(Args)                        \
    657 do {                                            \
    658   if (yydebug)                                  \
    659     YYFPRINTF Args;                             \
    660 } while (YYID (0))
    661 
    662 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    663 do {                                                                      \
    664   if (yydebug)                                                            \
    665     {                                                                     \
    666       YYFPRINTF (stderr, "%s ", Title);                                   \
    667       yy_symbol_print (stderr,                                            \
    668                   Type, Value); \
    669       YYFPRINTF (stderr, "\n");                                           \
    670     }                                                                     \
    671 } while (YYID (0))
    672 
    673 
    674 /*--------------------------------.
    675 | Print this symbol on YYOUTPUT.  |
    676 `--------------------------------*/
    677 
    678 /*ARGSUSED*/
    679 #if (defined __STDC__ || defined __C99__FUNC__ \
    680      || defined __cplusplus || defined _MSC_VER)
     295#define YYLEX           yylex(&yylval, &yylloc)
     296#endif
     297#else /* not YYLSP_NEEDED */
     298#ifdef YYLEX_PARAM
     299#define YYLEX           yylex(&yylval, YYLEX_PARAM)
     300#else
     301#define YYLEX           yylex(&yylval)
     302#endif
     303#endif /* not YYLSP_NEEDED */
     304#endif
     305
     306/* If nonreentrant, generate the variables here */
     307
     308#ifndef YYPURE
     309
     310int     yychar;                 /*  the lookahead symbol                */
     311YYSTYPE yylval;                 /*  the semantic value of the           */
     312                                /*  lookahead symbol                    */
     313
     314#ifdef YYLSP_NEEDED
     315YYLTYPE yylloc;                 /*  location data for the lookahead     */
     316                                /*  symbol                              */
     317#endif
     318
     319int yynerrs;                    /*  number of parse errors so far       */
     320#endif  /* not YYPURE */
     321
     322#if YYDEBUG != 0
     323int yydebug;                    /*  nonzero means print parse trace     */
     324/* Since this is uninitialized, it does not stop multiple parsers
     325   from coexisting.  */
     326#endif
     327
     328/*  YYINITDEPTH indicates the initial size of the parser's stacks       */
     329
     330#ifndef YYINITDEPTH
     331#define YYINITDEPTH 200
     332#endif
     333
     334/*  YYMAXDEPTH is the maximum size the stacks can grow to
     335    (effective only if the built-in stack extension method is used).  */
     336
     337#if YYMAXDEPTH == 0
     338#undef YYMAXDEPTH
     339#endif
     340
     341#ifndef YYMAXDEPTH
     342#define YYMAXDEPTH 10000
     343#endif
     344
     345
     346/* Define __yy_memcpy.  Note that the size argument
     347   should be passed with type unsigned int, because that is what the non-GCC
     348   definitions require.  With GCC, __builtin_memcpy takes an arg
     349   of type size_t, but it can handle unsigned int.  */
     350
     351#if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
     352#define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
     353#else                           /* not GNU C or C++ */
     354#ifndef __cplusplus
     355
     356/* This is the most reliable way to avoid incompatibilities
     357   in available built-in functions on various systems.  */
    681358static void
    682 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
     359__yy_memcpy (to, from, count)
     360     char *to;
     361     char *from;
     362     unsigned int count;
     363{
     364  register char *f = from;
     365  register char *t = to;
     366  register int i = count;
     367
     368  while (i-- > 0)
     369    *t++ = *f++;
     370}
     371
     372#else /* __cplusplus */
     373
     374/* This is the most reliable way to avoid incompatibilities
     375   in available built-in functions on various systems.  */
     376static void
     377__yy_memcpy (char *to, char *from, unsigned int count)
     378{
     379  register char *t = to;
     380  register char *f = from;
     381  register int i = count;
     382
     383  while (i-- > 0)
     384    *t++ = *f++;
     385}
     386
     387#endif
     388#endif
     389
     390
     391#line 217 "/emx/share/bison.simple"
     392
     393/* The user can define YYPARSE_PARAM as the name of an argument to be passed
     394   into yyparse.  The argument should have type void *.
     395   It should actually point to an object.
     396   Grammar actions can access the variable by casting it
     397   to the proper pointer type.  */
     398
     399#ifdef YYPARSE_PARAM
     400#ifdef __cplusplus
     401#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
     402#define YYPARSE_PARAM_DECL
     403#else /* not __cplusplus */
     404#define YYPARSE_PARAM_ARG YYPARSE_PARAM
     405#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
     406#endif /* not __cplusplus */
     407#else /* not YYPARSE_PARAM */
     408#define YYPARSE_PARAM_ARG
     409#define YYPARSE_PARAM_DECL
     410#endif /* not YYPARSE_PARAM */
     411
     412/* Prevent warning if -Wstrict-prototypes.  */
     413#ifdef __GNUC__
     414#ifdef YYPARSE_PARAM
     415int yyparse (void *);
    683416#else
    684 static void
    685 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    686     FILE *yyoutput;
    687     int yytype;
    688     YYSTYPE const * const yyvaluep;
    689 #endif
     417int yyparse (void);
     418#endif
     419#endif
     420
     421int
     422yyparse(YYPARSE_PARAM_ARG)
     423     YYPARSE_PARAM_DECL
    690424{
    691   if (!yyvaluep)
    692     return;
    693 # ifdef YYPRINT
    694   if (yytype < YYNTOKENS)
    695     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    696 # else
    697   YYUSE (yyoutput);
    698 # endif
    699   switch (yytype)
    700     {
    701       default:
    702         break;
    703     }
    704 }
    705 
    706 
    707 /*--------------------------------.
    708 | Print this symbol on YYOUTPUT.  |
    709 `--------------------------------*/
    710 
    711 #if (defined __STDC__ || defined __C99__FUNC__ \
    712      || defined __cplusplus || defined _MSC_VER)
    713 static void
    714 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
     425  register int yystate;
     426  register int yyn;
     427  register short *yyssp;
     428  register YYSTYPE *yyvsp;
     429  int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
     430  int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
     431
     432  short yyssa[YYINITDEPTH];     /*  the state stack                     */
     433  YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
     434
     435  short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
     436  YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
     437
     438#ifdef YYLSP_NEEDED
     439  YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
     440  YYLTYPE *yyls = yylsa;
     441  YYLTYPE *yylsp;
     442
     443#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
    715444#else
    716 static void
    717 yy_symbol_print (yyoutput, yytype, yyvaluep)
    718     FILE *yyoutput;
    719     int yytype;
    720     YYSTYPE const * const yyvaluep;
    721 #endif
    722 {
    723   if (yytype < YYNTOKENS)
    724     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    725   else
    726     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    727 
    728   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
    729   YYFPRINTF (yyoutput, ")");
    730 }
    731 
    732 /*------------------------------------------------------------------.
    733 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
    734 | TOP (included).                                                   |
    735 `------------------------------------------------------------------*/
    736 
    737 #if (defined __STDC__ || defined __C99__FUNC__ \
    738      || defined __cplusplus || defined _MSC_VER)
    739 static void
    740 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
    741 #else
    742 static void
    743 yy_stack_print (bottom, top)
    744     yytype_int16 *bottom;
    745     yytype_int16 *top;
    746 #endif
    747 {
    748   YYFPRINTF (stderr, "Stack now");
    749   for (; bottom <= top; ++bottom)
    750     YYFPRINTF (stderr, " %d", *bottom);
    751   YYFPRINTF (stderr, "\n");
    752 }
    753 
    754 # define YY_STACK_PRINT(Bottom, Top)                            \
    755 do {                                                            \
    756   if (yydebug)                                                  \
    757     yy_stack_print ((Bottom), (Top));                           \
    758 } while (YYID (0))
    759 
    760 
    761 /*------------------------------------------------.
    762 | Report that the YYRULE is going to be reduced.  |
    763 `------------------------------------------------*/
    764 
    765 #if (defined __STDC__ || defined __C99__FUNC__ \
    766      || defined __cplusplus || defined _MSC_VER)
    767 static void
    768 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
    769 #else
    770 static void
    771 yy_reduce_print (yyvsp, yyrule)
    772     YYSTYPE *yyvsp;
    773     int yyrule;
    774 #endif
    775 {
    776   int yynrhs = yyr2[yyrule];
    777   int yyi;
    778   unsigned long int yylno = yyrline[yyrule];
    779   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    780              yyrule - 1, yylno);
    781   /* The symbols being reduced.  */
    782   for (yyi = 0; yyi < yynrhs; yyi++)
    783     {
    784       fprintf (stderr, "   $%d = ", yyi + 1);
    785       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    786                        &(yyvsp[(yyi + 1) - (yynrhs)])
    787                                        );
    788       fprintf (stderr, "\n");
    789     }
    790 }
    791 
    792 # define YY_REDUCE_PRINT(Rule)          \
    793 do {                                    \
    794   if (yydebug)                          \
    795     yy_reduce_print (yyvsp, Rule); \
    796 } while (YYID (0))
    797 
    798 /* Nonzero means print parse trace.  It is left uninitialized so that
    799    multiple parsers can coexist.  */
    800 int yydebug;
    801 #else /* !YYDEBUG */
    802 # define YYDPRINTF(Args)
    803 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
    804 # define YY_STACK_PRINT(Bottom, Top)
    805 # define YY_REDUCE_PRINT(Rule)
    806 #endif /* !YYDEBUG */
    807 
    808 
    809 /* YYINITDEPTH -- initial size of the parser's stacks.  */
    810 #ifndef YYINITDEPTH
    811 # define YYINITDEPTH 200
    812 #endif
    813 
    814 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
    815    if the built-in stack extension method is used).
    816 
    817    Do not make this value too large; the results are undefined if
    818    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
    819    evaluated with infinite-precision integer arithmetic.  */
    820 
    821 #ifndef YYMAXDEPTH
    822 # define YYMAXDEPTH 10000
    823 #endif
    824 
    825 
    826 
    827 
    828 #if YYERROR_VERBOSE
    829 
    830 # ifndef yystrlen
    831 #  if defined __GLIBC__ && defined _STRING_H
    832 #   define yystrlen strlen
    833 #  else
    834 /* Return the length of YYSTR.  */
    835 #if (defined __STDC__ || defined __C99__FUNC__ \
    836      || defined __cplusplus || defined _MSC_VER)
    837 static YYSIZE_T
    838 yystrlen (const char *yystr)
    839 #else
    840 static YYSIZE_T
    841 yystrlen (yystr)
    842     const char *yystr;
    843 #endif
    844 {
    845   YYSIZE_T yylen;
    846   for (yylen = 0; yystr[yylen]; yylen++)
    847     continue;
    848   return yylen;
    849 }
    850 #  endif
    851 # endif
    852 
    853 # ifndef yystpcpy
    854 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
    855 #   define yystpcpy stpcpy
    856 #  else
    857 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    858    YYDEST.  */
    859 #if (defined __STDC__ || defined __C99__FUNC__ \
    860      || defined __cplusplus || defined _MSC_VER)
    861 static char *
    862 yystpcpy (char *yydest, const char *yysrc)
    863 #else
    864 static char *
    865 yystpcpy (yydest, yysrc)
    866     char *yydest;
    867     const char *yysrc;
    868 #endif
    869 {
    870   char *yyd = yydest;
    871   const char *yys = yysrc;
    872 
    873   while ((*yyd++ = *yys++) != '\0')
    874     continue;
    875 
    876   return yyd - 1;
    877 }
    878 #  endif
    879 # endif
    880 
    881 # ifndef yytnamerr
    882 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
    883    quotes and backslashes, so that it's suitable for yyerror.  The
    884    heuristic is that double-quoting is unnecessary unless the string
    885    contains an apostrophe, a comma, or backslash (other than
    886    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
    887    null, do not copy; instead, return the length of what the result
    888    would have been.  */
    889 static YYSIZE_T
    890 yytnamerr (char *yyres, const char *yystr)
    891 {
    892   if (*yystr == '"')
    893     {
    894       YYSIZE_T yyn = 0;
    895       char const *yyp = yystr;
    896 
    897       for (;;)
    898         switch (*++yyp)
    899           {
    900           case '\'':
    901           case ',':
    902             goto do_not_strip_quotes;
    903 
    904           case '\\':
    905             if (*++yyp != '\\')
    906               goto do_not_strip_quotes;
    907             /* Fall through.  */
    908           default:
    909             if (yyres)
    910               yyres[yyn] = *yyp;
    911             yyn++;
    912             break;
    913 
    914           case '"':
    915             if (yyres)
    916               yyres[yyn] = '\0';
    917             return yyn;
    918           }
    919     do_not_strip_quotes: ;
    920     }
    921 
    922   if (! yyres)
    923     return yystrlen (yystr);
    924 
    925   return yystpcpy (yyres, yystr) - yyres;
    926 }
    927 # endif
    928 
    929 /* Copy into YYRESULT an error message about the unexpected token
    930    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
    931    including the terminating null byte.  If YYRESULT is null, do not
    932    copy anything; just return the number of bytes that would be
    933    copied.  As a special case, return 0 if an ordinary "syntax error"
    934    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
    935    size calculation.  */
    936 static YYSIZE_T
    937 yysyntax_error (char *yyresult, int yystate, int yychar)
    938 {
    939   int yyn = yypact[yystate];
    940 
    941   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
    942     return 0;
    943   else
    944     {
    945       int yytype = YYTRANSLATE (yychar);
    946       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
    947       YYSIZE_T yysize = yysize0;
    948       YYSIZE_T yysize1;
    949       int yysize_overflow = 0;
    950       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    951       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
    952       int yyx;
    953 
    954 # if 0
    955       /* This is so xgettext sees the translatable formats that are
    956          constructed on the fly.  */
    957       YY_("syntax error, unexpected %s");
    958       YY_("syntax error, unexpected %s, expecting %s");
    959       YY_("syntax error, unexpected %s, expecting %s or %s");
    960       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
    961       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
    962 # endif
    963       char *yyfmt;
    964       char const *yyf;
    965       static char const yyunexpected[] = "syntax error, unexpected %s";
    966       static char const yyexpecting[] = ", expecting %s";
    967       static char const yyor[] = " or %s";
    968       char yyformat[sizeof yyunexpected
    969                     + sizeof yyexpecting - 1
    970                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
    971                        * (sizeof yyor - 1))];
    972       char const *yyprefix = yyexpecting;
    973 
    974       /* Start YYX at -YYN if negative to avoid negative indexes in
    975          YYCHECK.  */
    976       int yyxbegin = yyn < 0 ? -yyn : 0;
    977 
    978       /* Stay within bounds of both yycheck and yytname.  */
    979       int yychecklim = YYLAST - yyn + 1;
    980       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
    981       int yycount = 1;
    982 
    983       yyarg[0] = yytname[yytype];
    984       yyfmt = yystpcpy (yyformat, yyunexpected);
    985 
    986       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
    987         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
    988           {
    989             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
    990               {
    991                 yycount = 1;
    992                 yysize = yysize0;
    993                 yyformat[sizeof yyunexpected - 1] = '\0';
    994                 break;
    995               }
    996             yyarg[yycount++] = yytname[yyx];
    997             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
    998             yysize_overflow |= (yysize1 < yysize);
    999             yysize = yysize1;
    1000             yyfmt = yystpcpy (yyfmt, yyprefix);
    1001             yyprefix = yyor;
    1002           }
    1003 
    1004       yyf = YY_(yyformat);
    1005       yysize1 = yysize + yystrlen (yyf);
    1006       yysize_overflow |= (yysize1 < yysize);
    1007       yysize = yysize1;
    1008 
    1009       if (yysize_overflow)
    1010         return YYSIZE_MAXIMUM;
    1011 
    1012       if (yyresult)
    1013         {
    1014           /* Avoid sprintf, as that infringes on the user's name space.
    1015              Don't have undefined behavior even if the translation
    1016              produced a string with the wrong number of "%s"s.  */
    1017           char *yyp = yyresult;
    1018           int yyi = 0;
    1019           while ((*yyp = *yyf) != '\0')
    1020             {
    1021               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
    1022                 {
    1023                   yyp += yytnamerr (yyp, yyarg[yyi++]);
    1024                   yyf += 2;
    1025                 }
    1026               else
    1027                 {
    1028                   yyp++;
    1029                   yyf++;
    1030                 }
    1031             }
    1032         }
    1033       return yysize;
    1034     }
    1035 }
    1036 #endif /* YYERROR_VERBOSE */
    1037 
    1038 
    1039 
    1040 /*-----------------------------------------------.
    1041 | Release the memory associated to this symbol.  |
    1042 `-----------------------------------------------*/
    1043 
    1044 /*ARGSUSED*/
    1045 #if (defined __STDC__ || defined __C99__FUNC__ \
    1046      || defined __cplusplus || defined _MSC_VER)
    1047 static void
    1048 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
    1049 #else
    1050 static void
    1051 yydestruct (yymsg, yytype, yyvaluep)
    1052     const char *yymsg;
    1053     int yytype;
    1054     YYSTYPE *yyvaluep;
    1055 #endif
    1056 {
    1057   YYUSE (yyvaluep);
    1058 
    1059   if (!yymsg)
    1060     yymsg = "Deleting";
    1061   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    1062 
    1063   switch (yytype)
    1064     {
    1065 
    1066       default:
    1067         break;
    1068     }
    1069 }
    1070 
    1071 
    1072 
    1073 /* Prevent warnings from -Wmissing-prototypes.  */
    1074 
    1075 #ifdef YYPARSE_PARAM
    1076 #if defined __STDC__ || defined __cplusplus
    1077 int yyparse (void *YYPARSE_PARAM);
    1078 #else
    1079 int yyparse ();
    1080 #endif
    1081 #else /* ! YYPARSE_PARAM */
    1082 #if defined __STDC__ || defined __cplusplus
    1083 int yyparse (void);
    1084 #else
    1085 int yyparse ();
    1086 #endif
    1087 #endif /* ! YYPARSE_PARAM */
    1088 
    1089 
    1090 
    1091 /* The look-ahead symbol.  */
    1092 int yychar;
    1093 
    1094 /* The semantic value of the look-ahead symbol.  */
    1095 YYSTYPE yylval;
    1096 
    1097 /* Number of syntax errors so far.  */
    1098 int yynerrs;
    1099 
    1100 
    1101 
    1102 /*----------.
    1103 | yyparse.  |
    1104 `----------*/
    1105 
    1106 #ifdef YYPARSE_PARAM
    1107 #if (defined __STDC__ || defined __C99__FUNC__ \
    1108      || defined __cplusplus || defined _MSC_VER)
    1109 int
    1110 yyparse (void *YYPARSE_PARAM)
    1111 #else
    1112 int
    1113 yyparse (YYPARSE_PARAM)
    1114     void *YYPARSE_PARAM;
    1115 #endif
    1116 #else /* ! YYPARSE_PARAM */
    1117 #if (defined __STDC__ || defined __C99__FUNC__ \
    1118      || defined __cplusplus || defined _MSC_VER)
    1119 int
    1120 yyparse (void)
    1121 #else
    1122 int
    1123 yyparse ()
    1124 
    1125 #endif
    1126 #endif
    1127 {
    1128  
    1129   int yystate;
    1130   int yyn;
    1131   int yyresult;
    1132   /* Number of tokens to shift before error messages enabled.  */
    1133   int yyerrstatus;
    1134   /* Look-ahead token as an internal (translated) token number.  */
    1135   int yytoken = 0;
    1136 #if YYERROR_VERBOSE
    1137   /* Buffer for error messages, and its allocated size.  */
    1138   char yymsgbuf[128];
    1139   char *yymsg = yymsgbuf;
    1140   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
    1141 #endif
    1142 
    1143   /* Three stacks and their tools:
    1144      `yyss': related to states,
    1145      `yyvs': related to semantic values,
    1146      `yyls': related to locations.
    1147 
    1148      Refer to the stacks thru separate pointers, to allow yyoverflow
    1149      to reallocate them elsewhere.  */
    1150 
    1151   /* The state stack.  */
    1152   yytype_int16 yyssa[YYINITDEPTH];
    1153   yytype_int16 *yyss = yyssa;
    1154   yytype_int16 *yyssp;
    1155 
    1156   /* The semantic value stack.  */
    1157   YYSTYPE yyvsa[YYINITDEPTH];
    1158   YYSTYPE *yyvs = yyvsa;
    1159   YYSTYPE *yyvsp;
    1160 
    1161 
    1162 
    1163 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
    1164 
    1165   YYSIZE_T yystacksize = YYINITDEPTH;
    1166 
    1167   /* The variables used to return semantic value and location from the
    1168      action routines.  */
    1169   YYSTYPE yyval;
    1170 
    1171 
    1172   /* The number of symbols on the RHS of the reduced rule.
    1173      Keep to zero when no symbol should be popped.  */
    1174   int yylen = 0;
    1175 
    1176   YYDPRINTF ((stderr, "Starting parse\n"));
     445#define YYPOPSTACK   (yyvsp--, yyssp--)
     446#endif
     447
     448  int yystacksize = YYINITDEPTH;
     449  int yyfree_stacks = 0;
     450
     451#ifdef YYPURE
     452  int yychar;
     453  YYSTYPE yylval;
     454  int yynerrs;
     455#ifdef YYLSP_NEEDED
     456  YYLTYPE yylloc;
     457#endif
     458#endif
     459
     460  YYSTYPE yyval;                /*  the variable used to return         */
     461                                /*  semantic values from the action     */
     462                                /*  routines                            */
     463
     464  int yylen;
     465
     466#if YYDEBUG != 0
     467  if (yydebug)
     468    fprintf(stderr, "Starting parse\n");
     469#endif
    1177470
    1178471  yystate = 0;
     
    1186479     The wasted elements are never initialized.  */
    1187480
    1188   yyssp = yyss;
     481  yyssp = yyss - 1;
    1189482  yyvsp = yyvs;
    1190 
    1191   goto yysetstate;
    1192 
    1193 /*------------------------------------------------------------.
    1194 | yynewstate -- Push a new state, which is found in yystate.  |
    1195 `------------------------------------------------------------*/
    1196  yynewstate:
    1197   /* In all cases, when you get here, the value and location stacks
    1198      have just been pushed.  So pushing a state here evens the stacks.  */
    1199   yyssp++;
    1200 
    1201  yysetstate:
    1202   *yyssp = yystate;
    1203 
    1204   if (yyss + yystacksize - 1 <= yyssp)
    1205     {
     483#ifdef YYLSP_NEEDED
     484  yylsp = yyls;
     485#endif
     486
     487/* Push a new state, which is found in  yystate  .  */
     488/* In all cases, when you get here, the value and location stacks
     489   have just been pushed. so pushing a state here evens the stacks.  */
     490yynewstate:
     491
     492  *++yyssp = yystate;
     493
     494  if (yyssp >= yyss + yystacksize - 1)
     495    {
     496      /* Give user a chance to reallocate the stack */
     497      /* Use copies of these so that the &'s don't force the real ones into memory. */
     498      YYSTYPE *yyvs1 = yyvs;
     499      short *yyss1 = yyss;
     500#ifdef YYLSP_NEEDED
     501      YYLTYPE *yyls1 = yyls;
     502#endif
     503
    1206504      /* Get the current used size of the three stacks, in elements.  */
    1207       YYSIZE_T yysize = yyssp - yyss + 1;
     505      int size = yyssp - yyss + 1;
    1208506
    1209507#ifdef yyoverflow
    1210       {
    1211         /* Give user a chance to reallocate the stack.  Use copies of
    1212            these so that the &'s don't force the real ones into
    1213            memory.  */
    1214         YYSTYPE *yyvs1 = yyvs;
    1215         yytype_int16 *yyss1 = yyss;
    1216 
    1217 
    1218         /* Each stack pointer address is followed by the size of the
    1219            data in use in that stack, in bytes.  This used to be a
    1220            conditional around just the two extra args, but that might
    1221            be undefined if yyoverflow is a macro.  */
    1222         yyoverflow (YY_("memory exhausted"),
    1223                     &yyss1, yysize * sizeof (*yyssp),
    1224                     &yyvs1, yysize * sizeof (*yyvsp),
    1225 
    1226                     &yystacksize);
    1227 
    1228         yyss = yyss1;
    1229         yyvs = yyvs1;
    1230       }
     508      /* Each stack pointer address is followed by the size of
     509         the data in use in that stack, in bytes.  */
     510#ifdef YYLSP_NEEDED
     511      /* This used to be a conditional around just the two extra args,
     512         but that might be undefined if yyoverflow is a macro.  */
     513      yyoverflow("parser stack overflow",
     514                 &yyss1, size * sizeof (*yyssp),
     515                 &yyvs1, size * sizeof (*yyvsp),
     516                 &yyls1, size * sizeof (*yylsp),
     517                 &yystacksize);
     518#else
     519      yyoverflow("parser stack overflow",
     520                 &yyss1, size * sizeof (*yyssp),
     521                 &yyvs1, size * sizeof (*yyvsp),
     522                 &yystacksize);
     523#endif
     524
     525      yyss = yyss1; yyvs = yyvs1;
     526#ifdef YYLSP_NEEDED
     527      yyls = yyls1;
     528#endif
    1231529#else /* no yyoverflow */
    1232 # ifndef YYSTACK_RELOCATE
    1233       goto yyexhaustedlab;
    1234 # else
    1235530      /* Extend the stack our own way.  */
    1236       if (YYMAXDEPTH <= yystacksize)
    1237         goto yyexhaustedlab;
     531      if (yystacksize >= YYMAXDEPTH)
     532        {
     533          yyerror("parser stack overflow");
     534          if (yyfree_stacks)
     535            {
     536              free (yyss);
     537              free (yyvs);
     538#ifdef YYLSP_NEEDED
     539              free (yyls);
     540#endif
     541            }
     542          return 2;
     543        }
    1238544      yystacksize *= 2;
    1239       if (YYMAXDEPTH < yystacksize)
     545      if (yystacksize > YYMAXDEPTH)
    1240546        yystacksize = YYMAXDEPTH;
    1241 
    1242       {
    1243         yytype_int16 *yyss1 = yyss;
    1244         union yyalloc *yyptr =
    1245           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    1246         if (! yyptr)
    1247           goto yyexhaustedlab;
    1248         YYSTACK_RELOCATE (yyss);
    1249         YYSTACK_RELOCATE (yyvs);
    1250 
    1251 #  undef YYSTACK_RELOCATE
    1252         if (yyss1 != yyssa)
    1253           YYSTACK_FREE (yyss1);
    1254       }
    1255 # endif
     547#ifndef YYSTACK_USE_ALLOCA
     548      yyfree_stacks = 1;
     549#endif
     550      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
     551      __yy_memcpy ((char *)yyss, (char *)yyss1,
     552                   size * (unsigned int) sizeof (*yyssp));
     553      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
     554      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
     555                   size * (unsigned int) sizeof (*yyvsp));
     556#ifdef YYLSP_NEEDED
     557      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
     558      __yy_memcpy ((char *)yyls, (char *)yyls1,
     559                   size * (unsigned int) sizeof (*yylsp));
     560#endif
    1256561#endif /* no yyoverflow */
    1257562
    1258       yyssp = yyss + yysize - 1;
    1259       yyvsp = yyvs + yysize - 1;
    1260 
    1261 
    1262       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    1263                   (unsigned long int) yystacksize));
    1264 
    1265       if (yyss + yystacksize - 1 <= yyssp)
     563      yyssp = yyss + size - 1;
     564      yyvsp = yyvs + size - 1;
     565#ifdef YYLSP_NEEDED
     566      yylsp = yyls + size - 1;
     567#endif
     568
     569#if YYDEBUG != 0
     570      if (yydebug)
     571        fprintf(stderr, "Stack size increased to %d\n", yystacksize);
     572#endif
     573
     574      if (yyssp >= yyss + yystacksize - 1)
    1266575        YYABORT;
    1267576    }
    1268577
    1269   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
     578#if YYDEBUG != 0
     579  if (yydebug)
     580    fprintf(stderr, "Entering state %d\n", yystate);
     581#endif
    1270582
    1271583  goto yybackup;
    1272 
    1273 /*-----------.
    1274 | yybackup.  |
    1275 `-----------*/
    1276 yybackup:
    1277 
    1278   /* Do appropriate processing given the current state.  Read a
    1279      look-ahead token if we need one and don't already have one.  */
    1280 
    1281   /* First try to decide what to do without reference to look-ahead token.  */
     584 yybackup:
     585
     586/* Do appropriate processing given the current state.  */
     587/* Read a lookahead token if we need one and don't already have one.  */
     588/* yyresume: */
     589
     590  /* First try to decide what to do without reference to lookahead token.  */
     591
    1282592  yyn = yypact[yystate];
    1283   if (yyn == YYPACT_NINF)
     593  if (yyn == YYFLAG)
    1284594    goto yydefault;
    1285595
    1286   /* Not known => get a look-ahead token if don't already have one.  */
    1287 
    1288   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
     596  /* Not known => get a lookahead token if don't already have one.  */
     597
     598  /* yychar is either YYEMPTY or YYEOF
     599     or a valid token in external form.  */
     600
    1289601  if (yychar == YYEMPTY)
    1290602    {
    1291       YYDPRINTF ((stderr, "Reading a token: "));
     603#if YYDEBUG != 0
     604      if (yydebug)
     605        fprintf(stderr, "Reading a token: ");
     606#endif
    1292607      yychar = YYLEX;
    1293608    }
    1294609
    1295   if (yychar <= YYEOF)
    1296     {
    1297       yychar = yytoken = YYEOF;
    1298       YYDPRINTF ((stderr, "Now at end of input.\n"));
     610  /* Convert token to internal form (in yychar1) for indexing tables with */
     611
     612  if (yychar <= 0)              /* This means end of input. */
     613    {
     614      yychar1 = 0;
     615      yychar = YYEOF;           /* Don't call YYLEX any more */
     616
     617#if YYDEBUG != 0
     618      if (yydebug)
     619        fprintf(stderr, "Now at end of input.\n");
     620#endif
    1299621    }
    1300622  else
    1301623    {
    1302       yytoken = YYTRANSLATE (yychar);
    1303       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    1304     }
    1305 
    1306   /* If the proper action on seeing token YYTOKEN is to reduce or to
    1307      detect an error, take that action.  */
    1308   yyn += yytoken;
    1309   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
     624      yychar1 = YYTRANSLATE(yychar);
     625
     626#if YYDEBUG != 0
     627      if (yydebug)
     628        {
     629          fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
     630          /* Give the individual parser a way to print the precise meaning
     631             of a token, for further debugging info.  */
     632#ifdef YYPRINT
     633          YYPRINT (stderr, yychar, yylval);
     634#endif
     635          fprintf (stderr, ")\n");
     636        }
     637#endif
     638    }
     639
     640  yyn += yychar1;
     641  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
    1310642    goto yydefault;
     643
    1311644  yyn = yytable[yyn];
    1312   if (yyn <= 0)
    1313     {
    1314       if (yyn == 0 || yyn == YYTABLE_NINF)
     645
     646  /* yyn is what to do for this token type in this state.
     647     Negative => reduce, -yyn is rule number.
     648     Positive => shift, yyn is new state.
     649       New state is final state => don't bother to shift,
     650       just return success.
     651     0, or most negative number => error.  */
     652
     653  if (yyn < 0)
     654    {
     655      if (yyn == YYFLAG)
    1315656        goto yyerrlab;
    1316657      yyn = -yyn;
    1317658      goto yyreduce;
    1318659    }
     660  else if (yyn == 0)
     661    goto yyerrlab;
    1319662
    1320663  if (yyn == YYFINAL)
    1321664    YYACCEPT;
    1322665
    1323   /* Count tokens shifted since error; after three, turn off error
    1324      status.  */
    1325   if (yyerrstatus)
    1326     yyerrstatus--;
    1327 
    1328   /* Shift the look-ahead token.  */
    1329   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
    1330 
    1331   /* Discard the shifted token unless it is eof.  */
     666  /* Shift the lookahead token.  */
     667
     668#if YYDEBUG != 0
     669  if (yydebug)
     670    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
     671#endif
     672
     673  /* Discard the token being shifted unless it is eof.  */
    1332674  if (yychar != YYEOF)
    1333675    yychar = YYEMPTY;
    1334676
     677  *++yyvsp = yylval;
     678#ifdef YYLSP_NEEDED
     679  *++yylsp = yylloc;
     680#endif
     681
     682  /* count tokens shifted since error; after three, turn off error status.  */
     683  if (yyerrstatus) yyerrstatus--;
     684
    1335685  yystate = yyn;
    1336   *++yyvsp = yylval;
    1337 
    1338686  goto yynewstate;
    1339687
    1340 
    1341 /*-----------------------------------------------------------.
    1342 | yydefault -- do the default action for the current state.  |
    1343 `-----------------------------------------------------------*/
     688/* Do the default action for the current state.  */
    1344689yydefault:
     690
    1345691  yyn = yydefact[yystate];
    1346692  if (yyn == 0)
    1347693    goto yyerrlab;
    1348   goto yyreduce;
    1349 
    1350 
    1351 /*-----------------------------.
    1352 | yyreduce -- Do a reduction.  |
    1353 `-----------------------------*/
     694
     695/* Do a reduction.  yyn is the number of a rule to reduce with.  */
    1354696yyreduce:
    1355   /* yyn is the number of a rule to reduce with.  */
    1356697  yylen = yyr2[yyn];
    1357 
    1358   /* If YYLEN is nonzero, implement the default value of the action:
    1359      `$$ = $1'.
    1360 
    1361      Otherwise, the following line sets YYVAL to garbage.
    1362      This behavior is undocumented and Bison
    1363      users should not rely upon it.  Assigning to YYVAL
    1364      unconditionally makes the parser a bit smaller, and it avoids a
    1365      GCC warning that YYVAL may be used uninitialized.  */
    1366   yyval = yyvsp[1-yylen];
    1367 
    1368 
    1369   YY_REDUCE_PRINT (yyn);
    1370   switch (yyn)
    1371     {
    1372         case 2:
     698  if (yylen > 0)
     699    yyval = yyvsp[1-yylen]; /* implement default value of the action */
     700
     701#if YYDEBUG != 0
     702  if (yydebug)
     703    {
     704      int i;
     705
     706      fprintf (stderr, "Reducing via rule %d (line %d), ",
     707               yyn, yyrline[yyn]);
     708
     709      /* Print the symbols being reduced, and their result.  */
     710      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
     711        fprintf (stderr, "%s ", yytname[yyrhs[i]]);
     712      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
     713    }
     714#endif
     715
     716
     717  switch (yyn) {
     718
     719case 1:
    1373720#line 73 "sel-gram.y"
    1374     { _hx509_expr_input.expr = (yyvsp[(1) - (1)].expr); }
    1375     break;
    1376 
    1377   case 3:
     721{ _hx509_expr_input.expr = yyvsp[0].expr; ;
     722    break;}
     723case 2:
    1378724#line 75 "sel-gram.y"
    1379     { (yyval.expr) = _hx509_make_expr(op_TRUE, NULL, NULL); }
    1380     break;
    1381 
    1382   case 4:
     725{ yyval.expr = _hx509_make_expr(op_TRUE, NULL, NULL); ;
     726    break;}
     727case 3:
    1383728#line 76 "sel-gram.y"
    1384     { (yyval.expr) = _hx509_make_expr(op_FALSE, NULL, NULL); }
    1385     break;
    1386 
    1387   case 5:
     729{ yyval.expr = _hx509_make_expr(op_FALSE, NULL, NULL); ;
     730    break;}
     731case 4:
    1388732#line 77 "sel-gram.y"
    1389     { (yyval.expr) = _hx509_make_expr(op_NOT, (yyvsp[(2) - (2)].expr), NULL); }
    1390     break;
    1391 
    1392   case 6:
     733{ yyval.expr = _hx509_make_expr(op_NOT, yyvsp[0].expr, NULL); ;
     734    break;}
     735case 5:
    1393736#line 78 "sel-gram.y"
    1394     { (yyval.expr) = _hx509_make_expr(op_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
    1395     break;
    1396 
    1397   case 7:
     737{ yyval.expr = _hx509_make_expr(op_AND, yyvsp[-2].expr, yyvsp[0].expr); ;
     738    break;}
     739case 6:
    1398740#line 79 "sel-gram.y"
    1399     { (yyval.expr) = _hx509_make_expr(op_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
    1400     break;
    1401 
    1402   case 8:
     741{ yyval.expr = _hx509_make_expr(op_OR, yyvsp[-2].expr, yyvsp[0].expr); ;
     742    break;}
     743case 7:
    1403744#line 80 "sel-gram.y"
    1404     { (yyval.expr) = (yyvsp[(2) - (3)].expr); }
    1405     break;
    1406 
    1407   case 9:
     745{ yyval.expr = yyvsp[-1].expr; ;
     746    break;}
     747case 8:
    1408748#line 81 "sel-gram.y"
    1409     { (yyval.expr) = _hx509_make_expr(op_COMP, (yyvsp[(1) - (1)].expr), NULL); }
    1410     break;
    1411 
    1412   case 10:
     749{ yyval.expr = _hx509_make_expr(op_COMP, yyvsp[0].expr, NULL); ;
     750    break;}
     751case 9:
    1413752#line 84 "sel-gram.y"
    1414     { (yyval.expr) = _hx509_make_expr(expr_WORDS, (yyvsp[(1) - (1)].expr), NULL); }
    1415     break;
    1416 
    1417   case 11:
     753{ yyval.expr = _hx509_make_expr(expr_WORDS, yyvsp[0].expr, NULL); ;
     754    break;}
     755case 10:
    1418756#line 85 "sel-gram.y"
    1419     { (yyval.expr) = _hx509_make_expr(expr_WORDS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
    1420     break;
    1421 
    1422   case 12:
     757{ yyval.expr = _hx509_make_expr(expr_WORDS, yyvsp[-2].expr, yyvsp[0].expr); ;
     758    break;}
     759case 11:
    1423760#line 88 "sel-gram.y"
    1424     { (yyval.expr) = _hx509_make_expr(comp_EQ, (yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].expr)); }
    1425     break;
    1426 
    1427   case 13:
     761{ yyval.expr = _hx509_make_expr(comp_EQ, yyvsp[-3].expr, yyvsp[0].expr); ;
     762    break;}
     763case 12:
    1428764#line 89 "sel-gram.y"
    1429     { (yyval.expr) = _hx509_make_expr(comp_NE, (yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].expr)); }
    1430     break;
    1431 
    1432   case 14:
     765{ yyval.expr = _hx509_make_expr(comp_NE, yyvsp[-3].expr, yyvsp[0].expr); ;
     766    break;}
     767case 13:
    1433768#line 90 "sel-gram.y"
    1434     { (yyval.expr) = _hx509_make_expr(comp_TAILEQ, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
    1435     break;
    1436 
    1437   case 15:
     769{ yyval.expr = _hx509_make_expr(comp_TAILEQ, yyvsp[-2].expr, yyvsp[0].expr); ;
     770    break;}
     771case 14:
    1438772#line 91 "sel-gram.y"
    1439     { (yyval.expr) = _hx509_make_expr(comp_IN, (yyvsp[(1) - (5)].expr), (yyvsp[(4) - (5)].expr)); }
    1440     break;
    1441 
    1442   case 16:
     773{ yyval.expr = _hx509_make_expr(comp_IN, yyvsp[-4].expr, yyvsp[-1].expr); ;
     774    break;}
     775case 15:
    1443776#line 92 "sel-gram.y"
    1444     { (yyval.expr) = _hx509_make_expr(comp_IN, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
    1445     break;
    1446 
    1447   case 17:
     777{ yyval.expr = _hx509_make_expr(comp_IN, yyvsp[-2].expr, yyvsp[0].expr); ;
     778    break;}
     779case 16:
    1448780#line 95 "sel-gram.y"
    1449     { (yyval.expr) = (yyvsp[(1) - (1)].expr); }
    1450     break;
    1451 
    1452   case 18:
     781{ yyval.expr = yyvsp[0].expr; ;
     782    break;}
     783case 17:
    1453784#line 96 "sel-gram.y"
    1454     { (yyval.expr) = (yyvsp[(1) - (1)].expr); }
    1455     break;
    1456 
    1457   case 19:
     785{ yyval.expr = yyvsp[0].expr; ;
     786    break;}
     787case 18:
    1458788#line 97 "sel-gram.y"
    1459     { (yyval.expr) = (yyvsp[(1) - (1)].expr); }
    1460     break;
    1461 
    1462   case 20:
     789{ yyval.expr = yyvsp[0].expr; ;
     790    break;}
     791case 19:
    1463792#line 98 "sel-gram.y"
    1464     { (yyval.expr) = (yyvsp[(1) - (1)].expr); }
    1465     break;
    1466 
    1467   case 21:
     793{ yyval.expr = yyvsp[0].expr; ;
     794    break;}
     795case 20:
    1468796#line 101 "sel-gram.y"
    1469     { (yyval.expr) = _hx509_make_expr(expr_NUMBER, (yyvsp[(1) - (1)].string), NULL); }
    1470     break;
    1471 
    1472   case 22:
     797{ yyval.expr = _hx509_make_expr(expr_NUMBER, yyvsp[0].string, NULL); ;
     798    break;}
     799case 21:
    1473800#line 102 "sel-gram.y"
    1474     { (yyval.expr) = _hx509_make_expr(expr_STRING, (yyvsp[(1) - (1)].string), NULL); }
    1475     break;
    1476 
    1477   case 23:
     801{ yyval.expr = _hx509_make_expr(expr_STRING, yyvsp[0].string, NULL); ;
     802    break;}
     803case 22:
    1478804#line 104 "sel-gram.y"
    1479     {
    1480                         (yyval.expr) = _hx509_make_expr(expr_FUNCTION, (yyvsp[(1) - (4)].string), (yyvsp[(3) - (4)].expr)); }
    1481     break;
    1482 
    1483   case 24:
     805{
     806                        yyval.expr = _hx509_make_expr(expr_FUNCTION, yyvsp[-3].string, yyvsp[-1].expr); ;
     807    break;}
     808case 23:
    1484809#line 107 "sel-gram.y"
    1485     { (yyval.expr) = (yyvsp[(3) - (4)].expr); }
    1486     break;
    1487 
    1488   case 25:
     810{ yyval.expr = yyvsp[-1].expr; ;
     811    break;}
     812case 24:
    1489813#line 110 "sel-gram.y"
    1490     {
    1491                         (yyval.expr) = _hx509_make_expr(expr_VAR, (yyvsp[(1) - (3)].string), (yyvsp[(3) - (3)].expr)); }
    1492     break;
    1493 
    1494   case 26:
     814{
     815                        yyval.expr = _hx509_make_expr(expr_VAR, yyvsp[-2].string, yyvsp[0].expr); ;
     816    break;}
     817case 25:
    1495818#line 112 "sel-gram.y"
    1496     {
    1497                         (yyval.expr) = _hx509_make_expr(expr_VAR, (yyvsp[(1) - (1)].string), NULL); }
    1498     break;
    1499 
    1500 
    1501 /* Line 1267 of yacc.c.  */
    1502 #line 1500 "sel-gram.c"
    1503       default: break;
    1504     }
    1505   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
    1506 
    1507   YYPOPSTACK (yylen);
    1508   yylen = 0;
    1509   YY_STACK_PRINT (yyss, yyssp);
     819{
     820                        yyval.expr = _hx509_make_expr(expr_VAR, yyvsp[0].string, NULL); ;
     821    break;}
     822}
     823   /* the action file gets copied in in place of this dollarsign */
     824#line 543 "/emx/share/bison.simple"
     825
     826
     827  yyvsp -= yylen;
     828  yyssp -= yylen;
     829#ifdef YYLSP_NEEDED
     830  yylsp -= yylen;
     831#endif
     832
     833#if YYDEBUG != 0
     834  if (yydebug)
     835    {
     836      short *ssp1 = yyss - 1;
     837      fprintf (stderr, "state stack now");
     838      while (ssp1 != yyssp)
     839        fprintf (stderr, " %d", *++ssp1);
     840      fprintf (stderr, "\n");
     841    }
     842#endif
    1510843
    1511844  *++yyvsp = yyval;
    1512845
    1513 
    1514   /* Now `shift' the result of the reduction.  Determine what state
    1515      that goes to, based on the state we popped back to and the rule
    1516      number reduced by.  */
     846#ifdef YYLSP_NEEDED
     847  yylsp++;
     848  if (yylen == 0)
     849    {
     850      yylsp->first_line = yylloc.first_line;
     851      yylsp->first_column = yylloc.first_column;
     852      yylsp->last_line = (yylsp-1)->last_line;
     853      yylsp->last_column = (yylsp-1)->last_column;
     854      yylsp->text = 0;
     855    }
     856  else
     857    {
     858      yylsp->last_line = (yylsp+yylen-1)->last_line;
     859      yylsp->last_column = (yylsp+yylen-1)->last_column;
     860    }
     861#endif
     862
     863  /* Now "shift" the result of the reduction.
     864     Determine what state that goes to,
     865     based on the state we popped back to
     866     and the rule number reduced by.  */
    1517867
    1518868  yyn = yyr1[yyn];
    1519869
    1520   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
    1521   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     870  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
     871  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    1522872    yystate = yytable[yystate];
    1523873  else
    1524     yystate = yydefgoto[yyn - YYNTOKENS];
     874    yystate = yydefgoto[yyn - YYNTBASE];
    1525875
    1526876  goto yynewstate;
    1527877
    1528 
    1529 /*------------------------------------.
    1530 | yyerrlab -- here on detecting error |
    1531 `------------------------------------*/
    1532 yyerrlab:
    1533   /* If not already recovering from an error, report this error.  */
    1534   if (!yyerrstatus)
     878yyerrlab:   /* here on detecting error */
     879
     880  if (! yyerrstatus)
     881    /* If not already recovering from an error, report this error.  */
    1535882    {
    1536883      ++yynerrs;
    1537 #if ! YYERROR_VERBOSE
    1538       yyerror (YY_("syntax error"));
    1539 #else
    1540       {
    1541         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
    1542         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
    1543           {
    1544             YYSIZE_T yyalloc = 2 * yysize;
    1545             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
    1546               yyalloc = YYSTACK_ALLOC_MAXIMUM;
    1547             if (yymsg != yymsgbuf)
    1548               YYSTACK_FREE (yymsg);
    1549             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
    1550             if (yymsg)
    1551               yymsg_alloc = yyalloc;
    1552             else
    1553               {
    1554                 yymsg = yymsgbuf;
    1555                 yymsg_alloc = sizeof yymsgbuf;
    1556               }
    1557           }
    1558 
    1559         if (0 < yysize && yysize <= yymsg_alloc)
    1560           {
    1561             (void) yysyntax_error (yymsg, yystate, yychar);
    1562             yyerror (yymsg);
    1563           }
    1564         else
    1565           {
    1566             yyerror (YY_("syntax error"));
    1567             if (yysize != 0)
    1568               goto yyexhaustedlab;
    1569           }
    1570       }
    1571 #endif
    1572     }
    1573 
    1574 
    1575 
    1576   if (yyerrstatus == 3)
    1577     {
    1578       /* If just tried and failed to reuse look-ahead token after an
    1579          error, discard it.  */
    1580 
    1581       if (yychar <= YYEOF)
     884
     885#ifdef YYERROR_VERBOSE
     886      yyn = yypact[yystate];
     887
     888      if (yyn > YYFLAG && yyn < YYLAST)
    1582889        {
    1583           /* Return failure if at end of input.  */
    1584           if (yychar == YYEOF)
    1585             YYABORT;
     890          int size = 0;
     891          char *msg;
     892          int x, count;
     893
     894          count = 0;
     895          /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
     896          for (x = (yyn < 0 ? -yyn : 0);
     897               x < (sizeof(yytname) / sizeof(char *)); x++)
     898            if (yycheck[x + yyn] == x)
     899              size += strlen(yytname[x]) + 15, count++;
     900          msg = (char *) malloc(size + 15);
     901          if (msg != 0)
     902            {
     903              strcpy(msg, "parse error");
     904
     905              if (count < 5)
     906                {
     907                  count = 0;
     908                  for (x = (yyn < 0 ? -yyn : 0);
     909                       x < (sizeof(yytname) / sizeof(char *)); x++)
     910                    if (yycheck[x + yyn] == x)
     911                      {
     912                        strcat(msg, count == 0 ? ", expecting `" : " or `");
     913                        strcat(msg, yytname[x]);
     914                        strcat(msg, "'");
     915                        count++;
     916                      }
     917                }
     918              yyerror(msg);
     919              free(msg);
     920            }
     921          else
     922            yyerror ("parse error; also virtual memory exceeded");
    1586923        }
    1587924      else
    1588         {
    1589           yydestruct ("Error: discarding",
    1590                       yytoken, &yylval);
    1591           yychar = YYEMPTY;
    1592         }
    1593     }
    1594 
    1595   /* Else will try to reuse look-ahead token after shifting the error
    1596      token.  */
     925#endif /* YYERROR_VERBOSE */
     926        yyerror("parse error");
     927    }
     928
    1597929  goto yyerrlab1;
    1598 
    1599 
    1600 /*---------------------------------------------------.
    1601 | yyerrorlab -- error raised explicitly by YYERROR.  |
    1602 `---------------------------------------------------*/
    1603 yyerrorlab:
    1604 
    1605   /* Pacify compilers like GCC when the user code never invokes
    1606      YYERROR and the label yyerrorlab therefore never appears in user
    1607      code.  */
    1608   if (/*CONSTCOND*/ 0)
    1609      goto yyerrorlab;
    1610 
    1611   /* Do not reclaim the symbols of the rule which action triggered
    1612      this YYERROR.  */
    1613   YYPOPSTACK (yylen);
    1614   yylen = 0;
    1615   YY_STACK_PRINT (yyss, yyssp);
    1616   yystate = *yyssp;
    1617   goto yyerrlab1;
    1618 
    1619 
    1620 /*-------------------------------------------------------------.
    1621 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
    1622 `-------------------------------------------------------------*/
    1623 yyerrlab1:
    1624   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    1625 
    1626   for (;;)
    1627     {
    1628       yyn = yypact[yystate];
    1629       if (yyn != YYPACT_NINF)
    1630         {
    1631           yyn += YYTERROR;
    1632           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
    1633             {
    1634               yyn = yytable[yyn];
    1635               if (0 < yyn)
    1636                 break;
    1637             }
    1638         }
    1639 
    1640       /* Pop the current state because it cannot handle the error token.  */
    1641       if (yyssp == yyss)
     930yyerrlab1:   /* here on error raised explicitly by an action */
     931
     932  if (yyerrstatus == 3)
     933    {
     934      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
     935
     936      /* return failure if at end of input */
     937      if (yychar == YYEOF)
    1642938        YYABORT;
    1643939
    1644 
    1645       yydestruct ("Error: popping",
    1646                   yystos[yystate], yyvsp);
    1647       YYPOPSTACK (1);
    1648       yystate = *yyssp;
    1649       YY_STACK_PRINT (yyss, yyssp);
    1650     }
     940#if YYDEBUG != 0
     941      if (yydebug)
     942        fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
     943#endif
     944
     945      yychar = YYEMPTY;
     946    }
     947
     948  /* Else will try to reuse lookahead token
     949     after shifting the error token.  */
     950
     951  yyerrstatus = 3;              /* Each real token shifted decrements this */
     952
     953  goto yyerrhandle;
     954
     955yyerrdefault:  /* current state does not do anything special for the error token. */
     956
     957#if 0
     958  /* This is wrong; only states that explicitly want error tokens
     959     should shift them.  */
     960  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
     961  if (yyn) goto yydefault;
     962#endif
     963
     964yyerrpop:   /* pop the current state because it cannot handle the error token */
     965
     966  if (yyssp == yyss) YYABORT;
     967  yyvsp--;
     968  yystate = *--yyssp;
     969#ifdef YYLSP_NEEDED
     970  yylsp--;
     971#endif
     972
     973#if YYDEBUG != 0
     974  if (yydebug)
     975    {
     976      short *ssp1 = yyss - 1;
     977      fprintf (stderr, "Error: state stack now");
     978      while (ssp1 != yyssp)
     979        fprintf (stderr, " %d", *++ssp1);
     980      fprintf (stderr, "\n");
     981    }
     982#endif
     983
     984yyerrhandle:
     985
     986  yyn = yypact[yystate];
     987  if (yyn == YYFLAG)
     988    goto yyerrdefault;
     989
     990  yyn += YYTERROR;
     991  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
     992    goto yyerrdefault;
     993
     994  yyn = yytable[yyn];
     995  if (yyn < 0)
     996    {
     997      if (yyn == YYFLAG)
     998        goto yyerrpop;
     999      yyn = -yyn;
     1000      goto yyreduce;
     1001    }
     1002  else if (yyn == 0)
     1003    goto yyerrpop;
    16511004
    16521005  if (yyn == YYFINAL)
    16531006    YYACCEPT;
    16541007
     1008#if YYDEBUG != 0
     1009  if (yydebug)
     1010    fprintf(stderr, "Shifting error token, ");
     1011#endif
     1012
    16551013  *++yyvsp = yylval;
    1656 
    1657 
    1658   /* Shift the error token.  */
    1659   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
     1014#ifdef YYLSP_NEEDED
     1015  *++yylsp = yylloc;
     1016#endif
    16601017
    16611018  yystate = yyn;
    16621019  goto yynewstate;
    16631020
    1664 
    1665 /*-------------------------------------.
    1666 | yyacceptlab -- YYACCEPT comes here.  |
    1667 `-------------------------------------*/
    1668 yyacceptlab:
    1669   yyresult = 0;
    1670   goto yyreturn;
    1671 
    1672 /*-----------------------------------.
    1673 | yyabortlab -- YYABORT comes here.  |
    1674 `-----------------------------------*/
    1675 yyabortlab:
    1676   yyresult = 1;
    1677   goto yyreturn;
    1678 
    1679 #ifndef yyoverflow
    1680 /*-------------------------------------------------.
    1681 | yyexhaustedlab -- memory exhaustion comes here.  |
    1682 `-------------------------------------------------*/
    1683 yyexhaustedlab:
    1684   yyerror (YY_("memory exhausted"));
    1685   yyresult = 2;
    1686   /* Fall through.  */
    1687 #endif
    1688 
    1689 yyreturn:
    1690   if (yychar != YYEOF && yychar != YYEMPTY)
    1691      yydestruct ("Cleanup: discarding lookahead",
    1692                  yytoken, &yylval);
    1693   /* Do not reclaim the symbols of the rule which action triggered
    1694      this YYABORT or YYACCEPT.  */
    1695   YYPOPSTACK (yylen);
    1696   YY_STACK_PRINT (yyss, yyssp);
    1697   while (yyssp != yyss)
    1698     {
    1699       yydestruct ("Cleanup: popping",
    1700                   yystos[*yyssp], yyvsp);
    1701       YYPOPSTACK (1);
    1702     }
    1703 #ifndef yyoverflow
    1704   if (yyss != yyssa)
    1705     YYSTACK_FREE (yyss);
    1706 #endif
    1707 #if YYERROR_VERBOSE
    1708   if (yymsg != yymsgbuf)
    1709     YYSTACK_FREE (yymsg);
    1710 #endif
    1711   /* Make sure YYID is used.  */
    1712   return YYID (yyresult);
     1021 yyacceptlab:
     1022  /* YYACCEPT comes here.  */
     1023  if (yyfree_stacks)
     1024    {
     1025      free (yyss);
     1026      free (yyvs);
     1027#ifdef YYLSP_NEEDED
     1028      free (yyls);
     1029#endif
     1030    }
     1031  return 0;
     1032
     1033 yyabortlab:
     1034  /* YYABORT comes here.  */
     1035  if (yyfree_stacks)
     1036    {
     1037      free (yyss);
     1038      free (yyvs);
     1039#ifdef YYLSP_NEEDED
     1040      free (yyls);
     1041#endif
     1042    }
     1043  return 1;
    17131044}
    1714 
    1715 
    1716 
     1045#line 115 "sel-gram.y"
Note: See TracChangeset for help on using the changeset viewer.