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