1ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* A Bison parser, made by GNU Bison 2.5. */ 2ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 3ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Bison implementation for Yacc-like parsers in C 4ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 5ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. 6ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 7ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng This program is free software: you can redistribute it and/or modify 8ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng it under the terms of the GNU General Public License as published by 9ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng the Free Software Foundation, either version 3 of the License, or 10ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng (at your option) any later version. 11ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 12ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng This program is distributed in the hope that it will be useful, 13ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng but WITHOUT ANY WARRANTY; without even the implied warranty of 14ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng GNU General Public License for more details. 16ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 17ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng You should have received a copy of the GNU General Public License 18ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 20ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* As a special exception, you may create a larger work that contains 21ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng part or all of the Bison parser skeleton and distribute that work 22ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng under terms of your choice, so long as that work isn't itself a 23ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng parser generator using the skeleton or a modified version thereof 24ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng as a parser skeleton. Alternatively, if you modify or redistribute 25ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng the parser skeleton itself, you may (at your option) remove this 26ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng special exception, which will cause the skeleton and the resulting 27ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng Bison output files to be licensed under the GNU General Public 28ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng License without this special exception. 29ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 30ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng This special exception was added by the Free Software Foundation in 31ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng version 2.2 of Bison. */ 32ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 33ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* C LALR(1) parser skeleton written by Richard Stallman, by 34ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng simplifying the original so-called "semantic" parser. */ 35ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 36ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* All symbols defined below should begin with yy or YY, to avoid 37ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng infringing on user name space. This should be done even for local 38ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng variables, as they might otherwise be expanded by user macros. 39ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng There are some unavoidable exceptions within include files to 40ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng define necessary library symbols; they are noted "INFRINGES ON 41ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng USER NAME SPACE" below. */ 42ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 43ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Identify Bison output. */ 44ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYBISON 1 45ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 46ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Bison version. */ 47ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYBISON_VERSION "2.5" 48ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 49ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Skeleton name. */ 50ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYSKELETON_NAME "yacc.c" 51ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 52ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Pure parsers. */ 53ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYPURE 1 54ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 55ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Push parsers. */ 56ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYPUSH 0 57ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 58ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Pull parsers. */ 59ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYPULL 1 60ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 61ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Using locations. */ 62ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYLSP_NEEDED 0 63ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 64ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Substitute the variable and function names. */ 65ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yyparse parse_events_parse 66ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yylex parse_events_lex 67ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yyerror parse_events_error 68ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yylval parse_events_lval 69ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yychar parse_events_char 70ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yydebug parse_events_debug 71ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yynerrs parse_events_nerrs 72ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 73ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 74ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Copy the first part of user declarations. */ 75ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 76ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 268 of yacc.c */ 77ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 6 "util/parse-events.y" 78ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 79ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 80ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYDEBUG 1 81ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 82ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#include <linux/compiler.h> 83ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#include <linux/list.h> 84ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#include "types.h" 85ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#include "util.h" 86ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#include "parse-events.h" 87ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#include "parse-events-bison.h" 88ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 89ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengextern int parse_events_lex (YYSTYPE* lvalp, void* scanner); 90ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 91ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define ABORT_ON(val) \ 92ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengdo { \ 93ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng if (val) \ 94ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng YYABORT; \ 95ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng} while (0) 96ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 97ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define ALLOC_LIST(list) \ 98ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengdo { \ 99ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng list = malloc(sizeof(*list)); \ 100ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng ABORT_ON(!list); \ 101ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng INIT_LIST_HEAD(list); \ 102ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng} while (0) 103ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 104ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic inc_group_count(struct list_head *list, 105ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng struct parse_events_evlist *data) 106ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 107ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng /* Count groups only have more than 1 members */ 108ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng if (!list_is_last(list->next, list)) 109ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng data->nr_groups++; 110ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng} 111ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 112ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 113ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 114ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 268 of yacc.c */ 115ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 116 "util/parse-events-bison.c" 116ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 117ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Enabling traces. */ 118ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef YYDEBUG 119ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYDEBUG 0 120ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 121ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 122ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Enabling verbose error messages. */ 123ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifdef YYERROR_VERBOSE 124ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# undef YYERROR_VERBOSE 125ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYERROR_VERBOSE 1 126ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else 127ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYERROR_VERBOSE 0 128ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 129ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 130ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Enabling the token table. */ 131ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef YYTOKEN_TABLE 132ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYTOKEN_TABLE 0 133ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 134ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 135ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 136ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Tokens. */ 137ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef YYTOKENTYPE 138ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYTOKENTYPE 139ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng /* Put the tokens into the symbol table, so that GDB and other debuggers 140ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng know about them. */ 141ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng enum yytokentype { 142ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_START_EVENTS = 258, 143ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_START_TERMS = 259, 144ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_VALUE = 260, 145ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_VALUE_SYM_HW = 261, 146ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_VALUE_SYM_SW = 262, 147ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_RAW = 263, 148ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_TERM = 264, 149ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_EVENT_NAME = 265, 150ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_NAME = 266, 151ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_MODIFIER_EVENT = 267, 152ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_MODIFIER_BP = 268, 153ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_NAME_CACHE_TYPE = 269, 154ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_NAME_CACHE_OP_RESULT = 270, 155ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_PREFIX_MEM = 271, 156ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_PREFIX_RAW = 272, 157ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_PREFIX_GROUP = 273, 158ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng PE_ERROR = 274 159ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng }; 160ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 161ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 162ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 163ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 164ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 165ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengtypedef union YYSTYPE 166ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 167ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 168ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 293 of yacc.c */ 169ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 81 "util/parse-events.y" 170ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 171ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng char *str; 172ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng u64 num; 173ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng struct list_head *head; 174ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng struct parse_events_term *term; 175ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 176ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 177ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 178ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 293 of yacc.c */ 179ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 180 "util/parse-events-bison.c" 180ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng} YYSTYPE; 181ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTYPE_IS_TRIVIAL 1 182ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define yystype YYSTYPE /* obsolescent; will be withdrawn */ 183ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTYPE_IS_DECLARED 1 184ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 185ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 186ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 187ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Copy the second part of user declarations. */ 188ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 189ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 190ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 343 of yacc.c */ 191ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 192 "util/parse-events-bison.c" 192ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 193ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifdef short 194ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# undef short 195ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 196ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 197ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifdef YYTYPE_UINT8 198ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengtypedef YYTYPE_UINT8 yytype_uint8; 199ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else 200ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengtypedef unsigned char yytype_uint8; 201ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 202ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 203ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifdef YYTYPE_INT8 204ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengtypedef YYTYPE_INT8 yytype_int8; 205ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#elif (defined __STDC__ || defined __C99__FUNC__ \ 206ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng || defined __cplusplus || defined _MSC_VER) 207ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengtypedef signed char yytype_int8; 208ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else 209ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengtypedef short int yytype_int8; 210ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 211ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 212ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifdef YYTYPE_UINT16 213ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengtypedef YYTYPE_UINT16 yytype_uint16; 214ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else 215ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengtypedef unsigned short int yytype_uint16; 216ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 217ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 218ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifdef YYTYPE_INT16 219ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengtypedef YYTYPE_INT16 yytype_int16; 220ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else 221ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengtypedef short int yytype_int16; 222ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 223ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 224ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef YYSIZE_T 225ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifdef __SIZE_TYPE__ 226ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSIZE_T __SIZE_TYPE__ 227ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# elif defined size_t 228ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSIZE_T size_t 229ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 230ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng || defined __cplusplus || defined _MSC_VER) 231ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 232ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSIZE_T size_t 233ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# else 234ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSIZE_T unsigned int 235ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 236ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 237ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 238ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 239ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 240ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef YY_ 241ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# if defined YYENABLE_NLS && YYENABLE_NLS 242ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# if ENABLE_NLS 243ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 244ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YY_(msgid) dgettext ("bison-runtime", msgid) 245ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 246ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 247ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef YY_ 248ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YY_(msgid) msgid 249ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 250ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 251ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 252ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Suppress unused-variable warnings by "using" E. */ 253ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if ! defined lint || defined __GNUC__ 254ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYUSE(e) ((void) (e)) 255ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else 256ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYUSE(e) /* empty */ 257ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 258ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 259ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Identity function, used to suppress warnings about constant conditions. */ 260ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef lint 261ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYID(n) (n) 262ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else 263ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (defined __STDC__ || defined __C99__FUNC__ \ 264ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng || defined __cplusplus || defined _MSC_VER) 265ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic int 266ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben ChengYYID (int yyi) 267ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else 268ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic int 269ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben ChengYYID (yyi) 270ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng int yyi; 271ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 272ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 273ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng return yyi; 274ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng} 275ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 276ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 277ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if ! defined yyoverflow || YYERROR_VERBOSE 278ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 279ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* The parser invokes alloca or malloc; define the necessary symbols. */ 280ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 281ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifdef YYSTACK_USE_ALLOCA 282ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# if YYSTACK_USE_ALLOCA 283ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifdef __GNUC__ 284ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_ALLOC __builtin_alloca 285ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# elif defined __BUILTIN_VA_ARG_INCR 286ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 287ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# elif defined _AIX 288ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_ALLOC __alloca 289ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# elif defined _MSC_VER 290ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 291ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define alloca _alloca 292ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# else 293ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_ALLOC alloca 294ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 295ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng || defined __cplusplus || defined _MSC_VER) 296ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 297ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef EXIT_SUCCESS 298ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define EXIT_SUCCESS 0 299ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 300ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 301ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 302ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 303ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 304ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 305ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifdef YYSTACK_ALLOC 306ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng /* Pacify GCC's `empty if-body' warning. */ 307ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 308ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef YYSTACK_ALLOC_MAXIMUM 309ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng /* The OS might guarantee only one guard page at the bottom of the stack, 310ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng and a page size can be as small as 4096 bytes. So we cannot safely 311ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 312ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng to allow for a few compiler-allocated temporary stack slots. */ 313ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 314ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 315ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# else 316ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_ALLOC YYMALLOC 317ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_FREE YYFREE 318ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef YYSTACK_ALLOC_MAXIMUM 319ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 320ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 321ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# if (defined __cplusplus && ! defined EXIT_SUCCESS \ 322ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng && ! ((defined YYMALLOC || defined malloc) \ 323ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng && (defined YYFREE || defined free))) 324ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 325ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef EXIT_SUCCESS 326ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define EXIT_SUCCESS 0 327ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 328ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 329ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef YYMALLOC 330ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYMALLOC malloc 331ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 332ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng || defined __cplusplus || defined _MSC_VER) 333ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 334ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 335ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 336ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef YYFREE 337ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYFREE free 338ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 339ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng || defined __cplusplus || defined _MSC_VER) 340ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengvoid free (void *); /* INFRINGES ON USER NAME SPACE */ 341ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 342ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 343ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 344ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 345ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 346ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 347ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (! defined yyoverflow \ 348ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng && (! defined __cplusplus \ 349ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 350ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 351ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* A type that is properly aligned for any stack member. */ 352ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengunion yyalloc 353ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 354ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng yytype_int16 yyss_alloc; 355ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng YYSTYPE yyvs_alloc; 356ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 357ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 358ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* The size of the maximum gap between one aligned stack and the next. */ 359ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 360ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 361ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* The size of an array large to enough to hold all stacks, each with 362ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng N elements. */ 363ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_BYTES(N) \ 364ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 365ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng + YYSTACK_GAP_MAXIMUM) 366ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 367ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYCOPY_NEEDED 1 368ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 369ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Relocate STACK from its old location to the new one. The 370ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng local variables YYSIZE and YYSTACKSIZE give the old and new number of 371ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng elements in the stack, and YYPTR gives the new location of the 372ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng stack. Advance YYPTR to a properly aligned location for the next 373ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng stack. */ 374ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 375ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng do \ 376ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng { \ 377ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng YYSIZE_T yynewbytes; \ 378ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 379ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng Stack = &yyptr->Stack_alloc; \ 380ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 381ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng yyptr += yynewbytes / sizeof (*yyptr); \ 382ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng } \ 383ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng while (YYID (0)) 384ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 385ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 386ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 387ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if defined YYCOPY_NEEDED && YYCOPY_NEEDED 388ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Copy COUNT objects from FROM to TO. The source and destination do 389ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng not overlap. */ 390ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef YYCOPY 391ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# if defined __GNUC__ && 1 < __GNUC__ 392ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYCOPY(To, From, Count) \ 393ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 394ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# else 395ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYCOPY(To, From, Count) \ 396ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng do \ 397ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng { \ 398ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng YYSIZE_T yyi; \ 399ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng for (yyi = 0; yyi < (Count); yyi++) \ 400ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng (To)[yyi] = (From)[yyi]; \ 401ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng } \ 402ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng while (YYID (0)) 403ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 404ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 405ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif /* !YYCOPY_NEEDED */ 406ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 407ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYFINAL -- State number of the termination state. */ 408ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYFINAL 35 409ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYLAST -- Last index in YYTABLE. */ 410ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYLAST 87 411ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 412ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYNTOKENS -- Number of terminals. */ 413ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYNTOKENS 27 414ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYNNTS -- Number of nonterminals. */ 415ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYNNTS 24 416ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYNRULES -- Number of rules. */ 417ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYNRULES 55 418ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYNRULES -- Number of states. */ 419ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYNSTATES 87 420ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 421ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 422ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYUNDEFTOK 2 423ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYMAXUTOK 274 424ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 425ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYTRANSLATE(YYX) \ 426ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 427ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 428ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 429ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_uint8 yytranslate[] = 430ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 431ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 432ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 433ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 434ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 435ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 20, 25, 2, 24, 2, 2, 436ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 21, 2, 437ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 26, 2, 2, 2, 2, 2, 2, 2, 2, 438ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 439ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 440ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 441ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 442ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 443ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 22, 2, 23, 2, 2, 2, 2, 444ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 445ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 446ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 447ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 448ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 449ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 450ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 451ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 452ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 453ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 454ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 455ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 456ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 457ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 458ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 15, 16, 17, 18, 19 459ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 460ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 461ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if YYDEBUG 462ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 463ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng YYRHS. */ 464ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_uint8 yyprhs[] = 465ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 466ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 0, 0, 3, 6, 9, 11, 15, 19, 21, 23, 467ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 27, 29, 34, 38, 42, 44, 46, 49, 51, 54, 468ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 56, 58, 60, 63, 65, 68, 71, 74, 79, 81, 469ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 83, 88, 91, 97, 101, 103, 109, 113, 117, 121, 470ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 123, 125, 129, 131, 135, 139, 143, 145, 147, 151, 471ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 155, 157, 159, 160, 162, 164 472ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 473ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 474ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYRHS -- A `-1'-separated list of the rules' RHS. */ 475ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_int8 yyrhs[] = 476ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 477ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 28, 0, -1, 3, 29, -1, 4, 46, -1, 30, 478ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 30, 20, 31, -1, 30, 20, 34, -1, 31, 479ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 34, -1, 32, 21, 12, -1, 32, -1, 11, 480ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 22, 33, 23, -1, 22, 33, 23, -1, 33, 20, 481ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 34, -1, 34, -1, 35, -1, 36, 12, -1, 36, 482ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 10, 37, -1, 37, -1, 38, -1, 40, -1, 483ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 41, 49, -1, 42, -1, 43, 49, -1, 44, 49, 484ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 45, 49, -1, 11, 24, 47, 24, -1, 6, 485ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 7, -1, 39, 24, 47, 24, -1, 39, 50, 486ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 14, 25, 15, 25, 15, -1, 14, 25, 15, 487ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 14, -1, 16, 5, 21, 13, 49, -1, 16, 488ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 5, 49, -1, 11, 21, 11, -1, 5, 21, 5, 489ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 8, -1, 47, -1, 47, 20, 48, -1, 48, 490ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 11, 26, 11, -1, 11, 26, 5, -1, 11, 491ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 26, 6, -1, 11, -1, 6, -1, 9, 26, 11, 492ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 9, 26, 5, -1, 9, -1, 21, -1, -1, 493ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 24, -1, 21, -1, -1 494ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 495ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 496ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 497ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_uint16 yyrline[] = 498ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 499ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 0, 90, 90, 92, 94, 102, 111, 120, 122, 125, 500ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 133, 136, 145, 155, 164, 166, 169, 182, 185, 192, 501ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 194, 195, 196, 197, 198, 199, 200, 203, 215, 217, 502ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 220, 234, 248, 258, 268, 279, 290, 302, 313, 324, 503ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 335, 342, 352, 364, 373, 382, 391, 400, 409, 417, 504ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 425, 433, 433, 435, 435, 435 505ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 506ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 507ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 508ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 509ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 510ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 511ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const char *const yytname[] = 512ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 513ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "$end", "error", "$undefined", "PE_START_EVENTS", "PE_START_TERMS", 514ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "PE_VALUE", "PE_VALUE_SYM_HW", "PE_VALUE_SYM_SW", "PE_RAW", "PE_TERM", 515ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "PE_EVENT_NAME", "PE_NAME", "PE_MODIFIER_EVENT", "PE_MODIFIER_BP", 516ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "PE_NAME_CACHE_TYPE", "PE_NAME_CACHE_OP_RESULT", "PE_PREFIX_MEM", 517ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "PE_PREFIX_RAW", "PE_PREFIX_GROUP", "PE_ERROR", "','", "':'", "'{'", 518ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "'}'", "'/'", "'-'", "'='", "$accept", "start", "start_events", "groups", 519ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "group", "group_def", "events", "event", "event_mod", "event_name", 520ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "event_def", "event_pmu", "value_sym", "event_legacy_symbol", 521ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "event_legacy_cache", "event_legacy_mem", "event_legacy_tracepoint", 522ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "event_legacy_numeric", "event_legacy_raw", "start_terms", 523ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng "event_config", "event_term", "sep_dc", "sep_slash_dc", 0 524ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 525ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif 526ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 527ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifdef YYPRINT 528ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 529ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng token YYLEX-NUM. */ 530ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_uint16 yytoknum[] = 531ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 532ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 533ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 534ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 44, 58, 123, 125, 47, 45, 61 535ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 536ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif 537ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 538ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 539ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_uint8 yyr1[] = 540ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 541ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 0, 27, 28, 28, 29, 30, 30, 30, 30, 31, 542ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 31, 32, 32, 33, 33, 34, 35, 35, 36, 36, 543ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 37, 37, 37, 37, 37, 37, 37, 38, 39, 39, 544ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 40, 40, 41, 41, 41, 42, 42, 43, 44, 45, 545ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 46, 47, 47, 48, 48, 48, 48, 48, 48, 48, 546ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 48, 49, 49, 50, 50, 50 547ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 548ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 549ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 550ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_uint8 yyr2[] = 551ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 552ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 0, 2, 2, 2, 1, 3, 3, 1, 1, 3, 553ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 1, 4, 3, 3, 1, 1, 2, 1, 2, 1, 554ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 1, 1, 2, 1, 2, 2, 2, 4, 1, 1, 555ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 4, 2, 5, 3, 1, 5, 3, 3, 3, 1, 556ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 1, 3, 1, 3, 3, 3, 1, 1, 3, 3, 557ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 1, 1, 0, 1, 1, 0 558ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 559ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 560ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 561ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng Performed when YYTABLE doesn't specify something else to do. Zero 562ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng means the default is an error. */ 563ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_uint8 yydefact[] = 564ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 565ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 0, 0, 0, 0, 0, 28, 29, 39, 0, 0, 566ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 34, 0, 0, 2, 4, 7, 10, 8, 15, 17, 567ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 19, 20, 55, 21, 52, 23, 52, 52, 52, 47, 568ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 50, 46, 3, 40, 42, 1, 0, 0, 18, 0, 569ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 0, 0, 0, 52, 0, 14, 0, 0, 16, 54, 570ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 53, 31, 51, 22, 24, 25, 26, 0, 0, 0, 571ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 38, 37, 0, 0, 33, 51, 36, 0, 12, 5, 572ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 6, 9, 0, 49, 48, 44, 45, 43, 41, 11, 573ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 27, 0, 52, 13, 30, 32, 35 574ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 575ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 576ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYDEFGOTO[NTERM-NUM]. */ 577ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_int8 yydefgoto[] = 578ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{ 579ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng -1, 3, 13, 14, 15, 16, 44, 45, 18, 19, 580ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 20, 21, 22, 23, 24, 25, 26, 27, 28, 32, 581ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 33, 34, 53, 51 582ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}; 583ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng 584ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 585ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng STATE-NUM. */ 586