1f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo/* A Bison parser, made by GNU Bison 2.7.1.  */
204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
34b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org/* Bison implementation for Yacc-like parsers in C
404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
5f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   This program is free software: you can redistribute it and/or modify
804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   it under the terms of the GNU General Public License as published by
904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   the Free Software Foundation, either version 3 of the License, or
1004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   (at your option) any later version.
1104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   This program is distributed in the hope that it will be useful,
1304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   but WITHOUT ANY WARRANTY; without even the implied warranty of
1404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   GNU General Public License for more details.
1604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   You should have received a copy of the GNU General Public License
1804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
1904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
2004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* As a special exception, you may create a larger work that contains
2104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   part or all of the Bison parser skeleton and distribute that work
2204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   under terms of your choice, so long as that work isn't itself a
2304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   parser generator using the skeleton or a modified version thereof
2404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   as a parser skeleton.  Alternatively, if you modify or redistribute
2504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   the parser skeleton itself, you may (at your option) remove this
2604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   special exception, which will cause the skeleton and the resulting
2704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   Bison output files to be licensed under the GNU General Public
2804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   License without this special exception.
2904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
3004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   This special exception was added by the Free Software Foundation in
3104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   version 2.2 of Bison.  */
3204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
3304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* C LALR(1) parser skeleton written by Richard Stallman, by
3404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   simplifying the original so-called "semantic" parser.  */
3504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
3604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* All symbols defined below should begin with yy or YY, to avoid
3704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   infringing on user name space.  This should be done even for local
3804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   variables, as they might otherwise be expanded by user macros.
3904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   There are some unavoidable exceptions within include files to
4004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   define necessary library symbols; they are noted "INFRINGES ON
4104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   USER NAME SPACE" below.  */
4204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
4304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Identify Bison output.  */
4404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYBISON 1
4504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
4604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Bison version.  */
47f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo#define YYBISON_VERSION "2.7.1"
4804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
4904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Skeleton name.  */
5004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYSKELETON_NAME "yacc.c"
5104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
5204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Pure parsers.  */
5304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYPURE 1
5404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
5504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Push parsers.  */
5604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYPUSH 0
5704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
5804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Pull parsers.  */
5904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYPULL 1
6004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
6104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
6204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Substitute the variable and function names.  */
6304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define yyparse         ppparse
6404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define yylex           pplex
6504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define yyerror         pperror
6604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define yylval          pplval
6704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define yychar          ppchar
6804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define yydebug         ppdebug
6904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define yynerrs         ppnerrs
7004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
7104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Copy the first part of user declarations.  */
7204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
7304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
7404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org//
7504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
7604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org// Use of this source code is governed by a BSD-style license that can be
7704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org// found in the LICENSE file.
7804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org//
7904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
8004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org// This file is auto-generated by generate_parser.sh. DO NOT EDIT!
8104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
8204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if defined(__GNUC__)
83c6b3b3c74532d218e8d6240ae58bdbc2a2af40admaxvujovic@gmail.com// Triggered by the auto-generated pplval variable.
84eb68fd0ebb8623e28b8b777fd8c501bdb4f0d179shannon.woods@transgaming.com#if !defined(__clang__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
85b3077d086b365b1d54c3d755df19c6f8f349a562daniel@transgaming.com#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
86eb68fd0ebb8623e28b8b777fd8c501bdb4f0d179shannon.woods@transgaming.com#else
87eb68fd0ebb8623e28b8b777fd8c501bdb4f0d179shannon.woods@transgaming.com#pragma GCC diagnostic ignored "-Wuninitialized"
88e36fddfc185c779f5c6408eb78bfa78d73083fe7shannon.woods@transgaming.com#endif
8904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#elif defined(_MSC_VER)
9004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#pragma warning(disable: 4065 4701)
9104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
9204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
9304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#include "ExpressionParser.h"
9404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
95a738f085a9d1ce14d7154b679f4600f2f80e846bJamie Madill#if defined(_MSC_VER)
96d7f2135fcc5b3cbe0a50205fb07159cd97c66886Jamie Madill#include <malloc.h>
97a738f085a9d1ce14d7154b679f4600f2f80e846bJamie Madill#else
98a738f085a9d1ce14d7154b679f4600f2f80e846bJamie Madill#include <stdlib.h>
99a738f085a9d1ce14d7154b679f4600f2f80e846bJamie Madill#endif
100a738f085a9d1ce14d7154b679f4600f2f80e846bJamie Madill
10104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#include <cassert>
10204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#include <sstream>
10304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
104b3077d086b365b1d54c3d755df19c6f8f349a562daniel@transgaming.com#include "DiagnosticsBase.h"
10504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#include "Lexer.h"
10604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#include "Token.h"
10704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
108d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.org#if defined(_MSC_VER)
109d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.orgtypedef __int64 YYSTYPE;
110d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.org#else
111d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.org#include <stdint.h>
112d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.orgtypedef intmax_t YYSTYPE;
113d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.org#endif  // _MSC_VER
114b3077d086b365b1d54c3d755df19c6f8f349a562daniel@transgaming.com#define YYENABLE_NLS 0
115b3077d086b365b1d54c3d755df19c6f8f349a562daniel@transgaming.com#define YYLTYPE_IS_TRIVIAL 1
116d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.org#define YYSTYPE_IS_TRIVIAL 1
117d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.org#define YYSTYPE_IS_DECLARED 1
118d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.org
11904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgnamespace {
12004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstruct Context
12104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
1222c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org    pp::Diagnostics* diagnostics;
12304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    pp::Lexer* lexer;
12404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    pp::Token* token;
12504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int* result;
12604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
12704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}  // namespace
12804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
12904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
130d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.orgstatic int yylex(YYSTYPE* lvalp, Context* context);
13104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void yyerror(Context* context, const char* reason);
13204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
13304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
13404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1354b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# ifndef YY_NULL
1364b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#  if defined __cplusplus && 201103L <= __cplusplus
1374b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#   define YY_NULL nullptr
1384b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#  else
1394b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#   define YY_NULL 0
1404b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#  endif
1414b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# endif
14204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
14304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Enabling verbose error messages.  */
14404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifdef YYERROR_VERBOSE
14504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# undef YYERROR_VERBOSE
14604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYERROR_VERBOSE 1
14704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
14804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYERROR_VERBOSE 0
14904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
15004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
15104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1524b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org/* Enabling traces.  */
1534b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#ifndef YYDEBUG
1544b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YYDEBUG 0
1554b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#endif
1564b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#if YYDEBUG
1574b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.orgextern int ppdebug;
1584b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#endif
15904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
16004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Tokens.  */
16104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifndef YYTOKENTYPE
16204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYTOKENTYPE
16304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   /* Put the tokens into the symbol table, so that GDB and other debuggers
16404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      know about them.  */
16504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   enum yytokentype {
166e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com     TOK_CONST_INT = 258,
167e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com     TOK_OP_OR = 259,
168e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com     TOK_OP_AND = 260,
169e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com     TOK_OP_NE = 261,
170e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com     TOK_OP_EQ = 262,
171e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com     TOK_OP_GE = 263,
172e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com     TOK_OP_LE = 264,
173e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com     TOK_OP_RIGHT = 265,
174e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com     TOK_OP_LEFT = 266,
175e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com     TOK_UNARY = 267
17604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   };
17704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
17804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
17904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
18004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
18104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgtypedef int YYSTYPE;
18204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYSTYPE_IS_TRIVIAL 1
18304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define yystype YYSTYPE /* obsolescent; will be withdrawn */
18404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYSTYPE_IS_DECLARED 1
18504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
18604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
18704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1884b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#ifdef YYPARSE_PARAM
1894b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#if defined __STDC__ || defined __cplusplus
1904b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.orgint ppparse (void *YYPARSE_PARAM);
1914b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#else
1924b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.orgint ppparse ();
1934b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#endif
1944b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#else /* ! YYPARSE_PARAM */
1954b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#if defined __STDC__ || defined __cplusplus
1964b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.orgint ppparse (Context *context);
1974b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#else
1984b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.orgint ppparse ();
1994b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#endif
2004b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#endif /* ! YYPARSE_PARAM */
2014b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
2024b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
2034b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
20404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Copy the second part of user declarations.  */
20504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
20604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
20704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
20804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifdef short
20904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# undef short
21004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
21104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
21204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifdef YYTYPE_UINT8
21304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgtypedef YYTYPE_UINT8 yytype_uint8;
21404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
21504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgtypedef unsigned char yytype_uint8;
21604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
21704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
21804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifdef YYTYPE_INT8
21904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgtypedef YYTYPE_INT8 yytype_int8;
22004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#elif (defined __STDC__ || defined __C99__FUNC__ \
22104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
22204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgtypedef signed char yytype_int8;
22304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
22404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgtypedef short int yytype_int8;
22504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
22604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
22704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifdef YYTYPE_UINT16
22804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgtypedef YYTYPE_UINT16 yytype_uint16;
22904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
23004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgtypedef unsigned short int yytype_uint16;
23104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
23204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
23304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifdef YYTYPE_INT16
23404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgtypedef YYTYPE_INT16 yytype_int16;
23504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
23604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgtypedef short int yytype_int16;
23704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
23804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
23904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifndef YYSIZE_T
24004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifdef __SIZE_TYPE__
24104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  define YYSIZE_T __SIZE_TYPE__
24204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# elif defined size_t
24304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  define YYSIZE_T size_t
24404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
24504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
24604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
24704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  define YYSIZE_T size_t
24804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# else
24904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  define YYSIZE_T unsigned int
25004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
25104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
25204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
25304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
25404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
25504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifndef YY_
25604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# if defined YYENABLE_NLS && YYENABLE_NLS
25704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  if ENABLE_NLS
25804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
2594b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
26004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  endif
26104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
26204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifndef YY_
2634b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#  define YY_(Msgid) Msgid
26404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
26504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
26604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
267f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo#ifndef __attribute__
268f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo/* This feature is available in gcc versions 2.5 and later.  */
269f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo# if (! defined __GNUC__ || __GNUC__ < 2 \
270f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
271f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo#  define __attribute__(Spec) /* empty */
272f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo# endif
273f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo#endif
274f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo
27504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Suppress unused-variable warnings by "using" E.  */
27604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if ! defined lint || defined __GNUC__
2774b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YYUSE(E) ((void) (E))
27804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
2794b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YYUSE(E) /* empty */
28004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
28104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
282f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo
28304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Identity function, used to suppress warnings about constant conditions.  */
28404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifndef lint
2854b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YYID(N) (N)
28604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
28704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
28804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
28904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic int
29004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgYYID (int yyi)
29104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
29204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic int
29304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgYYID (yyi)
29404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int yyi;
29504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
29604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
29704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  return yyi;
29804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
29904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
30004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
30104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if ! defined yyoverflow || YYERROR_VERBOSE
30204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
30304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* The parser invokes alloca or malloc; define the necessary symbols.  */
30404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
30504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifdef YYSTACK_USE_ALLOCA
30604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  if YYSTACK_USE_ALLOCA
30704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   ifdef __GNUC__
30804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#    define YYSTACK_ALLOC __builtin_alloca
30904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   elif defined __BUILTIN_VA_ARG_INCR
31004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
31104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   elif defined _AIX
31204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#    define YYSTACK_ALLOC __alloca
31304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   elif defined _MSC_VER
31404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
31504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#    define alloca _alloca
31604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   else
31704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#    define YYSTACK_ALLOC alloca
3184b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
31904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
32004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
3214b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
3224b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#     ifndef EXIT_SUCCESS
3234b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#      define EXIT_SUCCESS 0
32404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#     endif
32504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#    endif
32604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   endif
32704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  endif
32804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
32904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
33004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifdef YYSTACK_ALLOC
33104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   /* Pacify GCC's `empty if-body' warning.  */
33204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
33304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  ifndef YYSTACK_ALLOC_MAXIMUM
33404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    /* The OS might guarantee only one guard page at the bottom of the stack,
33504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       and a page size can be as small as 4096 bytes.  So we cannot safely
33604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
33704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       to allow for a few compiler-allocated temporary stack slots.  */
33804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
33904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  endif
34004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# else
34104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  define YYSTACK_ALLOC YYMALLOC
34204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  define YYSTACK_FREE YYFREE
34304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  ifndef YYSTACK_ALLOC_MAXIMUM
34404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
34504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  endif
3464b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
34704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       && ! ((defined YYMALLOC || defined malloc) \
34804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	     && (defined YYFREE || defined free)))
34904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
3504b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#   ifndef EXIT_SUCCESS
3514b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#    define EXIT_SUCCESS 0
35204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   endif
35304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  endif
35404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  ifndef YYMALLOC
35504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   define YYMALLOC malloc
3564b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
35704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
35804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
35904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   endif
36004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  endif
36104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  ifndef YYFREE
36204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   define YYFREE free
3634b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
36404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
36504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgvoid free (void *); /* INFRINGES ON USER NAME SPACE */
36604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   endif
36704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  endif
36804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
36904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
37004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
37104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
37204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (! defined yyoverflow \
37304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     && (! defined __cplusplus \
37404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
37504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
37604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* A type that is properly aligned for any stack member.  */
37704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgunion yyalloc
37804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
37904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yytype_int16 yyss_alloc;
38004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYSTYPE yyvs_alloc;
38104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
38204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
38304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* The size of the maximum gap between one aligned stack and the next.  */
38404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
38504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
38604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* The size of an array large to enough to hold all stacks, each with
38704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   N elements.  */
38804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYSTACK_BYTES(N) \
38904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
39004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      + YYSTACK_GAP_MAXIMUM)
39104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
3924b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YYCOPY_NEEDED 1
39304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
39404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Relocate STACK from its old location to the new one.  The
39504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   local variables YYSIZE and YYSTACKSIZE give the old and new number of
39604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   elements in the stack, and YYPTR gives the new location of the
39704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   stack.  Advance YYPTR to a properly aligned location for the next
39804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   stack.  */
39904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
40004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    do									\
40104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      {									\
40204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	YYSIZE_T yynewbytes;						\
40304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
40404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	Stack = &yyptr->Stack_alloc;					\
40504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
40604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	yyptr += yynewbytes / sizeof (*yyptr);				\
40704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      }									\
40804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    while (YYID (0))
40904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
41004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
41104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
4124b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
4134b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org/* Copy COUNT objects from SRC to DST.  The source and destination do
4144b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org   not overlap.  */
4154b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# ifndef YYCOPY
4164b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#  if defined __GNUC__ && 1 < __GNUC__
4174b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#   define YYCOPY(Dst, Src, Count) \
4184b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
4194b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#  else
4204b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#   define YYCOPY(Dst, Src, Count)              \
4214b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      do                                        \
4224b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        {                                       \
4234b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          YYSIZE_T yyi;                         \
4244b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          for (yyi = 0; yyi < (Count); yyi++)   \
4254b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org            (Dst)[yyi] = (Src)[yyi];            \
4264b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        }                                       \
4274b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      while (YYID (0))
4284b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#  endif
4294b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# endif
4304b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#endif /* !YYCOPY_NEEDED */
4314b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
43204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYFINAL -- State number of the termination state.  */
43304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYFINAL  14
43404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYLAST -- Last index in YYTABLE.  */
43504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYLAST   175
43604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
43704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYNTOKENS -- Number of terminals.  */
43804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYNTOKENS  27
43904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYNNTS -- Number of nonterminals.  */
44004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYNNTS  3
44104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYNRULES -- Number of rules.  */
44204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYNRULES  26
44304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYNRULES -- Number of states.  */
44404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYNSTATES  52
44504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
44604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
44704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYUNDEFTOK  2
44804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYMAXUTOK   267
44904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
45004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYTRANSLATE(YYX)						\
45104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
45204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
45304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
45404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_uint8 yytranslate[] =
45504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
45604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
45704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
45804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
45904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,    23,     2,     2,     2,    21,     8,     2,
46004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      25,    26,    19,    17,     2,    18,     2,    20,     2,     2,
46104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
46204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      11,     2,    12,     2,     2,     2,     2,     2,     2,     2,
46304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
46404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
46504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     7,     2,     2,     2,     2,     2,
46604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
46704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
46804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     6,     2,    24,     2,     2,     2,
46904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
48004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
48104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
48204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       5,     9,    10,    13,    14,    15,    16,    22
48304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
48404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
48504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if YYDEBUG
48604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
48704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   YYRHS.  */
48804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_uint8 yyprhs[] =
48904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
49004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       0,     0,     3,     5,     7,    11,    15,    19,    23,    27,
49104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      31,    35,    39,    43,    47,    51,    55,    59,    63,    67,
49204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      71,    75,    79,    82,    85,    88,    91
49304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
49404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
49504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
49604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_int8 yyrhs[] =
49704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
49804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      28,     0,    -1,    29,    -1,     3,    -1,    29,     4,    29,
49904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      -1,    29,     5,    29,    -1,    29,     6,    29,    -1,    29,
50004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       7,    29,    -1,    29,     8,    29,    -1,    29,     9,    29,
50104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      -1,    29,    10,    29,    -1,    29,    13,    29,    -1,    29,
50204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      14,    29,    -1,    29,    12,    29,    -1,    29,    11,    29,
50304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      -1,    29,    15,    29,    -1,    29,    16,    29,    -1,    29,
50404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      18,    29,    -1,    29,    17,    29,    -1,    29,    21,    29,
50504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      -1,    29,    20,    29,    -1,    29,    19,    29,    -1,    23,
50604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      29,    -1,    24,    29,    -1,    18,    29,    -1,    17,    29,
50704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      -1,    25,    29,    26,    -1
50804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
50904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
51004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
51104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_uint8 yyrline[] =
51204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
513c9f140d884162f23eaa1486953ca03e7758e1c7eJamie Madill       0,    97,    97,   104,   105,   108,   111,   114,   117,   120,
514c9f140d884162f23eaa1486953ca03e7758e1c7eJamie Madill     123,   126,   129,   132,   135,   138,   141,   144,   147,   150,
515c9f140d884162f23eaa1486953ca03e7758e1c7eJamie Madill     163,   176,   179,   182,   185,   188,   191
51604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
51704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
51804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
5194b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#if YYDEBUG || YYERROR_VERBOSE || 0
52004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
52104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
52204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const char *const yytname[] =
52304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
524e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com  "$end", "error", "$undefined", "TOK_CONST_INT", "TOK_OP_OR",
525e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com  "TOK_OP_AND", "'|'", "'^'", "'&'", "TOK_OP_NE", "TOK_OP_EQ", "'<'",
526e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com  "'>'", "TOK_OP_GE", "TOK_OP_LE", "TOK_OP_RIGHT", "TOK_OP_LEFT", "'+'",
527e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com  "'-'", "'*'", "'/'", "'%'", "TOK_UNARY", "'!'", "'~'", "'('", "')'",
5284b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  "$accept", "input", "expression", YY_NULL
52904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
53004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
53104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
53204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifdef YYPRINT
53304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
53404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   token YYLEX-NUM.  */
53504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_uint16 yytoknum[] =
53604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
53704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       0,   256,   257,   258,   259,   260,   124,    94,    38,   261,
53804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     262,    60,    62,   263,   264,   265,   266,    43,    45,    42,
53904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      47,    37,   267,    33,   126,    40,    41
54004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
54104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
54204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
54304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
54404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_uint8 yyr1[] =
54504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
54604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       0,    27,    28,    29,    29,    29,    29,    29,    29,    29,
54704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      29,    29,    29,    29,    29,    29,    29,    29,    29,    29,
54804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      29,    29,    29,    29,    29,    29,    29
54904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
55004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
55104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
55204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_uint8 yyr2[] =
55304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
55404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       0,     2,     1,     1,     3,     3,     3,     3,     3,     3,
55504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
55604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       3,     3,     2,     2,     2,     2,     3
55704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
55804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
5594b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
5604b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org   Performed when YYTABLE doesn't specify something else to do.  Zero
56104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   means the default is an error.  */
56204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_uint8 yydefact[] =
56304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
56404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       0,     3,     0,     0,     0,     0,     0,     0,     2,    25,
56504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      24,    22,    23,     0,     1,     0,     0,     0,     0,     0,
56604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
56704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       0,     0,     0,    26,     4,     5,     6,     7,     8,     9,
56804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      10,    14,    13,    11,    12,    15,    16,    18,    17,    21,
56904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      20,    19
57004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
57104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
57204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYDEFGOTO[NTERM-NUM].  */
57304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_int8 yydefgoto[] =
57404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
57504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      -1,     7,     8
57604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
57704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
57804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
57904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   STATE-NUM.  */
58004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYPACT_NINF -11
58104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_int16 yypact[] =
58204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
58304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      46,   -11,    46,    46,    46,    46,    46,    12,    68,   -11,
58404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     -11,   -11,   -11,    27,   -11,    46,    46,    46,    46,    46,
58504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      46,    46,    46,    46,    46,    46,    46,    46,    46,    46,
58604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      46,    46,    46,   -11,    85,   101,   116,   130,   143,   154,
58704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     154,   -10,   -10,   -10,   -10,    37,    37,    31,    31,   -11,
58804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     -11,   -11
58904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
59004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
59104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYPGOTO[NTERM-NUM].  */
59204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_int8 yypgoto[] =
59304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
59404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     -11,   -11,    -2
59504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
59604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
59704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
59804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   positive, shift that token.  If negative, reduce the rule which
5994b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org   number is the opposite.  If YYTABLE_NINF, syntax error.  */
60004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYTABLE_NINF -1
60104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_uint8 yytable[] =
60204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
60304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       9,    10,    11,    12,    13,    26,    27,    28,    29,    30,
60404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      31,    32,    14,    34,    35,    36,    37,    38,    39,    40,
60504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
60604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      51,    15,    16,    17,    18,    19,    20,    21,    22,    23,
60704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      24,    25,    26,    27,    28,    29,    30,    31,    32,     1,
60804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      30,    31,    32,    33,    28,    29,    30,    31,    32,     0,
60904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       0,     0,     0,     2,     3,     0,     0,     0,     0,     4,
61004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       5,     6,    15,    16,    17,    18,    19,    20,    21,    22,
61104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
61204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
61304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      26,    27,    28,    29,    30,    31,    32,    17,    18,    19,
61404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
61504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      30,    31,    32,    18,    19,    20,    21,    22,    23,    24,
61604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      25,    26,    27,    28,    29,    30,    31,    32,    19,    20,
61704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
61804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      31,    32,    20,    21,    22,    23,    24,    25,    26,    27,
61904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      28,    29,    30,    31,    32,    22,    23,    24,    25,    26,
62004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      27,    28,    29,    30,    31,    32
62104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
62204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
6234b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#define yypact_value_is_default(Yystate) \
6244b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  (!!((Yystate) == (-11)))
6254b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
6264b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#define yytable_value_is_error(Yytable_value) \
6274b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  YYID (0)
6284b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
62904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_int8 yycheck[] =
63004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
63104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       2,     3,     4,     5,     6,    15,    16,    17,    18,    19,
63204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      20,    21,     0,    15,    16,    17,    18,    19,    20,    21,
63304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
63404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      32,     4,     5,     6,     7,     8,     9,    10,    11,    12,
63504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      13,    14,    15,    16,    17,    18,    19,    20,    21,     3,
63604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      19,    20,    21,    26,    17,    18,    19,    20,    21,    -1,
63704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      -1,    -1,    -1,    17,    18,    -1,    -1,    -1,    -1,    23,
63804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      24,    25,     4,     5,     6,     7,     8,     9,    10,    11,
63904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
64004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
64104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      15,    16,    17,    18,    19,    20,    21,     6,     7,     8,
64204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
64304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      19,    20,    21,     7,     8,     9,    10,    11,    12,    13,
64404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      14,    15,    16,    17,    18,    19,    20,    21,     8,     9,
64504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
64604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      20,    21,     9,    10,    11,    12,    13,    14,    15,    16,
64704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      17,    18,    19,    20,    21,    11,    12,    13,    14,    15,
64804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      16,    17,    18,    19,    20,    21
64904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
65004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
65104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
65204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   symbol of state STATE-NUM.  */
65304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic const yytype_uint8 yystos[] =
65404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
65504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       0,     3,    17,    18,    23,    24,    25,    28,    29,    29,
65604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      29,    29,    29,    29,     0,     4,     5,     6,     7,     8,
65704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
65804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      19,    20,    21,    26,    29,    29,    29,    29,    29,    29,
65904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      29,    29,    29,    29,    29,    29,    29,    29,    29,    29,
66004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      29,    29
66104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org};
66204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
66304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define yyerrok		(yyerrstatus = 0)
66404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define yyclearin	(yychar = YYEMPTY)
66504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYEMPTY		(-2)
66604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYEOF		0
66704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
66804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYACCEPT	goto yyacceptlab
66904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYABORT		goto yyabortlab
67004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYERROR		goto yyerrorlab
67104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
67204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
67304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Like YYERROR except do call yyerror.  This remains here temporarily
67404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   to ease the transition to the new meaning of YYERROR, for GCC.
67504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   Once GCC version 2 has supplanted version 1, this can go.  However,
67604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
67704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
67804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   discussed.  */
67904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
68004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYFAIL		goto yyerrlab
68104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if defined YYFAIL
68204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* This is here to suppress warnings from the GCC cpp's
68304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     -Wunused-macros.  Normally we don't worry about that warning, but
68404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     some users do, and we want to make it easy for users to remove
68504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     YYFAIL uses, which will produce warnings from Bison 2.5.  */
68604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
68704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
68804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYRECOVERING()  (!!yyerrstatus)
68904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
6904b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#define YYBACKUP(Token, Value)                                  \
6914b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.orgdo                                                              \
6924b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  if (yychar == YYEMPTY)                                        \
6934b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    {                                                           \
6944b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      yychar = (Token);                                         \
6954b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      yylval = (Value);                                         \
6964b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      YYPOPSTACK (yylen);                                       \
6974b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      yystate = *yyssp;                                         \
6984b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      goto yybackup;                                            \
6994b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    }                                                           \
7004b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  else                                                          \
7014b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    {                                                           \
70204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yyerror (context, YY_("syntax error: cannot back up")); \
70304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYERROR;							\
70404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }								\
70504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgwhile (YYID (0))
70604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
7074b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org/* Error token number */
70804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYTERROR	1
70904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYERRCODE	256
71004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
71104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
7124b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org/* This macro is provided for backward compatibility. */
71304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifndef YY_LOCATION_PRINT
7144b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
71504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
71604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
71704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
71804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYLEX -- calling `yylex' with the right arguments.  */
71904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifdef YYLEX_PARAM
72004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYLEX yylex (&yylval, YYLEX_PARAM)
72104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
72204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYLEX yylex (&yylval, context)
72304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
72404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
72504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Enable debugging if requested.  */
72604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if YYDEBUG
72704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
72804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifndef YYFPRINTF
72904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
73004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  define YYFPRINTF fprintf
73104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
73204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
73304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYDPRINTF(Args)			\
73404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgdo {						\
73504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yydebug)					\
73604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYFPRINTF Args;				\
73704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org} while (YYID (0))
73804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
73904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
74004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgdo {									  \
74104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yydebug)								  \
74204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {									  \
74304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYFPRINTF (stderr, "%s ", Title);					  \
74404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yy_symbol_print (stderr,						  \
74504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		  Type, Value, context); \
74604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYFPRINTF (stderr, "\n");						  \
74704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }									  \
74804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org} while (YYID (0))
74904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
75004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
75104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*--------------------------------.
75204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| Print this symbol on YYOUTPUT.  |
75304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`--------------------------------*/
75404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
75504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*ARGSUSED*/
75604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
75704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
75804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void
75904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, Context *context)
76004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
76104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void
76204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyy_symbol_value_print (yyoutput, yytype, yyvaluep, context)
76304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    FILE *yyoutput;
76404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int yytype;
76504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYSTYPE const * const yyvaluep;
76604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    Context *context;
76704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
76804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
7694b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  FILE *yyo = yyoutput;
7704b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  YYUSE (yyo);
77104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (!yyvaluep)
77204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    return;
77304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYUSE (context);
77404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifdef YYPRINT
77504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yytype < YYNTOKENS)
77604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
77704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# else
77804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYUSE (yyoutput);
77904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
780f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo  YYUSE (yytype);
78104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
78204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
78304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
78404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*--------------------------------.
78504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| Print this symbol on YYOUTPUT.  |
78604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`--------------------------------*/
78704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
78804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
78904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
79004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void
79104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, Context *context)
79204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
79304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void
79404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyy_symbol_print (yyoutput, yytype, yyvaluep, context)
79504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    FILE *yyoutput;
79604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int yytype;
79704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYSTYPE const * const yyvaluep;
79804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    Context *context;
79904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
80004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
80104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yytype < YYNTOKENS)
80204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
80304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  else
80404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
80504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
80604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yy_symbol_value_print (yyoutput, yytype, yyvaluep, context);
80704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYFPRINTF (yyoutput, ")");
80804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
80904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
81004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*------------------------------------------------------------------.
81104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yy_stack_print -- Print the state stack from its BOTTOM up to its |
81204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| TOP (included).                                                   |
81304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`------------------------------------------------------------------*/
81404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
81504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
81604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
81704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void
81804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
81904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
82004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void
82104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyy_stack_print (yybottom, yytop)
82204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yytype_int16 *yybottom;
82304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yytype_int16 *yytop;
82404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
82504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
82604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYFPRINTF (stderr, "Stack now");
82704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  for (; yybottom <= yytop; yybottom++)
82804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
82904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      int yybot = *yybottom;
83004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYFPRINTF (stderr, " %d", yybot);
83104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
83204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYFPRINTF (stderr, "\n");
83304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
83404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
83504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YY_STACK_PRINT(Bottom, Top)				\
83604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgdo {								\
83704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yydebug)							\
83804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yy_stack_print ((Bottom), (Top));				\
83904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org} while (YYID (0))
84004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
84104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
84204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*------------------------------------------------.
84304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| Report that the YYRULE is going to be reduced.  |
84404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`------------------------------------------------*/
84504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
84604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
84704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
84804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void
84904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyy_reduce_print (YYSTYPE *yyvsp, int yyrule, Context *context)
85004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
85104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void
85204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyy_reduce_print (yyvsp, yyrule, context)
85304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYSTYPE *yyvsp;
85404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int yyrule;
85504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    Context *context;
85604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
85704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
85804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  int yynrhs = yyr2[yyrule];
85904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  int yyi;
86004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  unsigned long int yylno = yyrline[yyrule];
86104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
86204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	     yyrule - 1, yylno);
86304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* The symbols being reduced.  */
86404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  for (yyi = 0; yyi < yynrhs; yyi++)
86504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
86604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
86704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
86804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		       &(yyvsp[(yyi + 1) - (yynrhs)])
86904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		       		       , context);
87004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYFPRINTF (stderr, "\n");
87104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
87204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
87304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
87404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YY_REDUCE_PRINT(Rule)		\
87504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgdo {					\
87604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yydebug)				\
87704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yy_reduce_print (yyvsp, Rule, context); \
87804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org} while (YYID (0))
87904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
88004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Nonzero means print parse trace.  It is left uninitialized so that
88104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   multiple parsers can coexist.  */
88204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgint yydebug;
88304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else /* !YYDEBUG */
88404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYDPRINTF(Args)
88504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
88604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YY_STACK_PRINT(Bottom, Top)
88704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YY_REDUCE_PRINT(Rule)
88804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif /* !YYDEBUG */
88904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
89004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
89104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYINITDEPTH -- initial size of the parser's stacks.  */
89204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifndef	YYINITDEPTH
89304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYINITDEPTH 200
89404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
89504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
89604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
89704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   if the built-in stack extension method is used).
89804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
89904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   Do not make this value too large; the results are undefined if
90004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
90104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   evaluated with infinite-precision integer arithmetic.  */
90204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
90304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifndef YYMAXDEPTH
90404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# define YYMAXDEPTH 10000
90504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
90604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
90704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
90804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if YYERROR_VERBOSE
90904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
91004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifndef yystrlen
91104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  if defined __GLIBC__ && defined _STRING_H
91204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   define yystrlen strlen
91304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  else
91404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Return the length of YYSTR.  */
91504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
91604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
91704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic YYSIZE_T
91804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyystrlen (const char *yystr)
91904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
92004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic YYSIZE_T
92104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyystrlen (yystr)
92204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    const char *yystr;
92304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
92404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
92504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYSIZE_T yylen;
92604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  for (yylen = 0; yystr[yylen]; yylen++)
92704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    continue;
92804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  return yylen;
92904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
93004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  endif
93104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
93204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
93304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifndef yystpcpy
93404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
93504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#   define yystpcpy stpcpy
93604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  else
93704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
93804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   YYDEST.  */
93904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
94004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
94104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic char *
94204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyystpcpy (char *yydest, const char *yysrc)
94304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
94404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic char *
94504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyystpcpy (yydest, yysrc)
94604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    char *yydest;
94704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    const char *yysrc;
94804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
94904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
95004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  char *yyd = yydest;
95104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  const char *yys = yysrc;
95204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
95304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  while ((*yyd++ = *yys++) != '\0')
95404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    continue;
95504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
95604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  return yyd - 1;
95704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
95804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  endif
95904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
96004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
96104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifndef yytnamerr
96204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
96304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   quotes and backslashes, so that it's suitable for yyerror.  The
96404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   heuristic is that double-quoting is unnecessary unless the string
96504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   contains an apostrophe, a comma, or backslash (other than
96604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
96704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   null, do not copy; instead, return the length of what the result
96804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org   would have been.  */
96904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic YYSIZE_T
97004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyytnamerr (char *yyres, const char *yystr)
97104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
97204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (*yystr == '"')
97304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
97404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYSIZE_T yyn = 0;
97504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      char const *yyp = yystr;
97604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
97704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      for (;;)
97804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	switch (*++yyp)
97904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  {
98004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  case '\'':
98104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  case ',':
98204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    goto do_not_strip_quotes;
98304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
98404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  case '\\':
98504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    if (*++yyp != '\\')
98604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	      goto do_not_strip_quotes;
98704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    /* Fall through.  */
98804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  default:
98904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    if (yyres)
99004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	      yyres[yyn] = *yyp;
99104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    yyn++;
99204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    break;
99304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
99404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  case '"':
99504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    if (yyres)
99604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	      yyres[yyn] = '\0';
99704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    return yyn;
99804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  }
99904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    do_not_strip_quotes: ;
100004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
100104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
100204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (! yyres)
100304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    return yystrlen (yystr);
100404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
100504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  return yystpcpy (yyres, yystr) - yyres;
100604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
100704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
100804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
10094b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
10104b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org   about the unexpected token YYTOKEN for the state stack whose top is
10114b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org   YYSSP.
101204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
10134b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
10144b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org   not large enough to hold the message.  In that case, also set
10154b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
10164b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org   required number of bytes is too large to store.  */
10174b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.orgstatic int
10184b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.orgyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
10194b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                yytype_int16 *yyssp, int yytoken)
10204b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org{
10214b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
10224b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  YYSIZE_T yysize = yysize0;
10234b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
10244b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  /* Internationalized format string. */
10254b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  const char *yyformat = YY_NULL;
10264b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  /* Arguments of yyformat. */
10274b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
10284b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  /* Number of reported tokens (one for the "unexpected", one per
10294b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     "expected"). */
10304b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  int yycount = 0;
10314b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
10324b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  /* There are many possibilities here to consider:
10334b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     - Assume YYFAIL is not used.  It's too flawed to consider.  See
10344b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
10354b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       for details.  YYERROR is fine as it does not invoke this
10364b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       function.
10374b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     - If this state is a consistent state with a default action, then
10384b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       the only way this function was invoked is if the default action
10394b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       is an error action.  In that case, don't check for expected
10404b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       tokens because there are none.
10414b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     - The only way there can be no lookahead present (in yychar) is if
10424b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       this state is a consistent state with a default action.  Thus,
10434b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       detecting the absence of a lookahead is sufficient to determine
10444b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       that there is no unexpected or expected token to report.  In that
10454b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       case, just report a simple "syntax error".
10464b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     - Don't assume there isn't a lookahead just because this state is a
10474b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       consistent state with a default action.  There might have been a
10484b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       previous inconsistent state, consistent state with a non-default
10494b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       action, or user semantic action that manipulated yychar.
10504b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     - Of course, the expected token list depends on states to have
10514b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       correct lookahead information, and it depends on the parser not
10524b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       to perform extra reductions after fetching a lookahead from the
10534b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       scanner and before detecting a syntax error.  Thus, state merging
10544b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       (from LALR or IELR) and default reductions corrupt the expected
10554b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       token list.  However, the list is correct for canonical LR with
10564b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       one exception: it will still contain any token that will not be
10574b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       accepted due to an error action in a later state.
10584b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  */
10594b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  if (yytoken != YYEMPTY)
106004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
10614b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      int yyn = yypact[*yyssp];
10624b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      yyarg[yycount++] = yytname[yytoken];
10634b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      if (!yypact_value_is_default (yyn))
10644b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        {
10654b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          /* Start YYX at -YYN if negative to avoid negative indexes in
10664b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org             YYCHECK.  In other words, skip the first -YYN actions for
10674b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org             this state because they are default actions.  */
10684b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          int yyxbegin = yyn < 0 ? -yyn : 0;
10694b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          /* Stay within bounds of both yycheck and yytname.  */
10704b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          int yychecklim = YYLAST - yyn + 1;
10714b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
10724b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          int yyx;
10734b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
10744b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
10754b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
10764b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                && !yytable_value_is_error (yytable[yyx + yyn]))
10774b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org              {
10784b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
10794b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                  {
10804b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                    yycount = 1;
10814b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                    yysize = yysize0;
10824b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                    break;
10834b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                  }
10844b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                yyarg[yycount++] = yytname[yyx];
10854b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                {
10864b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
10874b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                  if (! (yysize <= yysize1
10884b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
10894b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                    return 2;
10904b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                  yysize = yysize1;
10914b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                }
10924b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org              }
10934b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        }
10944b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    }
109504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
10964b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  switch (yycount)
10974b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    {
10984b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YYCASE_(N, S)                      \
10994b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      case N:                               \
11004b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        yyformat = S;                       \
11014b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      break
11024b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      YYCASE_(0, YY_("syntax error"));
11034b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      YYCASE_(1, YY_("syntax error, unexpected %s"));
11044b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
11054b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
11064b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
11074b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
11084b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# undef YYCASE_
11094b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    }
111004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
11114b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  {
11124b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
11134b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
11144b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      return 2;
11154b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    yysize = yysize1;
11164b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  }
111704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
11184b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  if (*yymsg_alloc < yysize)
11194b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    {
11204b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      *yymsg_alloc = 2 * yysize;
11214b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      if (! (yysize <= *yymsg_alloc
11224b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
11234b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
11244b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      return 1;
112504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
11264b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
11274b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  /* Avoid sprintf, as that infringes on the user's name space.
11284b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     Don't have undefined behavior even if the translation
11294b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     produced a string with the wrong number of "%s"s.  */
11304b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  {
11314b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    char *yyp = *yymsg;
11324b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    int yyi = 0;
11334b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    while ((*yyp = *yyformat) != '\0')
11344b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
11354b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        {
11364b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          yyp += yytnamerr (yyp, yyarg[yyi++]);
11374b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          yyformat += 2;
11384b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        }
11394b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      else
11404b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        {
11414b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          yyp++;
11424b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          yyformat++;
11434b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        }
11444b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  }
11454b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  return 0;
114604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
114704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif /* YYERROR_VERBOSE */
114804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
114904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*-----------------------------------------------.
115004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| Release the memory associated to this symbol.  |
115104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`-----------------------------------------------*/
115204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
115304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*ARGSUSED*/
115404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
115504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
115604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void
115704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, Context *context)
115804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
115904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgstatic void
116004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyydestruct (yymsg, yytype, yyvaluep, context)
116104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    const char *yymsg;
116204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int yytype;
116304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYSTYPE *yyvaluep;
116404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    Context *context;
116504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
116604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
116704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYUSE (yyvaluep);
116804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYUSE (context);
116904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
117004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (!yymsg)
117104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yymsg = "Deleting";
117204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
117304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1174f1d723c698d88c7f9086d7fa0aa1c064dddfa8d4Zhenyao Mo  YYUSE (yytype);
117504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
117604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
117704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
117804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
117904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
11804b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org/*----------.
11814b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org| yyparse.  |
11824b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org`----------*/
118304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
118404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifdef YYPARSE_PARAM
118504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
118604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
118704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgint
118804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyparse (void *YYPARSE_PARAM)
118904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
119004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgint
119104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyparse (YYPARSE_PARAM)
119204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    void *YYPARSE_PARAM;
119304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
119404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else /* ! YYPARSE_PARAM */
119504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
119604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
119704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgint
119804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyparse (Context *context)
119904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
120004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgint
120104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyparse (context)
120204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    Context *context;
120304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
120404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
120504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
120604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* The lookahead symbol.  */
120704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgint yychar;
120804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
12094b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
12104b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
12114b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
12124b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
12134b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    _Pragma ("GCC diagnostic push") \
12144b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
12154b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
12164b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
12174b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    _Pragma ("GCC diagnostic pop")
12184b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#else
12194b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org/* Default value used for initialization, for pacifying older GCCs
12204b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org   or non-GCC compilers.  */
12214b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.orgstatic YYSTYPE yyval_default;
12224b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YY_INITIAL_VALUE(Value) = Value
12234b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#endif
12244b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
12254b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
12264b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YY_IGNORE_MAYBE_UNINITIALIZED_END
12274b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#endif
12284b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#ifndef YY_INITIAL_VALUE
12294b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YY_INITIAL_VALUE(Value) /* Nothing. */
12304b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#endif
12314b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
123204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/* The semantic value of the lookahead symbol.  */
12334b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.orgYYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
123404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
123504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    /* Number of syntax errors so far.  */
123604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int yynerrs;
123704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
123804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int yystate;
123904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    /* Number of tokens to shift before error messages enabled.  */
124004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int yyerrstatus;
124104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
124204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    /* The stacks and their tools:
124304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       `yyss': related to states.
124404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       `yyvs': related to semantic values.
124504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
12464b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org       Refer to the stacks through separate pointers, to allow yyoverflow
124704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org       to reallocate them elsewhere.  */
124804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
124904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    /* The state stack.  */
125004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yytype_int16 yyssa[YYINITDEPTH];
125104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yytype_int16 *yyss;
125204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yytype_int16 *yyssp;
125304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
125404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    /* The semantic value stack.  */
125504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYSTYPE yyvsa[YYINITDEPTH];
125604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYSTYPE *yyvs;
125704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYSTYPE *yyvsp;
125804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
125904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYSIZE_T yystacksize;
126004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
126104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  int yyn;
126204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  int yyresult;
126304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Lookahead token as an internal (translated) token number.  */
12644b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  int yytoken = 0;
126504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* The variables used to return semantic value and location from the
126604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     action routines.  */
126704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYSTYPE yyval;
126804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
126904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if YYERROR_VERBOSE
127004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Buffer for error messages, and its allocated size.  */
127104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  char yymsgbuf[128];
127204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  char *yymsg = yymsgbuf;
127304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
127404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
127504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
127604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
127704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
127804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* The number of symbols on the RHS of the reduced rule.
127904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     Keep to zero when no symbol should be popped.  */
128004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  int yylen = 0;
128104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
12824b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  yyssp = yyss = yyssa;
12834b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  yyvsp = yyvs = yyvsa;
128404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yystacksize = YYINITDEPTH;
128504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
128604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYDPRINTF ((stderr, "Starting parse\n"));
128704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
128804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yystate = 0;
128904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyerrstatus = 0;
129004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yynerrs = 0;
129104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yychar = YYEMPTY; /* Cause a token to be read.  */
129204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  goto yysetstate;
129304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
129404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*------------------------------------------------------------.
129504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yynewstate -- Push a new state, which is found in yystate.  |
129604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`------------------------------------------------------------*/
129704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org yynewstate:
129804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* In all cases, when you get here, the value and location stacks
129904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     have just been pushed.  So pushing a state here evens the stacks.  */
130004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyssp++;
130104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
130204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org yysetstate:
130304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  *yyssp = yystate;
130404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
130504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yyss + yystacksize - 1 <= yyssp)
130604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
130704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      /* Get the current used size of the three stacks, in elements.  */
130804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYSIZE_T yysize = yyssp - yyss + 1;
130904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
131004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifdef yyoverflow
131104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      {
131204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	/* Give user a chance to reallocate the stack.  Use copies of
131304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	   these so that the &'s don't force the real ones into
131404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	   memory.  */
131504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	YYSTYPE *yyvs1 = yyvs;
131604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	yytype_int16 *yyss1 = yyss;
131704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
131804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	/* Each stack pointer address is followed by the size of the
131904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	   data in use in that stack, in bytes.  This used to be a
132004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	   conditional around just the two extra args, but that might
132104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	   be undefined if yyoverflow is a macro.  */
132204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	yyoverflow (YY_("memory exhausted"),
132304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		    &yyss1, yysize * sizeof (*yyssp),
132404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		    &yyvs1, yysize * sizeof (*yyvsp),
132504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		    &yystacksize);
132604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
132704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	yyss = yyss1;
132804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	yyvs = yyvs1;
132904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      }
133004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else /* no yyoverflow */
133104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# ifndef YYSTACK_RELOCATE
133204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      goto yyexhaustedlab;
133304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# else
133404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      /* Extend the stack our own way.  */
133504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      if (YYMAXDEPTH <= yystacksize)
133604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	goto yyexhaustedlab;
133704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yystacksize *= 2;
133804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      if (YYMAXDEPTH < yystacksize)
133904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	yystacksize = YYMAXDEPTH;
134004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
134104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      {
134204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	yytype_int16 *yyss1 = yyss;
134304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	union yyalloc *yyptr =
134404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
134504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	if (! yyptr)
134604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  goto yyexhaustedlab;
134704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	YYSTACK_RELOCATE (yyss_alloc, yyss);
134804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
134904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#  undef YYSTACK_RELOCATE
135004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	if (yyss1 != yyssa)
135104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  YYSTACK_FREE (yyss1);
135204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      }
135304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org# endif
135404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif /* no yyoverflow */
135504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
135604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yyssp = yyss + yysize - 1;
135704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yyvsp = yyvs + yysize - 1;
135804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
135904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
136004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		  (unsigned long int) yystacksize));
136104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
136204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      if (yyss + yystacksize - 1 <= yyssp)
136304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	YYABORT;
136404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
136504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
136604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
136704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
136804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yystate == YYFINAL)
136904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYACCEPT;
137004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
137104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  goto yybackup;
137204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
137304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*-----------.
137404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yybackup.  |
137504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`-----------*/
137604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyybackup:
137704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
137804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Do appropriate processing given the current state.  Read a
137904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     lookahead token if we need one and don't already have one.  */
138004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
138104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* First try to decide what to do without reference to lookahead token.  */
138204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyn = yypact[yystate];
13834b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  if (yypact_value_is_default (yyn))
138404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    goto yydefault;
138504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
138604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Not known => get a lookahead token if don't already have one.  */
138704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
138804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
138904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yychar == YYEMPTY)
139004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
139104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYDPRINTF ((stderr, "Reading a token: "));
139204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yychar = YYLEX;
139304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
139404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
139504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yychar <= YYEOF)
139604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
139704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yychar = yytoken = YYEOF;
139804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYDPRINTF ((stderr, "Now at end of input.\n"));
139904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
140004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  else
140104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
140204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yytoken = YYTRANSLATE (yychar);
140304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
140404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
140504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
140604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* If the proper action on seeing token YYTOKEN is to reduce or to
140704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     detect an error, take that action.  */
140804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyn += yytoken;
140904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
141004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    goto yydefault;
141104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyn = yytable[yyn];
141204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yyn <= 0)
141304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
14144b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      if (yytable_value_is_error (yyn))
14154b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        goto yyerrlab;
141604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yyn = -yyn;
141704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      goto yyreduce;
141804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
141904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
142004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Count tokens shifted since error; after three, turn off error
142104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     status.  */
142204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yyerrstatus)
142304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yyerrstatus--;
142404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
142504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Shift the lookahead token.  */
142604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
142704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
142804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Discard the shifted token.  */
142904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yychar = YYEMPTY;
143004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
143104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yystate = yyn;
14324b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
143304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  *++yyvsp = yylval;
14344b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  YY_IGNORE_MAYBE_UNINITIALIZED_END
143504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
143604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  goto yynewstate;
143704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
143804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
143904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*-----------------------------------------------------------.
144004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yydefault -- do the default action for the current state.  |
144104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`-----------------------------------------------------------*/
144204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyydefault:
144304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyn = yydefact[yystate];
144404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yyn == 0)
144504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    goto yyerrlab;
144604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  goto yyreduce;
144704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
144804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
144904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*-----------------------------.
145004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yyreduce -- Do a reduction.  |
145104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`-----------------------------*/
145204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyreduce:
145304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* yyn is the number of a rule to reduce with.  */
145404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yylen = yyr2[yyn];
145504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
145604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* If YYLEN is nonzero, implement the default value of the action:
145704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     `$$ = $1'.
145804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
145904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     Otherwise, the following line sets YYVAL to garbage.
146004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     This behavior is undocumented and Bison
146104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     users should not rely upon it.  Assigning to YYVAL
146204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     unconditionally makes the parser a bit smaller, and it avoids a
146304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     GCC warning that YYVAL may be used uninitialized.  */
146404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyval = yyvsp[1-yylen];
146504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
146604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
146704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YY_REDUCE_PRINT (yyn);
146804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  switch (yyn)
146904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
147004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        case 2:
147104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
147204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
1473d39ec4c15d6e656e027d7ded7ffceaafa0608e89alokp@chromium.org        *(context->result) = static_cast<int>((yyvsp[(1) - (1)]));
147404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        YYACCEPT;
147504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
147604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
147704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
147804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 4:
147904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
148004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
148104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) || (yyvsp[(3) - (3)]);
148204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
148304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
148404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
148504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 5:
148604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
148704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
148804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) && (yyvsp[(3) - (3)]);
148904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
149004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
149104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
149204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 6:
149304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
149404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
149504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) | (yyvsp[(3) - (3)]);
149604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
149704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
149804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
149904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 7:
150004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
150104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
150204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) ^ (yyvsp[(3) - (3)]);
150304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
150404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
150504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
150604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 8:
150704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
150804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
150904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) & (yyvsp[(3) - (3)]);
151004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
151104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
151204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
151304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 9:
151404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
151504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
151604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) != (yyvsp[(3) - (3)]);
151704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
151804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
151904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
152004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 10:
152104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
152204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
152304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) == (yyvsp[(3) - (3)]);
152404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
152504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
152604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
152704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 11:
152804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
152904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
153004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) >= (yyvsp[(3) - (3)]);
153104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
153204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
153304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
153404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 12:
153504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
153604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
153704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) <= (yyvsp[(3) - (3)]);
153804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
153904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
154004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
154104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 13:
154204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
154304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
154404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) > (yyvsp[(3) - (3)]);
154504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
154604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
154704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
154804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 14:
154904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
155004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
155104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) < (yyvsp[(3) - (3)]);
155204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
155304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
155404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
155504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 15:
155604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
155704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
155804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) >> (yyvsp[(3) - (3)]);
155904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
156004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
156104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
156204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 16:
156304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
156404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
156504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) << (yyvsp[(3) - (3)]);
156604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
156704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
156804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
156904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 17:
157004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
157104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
157204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) - (yyvsp[(3) - (3)]);
157304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
157404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
157504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
157604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 18:
157704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
157804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
157904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) + (yyvsp[(3) - (3)]);
158004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
158104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
158204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
158304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 19:
158404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
158504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
158604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        if ((yyvsp[(3) - (3)]) == 0) {
15872e81891c21bfb199bb53f903bf0967f07efb65d8alokp@chromium.org            std::ostringstream stream;
158804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org            stream << (yyvsp[(1) - (3)]) << " % " << (yyvsp[(3) - (3)]);
15892c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org            std::string text = stream.str();
15907f2d7945ee702241829727751bd4c7424662b225Shannon Woods            context->diagnostics->report(pp::Diagnostics::PP_DIVISION_BY_ZERO,
15912c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org                                         context->token->location,
15922c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org                                         text.c_str());
159304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org            YYABORT;
159404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        } else {
159504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org            (yyval) = (yyvsp[(1) - (3)]) % (yyvsp[(3) - (3)]);
159604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        }
159704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
159804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
159904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
160004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 20:
160104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
160204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
160304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        if ((yyvsp[(3) - (3)]) == 0) {
16042e81891c21bfb199bb53f903bf0967f07efb65d8alokp@chromium.org            std::ostringstream stream;
160504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org            stream << (yyvsp[(1) - (3)]) << " / " << (yyvsp[(3) - (3)]);
16062c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org            std::string text = stream.str();
16077f2d7945ee702241829727751bd4c7424662b225Shannon Woods            context->diagnostics->report(pp::Diagnostics::PP_DIVISION_BY_ZERO,
16082c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org                                         context->token->location,
16092c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org                                         text.c_str());
161004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org            YYABORT;
161104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        } else {
161204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org            (yyval) = (yyvsp[(1) - (3)]) / (yyvsp[(3) - (3)]);
161304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        }
161404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
161504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
161604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
161704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 21:
161804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
161904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
162004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(1) - (3)]) * (yyvsp[(3) - (3)]);
162104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
162204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
162304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
162404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 22:
162504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
162604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
162704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = ! (yyvsp[(2) - (2)]);
162804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
162904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
163004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
163104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 23:
163204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
163304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
163404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = ~ (yyvsp[(2) - (2)]);
163504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
163604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
163704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
163804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 24:
163904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
164004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
164104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = - (yyvsp[(2) - (2)]);
164204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
164304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
164404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
164504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 25:
164604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
164704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
164804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = + (yyvsp[(2) - (2)]);
164904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
165004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
165104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
165204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  case 26:
165304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
165404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
165504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        (yyval) = (yyvsp[(2) - (3)]);
165604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
165704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    break;
165804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
165904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
166004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
166104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      default: break;
166204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
16634b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  /* User semantic actions sometimes alter yychar, and that requires
16644b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     that yytoken be updated with the new translation.  We take the
16654b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     approach of translating immediately before every use of yytoken.
16664b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     One alternative is translating here after every semantic action,
16674b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     but that translation would be missed if the semantic action invokes
16684b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
16694b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
16704b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     incorrect destructor might then be invoked immediately.  In the
16714b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     case of YYERROR or YYBACKUP, subsequent parser actions might lead
16724b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     to an incorrect destructor call or verbose syntax error message
16734b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     before the lookahead is translated.  */
167404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
167504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
167604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYPOPSTACK (yylen);
167704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yylen = 0;
167804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YY_STACK_PRINT (yyss, yyssp);
167904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
168004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  *++yyvsp = yyval;
168104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
168204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Now `shift' the result of the reduction.  Determine what state
168304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     that goes to, based on the state we popped back to and the rule
168404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     number reduced by.  */
168504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
168604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyn = yyr1[yyn];
168704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
168804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
168904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
169004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yystate = yytable[yystate];
169104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  else
169204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    yystate = yydefgoto[yyn - YYNTOKENS];
169304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
169404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  goto yynewstate;
169504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
169604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
169704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*------------------------------------.
169804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yyerrlab -- here on detecting error |
169904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`------------------------------------*/
170004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyerrlab:
17014b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  /* Make sure we have latest lookahead translation.  See comments at
17024b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org     user semantic actions for why this is necessary.  */
17034b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
17044b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org
170504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* If not already recovering from an error, report this error.  */
170604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (!yyerrstatus)
170704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
170804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      ++yynerrs;
170904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if ! YYERROR_VERBOSE
171004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yyerror (context, YY_("syntax error"));
171104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#else
17124b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
17134b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                                        yyssp, yytoken)
171404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      {
17154b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        char const *yymsgp = YY_("syntax error");
17164b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        int yysyntax_error_status;
17174b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        yysyntax_error_status = YYSYNTAX_ERROR;
17184b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        if (yysyntax_error_status == 0)
17194b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          yymsgp = yymsg;
17204b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        else if (yysyntax_error_status == 1)
17214b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          {
17224b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org            if (yymsg != yymsgbuf)
17234b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org              YYSTACK_FREE (yymsg);
17244b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
17254b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org            if (!yymsg)
17264b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org              {
17274b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                yymsg = yymsgbuf;
17284b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                yymsg_alloc = sizeof yymsgbuf;
17294b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                yysyntax_error_status = 2;
17304b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org              }
17314b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org            else
17324b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org              {
17334b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                yysyntax_error_status = YYSYNTAX_ERROR;
17344b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                yymsgp = yymsg;
17354b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org              }
17364b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          }
17374b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        yyerror (context, yymsgp);
17384b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org        if (yysyntax_error_status == 2)
17394b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org          goto yyexhaustedlab;
174004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      }
17414b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org# undef YYSYNTAX_ERROR
174204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
174304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
174404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
174504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
174604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
174704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yyerrstatus == 3)
174804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
174904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      /* If just tried and failed to reuse lookahead token after an
175004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	 error, discard it.  */
175104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
175204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      if (yychar <= YYEOF)
175304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	{
175404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  /* Return failure if at end of input.  */
175504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  if (yychar == YYEOF)
175604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    YYABORT;
175704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	}
175804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      else
175904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	{
176004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  yydestruct ("Error: discarding",
176104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		      yytoken, &yylval, context);
176204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  yychar = YYEMPTY;
176304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	}
176404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
176504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
176604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Else will try to reuse lookahead token after shifting the error
176704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     token.  */
176804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  goto yyerrlab1;
176904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
177004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
177104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*---------------------------------------------------.
177204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yyerrorlab -- error raised explicitly by YYERROR.  |
177304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`---------------------------------------------------*/
177404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyerrorlab:
177504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
177604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Pacify compilers like GCC when the user code never invokes
177704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     YYERROR and the label yyerrorlab therefore never appears in user
177804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     code.  */
177904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (/*CONSTCOND*/ 0)
178004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     goto yyerrorlab;
178104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
178204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Do not reclaim the symbols of the rule which action triggered
178304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     this YYERROR.  */
178404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYPOPSTACK (yylen);
178504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yylen = 0;
178604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YY_STACK_PRINT (yyss, yyssp);
178704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yystate = *yyssp;
178804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  goto yyerrlab1;
178904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
179004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
179104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*-------------------------------------------------------------.
179204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yyerrlab1 -- common code for both syntax error and YYERROR.  |
179304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`-------------------------------------------------------------*/
179404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyerrlab1:
179504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
179604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
179704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  for (;;)
179804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
179904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yyn = yypact[yystate];
18004b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      if (!yypact_value_is_default (yyn))
180104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	{
180204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  yyn += YYTERROR;
180304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
180404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    {
180504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	      yyn = yytable[yyn];
180604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	      if (0 < yyn)
180704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		break;
180804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	    }
180904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	}
181004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
181104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      /* Pop the current state because it cannot handle the error token.  */
181204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      if (yyssp == yyss)
181304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org	YYABORT;
181404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
181504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
181604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yydestruct ("Error: popping",
181704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		  yystos[yystate], yyvsp, context);
181804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYPOPSTACK (1);
181904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yystate = *yyssp;
182004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YY_STACK_PRINT (yyss, yyssp);
182104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
182204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
18234b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
182404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  *++yyvsp = yylval;
18254b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org  YY_IGNORE_MAYBE_UNINITIALIZED_END
182604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
182704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
182804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Shift the error token.  */
182904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
183004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
183104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yystate = yyn;
183204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  goto yynewstate;
183304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
183404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
183504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*-------------------------------------.
183604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yyacceptlab -- YYACCEPT comes here.  |
183704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`-------------------------------------*/
183804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyacceptlab:
183904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyresult = 0;
184004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  goto yyreturn;
184104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
184204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*-----------------------------------.
184304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yyabortlab -- YYABORT comes here.  |
184404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`-----------------------------------*/
184504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyabortlab:
184604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyresult = 1;
184704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  goto yyreturn;
184804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
18494b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org#if !defined yyoverflow || YYERROR_VERBOSE
185004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org/*-------------------------------------------------.
185104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org| yyexhaustedlab -- memory exhaustion comes here.  |
185204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org`-------------------------------------------------*/
185304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyexhaustedlab:
185404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyerror (context, YY_("memory exhausted"));
185504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  yyresult = 2;
185604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Fall through.  */
185704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
185804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
185904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgyyreturn:
186004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yychar != YYEMPTY)
18614b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    {
18624b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      /* Make sure we have latest lookahead translation.  See comments at
18634b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org         user semantic actions for why this is necessary.  */
18644b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      yytoken = YYTRANSLATE (yychar);
18654b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org      yydestruct ("Cleanup: discarding lookahead",
18664b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org                  yytoken, &yylval, context);
18674b8a31155f50df029a8969194d83d26a070d29c0shannonwoods@chromium.org    }
186804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Do not reclaim the symbols of the rule which action triggered
186904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org     this YYABORT or YYACCEPT.  */
187004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YYPOPSTACK (yylen);
187104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  YY_STACK_PRINT (yyss, yyssp);
187204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  while (yyssp != yyss)
187304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
187404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      yydestruct ("Cleanup: popping",
187504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org		  yystos[*yyssp], yyvsp, context);
187604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      YYPOPSTACK (1);
187704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
187804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#ifndef yyoverflow
187904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yyss != yyssa)
188004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYSTACK_FREE (yyss);
188104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
188204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#if YYERROR_VERBOSE
188304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  if (yymsg != yymsgbuf)
188404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    YYSTACK_FREE (yymsg);
188504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org#endif
188604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  /* Make sure YYID is used.  */
188704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org  return YYID (yyresult);
188804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
188904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
189004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
189104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
189204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
189304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1894d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Moint yylex(YYSTYPE *lvalp, Context *context)
189504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
189604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int type = 0;
189704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1898d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo    pp::Token *token = context->token;
189904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    switch (token->type)
190004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
1901d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case pp::Token::CONST_INT: {
19022e81891c21bfb199bb53f903bf0967f07efb65d8alokp@chromium.org        unsigned int val = 0;
19032e81891c21bfb199bb53f903bf0967f07efb65d8alokp@chromium.org        if (!token->uValue(&val))
19042e81891c21bfb199bb53f903bf0967f07efb65d8alokp@chromium.org        {
19057f2d7945ee702241829727751bd4c7424662b225Shannon Woods            context->diagnostics->report(pp::Diagnostics::PP_INTEGER_OVERFLOW,
19062e81891c21bfb199bb53f903bf0967f07efb65d8alokp@chromium.org                                         token->location, token->text);
19072e81891c21bfb199bb53f903bf0967f07efb65d8alokp@chromium.org        }
19082e81891c21bfb199bb53f903bf0967f07efb65d8alokp@chromium.org        *lvalp = static_cast<YYSTYPE>(val);
1909e640ef8ee7613f97d1e9f610d4a7b00bb46f501amaxvujovic@gmail.com        type = TOK_CONST_INT;
191004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        break;
19112e81891c21bfb199bb53f903bf0967f07efb65d8alokp@chromium.org      }
1912d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case pp::Token::OP_OR:
1913d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        type = TOK_OP_OR;
1914d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        break;
1915d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case pp::Token::OP_AND:
1916d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        type = TOK_OP_AND;
1917d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        break;
1918d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case pp::Token::OP_NE:
1919d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        type = TOK_OP_NE;
1920d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        break;
1921d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case pp::Token::OP_EQ:
1922d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        type = TOK_OP_EQ;
1923d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        break;
1924d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case pp::Token::OP_GE:
1925d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        type = TOK_OP_GE;
1926d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        break;
1927d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case pp::Token::OP_LE:
1928d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        type = TOK_OP_LE;
1929d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        break;
1930d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case pp::Token::OP_RIGHT:
1931d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        type = TOK_OP_RIGHT;
1932d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        break;
1933d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case pp::Token::OP_LEFT:
1934d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        type = TOK_OP_LEFT;
1935d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        break;
1936d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '|':
1937d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '^':
1938d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '&':
1939d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '>':
1940d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '<':
1941d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '-':
1942d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '+':
1943d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '%':
1944d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '/':
1945d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '*':
1946d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '!':
1947d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '~':
1948d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case '(':
1949d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      case ')':
1950d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        type = token->type;
1951d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        break;
195204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1953d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      default:
1954d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        break;
195504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
195604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
195704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    // Advance to the next token if the current one is valid.
1958d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo    if (type != 0)
1959d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo        context->lexer->lex(token);
196004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
196104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    return type;
196204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
196304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1964d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Movoid yyerror(Context *context, const char *reason)
196504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
19667f2d7945ee702241829727751bd4c7424662b225Shannon Woods    context->diagnostics->report(pp::Diagnostics::PP_INVALID_EXPRESSION,
19672c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org                                 context->token->location,
19682c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org                                 reason);
196904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
197004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
197104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.orgnamespace pp {
197204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
1973d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao MoExpressionParser::ExpressionParser(Lexer *lexer, Diagnostics *diagnostics)
1974d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo    : mLexer(lexer),
1975d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mo      mDiagnostics(diagnostics)
19762c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org{
19772c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org}
19782c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org
1979d526f9895c0aa867adb74a78e53832a9240c6ad6Zhenyao Mobool ExpressionParser::parse(Token *token, int *result)
198004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org{
198104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    Context context;
19822c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org    context.diagnostics = mDiagnostics;
198304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    context.lexer = mLexer;
198404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    context.token = token;
198504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    context.result = result;
198604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    int ret = yyparse(&context);
198704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    switch (ret)
198804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    {
198904d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      case 0:
199004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      case 1:
199104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        break;
199204d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
199304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      case 2:
19947f2d7945ee702241829727751bd4c7424662b225Shannon Woods        mDiagnostics->report(Diagnostics::PP_OUT_OF_MEMORY, token->location, "");
199504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        break;
199604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
199704d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org      default:
199804d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        assert(false);
19997f2d7945ee702241829727751bd4c7424662b225Shannon Woods        mDiagnostics->report(Diagnostics::PP_INTERNAL_ERROR, token->location, "");
200004d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org        break;
200104d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    }
20022c958eefb71f1b939dbda4477df3f0c8fa47a7b8alokp@chromium.org
200304d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org    return ret == 0;
200404d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}
200504d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org
200604d7d22bb835408a82600244e09b9dcacbc0fa11alokp@chromium.org}  // namespace pp
2007