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