119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* A Bison parser, made from plural.y
219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   by GNU bison 1.35.  */
319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYBISON 1  /* Identify Bison output.  */
519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define yyparse __gettextparse
719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define yylex __gettextlex
819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define yyerror __gettexterror
919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define yylval __gettextlval
1019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define yychar __gettextchar
1119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define yydebug __gettextdebug
1219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define yynerrs __gettextnerrs
1319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define	EQUOP2	257
1419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define	CMPOP2	258
1519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define	ADDOP2	259
1619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define	MULOP2	260
1719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define	NUMBER	261
1819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
1919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 1 "plural.y"
2019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
2119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Expression parsing for plural form selection.
2219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
2319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
2419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
2519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   This program is free software; you can redistribute it and/or modify it
2619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   under the terms of the GNU Library General Public License as published
2719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   by the Free Software Foundation; either version 2, or (at your option)
2819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   any later version.
2919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
3019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   This program is distributed in the hope that it will be useful,
3119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   but WITHOUT ANY WARRANTY; without even the implied warranty of
3219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
3319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Library General Public License for more details.
3419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
3519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   You should have received a copy of the GNU Library General Public
3619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   License along with this program; if not, write to the Free Software
3719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
3819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   USA.  */
3919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
4019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* The bison generated parser uses alloca.  AIX 3 forces us to put this
4119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   declaration at the beginning of the file.  The declaration in bison's
4219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   skeleton file comes too late.  This must come before <config.h>
4319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   because <config.h> may include arbitrary system headers.  */
4419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if defined _AIX && !defined __GNUC__
4519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project #pragma alloca
4619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
4719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
4819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef HAVE_CONFIG_H
4919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# include <config.h>
5019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
5119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
5219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include <stddef.h>
5319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include <stdlib.h>
5419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include "plural-exp.h"
5519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
5619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* The main function generated by the parser is called __gettextparse,
5719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   but we want it to be called PLURAL_PARSE.  */
5819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifndef _LIBC
5919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define __gettextparse PLURAL_PARSE
6019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
6119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
6219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYLEX_PARAM	&((struct parse_args *) arg)->cp
6319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYPARSE_PARAM	arg
6419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
6519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 49 "plural.y"
6619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifndef YYSTYPE
6719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projecttypedef union {
6819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  unsigned long int num;
6919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  enum operator op;
7019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  struct expression *exp;
7119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} yystype;
7219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYSTYPE yystype
7319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYSTYPE_IS_TRIVIAL 1
7419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
7519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 55 "plural.y"
7619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
7719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Prototypes for local functions.  */
7819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic int yylex (YYSTYPE *lval, const char **pexp);
7919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic void yyerror (const char *str);
8019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
8119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Allocation of expressions.  */
8219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
8319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic struct expression *
8419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectnew_exp (int nargs, enum operator op, struct expression * const *args)
8519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
8619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  int i;
8719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  struct expression *newp;
8819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
8919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* If any of the argument could not be malloc'ed, just return NULL.  */
9019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  for (i = nargs - 1; i >= 0; i--)
9119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    if (args[i] == NULL)
9219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      goto fail;
9319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
9419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Allocate a new expression.  */
9519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  newp = (struct expression *) malloc (sizeof (*newp));
9619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (newp != NULL)
9719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
9819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      newp->nargs = nargs;
9919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      newp->operation = op;
10019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      for (i = nargs - 1; i >= 0; i--)
10119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	newp->val.args[i] = args[i];
10219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      return newp;
10319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
10419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
10519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project fail:
10619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  for (i = nargs - 1; i >= 0; i--)
10719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    FREE_EXPRESSION (args[i]);
10819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
10919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  return NULL;
11019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
11119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
11219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic inline struct expression *
11319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectnew_exp_0 (enum operator op)
11419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
11519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  return new_exp (0, op, NULL);
11619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
11719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
11819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic inline struct expression *
11919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectnew_exp_1 (enum operator op, struct expression *right)
12019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
12119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  struct expression *args[1];
12219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
12319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  args[0] = right;
12419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  return new_exp (1, op, args);
12519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
12619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
12719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic struct expression *
12819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectnew_exp_2 (enum operator op, struct expression *left, struct expression *right)
12919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
13019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  struct expression *args[2];
13119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
13219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  args[0] = left;
13319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  args[1] = right;
13419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  return new_exp (2, op, args);
13519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
13619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
13719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic inline struct expression *
13819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectnew_exp_3 (enum operator op, struct expression *bexp,
13919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	   struct expression *tbranch, struct expression *fbranch)
14019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
14119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  struct expression *args[3];
14219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
14319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  args[0] = bexp;
14419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  args[1] = tbranch;
14519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  args[2] = fbranch;
14619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  return new_exp (3, op, args);
14719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
14819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
14919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifndef YYDEBUG
15019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYDEBUG 0
15119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
15219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
15319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
15419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
15519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define	YYFINAL		27
15619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define	YYFLAG		-32768
15719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define	YYNTBASE	16
15819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
15919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
16019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18)
16119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
16219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
16319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const char yytranslate[] =
16419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
16519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
16619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
16719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
16819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,    10,     2,     2,     2,     2,     5,     2,
16919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      14,    15,     2,     2,     2,     2,     2,     2,     2,     2,
17019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,    12,     2,
17119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     3,     2,     2,     2,     2,     2,     2,
17219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
17319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
17419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
17519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
17619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      13,     2,     2,     2,     2,     2,     2,     2,     2,     2,
17719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     4,     2,     2,     2,     2,     2,
17819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
17919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
18019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
18119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
18219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
18319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
18419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
18519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
18619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
18719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
18819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
18919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
19019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       2,     2,     2,     2,     2,     2,     1,     6,     7,     8,
19119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       9,    11
19219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
19319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
19419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYDEBUG
19519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yyprhs[] =
19619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
19719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       0,     0,     2,     8,    12,    16,    20,    24,    28,    32,
19819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      35,    37,    39
19919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
20019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yyrhs[] =
20119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
20219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      17,     0,    17,     3,    17,    12,    17,     0,    17,     4,
20319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      17,     0,    17,     5,    17,     0,    17,     6,    17,     0,
20419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      17,     7,    17,     0,    17,     8,    17,     0,    17,     9,
20519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      17,     0,    10,    17,     0,    13,     0,    11,     0,    14,
20619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      17,    15,     0
20719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
20819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
20919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
21019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
21119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYDEBUG
21219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
21319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yyrline[] =
21419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
21519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       0,   150,   158,   162,   166,   170,   174,   178,   182,   186,
21619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     190,   194,   199
21719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
21819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
21919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
22019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
22119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if (YYDEBUG) || defined YYERROR_VERBOSE
22219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
22319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
22419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const char *const yytname[] =
22519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
2263984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt  "$", "error", "$undefined.", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2",
2273984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt  "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'",
22819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  "start", "exp", 0
22919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
23019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
23119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
23219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
23319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yyr1[] =
23419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
23519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       0,    16,    17,    17,    17,    17,    17,    17,    17,    17,
23619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      17,    17,    17
23719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
23819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
23919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
24019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yyr2[] =
24119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
24219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       0,     1,     5,     3,     3,     3,     3,     3,     3,     2,
24319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       1,     1,     3
24419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
24519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
24619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
24719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   doesn't specify something else to do.  Zero means the default is an
24819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   error. */
24919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yydefact[] =
25019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
25119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       0,     0,    11,    10,     0,     1,     9,     0,     0,     0,
25219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       0,     0,     0,     0,     0,    12,     0,     3,     4,     5,
25319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       6,     7,     8,     0,     2,     0,     0,     0
25419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
25519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
25619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yydefgoto[] =
25719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
25819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      25,     5
25919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
26019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
26119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yypact[] =
26219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
26319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      -9,    -9,-32768,-32768,    -9,    34,-32768,    11,    -9,    -9,
26419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      -9,    -9,    -9,    -9,    -9,-32768,    24,    39,    43,    16,
26519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      26,    -3,-32768,    -9,    34,    21,    53,-32768
26619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
26719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
26819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yypgoto[] =
26919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
27019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  -32768,    -1
27119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
27219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
27319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
27419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define	YYLAST		53
27519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
27619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
27719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yytable[] =
27819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
27919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       6,     1,     2,     7,     3,     4,    14,    16,    17,    18,
28019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      19,    20,    21,    22,     8,     9,    10,    11,    12,    13,
28119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      14,    26,    24,    12,    13,    14,    15,     8,     9,    10,
28219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      11,    12,    13,    14,    13,    14,    23,     8,     9,    10,
28319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      11,    12,    13,    14,    10,    11,    12,    13,    14,    11,
28419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      12,    13,    14,    27
28519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
28619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
28719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const short yycheck[] =
28819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
28919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       1,    10,    11,     4,    13,    14,     9,     8,     9,    10,
29019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      11,    12,    13,    14,     3,     4,     5,     6,     7,     8,
29119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       9,     0,    23,     7,     8,     9,    15,     3,     4,     5,
29219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       6,     7,     8,     9,     8,     9,    12,     3,     4,     5,
29319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       6,     7,     8,     9,     5,     6,     7,     8,     9,     6,
29419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       7,     8,     9,     0
29519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
29619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYPURE 1
29719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
29819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
29919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 3 "/usr/local/share/bison/bison.simple"
30019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
30119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Skeleton output parser for bison,
30219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
30319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
30419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Foundation, Inc.
30519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
30619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   This program is free software; you can redistribute it and/or modify
30719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   it under the terms of the GNU General Public License as published by
30819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   the Free Software Foundation; either version 2, or (at your option)
30919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   any later version.
31019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
31119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   This program is distributed in the hope that it will be useful,
31219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   but WITHOUT ANY WARRANTY; without even the implied warranty of
31319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
31419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   GNU General Public License for more details.
31519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
31619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   You should have received a copy of the GNU General Public License
31719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   along with this program; if not, write to the Free Software
31819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Foundation, Inc., 59 Temple Place - Suite 330,
31919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Boston, MA 02111-1307, USA.  */
32019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
32119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* As a special exception, when this file is copied by Bison into a
32219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Bison output file, you may use that output file without restriction.
32319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   This special exception was added by the Free Software Foundation
32419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   in version 1.24 of Bison.  */
32519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
32619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* This is the parser code that is written into each bison parser when
32719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   the %semantic_parser declaration is not specified in the grammar.
32819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   It was written by Richard Stallman by simplifying the hairy parser
32919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   used when %semantic_parser is specified.  */
33019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
33119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* All symbols defined below should begin with yy or YY, to avoid
33219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   infringing on user name space.  This should be done even for local
33319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   variables, as they might otherwise be expanded by user macros.
33419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   There are some unavoidable exceptions within include files to
33519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   define necessary library symbols; they are noted "INFRINGES ON
33619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   USER NAME SPACE" below.  */
33719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
33819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
33919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
34019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* The parser invokes alloca or malloc; define the necessary symbols.  */
34119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
34219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# if YYSTACK_USE_ALLOCA
34319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYSTACK_ALLOC alloca
34419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# else
34519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  ifndef YYSTACK_USE_ALLOCA
34619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   if defined (alloca) || defined (_ALLOCA_H)
34719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#    define YYSTACK_ALLOC alloca
34819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   else
34919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#    ifdef __GNUC__
35019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#     define YYSTACK_ALLOC __builtin_alloca
35119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#    endif
35219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   endif
35319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  endif
35419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
35519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
35619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# ifdef YYSTACK_ALLOC
35719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   /* Pacify GCC's `empty if-body' warning. */
35819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
35919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# else
36019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  if defined (__STDC__) || defined (__cplusplus)
36119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
36219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   define YYSIZE_T size_t
36319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  endif
36419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYSTACK_ALLOC malloc
36519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYSTACK_FREE free
36619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
36719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
36819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
36919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
37019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if (! defined (yyoverflow) \
37119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     && (! defined (__cplusplus) \
37219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
37319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
37419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* A type that is properly aligned for any stack member.  */
37519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectunion yyalloc
37619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
37719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  short yyss;
37819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYSTYPE yyvs;
37919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# if YYLSP_NEEDED
38019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYLTYPE yyls;
38119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
38219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
38319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
38419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* The size of the maximum gap between one aligned stack and the next.  */
38519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
38619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
38719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* The size of an array large to enough to hold all stacks, each with
38819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   N elements.  */
38919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# if YYLSP_NEEDED
39019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYSTACK_BYTES(N) \
39119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))	\
39219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      + 2 * YYSTACK_GAP_MAX)
39319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# else
39419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYSTACK_BYTES(N) \
39519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
39619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      + YYSTACK_GAP_MAX)
39719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
39819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
39919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Copy COUNT objects from FROM to TO.  The source and destination do
40019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   not overlap.  */
40119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# ifndef YYCOPY
40219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  if 1 < __GNUC__
40319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   define YYCOPY(To, From, Count) \
40419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
40519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  else
40619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   define YYCOPY(To, From, Count)		\
40719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      do					\
40819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	{					\
40919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  register YYSIZE_T yyi;		\
41019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  for (yyi = 0; yyi < (Count); yyi++)	\
41119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    (To)[yyi] = (From)[yyi];		\
41219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	}					\
41319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      while (0)
41419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  endif
41519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
41619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
41719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Relocate STACK from its old location to the new one.  The
41819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   local variables YYSIZE and YYSTACKSIZE give the old and new number of
41919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   elements in the stack, and YYPTR gives the new location of the
42019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   stack.  Advance YYPTR to a properly aligned location for the next
42119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   stack.  */
42219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYSTACK_RELOCATE(Stack)					\
42319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    do									\
42419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      {									\
42519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYSIZE_T yynewbytes;						\
42619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYCOPY (&yyptr->Stack, Stack, yysize);				\
42719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	Stack = &yyptr->Stack;						\
42819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;	\
42919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	yyptr += yynewbytes / sizeof (*yyptr);				\
43019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      }									\
43119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    while (0)
43219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
43319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
43419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
43519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
43619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
43719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYSIZE_T __SIZE_TYPE__
43819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
43919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if ! defined (YYSIZE_T) && defined (size_t)
44019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYSIZE_T size_t
44119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
44219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if ! defined (YYSIZE_T)
44319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# if defined (__STDC__) || defined (__cplusplus)
44419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
44519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYSIZE_T size_t
44619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
44719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
44819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if ! defined (YYSIZE_T)
44919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYSIZE_T unsigned int
45019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
45119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
45219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define yyerrok		(yyerrstatus = 0)
45319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define yyclearin	(yychar = YYEMPTY)
45419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYEMPTY		-2
45519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYEOF		0
45619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYACCEPT	goto yyacceptlab
45719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYABORT 	goto yyabortlab
45819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYERROR		goto yyerrlab1
45919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Like YYERROR except do call yyerror.  This remains here temporarily
46019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   to ease the transition to the new meaning of YYERROR, for GCC.
46119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Once GCC version 2 has supplanted version 1, this can go.  */
46219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYFAIL		goto yyerrlab
46319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYRECOVERING()  (!!yyerrstatus)
46419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYBACKUP(Token, Value)					\
46519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectdo								\
46619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yychar == YYEMPTY && yylen == 1)				\
46719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {								\
46819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yychar = (Token);						\
46919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yylval = (Value);						\
47019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yychar1 = YYTRANSLATE (yychar);				\
47119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYPOPSTACK;						\
47219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      goto yybackup;						\
47319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }								\
47419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  else								\
47519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    { 								\
47619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yyerror ("syntax error: cannot back up");			\
47719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYERROR;							\
47819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }								\
47919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectwhile (0)
48019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
48119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYTERROR	1
48219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YYERRCODE	256
48319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
48419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
48519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYLLOC_DEFAULT -- Compute the default location (before the actions
48619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   are run).
48719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
48819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
48919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   first token.  By default, to implement support for ranges, extend
49019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   its range to the last symbol.  */
49119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
49219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifndef YYLLOC_DEFAULT
49319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYLLOC_DEFAULT(Current, Rhs, N)       	\
49419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Current.last_line   = Rhs[N].last_line;	\
49519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Current.last_column = Rhs[N].last_column;
49619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
49719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
49819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
49919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYLEX -- calling `yylex' with the right arguments.  */
50019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
50119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYPURE
50219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# if YYLSP_NEEDED
50319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  ifdef YYLEX_PARAM
50419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   define YYLEX		yylex (&yylval, &yylloc, YYLEX_PARAM)
50519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  else
50619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   define YYLEX		yylex (&yylval, &yylloc)
50719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  endif
50819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# else /* !YYLSP_NEEDED */
50919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  ifdef YYLEX_PARAM
51019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   define YYLEX		yylex (&yylval, YYLEX_PARAM)
51119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  else
51219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   define YYLEX		yylex (&yylval)
51319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  endif
51419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif /* !YYLSP_NEEDED */
51519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else /* !YYPURE */
51619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYLEX			yylex ()
51719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif /* !YYPURE */
51819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
51919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
52019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Enable debugging if requested.  */
52119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYDEBUG
52219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
52319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# ifndef YYFPRINTF
52419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
52519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYFPRINTF fprintf
52619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
52719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
52819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYDPRINTF(Args)			\
52919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectdo {						\
53019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yydebug)					\
53119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    YYFPRINTF Args;				\
53219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} while (0)
53319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Nonzero means print parse trace.  It is left uninitialized so that
53419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   multiple parsers can coexist.  */
53519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectint yydebug;
53619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else /* !YYDEBUG */
53719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYDPRINTF(Args)
53819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif /* !YYDEBUG */
53919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
54019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYINITDEPTH -- initial size of the parser's stacks.  */
54119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifndef	YYINITDEPTH
54219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYINITDEPTH 200
54319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
54419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
54519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
54619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   if the built-in stack extension method is used).
54719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
54819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Do not make this value too large; the results are undefined if
54919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
55019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   evaluated with infinite-precision integer arithmetic.  */
55119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
55219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYMAXDEPTH == 0
55319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# undef YYMAXDEPTH
55419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
55519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
55619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifndef YYMAXDEPTH
55719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYMAXDEPTH 10000
55819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
5593984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt
56019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef YYERROR_VERBOSE
56119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
56219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# ifndef yystrlen
56319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  if defined (__GLIBC__) && defined (_STRING_H)
56419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   define yystrlen strlen
56519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  else
56619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Return the length of YYSTR.  */
56719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic YYSIZE_T
56819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   if defined (__STDC__) || defined (__cplusplus)
56919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyystrlen (const char *yystr)
57019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   else
57119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyystrlen (yystr)
57219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     const char *yystr;
57319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   endif
57419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
57519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  register const char *yys = yystr;
57619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
57719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  while (*yys++ != '\0')
57819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    continue;
57919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
58019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  return yys - yystr - 1;
58119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
58219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  endif
58319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
58419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
58519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# ifndef yystpcpy
58619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
58719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   define yystpcpy stpcpy
58819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  else
58919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
59019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   YYDEST.  */
59119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic char *
59219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   if defined (__STDC__) || defined (__cplusplus)
59319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyystpcpy (char *yydest, const char *yysrc)
59419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   else
59519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyystpcpy (yydest, yysrc)
59619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     char *yydest;
59719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     const char *yysrc;
59819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#   endif
59919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
60019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  register char *yyd = yydest;
60119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  register const char *yys = yysrc;
60219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
60319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  while ((*yyd++ = *yys++) != '\0')
60419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    continue;
60519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
60619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  return yyd - 1;
60719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
60819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  endif
60919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
61019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
6113984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt
61219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 315 "/usr/local/share/bison/bison.simple"
61319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
61419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
61519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* The user can define YYPARSE_PARAM as the name of an argument to be passed
61619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   into yyparse.  The argument should have type void *.
61719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   It should actually point to an object.
61819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   Grammar actions can access the variable by casting it
61919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   to the proper pointer type.  */
62019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
62119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef YYPARSE_PARAM
62219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# if defined (__STDC__) || defined (__cplusplus)
62319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
62419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYPARSE_PARAM_DECL
62519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# else
62619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
62719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
62819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
62919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else /* !YYPARSE_PARAM */
63019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYPARSE_PARAM_ARG
63119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYPARSE_PARAM_DECL
63219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif /* !YYPARSE_PARAM */
63319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
63419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Prevent warning if -Wstrict-prototypes.  */
63519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef __GNUC__
63619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# ifdef YYPARSE_PARAM
63719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectint yyparse (void *);
63819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# else
63919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectint yyparse (void);
64019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
64119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
64219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
64319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
64419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project   variables are global, or local to YYPARSE.  */
64519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
64619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define YY_DECL_NON_LSP_VARIABLES			\
64719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* The lookahead symbol.  */				\
64819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectint yychar;						\
64919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project							\
65019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* The semantic value of the lookahead symbol. */	\
65119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectYYSTYPE yylval;						\
65219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project							\
65319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Number of parse errors so far.  */			\
65419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectint yynerrs;
65519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
65619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
65719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YY_DECL_VARIABLES			\
65819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectYY_DECL_NON_LSP_VARIABLES			\
65919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project						\
66019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Location data for the lookahead symbol.  */	\
66119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectYYLTYPE yylloc;
66219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else
66319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YY_DECL_VARIABLES			\
66419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectYY_DECL_NON_LSP_VARIABLES
66519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
66619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
66719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
66819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* If nonreentrant, generate the variables here. */
66919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
67019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if !YYPURE
67119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectYY_DECL_VARIABLES
67219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif  /* !YYPURE */
67319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
67419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectint
67519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyparse (YYPARSE_PARAM_ARG)
67619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     YYPARSE_PARAM_DECL
67719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
67819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* If reentrant, generate the variables here. */
67919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYPURE
68019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YY_DECL_VARIABLES
68119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif  /* !YYPURE */
68219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
68319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  register int yystate;
68419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  register int yyn;
68519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  int yyresult;
68619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Number of tokens to shift before error messages enabled.  */
68719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  int yyerrstatus;
68819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Lookahead token as an internal (translated) token number.  */
68919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  int yychar1 = 0;
69019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
69119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Three stacks and their tools:
69219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     `yyss': related to states,
69319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     `yyvs': related to semantic values,
69419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     `yyls': related to locations.
69519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
69619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     Refer to the stacks thru separate pointers, to allow yyoverflow
69719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     to reallocate them elsewhere.  */
69819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
69919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* The state stack. */
70019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  short	yyssa[YYINITDEPTH];
70119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  short *yyss = yyssa;
70219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  register short *yyssp;
70319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
70419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* The semantic value stack.  */
70519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYSTYPE yyvsa[YYINITDEPTH];
70619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYSTYPE *yyvs = yyvsa;
70719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  register YYSTYPE *yyvsp;
70819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
70919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
71019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* The location stack.  */
71119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYLTYPE yylsa[YYINITDEPTH];
71219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYLTYPE *yyls = yylsa;
71319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYLTYPE *yylsp;
71419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
71519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
71619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
71719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
71819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else
71919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define YYPOPSTACK   (yyvsp--, yyssp--)
72019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
72119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
72219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYSIZE_T yystacksize = YYINITDEPTH;
72319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
72419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
72519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* The variables used to return semantic value and location from the
72619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     action routines.  */
72719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYSTYPE yyval;
72819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
72919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYLTYPE yyloc;
73019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
73119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
73219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* When reducing, the number of symbols on the RHS of the reduced
73319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     rule. */
73419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  int yylen;
73519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
73619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYDPRINTF ((stderr, "Starting parse\n"));
73719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
73819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yystate = 0;
73919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyerrstatus = 0;
74019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yynerrs = 0;
74119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yychar = YYEMPTY;		/* Cause a token to be read.  */
74219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
74319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Initialize stack pointers.
74419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     Waste one element of value and location stack
74519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     so that they stay on the same level as the state stack.
74619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     The wasted elements are never initialized.  */
74719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
74819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyssp = yyss;
74919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyvsp = yyvs;
75019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
75119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yylsp = yyls;
75219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
75319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  goto yysetstate;
75419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
75519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*------------------------------------------------------------.
75619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yynewstate -- Push a new state, which is found in yystate.  |
75719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`------------------------------------------------------------*/
75819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project yynewstate:
75919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* In all cases, when you get here, the value and location stacks
76019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     have just been pushed. so pushing a state here evens the stacks.
76119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     */
76219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyssp++;
76319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
76419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project yysetstate:
76519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  *yyssp = yystate;
76619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
76719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyssp >= yyss + yystacksize - 1)
76819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
76919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      /* Get the current used size of the three stacks, in elements.  */
77019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYSIZE_T yysize = yyssp - yyss + 1;
77119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
77219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef yyoverflow
77319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      {
77419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	/* Give user a chance to reallocate the stack. Use copies of
77519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	   these so that the &'s don't force the real ones into
77619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	   memory.  */
77719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYSTYPE *yyvs1 = yyvs;
77819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	short *yyss1 = yyss;
77919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
78019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	/* Each stack pointer address is followed by the size of the
78119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	   data in use in that stack, in bytes.  */
78219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# if YYLSP_NEEDED
78319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYLTYPE *yyls1 = yyls;
78419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	/* This used to be a conditional around just the two extra args,
78519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	   but that might be undefined if yyoverflow is a macro.  */
78619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	yyoverflow ("parser stack overflow",
78719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		    &yyss1, yysize * sizeof (*yyssp),
78819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		    &yyvs1, yysize * sizeof (*yyvsp),
78919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		    &yyls1, yysize * sizeof (*yylsp),
79019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		    &yystacksize);
79119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	yyls = yyls1;
79219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# else
79319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	yyoverflow ("parser stack overflow",
79419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		    &yyss1, yysize * sizeof (*yyssp),
79519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		    &yyvs1, yysize * sizeof (*yyvsp),
79619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		    &yystacksize);
79719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
79819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	yyss = yyss1;
79919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	yyvs = yyvs1;
80019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      }
80119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else /* no yyoverflow */
80219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# ifndef YYSTACK_RELOCATE
80319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      goto yyoverflowlab;
80419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# else
80519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      /* Extend the stack our own way.  */
80619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (yystacksize >= YYMAXDEPTH)
80719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	goto yyoverflowlab;
80819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yystacksize *= 2;
80919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (yystacksize > YYMAXDEPTH)
81019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	yystacksize = YYMAXDEPTH;
81119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
81219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      {
81319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	short *yyss1 = yyss;
81419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	union yyalloc *yyptr =
81519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
81619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	if (! yyptr)
81719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  goto yyoverflowlab;
81819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYSTACK_RELOCATE (yyss);
81919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYSTACK_RELOCATE (yyvs);
82019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# if YYLSP_NEEDED
82119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYSTACK_RELOCATE (yyls);
82219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
82319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# undef YYSTACK_RELOCATE
82419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	if (yyss1 != yyssa)
82519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  YYSTACK_FREE (yyss1);
82619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      }
82719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
82819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif /* no yyoverflow */
82919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
83019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yyssp = yyss + yysize - 1;
83119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yyvsp = yyvs + yysize - 1;
83219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
83319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yylsp = yyls + yysize - 1;
83419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
83519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
83619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
83719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		  (unsigned long int) yystacksize));
83819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
83919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (yyssp >= yyss + yystacksize - 1)
84019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYABORT;
84119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
84219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
84319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
84419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
84519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  goto yybackup;
84619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
84719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
84819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*-----------.
84919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yybackup.  |
85019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`-----------*/
85119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyybackup:
85219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
85319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Do appropriate processing given the current state.  */
85419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Read a lookahead token if we need one and don't already have one.  */
85519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* yyresume: */
85619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
85719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* First try to decide what to do without reference to lookahead token.  */
85819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
85919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyn = yypact[yystate];
86019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyn == YYFLAG)
86119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    goto yydefault;
86219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
86319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Not known => get a lookahead token if don't already have one.  */
86419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
86519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* yychar is either YYEMPTY or YYEOF
86619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     or a valid token in external form.  */
86719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
86819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yychar == YYEMPTY)
86919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
87019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYDPRINTF ((stderr, "Reading a token: "));
87119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yychar = YYLEX;
87219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
87319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
87419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Convert token to internal form (in yychar1) for indexing tables with */
87519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
87619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yychar <= 0)		/* This means end of input. */
87719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
87819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yychar1 = 0;
87919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yychar = YYEOF;		/* Don't call YYLEX any more */
88019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
88119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYDPRINTF ((stderr, "Now at end of input.\n"));
88219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
88319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  else
88419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
88519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yychar1 = YYTRANSLATE (yychar);
88619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
88719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYDEBUG
88819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     /* We have to keep this `#if YYDEBUG', since we use variables
88919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	which are defined only if `YYDEBUG' is set.  */
89019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (yydebug)
89119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	{
89219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  YYFPRINTF (stderr, "Next token is %d (%s",
89319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		     yychar, yytname[yychar1]);
89419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  /* Give the individual parser a way to print the precise
89519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	     meaning of a token, for further debugging info.  */
89619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# ifdef YYPRINT
89719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  YYPRINT (stderr, yychar, yylval);
89819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# endif
89919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  YYFPRINTF (stderr, ")\n");
90019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	}
90119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
90219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
90319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
90419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyn += yychar1;
90519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
90619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    goto yydefault;
90719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
90819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyn = yytable[yyn];
90919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
91019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* yyn is what to do for this token type in this state.
91119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     Negative => reduce, -yyn is rule number.
91219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     Positive => shift, yyn is new state.
91319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       New state is final state => don't bother to shift,
91419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project       just return success.
91519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     0, or most negative number => error.  */
91619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
91719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyn < 0)
91819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
91919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (yyn == YYFLAG)
92019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	goto yyerrlab;
92119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yyn = -yyn;
92219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      goto yyreduce;
92319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
92419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  else if (yyn == 0)
92519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    goto yyerrlab;
92619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
92719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyn == YYFINAL)
92819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    YYACCEPT;
92919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
93019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Shift the lookahead token.  */
93119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
93219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	      yychar, yytname[yychar1]));
93319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
93419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Discard the token being shifted unless it is eof.  */
93519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yychar != YYEOF)
93619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    yychar = YYEMPTY;
93719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
93819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  *++yyvsp = yylval;
93919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
94019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  *++yylsp = yylloc;
94119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
94219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
94319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Count tokens shifted since error; after three, turn off error
94419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     status.  */
94519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyerrstatus)
94619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    yyerrstatus--;
94719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
94819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yystate = yyn;
94919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  goto yynewstate;
95019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
95119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
95219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*-----------------------------------------------------------.
95319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yydefault -- do the default action for the current state.  |
95419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`-----------------------------------------------------------*/
95519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyydefault:
95619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyn = yydefact[yystate];
95719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyn == 0)
95819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    goto yyerrlab;
95919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  goto yyreduce;
96019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
96119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
96219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*-----------------------------.
96319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yyreduce -- Do a reduction.  |
96419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`-----------------------------*/
96519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyreduce:
96619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* yyn is the number of a rule to reduce with.  */
96719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yylen = yyr2[yyn];
96819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
96919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* If YYLEN is nonzero, implement the default value of the action:
97019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     `$$ = $1'.
97119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
97219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     Otherwise, the following line sets YYVAL to the semantic value of
97319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     the lookahead token.  This behavior is undocumented and Bison
97419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     users should not rely upon it.  Assigning to YYVAL
97519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     unconditionally makes the parser a bit smaller, and it avoids a
97619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     GCC warning that YYVAL may be used uninitialized.  */
97719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyval = yyvsp[1-yylen];
97819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
97919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
98019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Similarly for the default location.  Let the user run additional
98119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     commands if for instance locations are ranges.  */
98219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyloc = yylsp[1-yylen];
98319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
98419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
98519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
98619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYDEBUG
98719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* We have to keep this `#if YYDEBUG', since we use variables which
98819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     are defined only if `YYDEBUG' is set.  */
98919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yydebug)
99019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
99119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      int yyi;
99219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
99319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
99419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		 yyn, yyrline[yyn]);
99519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
99619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      /* Print the symbols being reduced, and their result.  */
99719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
99819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
99919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
100019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
100119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
100219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
100319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  switch (yyn) {
100419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
100519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 1:
100619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 151 "plural.y"
100719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
100819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    if (yyvsp[0].exp == NULL)
100919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	      YYABORT;
101019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    ((struct parse_args *) arg)->res = yyvsp[0].exp;
101119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
101219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
101319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 2:
101419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 159 "plural.y"
101519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
101619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
101719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
101819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
101919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 3:
102019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 163 "plural.y"
102119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
102219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
102319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
102419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
102519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 4:
102619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 167 "plural.y"
102719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
102819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
102919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
103019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
103119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 5:
103219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 171 "plural.y"
103319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
103419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
103519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
103619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
103719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 6:
103819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 175 "plural.y"
103919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
104019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
104119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
104219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
104319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 7:
104419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 179 "plural.y"
104519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
104619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
104719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
104819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
104919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 8:
105019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 183 "plural.y"
105119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
105219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
105319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
105419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
105519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 9:
105619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 187 "plural.y"
105719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
105819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
105919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
106019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
106119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 10:
106219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 191 "plural.y"
106319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
106419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyval.exp = new_exp_0 (var);
106519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
106619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
106719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 11:
106819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 195 "plural.y"
106919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
107019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    if ((yyval.exp = new_exp_0 (num)) != NULL)
107119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	      yyval.exp->val.num = yyvsp[0].num;
107219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
107319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
107419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectcase 12:
107519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 200 "plural.y"
107619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
107719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyval.exp = yyvsp[-1].exp;
107819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
107919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    break;
108019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
108119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
108219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 705 "/usr/local/share/bison/bison.simple"
108319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
10843984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt
108519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyvsp -= yylen;
108619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyssp -= yylen;
108719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
108819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yylsp -= yylen;
108919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
109019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
109119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYDEBUG
109219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yydebug)
109319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
109419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      short *yyssp1 = yyss - 1;
109519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYFPRINTF (stderr, "state stack now");
109619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      while (yyssp1 != yyssp)
109719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYFPRINTF (stderr, " %d", *++yyssp1);
109819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYFPRINTF (stderr, "\n");
109919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
110019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
110119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
110219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  *++yyvsp = yyval;
110319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
110419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  *++yylsp = yyloc;
110519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
110619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
110719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Now `shift' the result of the reduction.  Determine what state
110819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     that goes to, based on the state we popped back to and the rule
110919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     number reduced by.  */
111019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
111119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyn = yyr1[yyn];
111219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
111319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
111419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
111519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    yystate = yytable[yystate];
111619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  else
111719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    yystate = yydefgoto[yyn - YYNTBASE];
111819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
111919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  goto yynewstate;
112019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
112119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
112219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*------------------------------------.
112319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yyerrlab -- here on detecting error |
112419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`------------------------------------*/
112519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyerrlab:
112619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* If not already recovering from an error, report this error.  */
112719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (!yyerrstatus)
112819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
112919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      ++yynerrs;
113019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
113119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef YYERROR_VERBOSE
113219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yyn = yypact[yystate];
113319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
113419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (yyn > YYFLAG && yyn < YYLAST)
113519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	{
113619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  YYSIZE_T yysize = 0;
113719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  char *yymsg;
113819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  int yyx, yycount;
113919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
114019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  yycount = 0;
114119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  /* Start YYX at -YYN if negative to avoid negative indexes in
114219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	     YYCHECK.  */
114319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  for (yyx = yyn < 0 ? -yyn : 0;
114419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
114519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    if (yycheck[yyx + yyn] == yyx)
114619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
114719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  yysize += yystrlen ("parse error, unexpected ") + 1;
114819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
114919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  yymsg = (char *) YYSTACK_ALLOC (yysize);
115019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  if (yymsg != 0)
115119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    {
115219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	      char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
115319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	      yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
115419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
115519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	      if (yycount < 5)
115619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		{
115719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		  yycount = 0;
115819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		  for (yyx = yyn < 0 ? -yyn : 0;
115919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		       yyx < (int) (sizeof (yytname) / sizeof (char *));
116019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		       yyx++)
116119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		    if (yycheck[yyx + yyn] == yyx)
116219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		      {
116319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project			const char *yyq = ! yycount ? ", expecting " : " or ";
116419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project			yyp = yystpcpy (yyp, yyq);
116519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project			yyp = yystpcpy (yyp, yytname[yyx]);
116619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project			yycount++;
116719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		      }
116819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		}
116919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	      yyerror (yymsg);
117019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	      YYSTACK_FREE (yymsg);
117119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    }
117219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  else
117319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    yyerror ("parse error; also virtual memory exhausted");
117419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	}
117519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      else
117619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif /* defined (YYERROR_VERBOSE) */
117719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	yyerror ("parse error");
117819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
117919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  goto yyerrlab1;
118019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
118119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
118219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*--------------------------------------------------.
118319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yyerrlab1 -- error raised explicitly by an action |
118419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`--------------------------------------------------*/
118519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyerrlab1:
118619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyerrstatus == 3)
118719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
118819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      /* If just tried and failed to reuse lookahead token after an
118919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	 error, discard it.  */
119019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
119119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      /* return failure if at end of input */
119219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (yychar == YYEOF)
119319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYABORT;
119419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
119519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project		  yychar, yytname[yychar1]));
119619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yychar = YYEMPTY;
119719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
119819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
119919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Else will try to reuse lookahead token after shifting the error
120019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     token.  */
120119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
120219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyerrstatus = 3;		/* Each real token shifted decrements this */
120319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
120419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  goto yyerrhandle;
120519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
120619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
120719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*-------------------------------------------------------------------.
120819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yyerrdefault -- current state does not do anything special for the |
120919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| error token.                                                       |
121019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`-------------------------------------------------------------------*/
121119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyerrdefault:
121219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if 0
121319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* This is wrong; only states that explicitly want error tokens
121419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project     should shift them.  */
121519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
121619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* If its default is to accept any token, ok.  Otherwise pop it.  */
121719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyn = yydefact[yystate];
121819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyn)
121919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    goto yydefault;
122019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
122119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
122219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
122319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*---------------------------------------------------------------.
122419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yyerrpop -- pop the current state because it cannot handle the |
122519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| error token                                                    |
122619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`---------------------------------------------------------------*/
122719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyerrpop:
122819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyssp == yyss)
122919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    YYABORT;
123019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyvsp--;
123119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yystate = *--yyssp;
123219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
123319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yylsp--;
123419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
123519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
123619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYDEBUG
123719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yydebug)
123819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
123919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      short *yyssp1 = yyss - 1;
124019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYFPRINTF (stderr, "Error: state stack now");
124119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      while (yyssp1 != yyssp)
124219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	YYFPRINTF (stderr, " %d", *++yyssp1);
124319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      YYFPRINTF (stderr, "\n");
124419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
124519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
124619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
124719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*--------------.
124819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yyerrhandle.  |
124919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`--------------*/
125019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyerrhandle:
125119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyn = yypact[yystate];
125219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyn == YYFLAG)
125319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    goto yyerrdefault;
125419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
125519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyn += YYTERROR;
125619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
125719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    goto yyerrdefault;
125819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
125919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyn = yytable[yyn];
126019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyn < 0)
126119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
126219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (yyn == YYFLAG)
126319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	goto yyerrpop;
126419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      yyn = -yyn;
126519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      goto yyreduce;
126619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
126719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  else if (yyn == 0)
126819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    goto yyerrpop;
126919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
127019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyn == YYFINAL)
127119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    YYACCEPT;
127219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
127319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  YYDPRINTF ((stderr, "Shifting error token, "));
127419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
127519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  *++yyvsp = yylval;
127619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYLSP_NEEDED
127719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  *++yylsp = yylloc;
127819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
127919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
128019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yystate = yyn;
128119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  goto yynewstate;
128219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
128319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
128419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*-------------------------------------.
128519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yyacceptlab -- YYACCEPT comes here.  |
128619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`-------------------------------------*/
128719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyacceptlab:
128819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyresult = 0;
128919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  goto yyreturn;
129019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
129119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*-----------------------------------.
129219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yyabortlab -- YYABORT comes here.  |
129319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`-----------------------------------*/
129419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyabortlab:
129519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyresult = 1;
129619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  goto yyreturn;
129719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
129819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*---------------------------------------------.
129919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project| yyoverflowab -- parser overflow comes here.  |
130019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project`---------------------------------------------*/
130119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyoverflowlab:
130219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyerror ("parser stack overflow");
130319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  yyresult = 2;
130419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Fall through.  */
130519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
130619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyreturn:
130719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifndef yyoverflow
130819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (yyss != yyssa)
130919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    YYSTACK_FREE (yyss);
131019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
131119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  return yyresult;
131219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
131319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#line 205 "plural.y"
131419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
131519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
131619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectvoid
131719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectinternal_function
131819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectFREE_EXPRESSION (struct expression *exp)
131919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
132019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  if (exp == NULL)
132119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    return;
132219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
132319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Handle the recursive case.  */
132419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  switch (exp->nargs)
132519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
132619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case 3:
132719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      FREE_EXPRESSION (exp->val.args[2]);
132819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      /* FALLTHROUGH */
132919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case 2:
133019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      FREE_EXPRESSION (exp->val.args[1]);
133119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      /* FALLTHROUGH */
133219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case 1:
133319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      FREE_EXPRESSION (exp->val.args[0]);
133419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      /* FALLTHROUGH */
133519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    default:
133619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
133719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
133819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
133919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  free (exp);
134019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
134119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
134219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
134319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic int
134419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyylex (YYSTYPE *lval, const char **pexp)
134519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
134619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  const char *exp = *pexp;
134719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  int result;
134819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
134919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  while (1)
135019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
135119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (exp[0] == '\0')
135219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	{
135319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  *pexp = exp;
135419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  return YYEOF;
135519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	}
135619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
135719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (exp[0] != ' ' && exp[0] != '\t')
135819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	break;
135919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
136019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      ++exp;
136119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
136219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
136319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  result = *exp++;
136419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  switch (result)
136519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    {
136619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '0': case '1': case '2': case '3': case '4':
136719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '5': case '6': case '7': case '8': case '9':
136819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      {
136919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	unsigned long int n = result - '0';
137019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	while (exp[0] >= '0' && exp[0] <= '9')
137119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  {
137219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    n *= 10;
137319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    n += exp[0] - '0';
137419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	    ++exp;
137519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  }
137619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	lval->num = n;
137719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	result = NUMBER;
137819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      }
137919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
138019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
138119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '=':
138219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (exp[0] == '=')
138319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	{
138419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  ++exp;
138519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  lval->op = equal;
138619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  result = EQUOP2;
138719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	}
138819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      else
138919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	result = YYERRCODE;
139019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
139119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
139219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '!':
139319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (exp[0] == '=')
139419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	{
139519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  ++exp;
139619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  lval->op = not_equal;
139719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  result = EQUOP2;
139819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	}
139919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
140019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
140119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '&':
140219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '|':
140319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (exp[0] == result)
140419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	++exp;
140519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      else
140619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	result = YYERRCODE;
140719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
140819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
140919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '<':
141019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (exp[0] == '=')
141119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	{
141219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  ++exp;
141319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  lval->op = less_or_equal;
141419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	}
141519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      else
141619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	lval->op = less_than;
141719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      result = CMPOP2;
141819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
141919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
142019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '>':
142119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      if (exp[0] == '=')
142219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	{
142319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  ++exp;
142419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	  lval->op = greater_or_equal;
142519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	}
142619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      else
142719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	lval->op = greater_than;
142819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      result = CMPOP2;
142919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
143019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
143119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '*':
143219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      lval->op = mult;
143319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      result = MULOP2;
143419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
143519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
143619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '/':
143719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      lval->op = divide;
143819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      result = MULOP2;
143919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
144019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
144119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '%':
144219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      lval->op = module;
144319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      result = MULOP2;
144419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
144519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
144619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '+':
144719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      lval->op = plus;
144819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      result = ADDOP2;
144919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
145019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
145119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '-':
145219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      lval->op = minus;
145319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      result = ADDOP2;
145419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
145519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
145619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case 'n':
145719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '?':
145819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case ':':
145919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '(':
146019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case ')':
146119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      /* Nothing, just return the character.  */
146219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
146319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
146419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case ';':
146519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '\n':
146619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    case '\0':
146719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      /* Be safe and let the user call this function again.  */
146819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      --exp;
146919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      result = YYEOF;
147019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
147119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
147219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    default:
147319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      result = YYERRCODE;
147419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if YYDEBUG != 0
147519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      --exp;
147619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
147719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project      break;
147819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project    }
147919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
148019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  *pexp = exp;
148119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
148219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  return result;
148319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
148419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
148519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
148619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic void
148719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectyyerror (const char *str)
148819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{
148919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project  /* Do nothing.  We don't print error messages here.  */
149019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project}
1491