Blame intl/plural.c

Packit Service a721b1
/* A Bison parser, made by GNU Bison 2.3a.  */
Packit Service a721b1
Packit Service a721b1
/* Skeleton implementation for Bison's Yacc-like parsers in C
Packit Service a721b1
Packit Service a721b1
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Packit Service a721b1
   Free Software Foundation, Inc.
Packit Service a721b1
Packit Service a721b1
   This program is free software; you can redistribute it and/or modify
Packit Service a721b1
   it under the terms of the GNU General Public License as published by
Packit Service a721b1
   the Free Software Foundation; either version 2, or (at your option)
Packit Service a721b1
   any later version.
Packit Service a721b1
Packit Service a721b1
   This program is distributed in the hope that it will be useful,
Packit Service a721b1
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service a721b1
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service a721b1
   GNU General Public License for more details.
Packit Service a721b1
Packit Service a721b1
   You should have received a copy of the GNU General Public License
Packit Service a721b1
   along with this program; if not, write to the Free Software
Packit Service a721b1
   Foundation, Inc., 51 Franklin Street, Fifth Floor,
Packit Service a721b1
   Boston, MA 02110-1301, USA.  */
Packit Service a721b1
Packit Service a721b1
/* As a special exception, you may create a larger work that contains
Packit Service a721b1
   part or all of the Bison parser skeleton and distribute that work
Packit Service a721b1
   under terms of your choice, so long as that work isn't itself a
Packit Service a721b1
   parser generator using the skeleton or a modified version thereof
Packit Service a721b1
   as a parser skeleton.  Alternatively, if you modify or redistribute
Packit Service a721b1
   the parser skeleton itself, you may (at your option) remove this
Packit Service a721b1
   special exception, which will cause the skeleton and the resulting
Packit Service a721b1
   Bison output files to be licensed under the GNU General Public
Packit Service a721b1
   License without this special exception.
Packit Service a721b1
Packit Service a721b1
   This special exception was added by the Free Software Foundation in
Packit Service a721b1
   version 2.2 of Bison.  */
Packit Service a721b1
Packit Service a721b1
/* C LALR(1) parser skeleton written by Richard Stallman, by
Packit Service a721b1
   simplifying the original so-called "semantic" parser.  */
Packit Service a721b1
Packit Service a721b1
/* All symbols defined below should begin with yy or YY, to avoid
Packit Service a721b1
   infringing on user name space.  This should be done even for local
Packit Service a721b1
   variables, as they might otherwise be expanded by user macros.
Packit Service a721b1
   There are some unavoidable exceptions within include files to
Packit Service a721b1
   define necessary library symbols; they are noted "INFRINGES ON
Packit Service a721b1
   USER NAME SPACE" below.  */
Packit Service a721b1
Packit Service a721b1
/* Identify Bison output.  */
Packit Service a721b1
#define YYBISON 1
Packit Service a721b1
Packit Service a721b1
/* Bison version.  */
Packit Service a721b1
#define YYBISON_VERSION "2.3a"
Packit Service a721b1
Packit Service a721b1
/* Skeleton name.  */
Packit Service a721b1
#define YYSKELETON_NAME "yacc.c"
Packit Service a721b1
Packit Service a721b1
/* Pure parsers.  */
Packit Service a721b1
#define YYPURE 1
Packit Service a721b1
Packit Service a721b1
/* Using locations.  */
Packit Service a721b1
#define YYLSP_NEEDED 0
Packit Service a721b1
Packit Service a721b1
/* Substitute the variable and function names.  */
Packit Service a721b1
#define yyparse __gettextparse
Packit Service a721b1
#define yylex   __gettextlex
Packit Service a721b1
#define yyerror __gettexterror
Packit Service a721b1
#define yylval  __gettextlval
Packit Service a721b1
#define yychar  __gettextchar
Packit Service a721b1
#define yydebug __gettextdebug
Packit Service a721b1
#define yynerrs __gettextnerrs
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* Copy the first part of user declarations.  */
Packit Service a721b1
/* Line 164 of yacc.c.  */
Packit Service a721b1
#line 1 "plural.y"
Packit Service a721b1
Packit Service a721b1
/* Expression parsing for plural form selection.
Packit Service a721b1
   Copyright (C) 2000-2001, 2003, 2005-2006 Free Software Foundation, Inc.
Packit Service a721b1
   Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
Packit Service a721b1
Packit Service a721b1
   This program is free software; you can redistribute it and/or modify it
Packit Service a721b1
   under the terms of the GNU Library General Public License as published
Packit Service a721b1
   by the Free Software Foundation; either version 2, or (at your option)
Packit Service a721b1
   any later version.
Packit Service a721b1
Packit Service a721b1
   This program is distributed in the hope that it will be useful,
Packit Service a721b1
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service a721b1
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service a721b1
   Library General Public License for more details.
Packit Service a721b1
Packit Service a721b1
   You should have received a copy of the GNU Library General Public
Packit Service a721b1
   License along with this program; if not, write to the Free Software
Packit Service a721b1
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
Packit Service a721b1
   USA.  */
Packit Service a721b1
Packit Service a721b1
/* For bison < 2.0, the bison generated parser uses alloca.  AIX 3 forces us
Packit Service a721b1
   to put this declaration at the beginning of the file.  The declaration in
Packit Service a721b1
   bison's skeleton file comes too late.  This must come before <config.h>
Packit Service a721b1
   because <config.h> may include arbitrary system headers.
Packit Service a721b1
   This can go away once the AM_INTL_SUBDIR macro requires bison >= 2.0.  */
Packit Service a721b1
#if defined _AIX && !defined __GNUC__
Packit Service a721b1
 #pragma alloca
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#ifdef HAVE_CONFIG_H
Packit Service a721b1
# include <config.h>
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#include <stddef.h>
Packit Service a721b1
#include <stdlib.h>
Packit Service a721b1
#include <string.h>
Packit Service a721b1
#include "plural-exp.h"
Packit Service a721b1
Packit Service a721b1
/* The main function generated by the parser is called __gettextparse,
Packit Service a721b1
   but we want it to be called PLURAL_PARSE.  */
Packit Service a721b1
#ifndef _LIBC
Packit Service a721b1
# define __gettextparse PLURAL_PARSE
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#define YYLEX_PARAM	&((struct parse_args *) arg)->cp
Packit Service a721b1
#define YYPARSE_PARAM	arg
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* Enabling traces.  */
Packit Service a721b1
#ifndef YYDEBUG
Packit Service a721b1
# define YYDEBUG 0
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
/* Enabling verbose error messages.  */
Packit Service a721b1
#ifdef YYERROR_VERBOSE
Packit Service a721b1
# undef YYERROR_VERBOSE
Packit Service a721b1
# define YYERROR_VERBOSE 1
Packit Service a721b1
#else
Packit Service a721b1
# define YYERROR_VERBOSE 0
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
/* Enabling the token table.  */
Packit Service a721b1
#ifndef YYTOKEN_TABLE
Packit Service a721b1
# define YYTOKEN_TABLE 0
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* Tokens.  */
Packit Service a721b1
#ifndef YYTOKENTYPE
Packit Service a721b1
# define YYTOKENTYPE
Packit Service a721b1
   /* Put the tokens into the symbol table, so that GDB and other debuggers
Packit Service a721b1
      know about them.  */
Packit Service a721b1
   enum yytokentype {
Packit Service a721b1
     EQUOP2 = 258,
Packit Service a721b1
     CMPOP2 = 259,
Packit Service a721b1
     ADDOP2 = 260,
Packit Service a721b1
     MULOP2 = 261,
Packit Service a721b1
     NUMBER = 262
Packit Service a721b1
   };
Packit Service a721b1
#endif
Packit Service a721b1
/* Tokens.  */
Packit Service a721b1
#define EQUOP2 258
Packit Service a721b1
#define CMPOP2 259
Packit Service a721b1
#define ADDOP2 260
Packit Service a721b1
#define MULOP2 261
Packit Service a721b1
#define NUMBER 262
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
Packit Service a721b1
typedef union YYSTYPE
Packit Service a721b1
{/* Line 191 of yacc.c.  */
Packit Service a721b1
#line 51 "plural.y"
Packit Service a721b1
Packit Service a721b1
  unsigned long int num;
Packit Service a721b1
  enum expression_operator op;
Packit Service a721b1
  struct expression *exp;
Packit Service a721b1
}
Packit Service a721b1
/* Line 191 of yacc.c.  */
Packit Service a721b1
#line 175 "plural.c"
Packit Service a721b1
	YYSTYPE;
Packit Service a721b1
# define YYSTYPE_IS_TRIVIAL 1
Packit Service a721b1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
Packit Service a721b1
# define YYSTYPE_IS_DECLARED 1
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* Copy the second part of user declarations.  */
Packit Service a721b1
/* Line 221 of yacc.c.  */
Packit Service a721b1
#line 57 "plural.y"
Packit Service a721b1
Packit Service a721b1
/* Prototypes for local functions.  */
Packit Service a721b1
static int yylex (YYSTYPE *lval, const char **pexp);
Packit Service a721b1
static void yyerror (const char *str);
Packit Service a721b1
Packit Service a721b1
/* Allocation of expressions.  */
Packit Service a721b1
Packit Service a721b1
static struct expression *
Packit Service a721b1
new_exp (int nargs, enum expression_operator op,
Packit Service a721b1
	 struct expression * const *args)
