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