parse-events-bison.c revision ce8be8b3ee4170ecc66ff306d84628e51d0debe3
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.  */
586ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYPACT_NINF -38
587ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_int8 yypact[] =
588ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
589ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      16,     0,    41,    12,    19,   -38,   -38,   -38,    30,    32,
590ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      14,    44,    18,   -38,    31,   -38,    43,   -38,   -38,    49,
591ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     -38,   -38,     9,   -38,    46,   -38,    46,    46,    46,   -38,
592ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      42,    45,   -38,    50,   -38,   -38,    60,    34,   -38,    58,
593ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      18,    41,    57,    52,    39,   -38,     0,    62,   -38,   -38,
594ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      41,   -38,   -38,   -38,   -38,   -38,   -38,     4,    37,    41,
595ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     -38,   -38,    40,    -3,    51,    64,   -38,    18,   -38,   -38,
596ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     -38,   -38,     7,   -38,   -38,   -38,   -38,   -38,   -38,   -38,
597ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     -38,    63,    46,   -38,   -38,   -38,   -38
598ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng};
599ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
600ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYPGOTO[NTERM-NUM].  */
601ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_int8 yypgoto[] =
602ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
603ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     -38,   -38,   -38,   -38,    29,   -38,    47,    -1,   -38,   -38,
604ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      71,   -38,   -38,   -38,   -38,   -38,   -38,   -38,   -38,   -38,
605ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     -37,    21,   -25,   -38
606ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng};
607ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
608ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
609ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   positive, shift that token.  If negative, reduce the rule which
610ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   number is the opposite.  If YYTABLE_NINF, syntax error.  */
611ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYTABLE_NINF -1
612ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_uint8 yytable[] =
613ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
614ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      17,    54,    55,    56,    63,     4,     5,     6,     7,    73,
615ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       8,     9,    35,    72,    10,    74,    11,    59,    66,     1,
616ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       2,    80,    12,     4,     5,     6,     7,    59,     8,    37,
617ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      49,    84,    10,    50,    11,     4,     5,     6,     7,    42,
618ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      36,    37,    75,    76,    10,    70,    11,    29,    77,    43,
619ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      30,    46,    31,    39,    40,    39,    41,    86,    41,    67,
620ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      67,    48,    68,    79,    47,    60,    83,    52,    57,    61,
621ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      59,    58,    64,    65,    71,    69,    81,    82,    85,    38,
622ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      78,     0,     0,     0,     0,     0,     0,    62
623ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng};
624ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
625ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yypact_value_is_default(yystate) \
626ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  ((yystate) == (-38))
627ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
628ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yytable_value_is_error(yytable_value) \
629ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYID (0)
630ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
631ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_int8 yycheck[] =
632ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
633ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       1,    26,    27,    28,    41,     5,     6,     7,     8,     5,
634ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      10,    11,     0,    50,    14,    11,    16,    20,    43,     3,
635ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       4,    24,    22,     5,     6,     7,     8,    20,    10,    11,
636ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      21,    24,    14,    24,    16,     5,     6,     7,     8,    25,
637ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      21,    11,     5,     6,    14,    46,    16,     6,    11,     5,
638ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       9,    20,    11,    21,    22,    21,    24,    82,    24,    20,
639ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      20,    12,    23,    23,    21,     5,    67,    21,    26,    11,
640ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      20,    26,    15,    21,    12,    46,    25,    13,    15,     8,
641ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      59,    -1,    -1,    -1,    -1,    -1,    -1,    40
642ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng};
643ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
644ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
645ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   symbol of state STATE-NUM.  */
646ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic const yytype_uint8 yystos[] =
647ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
648ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       0,     3,     4,    28,     5,     6,     7,     8,    10,    11,
649ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      14,    16,    22,    29,    30,    31,    32,    34,    35,    36,
650ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      37,    38,    39,    40,    41,    42,    43,    44,    45,     6,
651ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       9,    11,    46,    47,    48,     0,    21,    11,    37,    21,
652ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      22,    24,    25,     5,    33,    34,    20,    21,    12,    21,
653ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      24,    50,    21,    49,    49,    49,    49,    26,    26,    20,
654ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       5,    11,    33,    47,    15,    21,    49,    20,    23,    31,
655ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      34,    12,    47,     5,    11,     5,     6,    11,    48,    23,
656ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      24,    25,    13,    34,    24,    15,    49
657ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng};
658ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
659ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yyerrok		(yyerrstatus = 0)
660ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define yyclearin	(yychar = YYEMPTY)
661ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYEMPTY		(-2)
662ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYEOF		0
663ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
664ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYACCEPT	goto yyacceptlab
665ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYABORT		goto yyabortlab
666ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYERROR		goto yyerrorlab
667ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
668ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
669ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Like YYERROR except do call yyerror.  This remains here temporarily
670ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   to ease the transition to the new meaning of YYERROR, for GCC.
671ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   Once GCC version 2 has supplanted version 1, this can go.  However,
672ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
673ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
674ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   discussed.  */
675ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
676ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYFAIL		goto yyerrlab
677ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if defined YYFAIL
678ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* This is here to suppress warnings from the GCC cpp's
679ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     -Wunused-macros.  Normally we don't worry about that warning, but
680ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     some users do, and we want to make it easy for users to remove
681ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     YYFAIL uses, which will produce warnings from Bison 2.5.  */
682ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
683ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
684ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYRECOVERING()  (!!yyerrstatus)
685ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
686ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYBACKUP(Token, Value)					\
687ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengdo								\
688ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yychar == YYEMPTY && yylen == 1)				\
689ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {								\
690ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yychar = (Token);						\
691ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yylval = (Value);						\
692ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYPOPSTACK (1);						\
693ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      goto yybackup;						\
694ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }								\
695ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  else								\
696ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {								\
697ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yyerror (_data, scanner, YY_("syntax error: cannot back up")); \
698ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYERROR;							\
699ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }								\
700ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengwhile (YYID (0))
701ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
702ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
703ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYTERROR	1
704ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYERRCODE	256
705ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
706ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
707ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
708ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   If N is 0, then set CURRENT to the empty location which ends
709ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   the previous symbol: RHS[0] (always defined).  */
710ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
711ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYRHSLOC(Rhs, K) ((Rhs)[K])
712ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef YYLLOC_DEFAULT
713ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYLLOC_DEFAULT(Current, Rhs, N)				\
714ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    do									\
715ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (YYID (N))                                                    \
716ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	{								\
717ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
718ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
719ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
720ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
721ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	}								\
722ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      else								\
723ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	{								\
724ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  (Current).first_line   = (Current).last_line   =		\
725ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    YYRHSLOC (Rhs, 0).last_line;				\
726ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  (Current).first_column = (Current).last_column =		\
727ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    YYRHSLOC (Rhs, 0).last_column;				\
728ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	}								\
729ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    while (YYID (0))
730ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
731ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
732ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
733ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* This macro is provided for backward compatibility. */
734ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
735ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef YY_LOCATION_PRINT
736ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
737ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
738ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
739ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
740ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYLEX -- calling `yylex' with the right arguments.  */
741ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
742ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifdef YYLEX_PARAM
743ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYLEX yylex (&yylval, YYLEX_PARAM)
744ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
745ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYLEX yylex (&yylval, scanner)
746ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
747ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
748ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Enable debugging if requested.  */
749ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if YYDEBUG
750ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
751ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef YYFPRINTF
752ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
753ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#  define YYFPRINTF fprintf
754ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif
755ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
756ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYDPRINTF(Args)			\
757ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengdo {						\
758ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yydebug)					\
759ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYFPRINTF Args;				\
760ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng} while (YYID (0))
761ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
762ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
763ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengdo {									  \
764ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yydebug)								  \
765ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {									  \
766ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYFPRINTF (stderr, "%s ", Title);					  \
767ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yy_symbol_print (stderr,						  \
768ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		  Type, Value, _data, scanner); \
769ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYFPRINTF (stderr, "\n");						  \
770ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }									  \
771ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng} while (YYID (0))
772ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
773ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
774ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*--------------------------------.
775ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| Print this symbol on YYOUTPUT.  |
776ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`--------------------------------*/
777ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
778ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*ARGSUSED*/
779ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (defined __STDC__ || defined __C99__FUNC__ \
780ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     || defined __cplusplus || defined _MSC_VER)
781ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic void
782ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, void *_data, void *scanner)
783ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
784ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic void
785ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyy_symbol_value_print (yyoutput, yytype, yyvaluep, _data, scanner)
786ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    FILE *yyoutput;
787ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    int yytype;
788ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYSTYPE const * const yyvaluep;
789ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *_data;
790ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *scanner;
791ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
792ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
793ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (!yyvaluep)
794ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    return;
795ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYUSE (_data);
796ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYUSE (scanner);
797ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifdef YYPRINT
798ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yytype < YYNTOKENS)
799ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
800ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# else
801ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYUSE (yyoutput);
802ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif
803ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  switch (yytype)
804ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
805ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      default:
806ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	break;
807ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
808ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
809ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
810ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
811ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*--------------------------------.
812ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| Print this symbol on YYOUTPUT.  |
813ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`--------------------------------*/
814ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
815ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (defined __STDC__ || defined __C99__FUNC__ \
816ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     || defined __cplusplus || defined _MSC_VER)
817ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic void
818ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, void *_data, void *scanner)
819ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
820ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic void
821ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyy_symbol_print (yyoutput, yytype, yyvaluep, _data, scanner)
822ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    FILE *yyoutput;
823ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    int yytype;
824ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYSTYPE const * const yyvaluep;
825ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *_data;
826ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *scanner;
827ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
828ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
829ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yytype < YYNTOKENS)
830ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
831ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  else
832ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
833ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
834ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yy_symbol_value_print (yyoutput, yytype, yyvaluep, _data, scanner);
835ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYFPRINTF (yyoutput, ")");
836ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
837ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
838ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*------------------------------------------------------------------.
839ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yy_stack_print -- Print the state stack from its BOTTOM up to its |
840ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| TOP (included).                                                   |
841ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`------------------------------------------------------------------*/
842ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
843ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (defined __STDC__ || defined __C99__FUNC__ \
844ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     || defined __cplusplus || defined _MSC_VER)
845ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic void
846ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
847ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
848ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic void
849ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyy_stack_print (yybottom, yytop)
850ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yytype_int16 *yybottom;
851ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yytype_int16 *yytop;
852ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
853ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
854ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYFPRINTF (stderr, "Stack now");
855ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  for (; yybottom <= yytop; yybottom++)
856ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
857ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      int yybot = *yybottom;
858ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYFPRINTF (stderr, " %d", yybot);
859ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
860ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYFPRINTF (stderr, "\n");
861ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
862ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
863ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YY_STACK_PRINT(Bottom, Top)				\
864ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengdo {								\
865ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yydebug)							\
866ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yy_stack_print ((Bottom), (Top));				\
867ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng} while (YYID (0))
868ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
869ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
870ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*------------------------------------------------.
871ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| Report that the YYRULE is going to be reduced.  |
872ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`------------------------------------------------*/
873ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
874ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (defined __STDC__ || defined __C99__FUNC__ \
875ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     || defined __cplusplus || defined _MSC_VER)
876ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic void
877ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyy_reduce_print (YYSTYPE *yyvsp, int yyrule, void *_data, void *scanner)
878ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
879ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic void
880ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyy_reduce_print (yyvsp, yyrule, _data, scanner)
881ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYSTYPE *yyvsp;
882ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    int yyrule;
883ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *_data;
884ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *scanner;
885ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
886ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
887ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  int yynrhs = yyr2[yyrule];
888ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  int yyi;
889ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  unsigned long int yylno = yyrline[yyrule];
890ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
891ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	     yyrule - 1, yylno);
892ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* The symbols being reduced.  */
893ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  for (yyi = 0; yyi < yynrhs; yyi++)
894ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
895ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
896ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
897ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		       &(yyvsp[(yyi + 1) - (yynrhs)])
898ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		       		       , _data, scanner);
899ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYFPRINTF (stderr, "\n");
900ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
901ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
902ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
903ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YY_REDUCE_PRINT(Rule)		\
904ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengdo {					\
905ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yydebug)				\
906ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yy_reduce_print (yyvsp, Rule, _data, scanner); \
907ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng} while (YYID (0))
908ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
909ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Nonzero means print parse trace.  It is left uninitialized so that
910ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   multiple parsers can coexist.  */
911ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengint yydebug;
912ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else /* !YYDEBUG */
913ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYDPRINTF(Args)
914ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
915ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YY_STACK_PRINT(Bottom, Top)
916ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YY_REDUCE_PRINT(Rule)
917ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif /* !YYDEBUG */
918ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
919ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
920ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYINITDEPTH -- initial size of the parser's stacks.  */
921ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef	YYINITDEPTH
922ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYINITDEPTH 200
923ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
924ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
925ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
926ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   if the built-in stack extension method is used).
927ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
928ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   Do not make this value too large; the results are undefined if
929ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
930ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   evaluated with infinite-precision integer arithmetic.  */
931ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
932ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef YYMAXDEPTH
933ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYMAXDEPTH 10000
934ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
935ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
936ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
937ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if YYERROR_VERBOSE
938ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
939ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef yystrlen
940ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#  if defined __GLIBC__ && defined _STRING_H
941ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#   define yystrlen strlen
942ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#  else
943ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Return the length of YYSTR.  */
944ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (defined __STDC__ || defined __C99__FUNC__ \
945ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     || defined __cplusplus || defined _MSC_VER)
946ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic YYSIZE_T
947ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyystrlen (const char *yystr)
948ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
949ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic YYSIZE_T
950ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyystrlen (yystr)
951ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    const char *yystr;
952ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
953ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
954ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYSIZE_T yylen;
955ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  for (yylen = 0; yystr[yylen]; yylen++)
956ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    continue;
957ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  return yylen;
958ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
959ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#  endif
960ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif
961ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
962ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef yystpcpy
963ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
964ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#   define yystpcpy stpcpy
965ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#  else
966ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
967ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   YYDEST.  */
968ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (defined __STDC__ || defined __C99__FUNC__ \
969ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     || defined __cplusplus || defined _MSC_VER)
970ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic char *
971ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyystpcpy (char *yydest, const char *yysrc)
972ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
973ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic char *
974ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyystpcpy (yydest, yysrc)
975ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    char *yydest;
976ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    const char *yysrc;
977ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
978ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
979ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  char *yyd = yydest;
980ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  const char *yys = yysrc;
981ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
982ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  while ((*yyd++ = *yys++) != '\0')
983ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    continue;
984ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
985ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  return yyd - 1;
986ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
987ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#  endif
988ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif
989ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
990ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef yytnamerr
991ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
992ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   quotes and backslashes, so that it's suitable for yyerror.  The
993ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   heuristic is that double-quoting is unnecessary unless the string
994ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   contains an apostrophe, a comma, or backslash (other than
995ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
996ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   null, do not copy; instead, return the length of what the result
997ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   would have been.  */
998ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic YYSIZE_T
999ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyytnamerr (char *yyres, const char *yystr)
1000ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
1001ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (*yystr == '"')
1002ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1003ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYSIZE_T yyn = 0;
1004ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      char const *yyp = yystr;
1005ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1006ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      for (;;)
1007ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	switch (*++yyp)
1008ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  {
1009ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  case '\'':
1010ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  case ',':
1011ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    goto do_not_strip_quotes;
1012ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1013ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  case '\\':
1014ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    if (*++yyp != '\\')
1015ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	      goto do_not_strip_quotes;
1016ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    /* Fall through.  */
1017ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  default:
1018ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    if (yyres)
1019ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	      yyres[yyn] = *yyp;
1020ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    yyn++;
1021ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    break;
1022ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1023ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  case '"':
1024ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    if (yyres)
1025ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	      yyres[yyn] = '\0';
1026ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    return yyn;
1027ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  }
1028ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    do_not_strip_quotes: ;
1029ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1030ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1031ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (! yyres)
1032ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    return yystrlen (yystr);
1033ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1034ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  return yystpcpy (yyres, yystr) - yyres;
1035ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1036ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif
1037ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1038ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1039ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   about the unexpected token YYTOKEN for the state stack whose top is
1040ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   YYSSP.
1041ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1042ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
1043ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   not large enough to hold the message.  In that case, also set
1044ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
1045ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng   required number of bytes is too large to store.  */
1046ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic int
1047ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1048ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                yytype_int16 *yyssp, int yytoken)
1049ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
1050ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
1051ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYSIZE_T yysize = yysize0;
1052ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYSIZE_T yysize1;
1053ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1054ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Internationalized format string. */
1055ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  const char *yyformat = 0;
1056ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Arguments of yyformat. */
1057ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1058ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Number of reported tokens (one for the "unexpected", one per
1059ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     "expected"). */
1060ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  int yycount = 0;
1061ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1062ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* There are many possibilities here to consider:
1063ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     - Assume YYFAIL is not used.  It's too flawed to consider.  See
1064ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1065ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       for details.  YYERROR is fine as it does not invoke this
1066ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       function.
1067ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     - If this state is a consistent state with a default action, then
1068ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       the only way this function was invoked is if the default action
1069ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       is an error action.  In that case, don't check for expected
1070ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       tokens because there are none.
1071ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     - The only way there can be no lookahead present (in yychar) is if
1072ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       this state is a consistent state with a default action.  Thus,
1073ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       detecting the absence of a lookahead is sufficient to determine
1074ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       that there is no unexpected or expected token to report.  In that
1075ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       case, just report a simple "syntax error".
1076ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     - Don't assume there isn't a lookahead just because this state is a
1077ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       consistent state with a default action.  There might have been a
1078ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       previous inconsistent state, consistent state with a non-default
1079ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       action, or user semantic action that manipulated yychar.
1080ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     - Of course, the expected token list depends on states to have
1081ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       correct lookahead information, and it depends on the parser not
1082ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       to perform extra reductions after fetching a lookahead from the
1083ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       scanner and before detecting a syntax error.  Thus, state merging
1084ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       (from LALR or IELR) and default reductions corrupt the expected
1085ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       token list.  However, the list is correct for canonical LR with
1086ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       one exception: it will still contain any token that will not be
1087ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       accepted due to an error action in a later state.
1088ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  */
1089ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yytoken != YYEMPTY)
1090ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1091ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      int yyn = yypact[*yyssp];
1092ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yyarg[yycount++] = yytname[yytoken];
1093ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (!yypact_value_is_default (yyn))
1094ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        {
1095ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          /* Start YYX at -YYN if negative to avoid negative indexes in
1096ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng             YYCHECK.  In other words, skip the first -YYN actions for
1097ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng             this state because they are default actions.  */
1098ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          int yyxbegin = yyn < 0 ? -yyn : 0;
1099ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          /* Stay within bounds of both yycheck and yytname.  */
1100ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          int yychecklim = YYLAST - yyn + 1;
1101ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1102ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          int yyx;
1103ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1104ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1105ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1106ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                && !yytable_value_is_error (yytable[yyx + yyn]))
1107ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng              {
1108ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1109ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                  {
1110ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                    yycount = 1;
1111ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                    yysize = yysize0;
1112ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                    break;
1113ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                  }
1114ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                yyarg[yycount++] = yytname[yyx];
1115ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1116ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                if (! (yysize <= yysize1
1117ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1118ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                  return 2;
1119ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                yysize = yysize1;
1120ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng              }
1121ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        }
1122ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1123ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1124ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  switch (yycount)
1125ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1126ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYCASE_(N, S)                      \
1127ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      case N:                               \
1128ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        yyformat = S;                       \
1129ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      break
1130ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYCASE_(0, YY_("syntax error"));
1131ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYCASE_(1, YY_("syntax error, unexpected %s"));
1132ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1133ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1134ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1135ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1136ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# undef YYCASE_
1137ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1138ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1139ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yysize1 = yysize + yystrlen (yyformat);
1140ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1141ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    return 2;
1142ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yysize = yysize1;
1143ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1144ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (*yymsg_alloc < yysize)
1145ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1146ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      *yymsg_alloc = 2 * yysize;
1147ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (! (yysize <= *yymsg_alloc
1148ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1149ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1150ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      return 1;
1151ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1152ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1153ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Avoid sprintf, as that infringes on the user's name space.
1154ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     Don't have undefined behavior even if the translation
1155ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     produced a string with the wrong number of "%s"s.  */
1156ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  {
1157ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    char *yyp = *yymsg;
1158ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    int yyi = 0;
1159ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    while ((*yyp = *yyformat) != '\0')
1160ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1161ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        {
1162ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          yyp += yytnamerr (yyp, yyarg[yyi++]);
1163ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          yyformat += 2;
1164ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        }
1165ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      else
1166ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        {
1167ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          yyp++;
1168ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          yyformat++;
1169ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        }
1170ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  }
1171ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  return 0;
1172ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1173ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif /* YYERROR_VERBOSE */
1174ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1175ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*-----------------------------------------------.
1176ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| Release the memory associated to this symbol.  |
1177ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`-----------------------------------------------*/
1178ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1179ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*ARGSUSED*/
1180ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (defined __STDC__ || defined __C99__FUNC__ \
1181ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     || defined __cplusplus || defined _MSC_VER)
1182ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic void
1183ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, void *_data, void *scanner)
1184ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
1185ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengstatic void
1186ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyydestruct (yymsg, yytype, yyvaluep, _data, scanner)
1187ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    const char *yymsg;
1188ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    int yytype;
1189ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYSTYPE *yyvaluep;
1190ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *_data;
1191ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *scanner;
1192ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
1193ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
1194ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYUSE (yyvaluep);
1195ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYUSE (_data);
1196ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYUSE (scanner);
1197ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1198ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (!yymsg)
1199ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yymsg = "Deleting";
1200ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1201ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1202ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  switch (yytype)
1203ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1204ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1205ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      default:
1206ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	break;
1207ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1208ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1209ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1210ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1211ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Prevent warnings from -Wmissing-prototypes.  */
1212ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifdef YYPARSE_PARAM
1213ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if defined __STDC__ || defined __cplusplus
1214ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengint yyparse (void *YYPARSE_PARAM);
1215ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
1216ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengint yyparse ();
1217ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
1218ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else /* ! YYPARSE_PARAM */
1219ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if defined __STDC__ || defined __cplusplus
1220ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengint yyparse (void *_data, void *scanner);
1221ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
1222ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengint yyparse ();
1223ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
1224ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif /* ! YYPARSE_PARAM */
1225ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1226ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1227ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*----------.
1228ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yyparse.  |
1229ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`----------*/
1230ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1231ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifdef YYPARSE_PARAM
1232ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (defined __STDC__ || defined __C99__FUNC__ \
1233ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     || defined __cplusplus || defined _MSC_VER)
1234ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengint
1235ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyparse (void *YYPARSE_PARAM)
1236ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
1237ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengint
1238ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyparse (YYPARSE_PARAM)
1239ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *YYPARSE_PARAM;
1240ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
1241ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else /* ! YYPARSE_PARAM */
1242ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if (defined __STDC__ || defined __C99__FUNC__ \
1243ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     || defined __cplusplus || defined _MSC_VER)
1244ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengint
1245ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyparse (void *_data, void *scanner)
1246ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
1247ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengint
1248ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyparse (_data, scanner)
1249ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *_data;
1250ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    void *scanner;
1251ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
1252ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
1253ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
1254ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* The lookahead symbol.  */
1255ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengint yychar;
1256ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1257ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* The semantic value of the lookahead symbol.  */
1258ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben ChengYYSTYPE yylval;
1259ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1260ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    /* Number of syntax errors so far.  */
1261ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    int yynerrs;
1262ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1263ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    int yystate;
1264ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    /* Number of tokens to shift before error messages enabled.  */
1265ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    int yyerrstatus;
1266ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1267ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    /* The stacks and their tools:
1268ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       `yyss': related to states.
1269ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       `yyvs': related to semantic values.
1270ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1271ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       Refer to the stacks thru separate pointers, to allow yyoverflow
1272ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng       to reallocate them elsewhere.  */
1273ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1274ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    /* The state stack.  */
1275ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yytype_int16 yyssa[YYINITDEPTH];
1276ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yytype_int16 *yyss;
1277ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yytype_int16 *yyssp;
1278ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1279ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    /* The semantic value stack.  */
1280ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYSTYPE yyvsa[YYINITDEPTH];
1281ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYSTYPE *yyvs;
1282ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYSTYPE *yyvsp;
1283ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1284ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYSIZE_T yystacksize;
1285ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1286ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  int yyn;
1287ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  int yyresult;
1288ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Lookahead token as an internal (translated) token number.  */
1289ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  int yytoken;
1290ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* The variables used to return semantic value and location from the
1291ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     action routines.  */
1292ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYSTYPE yyval;
1293ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1294ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if YYERROR_VERBOSE
1295ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Buffer for error messages, and its allocated size.  */
1296ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  char yymsgbuf[128];
1297ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  char *yymsg = yymsgbuf;
1298ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1299ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
1300ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1301ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1302ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1303ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* The number of symbols on the RHS of the reduced rule.
1304ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     Keep to zero when no symbol should be popped.  */
1305ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  int yylen = 0;
1306ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1307ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yytoken = 0;
1308ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyss = yyssa;
1309ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyvs = yyvsa;
1310ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yystacksize = YYINITDEPTH;
1311ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1312ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYDPRINTF ((stderr, "Starting parse\n"));
1313ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1314ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yystate = 0;
1315ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyerrstatus = 0;
1316ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yynerrs = 0;
1317ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yychar = YYEMPTY; /* Cause a token to be read.  */
1318ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1319ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Initialize stack pointers.
1320ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     Waste one element of value and location stack
1321ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     so that they stay on the same level as the state stack.
1322ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     The wasted elements are never initialized.  */
1323ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyssp = yyss;
1324ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyvsp = yyvs;
1325ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1326ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  goto yysetstate;
1327ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1328ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*------------------------------------------------------------.
1329ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yynewstate -- Push a new state, which is found in yystate.  |
1330ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`------------------------------------------------------------*/
1331ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng yynewstate:
1332ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* In all cases, when you get here, the value and location stacks
1333ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     have just been pushed.  So pushing a state here evens the stacks.  */
1334ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyssp++;
1335ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1336ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng yysetstate:
1337ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  *yyssp = yystate;
1338ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1339ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yyss + yystacksize - 1 <= yyssp)
1340ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1341ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      /* Get the current used size of the three stacks, in elements.  */
1342ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYSIZE_T yysize = yyssp - yyss + 1;
1343ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1344ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifdef yyoverflow
1345ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      {
1346ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	/* Give user a chance to reallocate the stack.  Use copies of
1347ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	   these so that the &'s don't force the real ones into
1348ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	   memory.  */
1349ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	YYSTYPE *yyvs1 = yyvs;
1350ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	yytype_int16 *yyss1 = yyss;
1351ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1352ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	/* Each stack pointer address is followed by the size of the
1353ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	   data in use in that stack, in bytes.  This used to be a
1354ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	   conditional around just the two extra args, but that might
1355ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	   be undefined if yyoverflow is a macro.  */
1356ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	yyoverflow (YY_("memory exhausted"),
1357ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		    &yyss1, yysize * sizeof (*yyssp),
1358ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		    &yyvs1, yysize * sizeof (*yyvsp),
1359ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		    &yystacksize);
1360ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1361ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	yyss = yyss1;
1362ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	yyvs = yyvs1;
1363ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      }
1364ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else /* no yyoverflow */
1365ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# ifndef YYSTACK_RELOCATE
1366ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      goto yyexhaustedlab;
1367ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# else
1368ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      /* Extend the stack our own way.  */
1369ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (YYMAXDEPTH <= yystacksize)
1370ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	goto yyexhaustedlab;
1371ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yystacksize *= 2;
1372ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (YYMAXDEPTH < yystacksize)
1373ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	yystacksize = YYMAXDEPTH;
1374ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1375ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      {
1376ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	yytype_int16 *yyss1 = yyss;
1377ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	union yyalloc *yyptr =
1378ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1379ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	if (! yyptr)
1380ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  goto yyexhaustedlab;
1381ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	YYSTACK_RELOCATE (yyss_alloc, yyss);
1382ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1383ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#  undef YYSTACK_RELOCATE
1384ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	if (yyss1 != yyssa)
1385ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  YYSTACK_FREE (yyss1);
1386ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      }
1387ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# endif
1388ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif /* no yyoverflow */
1389ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1390ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yyssp = yyss + yysize - 1;
1391ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yyvsp = yyvs + yysize - 1;
1392ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1393ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1394ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		  (unsigned long int) yystacksize));
1395ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1396ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (yyss + yystacksize - 1 <= yyssp)
1397ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	YYABORT;
1398ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1399ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1400ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1401ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1402ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yystate == YYFINAL)
1403ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYACCEPT;
1404ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1405ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  goto yybackup;
1406ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1407ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*-----------.
1408ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yybackup.  |
1409ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`-----------*/
1410ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyybackup:
1411ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1412ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Do appropriate processing given the current state.  Read a
1413ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     lookahead token if we need one and don't already have one.  */
1414ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1415ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* First try to decide what to do without reference to lookahead token.  */
1416ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyn = yypact[yystate];
1417ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yypact_value_is_default (yyn))
1418ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    goto yydefault;
1419ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1420ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Not known => get a lookahead token if don't already have one.  */
1421ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1422ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1423ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yychar == YYEMPTY)
1424ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1425ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYDPRINTF ((stderr, "Reading a token: "));
1426ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yychar = YYLEX;
1427ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1428ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1429ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yychar <= YYEOF)
1430ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1431ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yychar = yytoken = YYEOF;
1432ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYDPRINTF ((stderr, "Now at end of input.\n"));
1433ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1434ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  else
1435ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1436ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yytoken = YYTRANSLATE (yychar);
1437ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1438ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1439ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1440ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* If the proper action on seeing token YYTOKEN is to reduce or to
1441ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     detect an error, take that action.  */
1442ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyn += yytoken;
1443ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1444ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    goto yydefault;
1445ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyn = yytable[yyn];
1446ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yyn <= 0)
1447ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1448ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (yytable_value_is_error (yyn))
1449ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        goto yyerrlab;
1450ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yyn = -yyn;
1451ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      goto yyreduce;
1452ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1453ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1454ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Count tokens shifted since error; after three, turn off error
1455ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     status.  */
1456ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yyerrstatus)
1457ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yyerrstatus--;
1458ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1459ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Shift the lookahead token.  */
1460ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1461ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1462ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Discard the shifted token.  */
1463ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yychar = YYEMPTY;
1464ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1465ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yystate = yyn;
1466ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  *++yyvsp = yylval;
1467ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1468ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  goto yynewstate;
1469ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1470ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1471ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*-----------------------------------------------------------.
1472ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yydefault -- do the default action for the current state.  |
1473ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`-----------------------------------------------------------*/
1474ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyydefault:
1475ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyn = yydefact[yystate];
1476ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yyn == 0)
1477ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    goto yyerrlab;
1478ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  goto yyreduce;
1479ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1480ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1481ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*-----------------------------.
1482ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yyreduce -- Do a reduction.  |
1483ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`-----------------------------*/
1484ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyreduce:
1485ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* yyn is the number of a rule to reduce with.  */
1486ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yylen = yyr2[yyn];
1487ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1488ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* If YYLEN is nonzero, implement the default value of the action:
1489ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     `$$ = $1'.
1490ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1491ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     Otherwise, the following line sets YYVAL to garbage.
1492ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     This behavior is undocumented and Bison
1493ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     users should not rely upon it.  Assigning to YYVAL
1494ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     unconditionally makes the parser a bit smaller, and it avoids a
1495ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     GCC warning that YYVAL may be used uninitialized.  */
1496ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyval = yyvsp[1-yylen];
1497ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1498ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1499ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YY_REDUCE_PRINT (yyn);
1500ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  switch (yyn)
1501ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1502ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        case 4:
1503ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1504ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1505ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 95 "util/parse-events.y"
1506ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1507ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1508ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1509ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	parse_events_update_lists((yyvsp[(1) - (1)].head), &data->list);
1510ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1511ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1512ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1513ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 5:
1514ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1515ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1516ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 103 "util/parse-events.y"
1517ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1518ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list  = (yyvsp[(1) - (3)].head);
1519ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *group = (yyvsp[(3) - (3)].head);
1520ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1521ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	parse_events_update_lists(group, list);
1522ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1523ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1524ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1525ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1526ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 6:
1527ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1528ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1529ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 112 "util/parse-events.y"
1530ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1531ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list  = (yyvsp[(1) - (3)].head);
1532ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *event = (yyvsp[(3) - (3)].head);
1533ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1534ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	parse_events_update_lists(event, list);
1535ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1536ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1537ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1538ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1539ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 9:
1540ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1541ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1542ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 126 "util/parse-events.y"
1543ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1544ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list = (yyvsp[(1) - (3)].head);
1545ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1546ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events__modifier_group(list, (yyvsp[(3) - (3)].str)));
1547ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1548ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1549ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1550ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1551ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 11:
1552ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1553ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1554ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 137 "util/parse-events.y"
1555ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1556ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list = (yyvsp[(3) - (4)].head);
1557ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1558ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	inc_group_count(list, _data);
1559ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	parse_events__set_leader((yyvsp[(1) - (4)].str), list);
1560ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1561ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1562ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1563ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1564ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 12:
1565ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1566ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1567ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 146 "util/parse-events.y"
1568ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1569ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list = (yyvsp[(2) - (3)].head);
1570ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1571ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	inc_group_count(list, _data);
1572ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	parse_events__set_leader(NULL, list);
1573ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1574ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1575ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1576ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1577ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 13:
1578ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1579ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1580ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 156 "util/parse-events.y"
1581ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1582ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *event = (yyvsp[(3) - (3)].head);
1583ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list  = (yyvsp[(1) - (3)].head);
1584ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1585ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	parse_events_update_lists(event, list);
1586ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1587ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1588ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1589ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1590ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 16:
1591ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1592ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1593ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 170 "util/parse-events.y"
1594ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1595ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list = (yyvsp[(1) - (2)].head);
1596ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1597ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	/*
1598ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	 * Apply modifier on all events added by single event definition
1599ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	 * (there could be more events added for multiple tracepoint
1600ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	 * definitions via '*?'.
1601ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	 */
1602ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events__modifier_event(list, (yyvsp[(2) - (2)].str), false));
1603ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1604ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1605ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1606ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1607ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 18:
1608ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1609ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1610ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 186 "util/parse-events.y"
1611ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1612ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_name((yyvsp[(2) - (2)].head), (yyvsp[(1) - (2)].str)));
1613ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	free((yyvsp[(1) - (2)].str));
1614ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = (yyvsp[(2) - (2)].head);
1615ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1616ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1617ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1618ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 27:
1619ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1620ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1621ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 204 "util/parse-events.y"
1622ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1623ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1624ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1625ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1626ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1627ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_pmu(list, &data->idx, (yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].head)));
1628ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	parse_events__free_terms((yyvsp[(3) - (4)].head));
1629ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1630ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1631ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1632ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1633ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 30:
1634ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1635ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1636ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 221 "util/parse-events.y"
1637ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1638ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1639ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1640ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	int type = (yyvsp[(1) - (4)].num) >> 16;
1641ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	int config = (yyvsp[(1) - (4)].num) & 255;
1642ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1643ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1644ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_numeric(list, &data->idx,
1645ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng					  type, config, (yyvsp[(3) - (4)].head)));
1646ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	parse_events__free_terms((yyvsp[(3) - (4)].head));
1647ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1648ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1649ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1650ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1651ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 31:
1652ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1653ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1654ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 235 "util/parse-events.y"
1655ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1656ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1657ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1658ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	int type = (yyvsp[(1) - (2)].num) >> 16;
1659ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	int config = (yyvsp[(1) - (2)].num) & 255;
1660ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1661ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1662ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_numeric(list, &data->idx,
1663ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng					  type, config, NULL));
1664ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1665ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1666ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1667ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1668ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 32:
1669ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1670ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1671ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 249 "util/parse-events.y"
1672ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1673ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1674ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1675ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1676ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1677ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_cache(list, &data->idx, (yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (yyvsp[(5) - (5)].str)));
1678ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1679ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1680ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1681ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1682ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 33:
1683ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1684ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1685ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 259 "util/parse-events.y"
1686ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1687ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1688ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1689ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1690ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1691ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_cache(list, &data->idx, (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL));
1692ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1693ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1694ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1695ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1696ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 34:
1697ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1698ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1699ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 269 "util/parse-events.y"
1700ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1701ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1702ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1703ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1704ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1705ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_cache(list, &data->idx, (yyvsp[(1) - (1)].str), NULL, NULL));
1706ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1707ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1708ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1709ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1710ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 35:
1711ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1712ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1713ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 280 "util/parse-events.y"
1714ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1715ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1716ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1717ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1718ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1719ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_breakpoint(list, &data->idx,
1720ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng					     (void *) (yyvsp[(2) - (5)].num), (yyvsp[(4) - (5)].str)));
1721ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1722ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1723ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1724ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1725ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 36:
1726ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1727ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1728ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 291 "util/parse-events.y"
1729ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1730ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1731ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1732ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1733ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1734ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_breakpoint(list, &data->idx,
1735ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng					     (void *) (yyvsp[(2) - (3)].num), NULL));
1736ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1737ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1738ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1739ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1740ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 37:
1741ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1742ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1743ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 303 "util/parse-events.y"
1744ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1745ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1746ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1747ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1748ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1749ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_tracepoint(list, &data->idx, (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)));
1750ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1751ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1752ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1753ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1754ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 38:
1755ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1756ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1757ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 314 "util/parse-events.y"
1758ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1759ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1760ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1761ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1762ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1763ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_numeric(list, &data->idx, (u32)(yyvsp[(1) - (3)].num), (yyvsp[(3) - (3)].num), NULL));
1764ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1765ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1766ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1767ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1768ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 39:
1769ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1770ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1771ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 325 "util/parse-events.y"
1772ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1773ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_evlist *data = _data;
1774ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *list;
1775ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1776ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ALLOC_LIST(list);
1777ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_add_numeric(list, &data->idx,
1778ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng					  PERF_TYPE_RAW, (yyvsp[(1) - (1)].num), NULL));
1779ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = list;
1780ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1781ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1782ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1783ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 40:
1784ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1785ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1786ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 336 "util/parse-events.y"
1787ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1788ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_terms *data = _data;
1789ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	data->terms = (yyvsp[(1) - (1)].head);
1790ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1791ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1792ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1793ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 41:
1794ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1795ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1796ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 343 "util/parse-events.y"
1797ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1798ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *head = (yyvsp[(1) - (3)].head);
1799ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_term *term = (yyvsp[(3) - (3)].term);
1800ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1801ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(!head);
1802ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	list_add_tail(&term->list, head);
1803ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = (yyvsp[(1) - (3)].head);
1804ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1805ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1806ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1807ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 42:
1808ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1809ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1810ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 353 "util/parse-events.y"
1811ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1812ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct list_head *head = malloc(sizeof(*head));
1813ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_term *term = (yyvsp[(1) - (1)].term);
1814ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1815ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(!head);
1816ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	INIT_LIST_HEAD(head);
1817ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	list_add_tail(&term->list, head);
1818ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.head) = head;
1819ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1820ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1821ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1822ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 43:
1823ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1824ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1825ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 365 "util/parse-events.y"
1826ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1827ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_term *term;
1828ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1829ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_term__str(&term, PARSE_EVENTS__TERM_TYPE_USER,
1830ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng					(yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)));
1831ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.term) = term;
1832ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1833ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1834ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1835ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 44:
1836ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1837ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1838ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 374 "util/parse-events.y"
1839ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1840ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_term *term;
1841ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1842ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_term__num(&term, PARSE_EVENTS__TERM_TYPE_USER,
1843ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng					(yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].num)));
1844ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.term) = term;
1845ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1846ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1847ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1848ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 45:
1849ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1850ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1851ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 383 "util/parse-events.y"
1852ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1853ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_term *term;
1854ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	int config = (yyvsp[(3) - (3)].num) & 255;
1855ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1856ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_term__sym_hw(&term, (yyvsp[(1) - (3)].str), config));
1857ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.term) = term;
1858ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1859ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1860ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1861ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 46:
1862ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1863ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1864ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 392 "util/parse-events.y"
1865ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1866ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_term *term;
1867ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1868ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_term__num(&term, PARSE_EVENTS__TERM_TYPE_USER,
1869ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng					(yyvsp[(1) - (1)].str), 1));
1870ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.term) = term;
1871ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1872ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1873ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1874ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 47:
1875ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1876ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1877ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 401 "util/parse-events.y"
1878ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1879ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_term *term;
1880ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	int config = (yyvsp[(1) - (1)].num) & 255;
1881ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1882ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_term__sym_hw(&term, NULL, config));
1883ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.term) = term;
1884ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1885ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1886ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1887ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 48:
1888ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1889ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1890ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 410 "util/parse-events.y"
1891ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1892ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_term *term;
1893ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1894ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_term__str(&term, (int)(yyvsp[(1) - (3)].num), NULL, (yyvsp[(3) - (3)].str)));
1895ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.term) = term;
1896ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1897ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1898ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1899ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 49:
1900ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1901ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1902ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 418 "util/parse-events.y"
1903ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1904ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_term *term;
1905ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1906ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_term__num(&term, (int)(yyvsp[(1) - (3)].num), NULL, (yyvsp[(3) - (3)].num)));
1907ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.term) = term;
1908ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1909ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1910ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1911ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  case 50:
1912ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1913ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1914ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 426 "util/parse-events.y"
1915ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1916ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	struct parse_events_term *term;
1917ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1918ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	ABORT_ON(parse_events_term__num(&term, (int)(yyvsp[(1) - (1)].num), NULL, 1));
1919ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	(yyval.term) = term;
1920ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
1921ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    break;
1922ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1923ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1924ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1925ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 1806 of yacc.c  */
1926ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 1927 "util/parse-events-bison.c"
1927ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      default: break;
1928ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
1929ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* User semantic actions sometimes alter yychar, and that requires
1930ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     that yytoken be updated with the new translation.  We take the
1931ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     approach of translating immediately before every use of yytoken.
1932ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     One alternative is translating here after every semantic action,
1933ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     but that translation would be missed if the semantic action invokes
1934ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1935ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
1936ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     incorrect destructor might then be invoked immediately.  In the
1937ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     case of YYERROR or YYBACKUP, subsequent parser actions might lead
1938ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     to an incorrect destructor call or verbose syntax error message
1939ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     before the lookahead is translated.  */
1940ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
1941ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1942ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYPOPSTACK (yylen);
1943ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yylen = 0;
1944ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YY_STACK_PRINT (yyss, yyssp);
1945ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1946ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  *++yyvsp = yyval;
1947ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1948ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Now `shift' the result of the reduction.  Determine what state
1949ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     that goes to, based on the state we popped back to and the rule
1950ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     number reduced by.  */
1951ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1952ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyn = yyr1[yyn];
1953ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1954ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
1955ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1956ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yystate = yytable[yystate];
1957ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  else
1958ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    yystate = yydefgoto[yyn - YYNTOKENS];
1959ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1960ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  goto yynewstate;
1961ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1962ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1963ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*------------------------------------.
1964ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yyerrlab -- here on detecting error |
1965ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`------------------------------------*/
1966ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyerrlab:
1967ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Make sure we have latest lookahead translation.  See comments at
1968ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     user semantic actions for why this is necessary.  */
1969ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
1970ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
1971ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* If not already recovering from an error, report this error.  */
1972ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (!yyerrstatus)
1973ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
1974ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      ++yynerrs;
1975ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if ! YYERROR_VERBOSE
1976ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yyerror (_data, scanner, YY_("syntax error"));
1977ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#else
1978ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
1979ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                                        yyssp, yytoken)
1980ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      {
1981ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        char const *yymsgp = YY_("syntax error");
1982ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        int yysyntax_error_status;
1983ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        yysyntax_error_status = YYSYNTAX_ERROR;
1984ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        if (yysyntax_error_status == 0)
1985ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          yymsgp = yymsg;
1986ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        else if (yysyntax_error_status == 1)
1987ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          {
1988ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng            if (yymsg != yymsgbuf)
1989ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng              YYSTACK_FREE (yymsg);
1990ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
1991ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng            if (!yymsg)
1992ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng              {
1993ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                yymsg = yymsgbuf;
1994ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                yymsg_alloc = sizeof yymsgbuf;
1995ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                yysyntax_error_status = 2;
1996ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng              }
1997ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng            else
1998ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng              {
1999ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                yysyntax_error_status = YYSYNTAX_ERROR;
2000ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                yymsgp = yymsg;
2001ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng              }
2002ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          }
2003ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        yyerror (_data, scanner, yymsgp);
2004ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng        if (yysyntax_error_status == 2)
2005ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng          goto yyexhaustedlab;
2006ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      }
2007ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng# undef YYSYNTAX_ERROR
2008ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
2009ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
2010ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2011ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2012ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2013ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yyerrstatus == 3)
2014ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
2015ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      /* If just tried and failed to reuse lookahead token after an
2016ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	 error, discard it.  */
2017ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2018ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (yychar <= YYEOF)
2019ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	{
2020ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  /* Return failure if at end of input.  */
2021ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  if (yychar == YYEOF)
2022ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    YYABORT;
2023ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	}
2024ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      else
2025ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	{
2026ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  yydestruct ("Error: discarding",
2027ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		      yytoken, &yylval, _data, scanner);
2028ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  yychar = YYEMPTY;
2029ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	}
2030ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
2031ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2032ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Else will try to reuse lookahead token after shifting the error
2033ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     token.  */
2034ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  goto yyerrlab1;
2035ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2036ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2037ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*---------------------------------------------------.
2038ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yyerrorlab -- error raised explicitly by YYERROR.  |
2039ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`---------------------------------------------------*/
2040ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyerrorlab:
2041ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2042ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Pacify compilers like GCC when the user code never invokes
2043ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     YYERROR and the label yyerrorlab therefore never appears in user
2044ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     code.  */
2045ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (/*CONSTCOND*/ 0)
2046ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     goto yyerrorlab;
2047ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2048ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Do not reclaim the symbols of the rule which action triggered
2049ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     this YYERROR.  */
2050ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYPOPSTACK (yylen);
2051ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yylen = 0;
2052ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YY_STACK_PRINT (yyss, yyssp);
2053ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yystate = *yyssp;
2054ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  goto yyerrlab1;
2055ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2056ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2057ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*-------------------------------------------------------------.
2058ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yyerrlab1 -- common code for both syntax error and YYERROR.  |
2059ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`-------------------------------------------------------------*/
2060ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyerrlab1:
2061ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
2062ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2063ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  for (;;)
2064ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
2065ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yyn = yypact[yystate];
2066ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (!yypact_value_is_default (yyn))
2067ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	{
2068ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  yyn += YYTERROR;
2069ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2070ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    {
2071ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	      yyn = yytable[yyn];
2072ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	      if (0 < yyn)
2073ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		break;
2074ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	    }
2075ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	}
2076ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2077ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      /* Pop the current state because it cannot handle the error token.  */
2078ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      if (yyssp == yyss)
2079ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng	YYABORT;
2080ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2081ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2082ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yydestruct ("Error: popping",
2083ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		  yystos[yystate], yyvsp, _data, scanner);
2084ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYPOPSTACK (1);
2085ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yystate = *yyssp;
2086ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YY_STACK_PRINT (yyss, yyssp);
2087ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
2088ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2089ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  *++yyvsp = yylval;
2090ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2091ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2092ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Shift the error token.  */
2093ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
2094ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2095ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yystate = yyn;
2096ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  goto yynewstate;
2097ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2098ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2099ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*-------------------------------------.
2100ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yyacceptlab -- YYACCEPT comes here.  |
2101ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`-------------------------------------*/
2102ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyacceptlab:
2103ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyresult = 0;
2104ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  goto yyreturn;
2105ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2106ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*-----------------------------------.
2107ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yyabortlab -- YYABORT comes here.  |
2108ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`-----------------------------------*/
2109ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyabortlab:
2110ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyresult = 1;
2111ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  goto yyreturn;
2112ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2113ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if !defined(yyoverflow) || YYERROR_VERBOSE
2114ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/*-------------------------------------------------.
2115ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng| yyexhaustedlab -- memory exhaustion comes here.  |
2116ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng`-------------------------------------------------*/
2117ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyexhaustedlab:
2118ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyerror (_data, scanner, YY_("memory exhausted"));
2119ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  yyresult = 2;
2120ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Fall through.  */
2121ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
2122ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2123ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengyyreturn:
2124ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yychar != YYEMPTY)
2125ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
2126ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      /* Make sure we have latest lookahead translation.  See comments at
2127ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng         user semantic actions for why this is necessary.  */
2128ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yytoken = YYTRANSLATE (yychar);
2129ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yydestruct ("Cleanup: discarding lookahead",
2130ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng                  yytoken, &yylval, _data, scanner);
2131ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
2132ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Do not reclaim the symbols of the rule which action triggered
2133ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng     this YYABORT or YYACCEPT.  */
2134ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YYPOPSTACK (yylen);
2135ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  YY_STACK_PRINT (yyss, yyssp);
2136ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  while (yyssp != yyss)
2137ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    {
2138ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      yydestruct ("Cleanup: popping",
2139ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng		  yystos[*yyssp], yyvsp, _data, scanner);
2140ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng      YYPOPSTACK (1);
2141ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    }
2142ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#ifndef yyoverflow
2143ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yyss != yyssa)
2144ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYSTACK_FREE (yyss);
2145ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
2146ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#if YYERROR_VERBOSE
2147ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  if (yymsg != yymsgbuf)
2148ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng    YYSTACK_FREE (yymsg);
2149ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#endif
2150ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  /* Make sure YYID is used.  */
2151ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng  return YYID (yyresult);
2152ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
2153ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2154ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2155ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2156ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng/* Line 2067 of yacc.c  */
2157ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng#line 437 "util/parse-events.y"
2158ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2159ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2160ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Chengvoid parse_events_error(void *data __maybe_unused, void *scanner __maybe_unused,
2161ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng			char const *msg __maybe_unused)
2162ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng{
2163ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng}
2164ce8be8b3ee4170ecc66ff306d84628e51d0debe3Ben Cheng
2165