Packit Service a721b1
{
Packit Service a721b1
  int i;
Packit Service a721b1
  struct expression *newp;
Packit Service a721b1
Packit Service a721b1
  /* If any of the argument could not be malloc'ed, just return NULL.  */
Packit Service a721b1
  for (i = nargs - 1; i >= 0; i--)
Packit Service a721b1
    if (args[i] == NULL)
Packit Service a721b1
      goto fail;
Packit Service a721b1
Packit Service a721b1
  /* Allocate a new expression.  */
Packit Service a721b1
  newp = (struct expression *) malloc (sizeof (*newp));
Packit Service a721b1
  if (newp != NULL)
Packit Service a721b1
    {
Packit Service a721b1
      newp->nargs = nargs;
Packit Service a721b1
      newp->operation = op;
Packit Service a721b1
      for (i = nargs - 1; i >= 0; i--)
Packit Service a721b1
	newp->val.args[i] = args[i];
Packit Service a721b1
      return newp;
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
 fail:
Packit Service a721b1
  for (i = nargs - 1; i >= 0; i--)
Packit Service a721b1
    FREE_EXPRESSION (args[i]);
Packit Service a721b1
Packit Service a721b1
  return NULL;
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
static inline struct expression *
Packit Service a721b1
new_exp_0 (enum expression_operator op)
Packit Service a721b1
{
Packit Service a721b1
  return new_exp (0, op, NULL);
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
static inline struct expression *
Packit Service a721b1
new_exp_1 (enum expression_operator op, struct expression *right)
Packit Service a721b1
{
Packit Service a721b1
  struct expression *args[1];
Packit Service a721b1
Packit Service a721b1
  args[0] = right;
Packit Service a721b1
  return new_exp (1, op, args);
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
static struct expression *
Packit Service a721b1
new_exp_2 (enum expression_operator op, struct expression *left,
Packit Service a721b1
	   struct expression *right)
Packit Service a721b1
{
Packit Service a721b1
  struct expression *args[2];
Packit Service a721b1
Packit Service a721b1
  args[0] = left;
Packit Service a721b1
  args[1] = right;
Packit Service a721b1
  return new_exp (2, op, args);
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
static inline struct expression *
Packit Service a721b1
new_exp_3 (enum expression_operator op, struct expression *bexp,
Packit Service a721b1
	   struct expression *tbranch, struct expression *fbranch)
Packit Service a721b1
{
Packit Service a721b1
  struct expression *args[3];
Packit Service a721b1
Packit Service a721b1
  args[0] = bexp;
Packit Service a721b1
  args[1] = tbranch;
Packit Service a721b1
  args[2] = fbranch;
Packit Service a721b1
  return new_exp (3, op, args);
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* Line 221 of yacc.c.  */
Packit Service a721b1
#line 265 "plural.c"
Packit Service a721b1
Packit Service a721b1
#ifdef short
Packit Service a721b1
# undef short
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#ifdef YYTYPE_UINT8
Packit Service a721b1
typedef YYTYPE_UINT8 yytype_uint8;
Packit Service a721b1
#else
Packit Service a721b1
typedef unsigned char yytype_uint8;
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#ifdef YYTYPE_INT8
Packit Service a721b1
typedef YYTYPE_INT8 yytype_int8;
Packit Service a721b1
#elif (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
typedef signed char yytype_int8;
Packit Service a721b1
#else
Packit Service a721b1
typedef short int yytype_int8;
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#ifdef YYTYPE_UINT16
Packit Service a721b1
typedef YYTYPE_UINT16 yytype_uint16;
Packit Service a721b1
#else
Packit Service a721b1
typedef unsigned short int yytype_uint16;
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#ifdef YYTYPE_INT16
Packit Service a721b1
typedef YYTYPE_INT16 yytype_int16;
Packit Service a721b1
#else
Packit Service a721b1
typedef short int yytype_int16;
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#ifndef YYSIZE_T
Packit Service a721b1
# ifdef __SIZE_TYPE__
Packit Service a721b1
#  define YYSIZE_T __SIZE_TYPE__
Packit Service a721b1
# elif defined size_t
Packit Service a721b1
#  define YYSIZE_T size_t
Packit Service a721b1
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
Packit Service a721b1
#  define YYSIZE_T size_t
Packit Service a721b1
# else
Packit Service a721b1
#  define YYSIZE_T unsigned int
Packit Service a721b1
# endif
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
Packit Service a721b1
Packit Service a721b1
#ifndef YY_
Packit Service a721b1
# if YYENABLE_NLS
Packit Service a721b1
#  if ENABLE_NLS
Packit Service a721b1
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
Packit Service a721b1
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
Packit Service a721b1
#  endif
Packit Service a721b1
# endif
Packit Service a721b1
# ifndef YY_
Packit Service a721b1
#  define YY_(msgid) msgid
Packit Service a721b1
# endif
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
/* Suppress unused-variable warnings by "using" E.  */
Packit Service a721b1
#if ! defined lint || defined __GNUC__
Packit Service a721b1
# define YYUSE(e) ((void) (e))
Packit Service a721b1
#else
Packit Service a721b1
# define YYUSE(e) /* empty */
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
/* Identity function, used to suppress warnings about constant conditions.  */
Packit Service a721b1
#ifndef lint
Packit Service a721b1
# define YYID(n) (n)
Packit Service a721b1
#else
Packit Service a721b1
#if (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
static int
Packit Service a721b1
YYID (int yyi)
Packit Service a721b1
#else
Packit Service a721b1
static int
Packit Service a721b1
YYID (yyi)
Packit Service a721b1
    int yyi;
Packit Service a721b1
#endif
Packit Service a721b1
{
Packit Service a721b1
  return yyi;
Packit Service a721b1
}
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#if ! defined yyoverflow || YYERROR_VERBOSE
Packit Service a721b1
Packit Service a721b1
/* The parser invokes alloca or malloc; define the necessary symbols.  */
Packit Service a721b1
Packit Service a721b1
# ifdef YYSTACK_USE_ALLOCA
Packit Service a721b1
#  if YYSTACK_USE_ALLOCA
Packit Service a721b1
#   ifdef __GNUC__
Packit Service a721b1
#    define YYSTACK_ALLOC __builtin_alloca
Packit Service a721b1
#   elif defined __BUILTIN_VA_ARG_INCR
Packit Service a721b1
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
Packit Service a721b1
#   elif defined _AIX
Packit Service a721b1
#    define YYSTACK_ALLOC __alloca
Packit Service a721b1
#   elif defined _MSC_VER
Packit Service a721b1
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
Packit Service a721b1
#    define alloca _alloca
Packit Service a721b1
#   else
Packit Service a721b1
#    define YYSTACK_ALLOC alloca
Packit Service a721b1
#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
Packit Service a721b1
#     ifndef _STDLIB_H
Packit Service a721b1
#      define _STDLIB_H 1
Packit Service a721b1
#     endif
Packit Service a721b1
#    endif
Packit Service a721b1
#   endif
Packit Service a721b1
#  endif
Packit Service a721b1
# endif
Packit Service a721b1
Packit Service a721b1
# ifdef YYSTACK_ALLOC
Packit Service a721b1
   /* Pacify GCC's `empty if-body' warning.  */
Packit Service a721b1
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
Packit Service a721b1
#  ifndef YYSTACK_ALLOC_MAXIMUM
Packit Service a721b1
    /* The OS might guarantee only one guard page at the bottom of the stack,
Packit Service a721b1
       and a page size can be as small as 4096 bytes.  So we cannot safely
Packit Service a721b1
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
Packit Service a721b1
       to allow for a few compiler-allocated temporary stack slots.  */
Packit Service a721b1
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
Packit Service a721b1
#  endif
Packit Service a721b1
# else
Packit Service a721b1
#  define YYSTACK_ALLOC YYMALLOC
Packit Service a721b1
#  define YYSTACK_FREE YYFREE
Packit Service a721b1
#  ifndef YYSTACK_ALLOC_MAXIMUM
Packit Service a721b1
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
Packit Service a721b1
#  endif
Packit Service a721b1
#  if (defined __cplusplus && ! defined _STDLIB_H \
Packit Service a721b1
       && ! ((defined YYMALLOC || defined malloc) \
Packit Service a721b1
	     && (defined YYFREE || defined free)))
Packit Service a721b1
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
Packit Service a721b1
#   ifndef _STDLIB_H
Packit Service a721b1
#    define _STDLIB_H 1
Packit Service a721b1
#   endif
Packit Service a721b1
#  endif
Packit Service a721b1
#  ifndef YYMALLOC
Packit Service a721b1
#   define YYMALLOC malloc
Packit Service a721b1
#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
Packit Service a721b1
#   endif
Packit Service a721b1
#  endif
Packit Service a721b1
#  ifndef YYFREE
Packit Service a721b1
#   define YYFREE free
Packit Service a721b1
#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
void free (void *); /* INFRINGES ON USER NAME SPACE */
Packit Service a721b1
#   endif
Packit Service a721b1
#  endif
Packit Service a721b1
# endif
Packit Service a721b1
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
#if (! defined yyoverflow \
Packit Service a721b1
     && (! defined __cplusplus \
Packit Service a721b1
	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
Packit Service a721b1
Packit Service a721b1
/* A type that is properly aligned for any stack member.  */
Packit Service a721b1
union yyalloc
Packit Service a721b1
{
Packit Service a721b1
  yytype_int16 yyss;
Packit Service a721b1
  YYSTYPE yyvs;
Packit Service a721b1
  };
Packit Service a721b1
Packit Service a721b1
/* The size of the maximum gap between one aligned stack and the next.  */
Packit Service a721b1
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
Packit Service a721b1
Packit Service a721b1
/* The size of an array large to enough to hold all stacks, each with
Packit Service a721b1
   N elements.  */
Packit Service a721b1
# define YYSTACK_BYTES(N) \
Packit Service a721b1
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
Packit Service a721b1
      + YYSTACK_GAP_MAXIMUM)
Packit Service a721b1
Packit Service a721b1
/* Copy COUNT objects from FROM to TO.  The source and destination do
Packit Service a721b1
   not overlap.  */
Packit Service a721b1
# ifndef YYCOPY
Packit Service a721b1
#  if defined __GNUC__ && 1 < __GNUC__
Packit Service a721b1
#   define YYCOPY(To, From, Count) \
Packit Service a721b1
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
Packit Service a721b1
#  else
Packit Service a721b1
#   define YYCOPY(To, From, Count)		\
Packit Service a721b1
      do					\
Packit Service a721b1
	{					\
Packit Service a721b1
	  YYSIZE_T yyi;				\
Packit Service a721b1
	  for (yyi = 0; yyi < (Count); yyi++)	\
Packit Service a721b1
	    (To)[yyi] = (From)[yyi];		\
Packit Service a721b1
	}					\
Packit Service a721b1
      while (YYID (0))
Packit Service a721b1
#  endif
Packit Service a721b1
# endif
Packit Service a721b1
Packit Service a721b1
/* Relocate STACK from its old location to the new one.  The
Packit Service a721b1
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
Packit Service a721b1
   elements in the stack, and YYPTR gives the new location of the
Packit Service a721b1
   stack.  Advance YYPTR to a properly aligned location for the next
Packit Service a721b1
   stack.  */
Packit Service a721b1
# define YYSTACK_RELOCATE(Stack)					\
Packit Service a721b1
    do									\
Packit Service a721b1
      {									\
Packit Service a721b1
	YYSIZE_T yynewbytes;						\
Packit Service a721b1
	YYCOPY (&yyptr->Stack, Stack, yysize);				\
Packit Service a721b1
	Stack = &yyptr->Stack;						\
Packit Service a721b1
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
Packit Service a721b1
	yyptr += yynewbytes / sizeof (*yyptr);				\
Packit Service a721b1
      }									\
Packit Service a721b1
    while (YYID (0))
Packit Service a721b1
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
/* YYFINAL -- State number of the termination state.  */
Packit Service a721b1
#define YYFINAL  9
Packit Service a721b1
/* YYLAST -- Last index in YYTABLE.  */
Packit Service a721b1
#define YYLAST   54
Packit Service a721b1
Packit Service a721b1
/* YYNTOKENS -- Number of terminals.  */
Packit Service a721b1
#define YYNTOKENS  16
Packit Service a721b1
/* YYNNTS -- Number of nonterminals.  */
Packit Service a721b1
#define YYNNTS  3
Packit Service a721b1
/* YYNRULES -- Number of rules.  */
Packit Service a721b1
#define YYNRULES  13
Packit Service a721b1
/* YYNRULES -- Number of states.  */
Packit Service a721b1
#define YYNSTATES  27
Packit Service a721b1
Packit Service a721b1
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
Packit Service a721b1
#define YYUNDEFTOK  2
Packit Service a721b1
#define YYMAXUTOK   262
Packit Service a721b1
Packit Service a721b1
#define YYTRANSLATE(YYX)						\
Packit Service a721b1
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
Packit Service a721b1
Packit Service a721b1
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
Packit Service a721b1
static const yytype_uint8 yytranslate[] =
Packit Service a721b1
{
Packit Service a721b1
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,    10,     2,     2,     2,     2,     5,     2,
Packit Service a721b1
      14,    15,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,    12,     2,
Packit Service a721b1
       2,     2,     2,     3,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
      13,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     4,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit Service a721b1
       2,     2,     2,     2,     2,     2,     1,     2,     6,     7,
Packit Service a721b1
       8,     9,    11
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
#if YYDEBUG
Packit Service a721b1
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
Packit Service a721b1
   YYRHS.  */
Packit Service a721b1
static const yytype_uint8 yyprhs[] =
Packit Service a721b1
{
Packit Service a721b1
       0,     0,     3,     5,    11,    15,    19,    23,    27,    31,
Packit Service a721b1
      35,    38,    40,    42
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
Packit Service a721b1
static const yytype_int8 yyrhs[] =
Packit Service a721b1
{
Packit Service a721b1
      17,     0,    -1,    18,    -1,    18,     3,    18,    12,    18,
Packit Service a721b1
      -1,    18,     4,    18,    -1,    18,     5,    18,    -1,    18,
Packit Service a721b1
       6,    18,    -1,    18,     7,    18,    -1,    18,     8,    18,
Packit Service a721b1
      -1,    18,     9,    18,    -1,    10,    18,    -1,    13,    -1,
Packit Service a721b1
      11,    -1,    14,    18,    15,    -1
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
Packit Service a721b1
static const yytype_uint8 yyrline[] =
Packit Service a721b1
{
Packit Service a721b1
       0,   154,   154,   162,   166,   170,   174,   178,   182,   186,
Packit Service a721b1
     190,   194,   198,   203
Packit Service a721b1
};
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
Packit Service a721b1
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
Packit Service a721b1
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
Packit Service a721b1
static const char *const yytname[] =
Packit Service a721b1
{
Packit Service a721b1
  "$end", "error", "$undefined", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2",
Packit Service a721b1
  "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'",
Packit Service a721b1
  "$accept", "start", "exp", 0
Packit Service a721b1
};
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
# ifdef YYPRINT
Packit Service a721b1
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
Packit Service a721b1
   token YYLEX-NUM.  */
Packit Service a721b1
static const yytype_uint16 yytoknum[] =
Packit Service a721b1
{
Packit Service a721b1
       0,   256,   257,    63,   124,    38,   258,   259,   260,   261,
Packit Service a721b1
      33,   262,    58,   110,    40,    41
Packit Service a721b1
};
Packit Service a721b1
# endif
Packit Service a721b1
Packit Service a721b1
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
Packit Service a721b1
static const yytype_uint8 yyr1[] =
Packit Service a721b1
{
Packit Service a721b1
       0,    16,    17,    18,    18,    18,    18,    18,    18,    18,
Packit Service a721b1
      18,    18,    18,    18
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
Packit Service a721b1
static const yytype_uint8 yyr2[] =
Packit Service a721b1
{
Packit Service a721b1
       0,     2,     1,     5,     3,     3,     3,     3,     3,     3,
Packit Service a721b1
       2,     1,     1,     3
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
Packit Service a721b1
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
Packit Service a721b1
   means the default is an error.  */
Packit Service a721b1
static const yytype_uint8 yydefact[] =
Packit Service a721b1
{
Packit Service a721b1
       0,     0,    12,    11,     0,     0,     2,    10,     0,     1,
Packit Service a721b1
       0,     0,     0,     0,     0,     0,     0,    13,     0,     4,
Packit Service a721b1
       5,     6,     7,     8,     9,     0,     3
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
/* YYDEFGOTO[NTERM-NUM].  */
Packit Service a721b1
static const yytype_int8 yydefgoto[] =
Packit Service a721b1
{
Packit Service a721b1
      -1,     5,     6
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
Packit Service a721b1
   STATE-NUM.  */
Packit Service a721b1
#define YYPACT_NINF -10
Packit Service a721b1
static const yytype_int8 yypact[] =
Packit Service a721b1
{
Packit Service a721b1
      -9,    -9,   -10,   -10,    -9,     8,    36,   -10,    13,   -10,
Packit Service a721b1
      -9,    -9,    -9,    -9,    -9,    -9,    -9,   -10,    26,    41,
Packit Service a721b1
      45,    18,    -2,    14,   -10,    -9,    36
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
/* YYPGOTO[NTERM-NUM].  */
Packit Service a721b1
static const yytype_int8 yypgoto[] =
Packit Service a721b1
{
Packit Service a721b1
     -10,   -10,    -1
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
Packit Service a721b1
   positive, shift that token.  If negative, reduce the rule which
Packit Service a721b1
   number is the opposite.  If zero, do what YYDEFACT says.
Packit Service a721b1
   If YYTABLE_NINF, syntax error.  */
Packit Service a721b1
#define YYTABLE_NINF -1
Packit Service a721b1
static const yytype_uint8 yytable[] =
Packit Service a721b1
{
Packit Service a721b1
       7,     1,     2,     8,     3,     4,    15,    16,     9,    18,
Packit Service a721b1
      19,    20,    21,    22,    23,    24,    10,    11,    12,    13,
Packit Service a721b1
      14,    15,    16,    16,    26,    14,    15,    16,    17,    10,
Packit Service a721b1
      11,    12,    13,    14,    15,    16,     0,     0,    25,    10,
Packit Service a721b1
      11,    12,    13,    14,    15,    16,    12,    13,    14,    15,
Packit Service a721b1
      16,    13,    14,    15,    16
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
static const yytype_int8 yycheck[] =
Packit Service a721b1
{
Packit Service a721b1
       1,    10,    11,     4,    13,    14,     8,     9,     0,    10,
Packit Service a721b1
      11,    12,    13,    14,    15,    16,     3,     4,     5,     6,
Packit Service a721b1
       7,     8,     9,     9,    25,     7,     8,     9,    15,     3,
Packit Service a721b1
       4,     5,     6,     7,     8,     9,    -1,    -1,    12,     3,
Packit Service a721b1
       4,     5,     6,     7,     8,     9,     5,     6,     7,     8,
Packit Service a721b1
       9,     6,     7,     8,     9
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
Packit Service a721b1
   symbol of state STATE-NUM.  */
Packit Service a721b1
static const yytype_uint8 yystos[] =
Packit Service a721b1
{
Packit Service a721b1
       0,    10,    11,    13,    14,    17,    18,    18,    18,     0,
Packit Service a721b1
       3,     4,     5,     6,     7,     8,     9,    15,    18,    18,
Packit Service a721b1
      18,    18,    18,    18,    18,    12,    18
Packit Service a721b1
};
Packit Service a721b1
Packit Service a721b1
#define yyerrok		(yyerrstatus = 0)
Packit Service a721b1
#define yyclearin	(yychar = YYEMPTY)
Packit Service a721b1
#define YYEMPTY		(-2)
Packit Service a721b1
#define YYEOF		0
Packit Service a721b1
Packit Service a721b1
#define YYACCEPT	goto yyacceptlab
Packit Service a721b1
#define YYABORT		goto yyabortlab
Packit Service a721b1
#define YYERROR		goto yyerrorlab
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* Like YYERROR except do call yyerror.  This remains here temporarily
Packit Service a721b1
   to ease the transition to the new meaning of YYERROR, for GCC.
Packit Service a721b1
   Once GCC version 2 has supplanted version 1, this can go.  */
Packit Service a721b1
Packit Service a721b1
#define YYFAIL		goto yyerrlab
Packit Service a721b1
Packit Service a721b1
#define YYRECOVERING()  (!!yyerrstatus)
Packit Service a721b1
Packit Service a721b1
#define YYBACKUP(Token, Value)					\
Packit Service a721b1
do								\
Packit Service a721b1
  if (yychar == YYEMPTY && yylen == 1)				\
Packit Service a721b1
    {								\
Packit Service a721b1
      yychar = (Token);						\
Packit Service a721b1
      yylval = (Value);						\
Packit Service a721b1
      yytoken = YYTRANSLATE (yychar);				\
Packit Service a721b1
      YYPOPSTACK (1);						\
Packit Service a721b1
      goto yybackup;						\
Packit Service a721b1
    }								\
Packit Service a721b1
  else								\
Packit Service a721b1
    {								\
Packit Service a721b1
      yyerror (YY_("syntax error: cannot back up")); \
Packit Service a721b1
      YYERROR;							\
Packit Service a721b1
    }								\
Packit Service a721b1
while (YYID (0))
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
#define YYTERROR	1
Packit Service a721b1
#define YYERRCODE	256
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
Packit Service a721b1
   If N is 0, then set CURRENT to the empty location which ends
Packit Service a721b1
   the previous symbol: RHS[0] (always defined).  */
Packit Service a721b1
Packit Service a721b1
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
Packit Service a721b1
#ifndef YYLLOC_DEFAULT
Packit Service a721b1
# define YYLLOC_DEFAULT(Current, Rhs, N)				\
Packit Service a721b1
    do									\
Packit Service a721b1
      if (YYID (N))                                                    \
Packit Service a721b1
	{								\
Packit Service a721b1
	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
Packit Service a721b1
	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
Packit Service a721b1
	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
Packit Service a721b1
	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
Packit Service a721b1
	}								\
Packit Service a721b1
      else								\
Packit Service a721b1
	{								\
Packit Service a721b1
	  (Current).first_line   = (Current).last_line   =		\
Packit Service a721b1
	    YYRHSLOC (Rhs, 0).last_line;				\
Packit Service a721b1
	  (Current).first_column = (Current).last_column =		\
Packit Service a721b1
	    YYRHSLOC (Rhs, 0).last_column;				\
Packit Service a721b1
	}								\
Packit Service a721b1
    while (YYID (0))
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* YY_LOCATION_PRINT -- Print the location on the stream.
Packit Service a721b1
   This macro was not mandated originally: define only if we know
Packit Service a721b1
   we won't break user code: when these are the locations we know.  */
Packit Service a721b1
Packit Service a721b1
#ifndef YY_LOCATION_PRINT
Packit Service a721b1
# if YYLTYPE_IS_TRIVIAL
Packit Service a721b1
#  define YY_LOCATION_PRINT(File, Loc)			\
Packit Service a721b1
     fprintf (File, "%d.%d-%d.%d",			\
Packit Service a721b1
	      (Loc).first_line, (Loc).first_column,	\
Packit Service a721b1
	      (Loc).last_line,  (Loc).last_column)
Packit Service a721b1
# else
Packit Service a721b1
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
Packit Service a721b1
# endif
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* YYLEX -- calling `yylex' with the right arguments.  */
Packit Service a721b1
Packit Service a721b1
#ifdef YYLEX_PARAM
Packit Service a721b1
# define YYLEX yylex (&yylval, YYLEX_PARAM)
Packit Service a721b1
#else
Packit Service a721b1
# define YYLEX yylex (&yylval)
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
/* Enable debugging if requested.  */
Packit Service a721b1
#if YYDEBUG
Packit Service a721b1
Packit Service a721b1
# ifndef YYFPRINTF
Packit Service a721b1
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
Packit Service a721b1
#  define YYFPRINTF fprintf
Packit Service a721b1
# endif
Packit Service a721b1
Packit Service a721b1
# define YYDPRINTF(Args)			\
Packit Service a721b1
do {						\
Packit Service a721b1
  if (yydebug)					\
Packit Service a721b1
    YYFPRINTF Args;				\
Packit Service a721b1
} while (YYID (0))
Packit Service a721b1
Packit Service a721b1
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
Packit Service a721b1
do {									  \
Packit Service a721b1
  if (yydebug)								  \
Packit Service a721b1
    {									  \
Packit Service a721b1
      YYFPRINTF (stderr, "%s ", Title);					  \
Packit Service a721b1
      yy_symbol_print (stderr,						  \
Packit Service a721b1
		  Type, Value); \
Packit Service a721b1
      YYFPRINTF (stderr, "\n");						  \
Packit Service a721b1
    }									  \
Packit Service a721b1
} while (YYID (0))
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/*--------------------------------.
Packit Service a721b1
| Print this symbol on YYOUTPUT.  |
Packit Service a721b1
`--------------------------------*/
Packit Service a721b1
Packit Service a721b1
/*ARGSUSED*/
Packit Service a721b1
#if (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
static void
Packit Service a721b1
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
Packit Service a721b1
#else
Packit Service a721b1
static void
Packit Service a721b1
yy_symbol_value_print (yyoutput, yytype, yyvaluep)
Packit Service a721b1
    FILE *yyoutput;
Packit Service a721b1
    int yytype;
Packit Service a721b1
    YYSTYPE const * const yyvaluep;
Packit Service a721b1
#endif
Packit Service a721b1
{
Packit Service a721b1
  if (!yyvaluep)
Packit Service a721b1
    return;
Packit Service a721b1
# ifdef YYPRINT
Packit Service a721b1
  if (yytype < YYNTOKENS)
Packit Service a721b1
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
Packit Service a721b1
# else
Packit Service a721b1
  YYUSE (yyoutput);
Packit Service a721b1
# endif
Packit Service a721b1
  switch (yytype)
Packit Service a721b1
    {
Packit Service a721b1
      default:
Packit Service a721b1
	break;
Packit Service a721b1
    }
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/*--------------------------------.
Packit Service a721b1
| Print this symbol on YYOUTPUT.  |
Packit Service a721b1
`--------------------------------*/
Packit Service a721b1
Packit Service a721b1
#if (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
static void
Packit Service a721b1
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
Packit Service a721b1
#else
Packit Service a721b1
static void
Packit Service a721b1
yy_symbol_print (yyoutput, yytype, yyvaluep)
Packit Service a721b1
    FILE *yyoutput;
Packit Service a721b1
    int yytype;
Packit Service a721b1
    YYSTYPE const * const yyvaluep;
Packit Service a721b1
#endif
Packit Service a721b1
{
Packit Service a721b1
  if (yytype < YYNTOKENS)
Packit Service a721b1
    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
Packit Service a721b1
  else
Packit Service a721b1
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
Packit Service a721b1
Packit Service a721b1
  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
Packit Service a721b1
  YYFPRINTF (yyoutput, ")");
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
/*------------------------------------------------------------------.
Packit Service a721b1
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
Packit Service a721b1
| TOP (included).                                                   |
Packit Service a721b1
`------------------------------------------------------------------*/
Packit Service a721b1
Packit Service a721b1
#if (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
static void
Packit Service a721b1
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
Packit Service a721b1
#else
Packit Service a721b1
static void
Packit Service a721b1
yy_stack_print (yybottom, yytop)
Packit Service a721b1
    yytype_int16 *yybottom;
Packit Service a721b1
    yytype_int16 *yytop;
Packit Service a721b1
#endif
Packit Service a721b1
{
Packit Service a721b1
  YYFPRINTF (stderr, "Stack now");
Packit Service a721b1
  for (; yybottom <= yytop; yybottom++)
Packit Service a721b1
    {
Packit Service a721b1
      int yybot = *yybottom;
Packit Service a721b1
      YYFPRINTF (stderr, " %d", yybot);
Packit Service a721b1
    }
Packit Service a721b1
  YYFPRINTF (stderr, "\n");
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
# define YY_STACK_PRINT(Bottom, Top)				\
Packit Service a721b1
do {								\
Packit Service a721b1
  if (yydebug)							\
Packit Service a721b1
    yy_stack_print ((Bottom), (Top));				\
Packit Service a721b1
} while (YYID (0))
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/*------------------------------------------------.
Packit Service a721b1
| Report that the YYRULE is going to be reduced.  |
Packit Service a721b1
`------------------------------------------------*/
Packit Service a721b1
Packit Service a721b1
#if (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
static void
Packit Service a721b1
yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
Packit Service a721b1
#else
Packit Service a721b1
static void
Packit Service a721b1
yy_reduce_print (yyvsp, yyrule)
Packit Service a721b1
    YYSTYPE *yyvsp;
Packit Service a721b1
    int yyrule;
Packit Service a721b1
#endif
Packit Service a721b1
{
Packit Service a721b1
  int yynrhs = yyr2[yyrule];
Packit Service a721b1
  int yyi;
Packit Service a721b1
  unsigned long int yylno = yyrline[yyrule];
Packit Service a721b1
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
Packit Service a721b1
	     yyrule - 1, yylno);
Packit Service a721b1
  /* The symbols being reduced.  */
Packit Service a721b1
  for (yyi = 0; yyi < yynrhs; yyi++)
Packit Service a721b1
    {
Packit Service a721b1
      fprintf (stderr, "   $%d = ", yyi + 1);
Packit Service a721b1
      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
Packit Service a721b1
		       &(yyvsp[(yyi + 1) - (yynrhs)])
Packit Service a721b1
		       		       );
Packit Service a721b1
      fprintf (stderr, "\n");
Packit Service a721b1
    }
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
# define YY_REDUCE_PRINT(Rule)		\
Packit Service a721b1
do {					\
Packit Service a721b1
  if (yydebug)				\
Packit Service a721b1
    yy_reduce_print (yyvsp, Rule); \
Packit Service a721b1
} while (YYID (0))
Packit Service a721b1
Packit Service a721b1
/* Nonzero means print parse trace.  It is left uninitialized so that
Packit Service a721b1
   multiple parsers can coexist.  */
Packit Service a721b1
int yydebug;
Packit Service a721b1
#else /* !YYDEBUG */
Packit Service a721b1
# define YYDPRINTF(Args)
Packit Service a721b1
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
Packit Service a721b1
# define YY_STACK_PRINT(Bottom, Top)
Packit Service a721b1
# define YY_REDUCE_PRINT(Rule)
Packit Service a721b1
#endif /* !YYDEBUG */
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* YYINITDEPTH -- initial size of the parser's stacks.  */
Packit Service a721b1
#ifndef	YYINITDEPTH
Packit Service a721b1
# define YYINITDEPTH 200
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
Packit Service a721b1
   if the built-in stack extension method is used).
Packit Service a721b1
Packit Service a721b1
   Do not make this value too large; the results are undefined if
Packit Service a721b1
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
Packit Service a721b1
   evaluated with infinite-precision integer arithmetic.  */
Packit Service a721b1
Packit Service a721b1
#ifndef YYMAXDEPTH
Packit Service a721b1
# define YYMAXDEPTH 10000
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1

Packit Service a721b1
Packit Service a721b1
#if YYERROR_VERBOSE
Packit Service a721b1
Packit Service a721b1
# ifndef yystrlen
Packit Service a721b1
#  if defined __GLIBC__ && defined _STRING_H
Packit Service a721b1
#   define yystrlen strlen
Packit Service a721b1
#  else
Packit Service a721b1
/* Return the length of YYSTR.  */
Packit Service a721b1
#if (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
static YYSIZE_T
Packit Service a721b1
yystrlen (const char *yystr)
Packit Service a721b1
#else
Packit Service a721b1
static YYSIZE_T
Packit Service a721b1
yystrlen (yystr)
Packit Service a721b1
    const char *yystr;
Packit Service a721b1
#endif
Packit Service a721b1
{
Packit Service a721b1
  YYSIZE_T yylen;
Packit Service a721b1
  for (yylen = 0; yystr[yylen]; yylen++)
Packit Service a721b1
    continue;
Packit Service a721b1
  return yylen;
Packit Service a721b1
}
Packit Service a721b1
#  endif
Packit Service a721b1
# endif
Packit Service a721b1
Packit Service a721b1
# ifndef yystpcpy
Packit Service a721b1
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
Packit Service a721b1
#   define yystpcpy stpcpy
Packit Service a721b1
#  else
Packit Service a721b1
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
Packit Service a721b1
   YYDEST.  */
Packit Service a721b1
#if (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
static char *
Packit Service a721b1
yystpcpy (char *yydest, const char *yysrc)
Packit Service a721b1
#else
Packit Service a721b1
static char *
Packit Service a721b1
yystpcpy (yydest, yysrc)
Packit Service a721b1
    char *yydest;
Packit Service a721b1
    const char *yysrc;
Packit Service a721b1
#endif
Packit Service a721b1
{
Packit Service a721b1
  char *yyd = yydest;
Packit Service a721b1
  const char *yys = yysrc;
Packit Service a721b1
Packit Service a721b1
  while ((*yyd++ = *yys++) != '\0')
Packit Service a721b1
    continue;
Packit Service a721b1
Packit Service a721b1
  return yyd - 1;
Packit Service a721b1
}
Packit Service a721b1
#  endif
Packit Service a721b1
# endif
Packit Service a721b1
Packit Service a721b1
# ifndef yytnamerr
Packit Service a721b1
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
Packit Service a721b1
   quotes and backslashes, so that it's suitable for yyerror.  The
Packit Service a721b1
   heuristic is that double-quoting is unnecessary unless the string
Packit Service a721b1
   contains an apostrophe, a comma, or backslash (other than
Packit Service a721b1
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
Packit Service a721b1
   null, do not copy; instead, return the length of what the result
Packit Service a721b1
   would have been.  */
Packit Service a721b1
static YYSIZE_T
Packit Service a721b1
yytnamerr (char *yyres, const char *yystr)
Packit Service a721b1
{
Packit Service a721b1
  if (*yystr == '"')
Packit Service a721b1
    {
Packit Service a721b1
      YYSIZE_T yyn = 0;
Packit Service a721b1
      char const *yyp = yystr;
Packit Service a721b1
Packit Service a721b1
      for (;;)
Packit Service a721b1
	switch (*++yyp)
Packit Service a721b1
	  {
Packit Service a721b1
	  case '\'':
Packit Service a721b1
	  case ',':
Packit Service a721b1
	    goto do_not_strip_quotes;
Packit Service a721b1
Packit Service a721b1
	  case '\\':
Packit Service a721b1
	    if (*++yyp != '\\')
Packit Service a721b1
	      goto do_not_strip_quotes;
Packit Service a721b1
	    /* Fall through.  */
Packit Service a721b1
	  default:
Packit Service a721b1
	    if (yyres)
Packit Service a721b1
	      yyres[yyn] = *yyp;
Packit Service a721b1
	    yyn++;
Packit Service a721b1
	    break;
Packit Service a721b1
Packit Service a721b1
	  case '"':
Packit Service a721b1
	    if (yyres)
Packit Service a721b1
	      yyres[yyn] = '\0';
Packit Service a721b1
	    return yyn;
Packit Service a721b1
	  }
Packit Service a721b1
    do_not_strip_quotes: ;
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
  if (! yyres)
Packit Service a721b1
    return yystrlen (yystr);
Packit Service a721b1
Packit Service a721b1
  return yystpcpy (yyres, yystr) - yyres;
Packit Service a721b1
}
Packit Service a721b1
# endif
Packit Service a721b1
Packit Service a721b1
/* Copy into YYRESULT an error message about the unexpected token
Packit Service a721b1
   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
Packit Service a721b1
   including the terminating null byte.  If YYRESULT is null, do not
Packit Service a721b1
   copy anything; just return the number of bytes that would be
Packit Service a721b1
   copied.  As a special case, return 0 if an ordinary "syntax error"
Packit Service a721b1
   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
Packit Service a721b1
   size calculation.  */
Packit Service a721b1
static YYSIZE_T
Packit Service a721b1
yysyntax_error (char *yyresult, int yystate, int yychar)
Packit Service a721b1
{
Packit Service a721b1
  int yyn = yypact[yystate];
Packit Service a721b1
Packit Service a721b1
  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
Packit Service a721b1
    return 0;
Packit Service a721b1
  else
Packit Service a721b1
    {
Packit Service a721b1
      int yytype = YYTRANSLATE (yychar);
Packit Service a721b1
      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
Packit Service a721b1
      YYSIZE_T yysize = yysize0;
Packit Service a721b1
      YYSIZE_T yysize1;
Packit Service a721b1
      int yysize_overflow = 0;
Packit Service a721b1
      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
Packit Service a721b1
      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
Packit Service a721b1
      int yyx;
Packit Service a721b1
Packit Service a721b1
# if 0
Packit Service a721b1
      /* This is so xgettext sees the translatable formats that are
Packit Service a721b1
	 constructed on the fly.  */
Packit Service a721b1
      YY_("syntax error, unexpected %s");
Packit Service a721b1
      YY_("syntax error, unexpected %s, expecting %s");
Packit Service a721b1
      YY_("syntax error, unexpected %s, expecting %s or %s");
Packit Service a721b1
      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
Packit Service a721b1
      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
Packit Service a721b1
# endif
Packit Service a721b1
      char *yyfmt;
Packit Service a721b1
      char const *yyf;
Packit Service a721b1
      static char const yyunexpected[] = "syntax error, unexpected %s";
Packit Service a721b1
      static char const yyexpecting[] = ", expecting %s";
Packit Service a721b1
      static char const yyor[] = " or %s";
Packit Service a721b1
      char yyformat[sizeof yyunexpected
Packit Service a721b1
		    + sizeof yyexpecting - 1
Packit Service a721b1
		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
Packit Service a721b1
		       * (sizeof yyor - 1))];
Packit Service a721b1
      char const *yyprefix = yyexpecting;
Packit Service a721b1
Packit Service a721b1
      /* Start YYX at -YYN if negative to avoid negative indexes in
Packit Service a721b1
	 YYCHECK.  */
Packit Service a721b1
      int yyxbegin = yyn < 0 ? -yyn : 0;
Packit Service a721b1
Packit Service a721b1
      /* Stay within bounds of both yycheck and yytname.  */
Packit Service a721b1
      int yychecklim = YYLAST - yyn + 1;
Packit Service a721b1
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
Packit Service a721b1
      int yycount = 1;
Packit Service a721b1
Packit Service a721b1
      yyarg[0] = yytname[yytype];
Packit Service a721b1
      yyfmt = yystpcpy (yyformat, yyunexpected);
Packit Service a721b1
Packit Service a721b1
      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
Packit Service a721b1
	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
Packit Service a721b1
	  {
Packit Service a721b1
	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
Packit Service a721b1
	      {
Packit Service a721b1
		yycount = 1;
Packit Service a721b1
		yysize = yysize0;
Packit Service a721b1
		yyformat[sizeof yyunexpected - 1] = '\0';
Packit Service a721b1
		break;
Packit Service a721b1
	      }
Packit Service a721b1
	    yyarg[yycount++] = yytname[yyx];
Packit Service a721b1
	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
Packit Service a721b1
	    yysize_overflow |= (yysize1 < yysize);
Packit Service a721b1
	    yysize = yysize1;
Packit Service a721b1
	    yyfmt = yystpcpy (yyfmt, yyprefix);
Packit Service a721b1
	    yyprefix = yyor;
Packit Service a721b1
	  }
Packit Service a721b1
Packit Service a721b1
      yyf = YY_(yyformat);
Packit Service a721b1
      yysize1 = yysize + yystrlen (yyf);
Packit Service a721b1
      yysize_overflow |= (yysize1 < yysize);
Packit Service a721b1
      yysize = yysize1;
Packit Service a721b1
Packit Service a721b1
      if (yysize_overflow)
Packit Service a721b1
	return YYSIZE_MAXIMUM;
Packit Service a721b1
Packit Service a721b1
      if (yyresult)
Packit Service a721b1
	{
Packit Service a721b1
	  /* Avoid sprintf, as that infringes on the user's name space.
Packit Service a721b1
	     Don't have undefined behavior even if the translation
Packit Service a721b1
	     produced a string with the wrong number of "%s"s.  */
Packit Service a721b1
	  char *yyp = yyresult;
Packit Service a721b1
	  int yyi = 0;
Packit Service a721b1
	  while ((*yyp = *yyf) != '\0')
Packit Service a721b1
	    {
Packit Service a721b1
	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
Packit Service a721b1
		{
Packit Service a721b1
		  yyp += yytnamerr (yyp, yyarg[yyi++]);
Packit Service a721b1
		  yyf += 2;
Packit Service a721b1
		}
Packit Service a721b1
	      else
Packit Service a721b1
		{
Packit Service a721b1
		  yyp++;
Packit Service a721b1
		  yyf++;
Packit Service a721b1
		}
Packit Service a721b1
	    }
Packit Service a721b1
	}
Packit Service a721b1
      return yysize;
Packit Service a721b1
    }
Packit Service a721b1
}
Packit Service a721b1
#endif /* YYERROR_VERBOSE */
Packit Service a721b1

Packit Service a721b1
Packit Service a721b1
/*-----------------------------------------------.
Packit Service a721b1
| Release the memory associated to this symbol.  |
Packit Service a721b1
`-----------------------------------------------*/
Packit Service a721b1
Packit Service a721b1
/*ARGSUSED*/
Packit Service a721b1
#if (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
static void
Packit Service a721b1
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
Packit Service a721b1
#else
Packit Service a721b1
static void
Packit Service a721b1
yydestruct (yymsg, yytype, yyvaluep)
Packit Service a721b1
    const char *yymsg;
Packit Service a721b1
    int yytype;
Packit Service a721b1
    YYSTYPE *yyvaluep;
Packit Service a721b1
#endif
Packit Service a721b1
{
Packit Service a721b1
  YYUSE (yyvaluep);
Packit Service a721b1
Packit Service a721b1
  if (!yymsg)
Packit Service a721b1
    yymsg = "Deleting";
Packit Service a721b1
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
Packit Service a721b1
Packit Service a721b1
  switch (yytype)
Packit Service a721b1
    {
Packit Service a721b1
Packit Service a721b1
      default:
Packit Service a721b1
	break;
Packit Service a721b1
    }
Packit Service a721b1
}
Packit Service a721b1

Packit Service a721b1
Packit Service a721b1
/* Prevent warnings from -Wmissing-prototypes.  */
Packit Service a721b1
Packit Service a721b1
#ifdef YYPARSE_PARAM
Packit Service a721b1
#if defined __STDC__ || defined __cplusplus
Packit Service a721b1
int yyparse (void *YYPARSE_PARAM);
Packit Service a721b1
#else
Packit Service a721b1
int yyparse ();
Packit Service a721b1
#endif
Packit Service a721b1
#else /* ! YYPARSE_PARAM */
Packit Service a721b1
#if defined __STDC__ || defined __cplusplus
Packit Service a721b1
int yyparse (void);
Packit Service a721b1
#else
Packit Service a721b1
int yyparse ();
Packit Service a721b1
#endif
Packit Service a721b1
#endif /* ! YYPARSE_PARAM */
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/*----------.
Packit Service a721b1
| yyparse.  |
Packit Service a721b1
`----------*/
Packit Service a721b1
Packit Service a721b1
#ifdef YYPARSE_PARAM
Packit Service a721b1
#if (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
int
Packit Service a721b1
yyparse (void *YYPARSE_PARAM)
Packit Service a721b1
#else
Packit Service a721b1
int
Packit Service a721b1
yyparse (YYPARSE_PARAM)
Packit Service a721b1
    void *YYPARSE_PARAM;
Packit Service a721b1
#endif
Packit Service a721b1
#else /* ! YYPARSE_PARAM */
Packit Service a721b1
#if (defined __STDC__ || defined __C99__FUNC__ \
Packit Service a721b1
     || defined __cplusplus || defined _MSC_VER)
Packit Service a721b1
int
Packit Service a721b1
yyparse (void)
Packit Service a721b1
#else
Packit Service a721b1
int
Packit Service a721b1
yyparse ()
Packit Service a721b1
Packit Service a721b1
#endif
Packit Service a721b1
#endif
Packit Service a721b1
{
Packit Service a721b1
  /* The lookahead symbol.  */
Packit Service a721b1
int yychar;
Packit Service a721b1
Packit Service a721b1
/* The semantic value of the lookahead symbol.  */
Packit Service a721b1
YYSTYPE yylval;
Packit Service a721b1
Packit Service a721b1
/* Number of syntax errors so far.  */
Packit Service a721b1
int yynerrs;
Packit Service a721b1
Packit Service a721b1
  int yystate;
Packit Service a721b1
  int yyn;
Packit Service a721b1
  int yyresult;
Packit Service a721b1
  /* Number of tokens to shift before error messages enabled.  */
Packit Service a721b1
  int yyerrstatus;
Packit Service a721b1
  /* Lookahead token as an internal (translated) token number.  */
Packit Service a721b1
  int yytoken = 0;
Packit Service a721b1
#if YYERROR_VERBOSE
Packit Service a721b1
  /* Buffer for error messages, and its allocated size.  */
Packit Service a721b1
  char yymsgbuf[128];
Packit Service a721b1
  char *yymsg = yymsgbuf;
Packit Service a721b1
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
  /* Three stacks and their tools:
Packit Service a721b1
     `yyss': related to states,
Packit Service a721b1
     `yyvs': related to semantic values,
Packit Service a721b1
     `yyls': related to locations.
Packit Service a721b1
Packit Service a721b1
     Refer to the stacks thru separate pointers, to allow yyoverflow
Packit Service a721b1
     to reallocate them elsewhere.  */
Packit Service a721b1
Packit Service a721b1
  /* The state stack.  */
Packit Service a721b1
  yytype_int16 yyssa[YYINITDEPTH];
Packit Service a721b1
  yytype_int16 *yyss = yyssa;
Packit Service a721b1
  yytype_int16 *yyssp;
Packit Service a721b1
Packit Service a721b1
  /* The semantic value stack.  */
Packit Service a721b1
  YYSTYPE yyvsa[YYINITDEPTH];
Packit Service a721b1
  YYSTYPE *yyvs = yyvsa;
Packit Service a721b1
  YYSTYPE *yyvsp;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
Packit Service a721b1
Packit Service a721b1
  YYSIZE_T yystacksize = YYINITDEPTH;
Packit Service a721b1
Packit Service a721b1
  /* The variables used to return semantic value and location from the
Packit Service a721b1
     action routines.  */
Packit Service a721b1
  YYSTYPE yyval;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
  /* The number of symbols on the RHS of the reduced rule.
Packit Service a721b1
     Keep to zero when no symbol should be popped.  */
Packit Service a721b1
  int yylen = 0;
Packit Service a721b1
Packit Service a721b1
  YYDPRINTF ((stderr, "Starting parse\n"));
Packit Service a721b1
Packit Service a721b1
  yystate = 0;
Packit Service a721b1
  yyerrstatus = 0;
Packit Service a721b1
  yynerrs = 0;
Packit Service a721b1
  yychar = YYEMPTY;		/* Cause a token to be read.  */
Packit Service a721b1
Packit Service a721b1
  /* Initialize stack pointers.
Packit Service a721b1
     Waste one element of value and location stack
Packit Service a721b1
     so that they stay on the same level as the state stack.
Packit Service a721b1
     The wasted elements are never initialized.  */
Packit Service a721b1
Packit Service a721b1
  yyssp = yyss;
Packit Service a721b1
  yyvsp = yyvs;
Packit Service a721b1
Packit Service a721b1
  goto yysetstate;
Packit Service a721b1
Packit Service a721b1
/*------------------------------------------------------------.
Packit Service a721b1
| yynewstate -- Push a new state, which is found in yystate.  |
Packit Service a721b1
`------------------------------------------------------------*/
Packit Service a721b1
 yynewstate:
Packit Service a721b1
  /* In all cases, when you get here, the value and location stacks
Packit Service a721b1
     have just been pushed.  So pushing a state here evens the stacks.  */
Packit Service a721b1
  yyssp++;
Packit Service a721b1
Packit Service a721b1
 yysetstate:
Packit Service a721b1
  *yyssp = yystate;
Packit Service a721b1
Packit Service a721b1
  if (yyss + yystacksize - 1 <= yyssp)
Packit Service a721b1
    {
Packit Service a721b1
      /* Get the current used size of the three stacks, in elements.  */
Packit Service a721b1
      YYSIZE_T yysize = yyssp - yyss + 1;
Packit Service a721b1
Packit Service a721b1
#ifdef yyoverflow
Packit Service a721b1
      {
Packit Service a721b1
	/* Give user a chance to reallocate the stack.  Use copies of
Packit Service a721b1
	   these so that the &'s don't force the real ones into
Packit Service a721b1
	   memory.  */
Packit Service a721b1
	YYSTYPE *yyvs1 = yyvs;
Packit Service a721b1
	yytype_int16 *yyss1 = yyss;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
	/* Each stack pointer address is followed by the size of the
Packit Service a721b1
	   data in use in that stack, in bytes.  This used to be a
Packit Service a721b1
	   conditional around just the two extra args, but that might
Packit Service a721b1
	   be undefined if yyoverflow is a macro.  */
Packit Service a721b1
	yyoverflow (YY_("memory exhausted"),
Packit Service a721b1
		    &yyss1, yysize * sizeof (*yyssp),
Packit Service a721b1
		    &yyvs1, yysize * sizeof (*yyvsp),
Packit Service a721b1
Packit Service a721b1
		    &yystacksize);
Packit Service a721b1
Packit Service a721b1
	yyss = yyss1;
Packit Service a721b1
	yyvs = yyvs1;
Packit Service a721b1
      }
Packit Service a721b1
#else /* no yyoverflow */
Packit Service a721b1
# ifndef YYSTACK_RELOCATE
Packit Service a721b1
      goto yyexhaustedlab;
Packit Service a721b1
# else
Packit Service a721b1
      /* Extend the stack our own way.  */
Packit Service a721b1
      if (YYMAXDEPTH <= yystacksize)
Packit Service a721b1
	goto yyexhaustedlab;
Packit Service a721b1
      yystacksize *= 2;
Packit Service a721b1
      if (YYMAXDEPTH < yystacksize)
Packit Service a721b1
	yystacksize = YYMAXDEPTH;
Packit Service a721b1
Packit Service a721b1
      {
Packit Service a721b1
	yytype_int16 *yyss1 = yyss;
Packit Service a721b1
	union yyalloc *yyptr =
Packit Service a721b1
	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
Packit Service a721b1
	if (! yyptr)
Packit Service a721b1
	  goto yyexhaustedlab;
Packit Service a721b1
	YYSTACK_RELOCATE (yyss);
Packit Service a721b1
	YYSTACK_RELOCATE (yyvs);
Packit Service a721b1
Packit Service a721b1
#  undef YYSTACK_RELOCATE
Packit Service a721b1
	if (yyss1 != yyssa)
Packit Service a721b1
	  YYSTACK_FREE (yyss1);
Packit Service a721b1
      }
Packit Service a721b1
# endif
Packit Service a721b1
#endif /* no yyoverflow */
Packit Service a721b1
Packit Service a721b1
      yyssp = yyss + yysize - 1;
Packit Service a721b1
      yyvsp = yyvs + yysize - 1;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
Packit Service a721b1
		  (unsigned long int) yystacksize));
Packit Service a721b1
Packit Service a721b1
      if (yyss + yystacksize - 1 <= yyssp)
Packit Service a721b1
	YYABORT;
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
Packit Service a721b1
Packit Service a721b1
  if (yystate == YYFINAL)
Packit Service a721b1
    YYACCEPT;
Packit Service a721b1
Packit Service a721b1
  goto yybackup;
Packit Service a721b1
Packit Service a721b1
/*-----------.
Packit Service a721b1
| yybackup.  |
Packit Service a721b1
`-----------*/
Packit Service a721b1
yybackup:
Packit Service a721b1
Packit Service a721b1
  /* Do appropriate processing given the current state.  Read a
Packit Service a721b1
     lookahead token if we need one and don't already have one.  */
Packit Service a721b1
Packit Service a721b1
  /* First try to decide what to do without reference to lookahead token.  */
Packit Service a721b1
  yyn = yypact[yystate];
Packit Service a721b1
  if (yyn == YYPACT_NINF)
Packit Service a721b1
    goto yydefault;
Packit Service a721b1
Packit Service a721b1
  /* Not known => get a lookahead token if don't already have one.  */
Packit Service a721b1
Packit Service a721b1
  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
Packit Service a721b1
  if (yychar == YYEMPTY)
Packit Service a721b1
    {
Packit Service a721b1
      YYDPRINTF ((stderr, "Reading a token: "));
Packit Service a721b1
      yychar = YYLEX;
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
  if (yychar <= YYEOF)
Packit Service a721b1
    {
Packit Service a721b1
      yychar = yytoken = YYEOF;
Packit Service a721b1
      YYDPRINTF ((stderr, "Now at end of input.\n"));
Packit Service a721b1
    }
Packit Service a721b1
  else
Packit Service a721b1
    {
Packit Service a721b1
      yytoken = YYTRANSLATE (yychar);
Packit Service a721b1
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
  /* If the proper action on seeing token YYTOKEN is to reduce or to
Packit Service a721b1
     detect an error, take that action.  */
Packit Service a721b1
  yyn += yytoken;
Packit Service a721b1
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
Packit Service a721b1
    goto yydefault;
Packit Service a721b1
  yyn = yytable[yyn];
Packit Service a721b1
  if (yyn <= 0)
Packit Service a721b1
    {
Packit Service a721b1
      if (yyn == 0 || yyn == YYTABLE_NINF)
Packit Service a721b1
	goto yyerrlab;
Packit Service a721b1
      yyn = -yyn;
Packit Service a721b1
      goto yyreduce;
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
  /* Count tokens shifted since error; after three, turn off error
Packit Service a721b1
     status.  */
Packit Service a721b1
  if (yyerrstatus)
Packit Service a721b1
    yyerrstatus--;
Packit Service a721b1
Packit Service a721b1
  /* Shift the lookahead token.  */
Packit Service a721b1
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
Packit Service a721b1
Packit Service a721b1
  /* Discard the shifted token.  */
Packit Service a721b1
  yychar = YYEMPTY;
Packit Service a721b1
Packit Service a721b1
  yystate = yyn;
Packit Service a721b1
  *++yyvsp = yylval;
Packit Service a721b1
Packit Service a721b1
  goto yynewstate;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/*-----------------------------------------------------------.
Packit Service a721b1
| yydefault -- do the default action for the current state.  |
Packit Service a721b1
`-----------------------------------------------------------*/
Packit Service a721b1
yydefault:
Packit Service a721b1
  yyn = yydefact[yystate];
Packit Service a721b1
  if (yyn == 0)
Packit Service a721b1
    goto yyerrlab;
Packit Service a721b1
  goto yyreduce;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/*-----------------------------.
Packit Service a721b1
| yyreduce -- Do a reduction.  |
Packit Service a721b1
`-----------------------------*/
Packit Service a721b1
yyreduce:
Packit Service a721b1
  /* yyn is the number of a rule to reduce with.  */
Packit Service a721b1
  yylen = yyr2[yyn];
Packit Service a721b1
Packit Service a721b1
  /* If YYLEN is nonzero, implement the default value of the action:
Packit Service a721b1
     `$$ = $1'.
Packit Service a721b1
Packit Service a721b1
     Otherwise, the following line sets YYVAL to garbage.
Packit Service a721b1
     This behavior is undocumented and Bison
Packit Service a721b1
     users should not rely upon it.  Assigning to YYVAL
Packit Service a721b1
     unconditionally makes the parser a bit smaller, and it avoids a
Packit Service a721b1
     GCC warning that YYVAL may be used uninitialized.  */
Packit Service a721b1
  yyval = yyvsp[1-yylen];
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
  YY_REDUCE_PRINT (yyn);
Packit Service a721b1
  switch (yyn)
Packit Service a721b1
    {
Packit Service a721b1
        case 2:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 155 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    if ((yyvsp[(1) - (1)].exp) == NULL)
Packit Service a721b1
	      YYABORT;
Packit Service a721b1
	    ((struct parse_args *) arg)->res = (yyvsp[(1) - (1)].exp);
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 3:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 163 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    (yyval.exp) = new_exp_3 (qmop, (yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].exp), (yyvsp[(5) - (5)].exp));
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 4:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 167 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    (yyval.exp) = new_exp_2 (lor, (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 5:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 171 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    (yyval.exp) = new_exp_2 (land, (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 6:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 175 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 7:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 179 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 8:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 183 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 9:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 187 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 10:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 191 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    (yyval.exp) = new_exp_1 (lnot, (yyvsp[(2) - (2)].exp));
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 11:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 195 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    (yyval.exp) = new_exp_0 (var);
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 12:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 199 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    if (((yyval.exp) = new_exp_0 (num)) != NULL)
Packit Service a721b1
	      (yyval.exp)->val.num = (yyvsp[(1) - (1)].num);
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
  case 13:
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 204 "plural.y"
Packit Service a721b1
    {
Packit Service a721b1
	    (yyval.exp) = (yyvsp[(2) - (3)].exp);
Packit Service a721b1
	  }
Packit Service a721b1
    break;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* Line 1269 of yacc.c.  */
Packit Service a721b1
#line 1572 "plural.c"
Packit Service a721b1
      default: break;
Packit Service a721b1
    }
Packit Service a721b1
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
Packit Service a721b1
Packit Service a721b1
  YYPOPSTACK (yylen);
Packit Service a721b1
  yylen = 0;
Packit Service a721b1
  YY_STACK_PRINT (yyss, yyssp);
Packit Service a721b1
Packit Service a721b1
  *++yyvsp = yyval;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
  /* Now `shift' the result of the reduction.  Determine what state
Packit Service a721b1
     that goes to, based on the state we popped back to and the rule
Packit Service a721b1
     number reduced by.  */
Packit Service a721b1
Packit Service a721b1
  yyn = yyr1[yyn];
Packit Service a721b1
Packit Service a721b1
  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
Packit Service a721b1
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
Packit Service a721b1
    yystate = yytable[yystate];
Packit Service a721b1
  else
Packit Service a721b1
    yystate = yydefgoto[yyn - YYNTOKENS];
Packit Service a721b1
Packit Service a721b1
  goto yynewstate;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/*------------------------------------.
Packit Service a721b1
| yyerrlab -- here on detecting error |
Packit Service a721b1
`------------------------------------*/
Packit Service a721b1
yyerrlab:
Packit Service a721b1
  /* If not already recovering from an error, report this error.  */
Packit Service a721b1
  if (!yyerrstatus)
Packit Service a721b1
    {
Packit Service a721b1
      ++yynerrs;
Packit Service a721b1
#if ! YYERROR_VERBOSE
Packit Service a721b1
      yyerror (YY_("syntax error"));
Packit Service a721b1
#else
Packit Service a721b1
      {
Packit Service a721b1
	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
Packit Service a721b1
	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
Packit Service a721b1
	  {
Packit Service a721b1
	    YYSIZE_T yyalloc = 2 * yysize;
Packit Service a721b1
	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
Packit Service a721b1
	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
Packit Service a721b1
	    if (yymsg != yymsgbuf)
Packit Service a721b1
	      YYSTACK_FREE (yymsg);
Packit Service a721b1
	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
Packit Service a721b1
	    if (yymsg)
Packit Service a721b1
	      yymsg_alloc = yyalloc;
Packit Service a721b1
	    else
Packit Service a721b1
	      {
Packit Service a721b1
		yymsg = yymsgbuf;
Packit Service a721b1
		yymsg_alloc = sizeof yymsgbuf;
Packit Service a721b1
	      }
Packit Service a721b1
	  }
Packit Service a721b1
Packit Service a721b1
	if (0 < yysize && yysize <= yymsg_alloc)
Packit Service a721b1
	  {
Packit Service a721b1
	    (void) yysyntax_error (yymsg, yystate, yychar);
Packit Service a721b1
	    yyerror (yymsg);
Packit Service a721b1
	  }
Packit Service a721b1
	else
Packit Service a721b1
	  {
Packit Service a721b1
	    yyerror (YY_("syntax error"));
Packit Service a721b1
	    if (yysize != 0)
Packit Service a721b1
	      goto yyexhaustedlab;
Packit Service a721b1
	  }
Packit Service a721b1
      }
Packit Service a721b1
#endif
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
  if (yyerrstatus == 3)
Packit Service a721b1
    {
Packit Service a721b1
      /* If just tried and failed to reuse lookahead token after an
Packit Service a721b1
	 error, discard it.  */
Packit Service a721b1
Packit Service a721b1
      if (yychar <= YYEOF)
Packit Service a721b1
	{
Packit Service a721b1
	  /* Return failure if at end of input.  */
Packit Service a721b1
	  if (yychar == YYEOF)
Packit Service a721b1
	    YYABORT;
Packit Service a721b1
	}
Packit Service a721b1
      else
Packit Service a721b1
	{
Packit Service a721b1
	  yydestruct ("Error: discarding",
Packit Service a721b1
		      yytoken, &yylval);
Packit Service a721b1
	  yychar = YYEMPTY;
Packit Service a721b1
	}
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
  /* Else will try to reuse lookahead token after shifting the error
Packit Service a721b1
     token.  */
Packit Service a721b1
  goto yyerrlab1;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/*---------------------------------------------------.
Packit Service a721b1
| yyerrorlab -- error raised explicitly by YYERROR.  |
Packit Service a721b1
`---------------------------------------------------*/
Packit Service a721b1
yyerrorlab:
Packit Service a721b1
Packit Service a721b1
  /* Pacify compilers like GCC when the user code never invokes
Packit Service a721b1
     YYERROR and the label yyerrorlab therefore never appears in user
Packit Service a721b1
     code.  */
Packit Service a721b1
  if (/*CONSTCOND*/ 0)
Packit Service a721b1
     goto yyerrorlab;
Packit Service a721b1
Packit Service a721b1
  /* Do not reclaim the symbols of the rule which action triggered
Packit Service a721b1
     this YYERROR.  */
Packit Service a721b1
  YYPOPSTACK (yylen);
Packit Service a721b1
  yylen = 0;
Packit Service a721b1
  YY_STACK_PRINT (yyss, yyssp);
Packit Service a721b1
  yystate = *yyssp;
Packit Service a721b1
  goto yyerrlab1;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/*-------------------------------------------------------------.
Packit Service a721b1
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
Packit Service a721b1
`-------------------------------------------------------------*/
Packit Service a721b1
yyerrlab1:
Packit Service a721b1
  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
Packit Service a721b1
Packit Service a721b1
  for (;;)
Packit Service a721b1
    {
Packit Service a721b1
      yyn = yypact[yystate];
Packit Service a721b1
      if (yyn != YYPACT_NINF)
Packit Service a721b1
	{
Packit Service a721b1
	  yyn += YYTERROR;
Packit Service a721b1
	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
Packit Service a721b1
	    {
Packit Service a721b1
	      yyn = yytable[yyn];
Packit Service a721b1
	      if (0 < yyn)
Packit Service a721b1
		break;
Packit Service a721b1
	    }
Packit Service a721b1
	}
Packit Service a721b1
Packit Service a721b1
      /* Pop the current state because it cannot handle the error token.  */
Packit Service a721b1
      if (yyssp == yyss)
Packit Service a721b1
	YYABORT;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
      yydestruct ("Error: popping",
Packit Service a721b1
		  yystos[yystate], yyvsp);
Packit Service a721b1
      YYPOPSTACK (1);
Packit Service a721b1
      yystate = *yyssp;
Packit Service a721b1
      YY_STACK_PRINT (yyss, yyssp);
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
  *++yyvsp = yylval;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
  /* Shift the error token.  */
Packit Service a721b1
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
Packit Service a721b1
Packit Service a721b1
  yystate = yyn;
Packit Service a721b1
  goto yynewstate;
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/*-------------------------------------.
Packit Service a721b1
| yyacceptlab -- YYACCEPT comes here.  |
Packit Service a721b1
`-------------------------------------*/
Packit Service a721b1
yyacceptlab:
Packit Service a721b1
  yyresult = 0;
Packit Service a721b1
  goto yyreturn;
Packit Service a721b1
Packit Service a721b1
/*-----------------------------------.
Packit Service a721b1
| yyabortlab -- YYABORT comes here.  |
Packit Service a721b1
`-----------------------------------*/
Packit Service a721b1
yyabortlab:
Packit Service a721b1
  yyresult = 1;
Packit Service a721b1
  goto yyreturn;
Packit Service a721b1
Packit Service a721b1
#ifndef yyoverflow
Packit Service a721b1
/*-------------------------------------------------.
Packit Service a721b1
| yyexhaustedlab -- memory exhaustion comes here.  |
Packit Service a721b1
`-------------------------------------------------*/
Packit Service a721b1
yyexhaustedlab:
Packit Service a721b1
  yyerror (YY_("memory exhausted"));
Packit Service a721b1
  yyresult = 2;
Packit Service a721b1
  /* Fall through.  */
Packit Service a721b1
#endif
Packit Service a721b1
Packit Service a721b1
yyreturn:
Packit Service a721b1
  if (yychar != YYEMPTY)
Packit Service a721b1
     yydestruct ("Cleanup: discarding lookahead",
Packit Service a721b1
		 yytoken, &yylval);
Packit Service a721b1
  /* Do not reclaim the symbols of the rule which action triggered
Packit Service a721b1
     this YYABORT or YYACCEPT.  */
Packit Service a721b1
  YYPOPSTACK (yylen);
Packit Service a721b1
  YY_STACK_PRINT (yyss, yyssp);
Packit Service a721b1
  while (yyssp != yyss)
Packit Service a721b1
    {
Packit Service a721b1
      yydestruct ("Cleanup: popping",
Packit Service a721b1
		  yystos[*yyssp], yyvsp);
Packit Service a721b1
      YYPOPSTACK (1);
Packit Service a721b1
    }
Packit Service a721b1
#ifndef yyoverflow
Packit Service a721b1
  if (yyss != yyssa)
Packit Service a721b1
    YYSTACK_FREE (yyss);
Packit Service a721b1
#endif
Packit Service a721b1
#if YYERROR_VERBOSE
Packit Service a721b1
  if (yymsg != yymsgbuf)
Packit Service a721b1
    YYSTACK_FREE (yymsg);
Packit Service a721b1
#endif
Packit Service a721b1
  /* Make sure YYID is used.  */
Packit Service a721b1
  return YYID (yyresult);
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
/* Line 1486 of yacc.c.  */
Packit Service a721b1
#line 209 "plural.y"
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
void
Packit Service a721b1
internal_function
Packit Service a721b1
FREE_EXPRESSION (struct expression *exp)
Packit Service a721b1
{
Packit Service a721b1
  if (exp == NULL)
Packit Service a721b1
    return;
Packit Service a721b1
Packit Service a721b1
  /* Handle the recursive case.  */
Packit Service a721b1
  switch (exp->nargs)
Packit Service a721b1
    {
Packit Service a721b1
    case 3:
Packit Service a721b1
      FREE_EXPRESSION (exp->val.args[2]);
Packit Service a721b1
      /* FALLTHROUGH */
Packit Service a721b1
    case 2:
Packit Service a721b1
      FREE_EXPRESSION (exp->val.args[1]);
Packit Service a721b1
      /* FALLTHROUGH */
Packit Service a721b1
    case 1:
Packit Service a721b1
      FREE_EXPRESSION (exp->val.args[0]);
Packit Service a721b1
      /* FALLTHROUGH */
Packit Service a721b1
    default:
Packit Service a721b1
      break;
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
  free (exp);
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
static int
Packit Service a721b1
yylex (YYSTYPE *lval, const char **pexp)
Packit Service a721b1
{
Packit Service a721b1
  const char *exp = *pexp;
Packit Service a721b1
  int result;
Packit Service a721b1
Packit Service a721b1
  while (1)
Packit Service a721b1
    {
Packit Service a721b1
      if (exp[0] == '\0')
Packit Service a721b1
	{
Packit Service a721b1
	  *pexp = exp;
Packit Service a721b1
	  return YYEOF;
Packit Service a721b1
	}
Packit Service a721b1
Packit Service a721b1
      if (exp[0] != ' ' && exp[0] != '\t')
Packit Service a721b1
	break;
Packit Service a721b1
Packit Service a721b1
      ++exp;
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
  result = *exp++;
Packit Service a721b1
  switch (result)
Packit Service a721b1
    {
Packit Service a721b1
    case '0': case '1': case '2': case '3': case '4':
Packit Service a721b1
    case '5': case '6': case '7': case '8': case '9':
Packit Service a721b1
      {
Packit Service a721b1
	unsigned long int n = result - '0';
Packit Service a721b1
	while (exp[0] >= '0' && exp[0] <= '9')
Packit Service a721b1
	  {
Packit Service a721b1
	    n *= 10;
Packit Service a721b1
	    n += exp[0] - '0';
Packit Service a721b1
	    ++exp;
Packit Service a721b1
	  }
Packit Service a721b1
	lval->num = n;
Packit Service a721b1
	result = NUMBER;
Packit Service a721b1
      }
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case '=':
Packit Service a721b1
      if (exp[0] == '=')
Packit Service a721b1
	{
Packit Service a721b1
	  ++exp;
Packit Service a721b1
	  lval->op = equal;
Packit Service a721b1
	  result = EQUOP2;
Packit Service a721b1
	}
Packit Service a721b1
      else
Packit Service a721b1
	result = YYERRCODE;
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case '!':
Packit Service a721b1
      if (exp[0] == '=')
Packit Service a721b1
	{
Packit Service a721b1
	  ++exp;
Packit Service a721b1
	  lval->op = not_equal;
Packit Service a721b1
	  result = EQUOP2;
Packit Service a721b1
	}
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case '&':
Packit Service a721b1
    case '|':
Packit Service a721b1
      if (exp[0] == result)
Packit Service a721b1
	++exp;
Packit Service a721b1
      else
Packit Service a721b1
	result = YYERRCODE;
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case '<':
Packit Service a721b1
      if (exp[0] == '=')
Packit Service a721b1
	{
Packit Service a721b1
	  ++exp;
Packit Service a721b1
	  lval->op = less_or_equal;
Packit Service a721b1
	}
Packit Service a721b1
      else
Packit Service a721b1
	lval->op = less_than;
Packit Service a721b1
      result = CMPOP2;
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case '>':
Packit Service a721b1
      if (exp[0] == '=')
Packit Service a721b1
	{
Packit Service a721b1
	  ++exp;
Packit Service a721b1
	  lval->op = greater_or_equal;
Packit Service a721b1
	}
Packit Service a721b1
      else
Packit Service a721b1
	lval->op = greater_than;
Packit Service a721b1
      result = CMPOP2;
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case '*':
Packit Service a721b1
      lval->op = mult;
Packit Service a721b1
      result = MULOP2;
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case '/':
Packit Service a721b1
      lval->op = divide;
Packit Service a721b1
      result = MULOP2;
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case '%':
Packit Service a721b1
      lval->op = module;
Packit Service a721b1
      result = MULOP2;
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case '+':
Packit Service a721b1
      lval->op = plus;
Packit Service a721b1
      result = ADDOP2;
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case '-':
Packit Service a721b1
      lval->op = minus;
Packit Service a721b1
      result = ADDOP2;
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case 'n':
Packit Service a721b1
    case '?':
Packit Service a721b1
    case ':':
Packit Service a721b1
    case '(':
Packit Service a721b1
    case ')':
Packit Service a721b1
      /* Nothing, just return the character.  */
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    case ';':
Packit Service a721b1
    case '\n':
Packit Service a721b1
    case '\0':
Packit Service a721b1
      /* Be safe and let the user call this function again.  */
Packit Service a721b1
      --exp;
Packit Service a721b1
      result = YYEOF;
Packit Service a721b1
      break;
Packit Service a721b1
Packit Service a721b1
    default:
Packit Service a721b1
      result = YYERRCODE;
Packit Service a721b1
#if YYDEBUG != 0
Packit Service a721b1
      --exp;
Packit Service a721b1
#endif
Packit Service a721b1
      break;
Packit Service a721b1
    }
Packit Service a721b1
Packit Service a721b1
  *pexp = exp;
Packit Service a721b1
Packit Service a721b1
  return result;
Packit Service a721b1
}
Packit Service a721b1
Packit Service a721b1
Packit Service a721b1
static void
Packit Service a721b1
yyerror (const char *str)
Packit Service a721b1
{
Packit Service a721b1
  /* Do nothing.  We don't print error messages here.  */
Packit Service a721b1
}
Packit Service a721b1