1f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* A Bison parser, made by GNU Bison 2.5.  */
2f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
3f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Bison implementation for Yacc-like parsers in C
4f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
5f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
6f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
7f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   This program is free software: you can redistribute it and/or modify
8f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   it under the terms of the GNU General Public License as published by
9f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   the Free Software Foundation, either version 3 of the License, or
10f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   (at your option) any later version.
11f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
12f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   This program is distributed in the hope that it will be useful,
13f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   but WITHOUT ANY WARRANTY; without even the implied warranty of
14f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   GNU General Public License for more details.
16f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
17f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   You should have received a copy of the GNU General Public License
18f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
20f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* As a special exception, you may create a larger work that contains
21f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   part or all of the Bison parser skeleton and distribute that work
22f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   under terms of your choice, so long as that work isn't itself a
23f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   parser generator using the skeleton or a modified version thereof
24f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   as a parser skeleton.  Alternatively, if you modify or redistribute
25f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   the parser skeleton itself, you may (at your option) remove this
26f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   special exception, which will cause the skeleton and the resulting
27f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   Bison output files to be licensed under the GNU General Public
28f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   License without this special exception.
29f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
30f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   This special exception was added by the Free Software Foundation in
31f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   version 2.2 of Bison.  */
32f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
33f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* C LALR(1) parser skeleton written by Richard Stallman, by
34f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   simplifying the original so-called "semantic" parser.  */
35f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
36f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* All symbols defined below should begin with yy or YY, to avoid
37f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   infringing on user name space.  This should be done even for local
38f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   variables, as they might otherwise be expanded by user macros.
39f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   There are some unavoidable exceptions within include files to
40f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   define necessary library symbols; they are noted "INFRINGES ON
41f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   USER NAME SPACE" below.  */
42f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
43f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Identify Bison output.  */
44f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYBISON 1
45f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
46f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Bison version.  */
47f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYBISON_VERSION "2.5"
48f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
49f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Skeleton name.  */
50f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYSKELETON_NAME "yacc.c"
51f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
52f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Pure parsers.  */
53f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYPURE 1
54f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
55f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Push parsers.  */
56f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYPUSH 0
57f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
58f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Pull parsers.  */
59f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYPULL 1
60f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
61f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Using locations.  */
62f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYLSP_NEEDED 1
63f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
64f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Substitute the variable and function names.  */
65f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yyparse         glcpp_parser_parse
66f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yylex           glcpp_parser_lex
67f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yyerror         glcpp_parser_error
68f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yylval          glcpp_parser_lval
69f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yychar          glcpp_parser_char
70f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yydebug         glcpp_parser_debug
71f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yynerrs         glcpp_parser_nerrs
72f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yylloc          glcpp_parser_lloc
73f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
74f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Copy the first part of user declarations.  */
75f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
76f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 268 of yacc.c  */
77f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 1 "src/src/glsl/glcpp/glcpp-parse.y"
78f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
79f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*
80f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * Copyright © 2010 Intel Corporation
81f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org *
82f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining a
83f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * copy of this software and associated documentation files (the "Software"),
84f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * to deal in the Software without restriction, including without limitation
85f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * the rights to use, copy, modify, merge, publish, distribute, sublicense,
86f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * and/or sell copies of the Software, and to permit persons to whom the
87f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * Software is furnished to do so, subject to the following conditions:
88f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org *
89f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * The above copyright notice and this permission notice (including the next
90f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * paragraph) shall be included in all copies or substantial portions of the
91f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * Software.
92f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org *
93f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
94f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
95f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
96f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
97f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
98f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
99f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * DEALINGS IN THE SOFTWARE.
100f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org */
101f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
102f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#include <stdio.h>
103f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#include <stdlib.h>
104f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#include <string.h>
105f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#include <assert.h>
106f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#include <inttypes.h>
107f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
108f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#include "glcpp.h"
109f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#include "main/core.h" /* for struct gl_extensions */
110f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#include "main/mtypes.h" /* for gl_api enum */
111f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
112f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
113f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyyerror (YYLTYPE *locp, glcpp_parser_t *parser, const char *error);
114f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
115f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
116f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_define_object_macro (glcpp_parser_t *parser,
117f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		      YYLTYPE *loc,
118f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		      const char *macro,
119f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		      token_list_t *replacements);
120f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
121f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
122f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_define_function_macro (glcpp_parser_t *parser,
123f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			YYLTYPE *loc,
124f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			const char *macro,
125f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			string_list_t *parameters,
126f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			token_list_t *replacements);
127f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
128f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic string_list_t *
129f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_string_list_create (void *ctx);
130f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
131f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
132f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_string_list_append_item (string_list_t *list, const char *str);
133f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
134f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic int
135f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_string_list_contains (string_list_t *list, const char *member, int *index);
136f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
137f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic int
138f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_string_list_length (string_list_t *list);
139f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
140f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic int
141f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_string_list_equal (string_list_t *a, string_list_t *b);
142f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
143f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic argument_list_t *
144f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_argument_list_create (void *ctx);
145f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
146f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
147f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_argument_list_append (argument_list_t *list, token_list_t *argument);
148f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
149f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic int
150f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_argument_list_length (argument_list_t *list);
151f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
152f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic token_list_t *
153f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_argument_list_member_at (argument_list_t *list, int index);
154f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
155f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Note: This function ralloc_steal()s the str pointer. */
156f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic token_t *
157f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_token_create_str (void *ctx, int type, char *str);
158f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
159f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic token_t *
160f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_token_create_ival (void *ctx, int type, int ival);
161f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
162f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic token_list_t *
163f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_token_list_create (void *ctx);
164f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
165f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
166f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_token_list_append (token_list_t *list, token_t *token);
167f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
168f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
169f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_token_list_append_list (token_list_t *list, token_list_t *tail);
170f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
171f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic int
172f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_token_list_equal_ignoring_space (token_list_t *a, token_list_t *b);
173f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
174f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
175f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_parser_active_list_push (glcpp_parser_t *parser,
176f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			  const char *identifier,
177f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			  token_node_t *marker);
178f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
179f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
180f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_parser_active_list_pop (glcpp_parser_t *parser);
181f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
182f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic int
183f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_parser_active_list_contains (glcpp_parser_t *parser, const char *identifier);
184f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
185f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Expand list, and begin lexing from the result (after first
186f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org * prefixing a token of type 'head_token_type').
187f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org */
188f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
189f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_glcpp_parser_expand_and_lex_from (glcpp_parser_t *parser,
190f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org				   int head_token_type,
191f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org				   token_list_t *list);
192f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
193f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Perform macro expansion in-place on the given list. */
194f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
195f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_glcpp_parser_expand_token_list (glcpp_parser_t *parser,
196f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org				 token_list_t *list);
197f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
198f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
199f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_glcpp_parser_print_expanded_token_list (glcpp_parser_t *parser,
200f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org					 token_list_t *list);
201f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
202f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
203f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_glcpp_parser_skip_stack_push_if (glcpp_parser_t *parser, YYLTYPE *loc,
204f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org				  int condition);
205f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
206f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
207f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_glcpp_parser_skip_stack_change_if (glcpp_parser_t *parser, YYLTYPE *loc,
208f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org				    const char *type, int condition);
209f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
210f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
211f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org_glcpp_parser_skip_stack_pop (glcpp_parser_t *parser, YYLTYPE *loc);
212f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
213f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic int
214f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgglcpp_parser_lex (YYSTYPE *yylval, YYLTYPE *yylloc, glcpp_parser_t *parser);
215f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
216f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
217f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgglcpp_parser_lex_from (glcpp_parser_t *parser, token_list_t *list);
218f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
219f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
220f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgadd_builtin_define(glcpp_parser_t *parser, const char *name, int value);
221f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
222f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
223f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
224f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 268 of yacc.c  */
225f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 226 "src/chromium_gensrc/mesa/glcpp-parse.c"
226f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
227f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Enabling traces.  */
228f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifndef YYDEBUG
229f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYDEBUG 0
230f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
231f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
232f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Enabling verbose error messages.  */
233f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifdef YYERROR_VERBOSE
234f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# undef YYERROR_VERBOSE
235f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYERROR_VERBOSE 1
236f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
237f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYERROR_VERBOSE 1
238f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
239f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
240f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Enabling the token table.  */
241f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifndef YYTOKEN_TABLE
242f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYTOKEN_TABLE 0
243f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
244f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
245f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
246f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Tokens.  */
247f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifndef YYTOKENTYPE
248f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYTOKENTYPE
249f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   /* Put the tokens into the symbol table, so that GDB and other debuggers
250f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      know about them.  */
251f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   enum yytokentype {
252f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     COMMA_FINAL = 258,
253f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     DEFINED = 259,
254f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     ELIF_EXPANDED = 260,
255f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH = 261,
256f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH_DEFINE = 262,
257f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     FUNC_IDENTIFIER = 263,
258f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     OBJ_IDENTIFIER = 264,
259f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH_ELIF = 265,
260f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH_ELSE = 266,
261f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH_ENDIF = 267,
262f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH_IF = 268,
263f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH_IFDEF = 269,
264f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH_IFNDEF = 270,
265f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH_LINE = 271,
266f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH_UNDEF = 272,
267f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     HASH_VERSION = 273,
268f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     IDENTIFIER = 274,
269f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     IF_EXPANDED = 275,
270f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     INTEGER = 276,
271f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     INTEGER_STRING = 277,
272f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     LINE_EXPANDED = 278,
273f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     NEWLINE = 279,
274f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     OTHER = 280,
275f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     PLACEHOLDER = 281,
276f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     SPACE = 282,
277f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     PASTE = 283,
278f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     OR = 284,
279f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     AND = 285,
280f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     NOT_EQUAL = 286,
281f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     EQUAL = 287,
282f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     GREATER_OR_EQUAL = 288,
283f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     LESS_OR_EQUAL = 289,
284f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     RIGHT_SHIFT = 290,
285f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     LEFT_SHIFT = 291,
286f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     UNARY = 292
287f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   };
288f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
289f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Tokens.  */
290f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define COMMA_FINAL 258
291f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define DEFINED 259
292f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define ELIF_EXPANDED 260
293f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH 261
294f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH_DEFINE 262
295f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define FUNC_IDENTIFIER 263
296f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define OBJ_IDENTIFIER 264
297f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH_ELIF 265
298f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH_ELSE 266
299f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH_ENDIF 267
300f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH_IF 268
301f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH_IFDEF 269
302f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH_IFNDEF 270
303f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH_LINE 271
304f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH_UNDEF 272
305f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define HASH_VERSION 273
306f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define IDENTIFIER 274
307f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define IF_EXPANDED 275
308f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define INTEGER 276
309f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define INTEGER_STRING 277
310f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define LINE_EXPANDED 278
311f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define NEWLINE 279
312f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define OTHER 280
313f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define PLACEHOLDER 281
314f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define SPACE 282
315f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define PASTE 283
316f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define OR 284
317f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define AND 285
318f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define NOT_EQUAL 286
319f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define EQUAL 287
320f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define GREATER_OR_EQUAL 288
321f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define LESS_OR_EQUAL 289
322f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define RIGHT_SHIFT 290
323f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define LEFT_SHIFT 291
324f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define UNARY 292
325f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
326f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
327f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
328f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
329f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
330f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
331f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define yystype YYSTYPE /* obsolescent; will be withdrawn */
332f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYSTYPE_IS_DECLARED 1
333f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
334f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
335f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
336f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgtypedef struct YYLTYPE
337f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
338f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int first_line;
339f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int first_column;
340f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int last_line;
341f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int last_column;
342f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org} YYLTYPE;
343f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
344f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYLTYPE_IS_DECLARED 1
345f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYLTYPE_IS_TRIVIAL 1
346f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
347f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
348f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
349f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Copy the second part of user declarations.  */
350f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
351f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
352f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 343 of yacc.c  */
353f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 354 "src/chromium_gensrc/mesa/glcpp-parse.c"
354f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
355f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifdef short
356f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# undef short
357f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
358f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
359f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifdef YYTYPE_UINT8
360f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgtypedef YYTYPE_UINT8 yytype_uint8;
361f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
362f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgtypedef unsigned char yytype_uint8;
363f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
364f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
365f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifdef YYTYPE_INT8
366f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgtypedef YYTYPE_INT8 yytype_int8;
367f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#elif (defined __STDC__ || defined __C99__FUNC__ \
368f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
369f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgtypedef signed char yytype_int8;
370f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
371f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgtypedef short int yytype_int8;
372f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
373f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
374f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifdef YYTYPE_UINT16
375f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgtypedef YYTYPE_UINT16 yytype_uint16;
376f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
377f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgtypedef unsigned short int yytype_uint16;
378f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
379f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
380f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifdef YYTYPE_INT16
381f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgtypedef YYTYPE_INT16 yytype_int16;
382f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
383f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgtypedef short int yytype_int16;
384f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
385f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
386f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifndef YYSIZE_T
387f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifdef __SIZE_TYPE__
388f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YYSIZE_T __SIZE_TYPE__
389f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# elif defined size_t
390f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YYSIZE_T size_t
391f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
392f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
393f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
394f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YYSIZE_T size_t
395f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# else
396f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YYSIZE_T unsigned int
397f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
398f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
399f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
400f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
401f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
402f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifndef YY_
403f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# if defined YYENABLE_NLS && YYENABLE_NLS
404f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  if ENABLE_NLS
405f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
406f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   define YY_(msgid) dgettext ("bison-runtime", msgid)
407f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  endif
408f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
409f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifndef YY_
410f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YY_(msgid) msgid
411f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
412f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
413f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
414f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Suppress unused-variable warnings by "using" E.  */
415f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if ! defined lint || defined __GNUC__
416f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYUSE(e) ((void) (e))
417f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
418f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYUSE(e) /* empty */
419f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
420f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
421f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Identity function, used to suppress warnings about constant conditions.  */
422f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifndef lint
423f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYID(n) (n)
424f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
425f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
426f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
427f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic int
428f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgYYID (int yyi)
429f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
430f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic int
431f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgYYID (yyi)
432f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    int yyi;
433f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
434f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
435f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  return yyi;
436f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
437f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
438f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
439f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if ! defined yyoverflow || YYERROR_VERBOSE
440f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
441f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* The parser invokes alloca or malloc; define the necessary symbols.  */
442f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
443f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifdef YYSTACK_USE_ALLOCA
444f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  if YYSTACK_USE_ALLOCA
445f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   ifdef __GNUC__
446f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#    define YYSTACK_ALLOC __builtin_alloca
447f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   elif defined __BUILTIN_VA_ARG_INCR
448f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
449f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   elif defined _AIX
450f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#    define YYSTACK_ALLOC __alloca
451f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   elif defined _MSC_VER
452f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
453f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#    define alloca _alloca
454f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   else
455f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#    define YYSTACK_ALLOC alloca
456f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
457f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
458f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
459f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#     ifndef EXIT_SUCCESS
460f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#      define EXIT_SUCCESS 0
461f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#     endif
462f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#    endif
463f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   endif
464f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  endif
465f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
466f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
467f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifdef YYSTACK_ALLOC
468f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   /* Pacify GCC's `empty if-body' warning.  */
469f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
470f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  ifndef YYSTACK_ALLOC_MAXIMUM
471f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    /* The OS might guarantee only one guard page at the bottom of the stack,
472f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       and a page size can be as small as 4096 bytes.  So we cannot safely
473f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
474f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       to allow for a few compiler-allocated temporary stack slots.  */
475f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
476f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  endif
477f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# else
478f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YYSTACK_ALLOC YYMALLOC
479f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YYSTACK_FREE YYFREE
480f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  ifndef YYSTACK_ALLOC_MAXIMUM
481f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
482f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  endif
483f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
484f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       && ! ((defined YYMALLOC || defined malloc) \
485f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	     && (defined YYFREE || defined free)))
486f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
487f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   ifndef EXIT_SUCCESS
488f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#    define EXIT_SUCCESS 0
489f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   endif
490f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  endif
491f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  ifndef YYMALLOC
492f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   define YYMALLOC malloc
493f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
494f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
495f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
496f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   endif
497f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  endif
498f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  ifndef YYFREE
499f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   define YYFREE free
500f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
501f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
502f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgvoid free (void *); /* INFRINGES ON USER NAME SPACE */
503f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   endif
504f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  endif
505f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
506f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
507f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
508f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
509f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (! defined yyoverflow \
510f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     && (! defined __cplusplus \
511f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
512f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	     && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
513f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
514f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* A type that is properly aligned for any stack member.  */
515f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgunion yyalloc
516f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
517f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yytype_int16 yyss_alloc;
518f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYSTYPE yyvs_alloc;
519f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYLTYPE yyls_alloc;
520f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
521f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
522f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* The size of the maximum gap between one aligned stack and the next.  */
523f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
524f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
525f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* The size of an array large to enough to hold all stacks, each with
526f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   N elements.  */
527f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYSTACK_BYTES(N) \
528f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
529f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      + 2 * YYSTACK_GAP_MAXIMUM)
530f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
531f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYCOPY_NEEDED 1
532f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
533f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Relocate STACK from its old location to the new one.  The
534f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   local variables YYSIZE and YYSTACKSIZE give the old and new number of
535f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   elements in the stack, and YYPTR gives the new location of the
536f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   stack.  Advance YYPTR to a properly aligned location for the next
537f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   stack.  */
538f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
539f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    do									\
540f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      {									\
541f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	YYSIZE_T yynewbytes;						\
542f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
543f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	Stack = &yyptr->Stack_alloc;					\
544f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
545f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yyptr += yynewbytes / sizeof (*yyptr);				\
546f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      }									\
547f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    while (YYID (0))
548f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
549f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
550f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
551f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
552f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Copy COUNT objects from FROM to TO.  The source and destination do
553f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   not overlap.  */
554f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifndef YYCOPY
555f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  if defined __GNUC__ && 1 < __GNUC__
556f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   define YYCOPY(To, From, Count) \
557f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
558f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  else
559f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   define YYCOPY(To, From, Count)		\
560f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      do					\
561f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	{					\
562f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  YYSIZE_T yyi;				\
563f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  for (yyi = 0; yyi < (Count); yyi++)	\
564f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    (To)[yyi] = (From)[yyi];		\
565f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}					\
566f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      while (YYID (0))
567f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  endif
568f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
569f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif /* !YYCOPY_NEEDED */
570f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
571f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYFINAL -- State number of the termination state.  */
572f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYFINAL  2
573f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYLAST -- Last index in YYTABLE.  */
574f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYLAST   670
575f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
576f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYNTOKENS -- Number of terminals.  */
577f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYNTOKENS  60
578f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYNNTS -- Number of nonterminals.  */
579f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYNNTS  19
580f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYNRULES -- Number of rules.  */
581f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYNRULES  107
582f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYNRULES -- Number of states.  */
583f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYNSTATES  172
584f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
585f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
586f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYUNDEFTOK  2
587f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYMAXUTOK   292
588f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
589f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYTRANSLATE(YYX)						\
590f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
591f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
592f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
593f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_uint8 yytranslate[] =
594f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
595f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
596f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
597f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
598f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,    50,     2,     2,     2,    46,    33,     2,
599f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      48,    49,    44,    42,    52,    43,    57,    45,     2,     2,
600f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,    58,
601f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      36,    59,    37,     2,     2,     2,     2,     2,     2,     2,
602f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
603f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
604f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,    53,     2,    54,    32,     2,     2,     2,     2,     2,
605f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
606f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
607f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,    55,    31,    56,    51,     2,     2,     2,
608f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
609f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
610f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
611f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
612f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
613f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
614f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
615f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
616f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
617f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
618f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
619f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
620f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
621f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
622f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
623f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      25,    26,    27,    28,    29,    30,    34,    35,    38,    39,
624f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      40,    41,    47
625f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
626f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
627f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if YYDEBUG
628f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
629f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   YYRHS.  */
630f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_uint16 yyprhs[] =
631f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
632f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,     0,     3,     4,     7,     9,    11,    13,    16,    20,
633f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      24,    28,    33,    38,    45,    53,    57,    61,    65,    68,
634f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      73,    78,    82,    85,    86,    90,    91,    95,    99,   102,
635f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     104,   106,   108,   110,   114,   118,   122,   126,   130,   134,
636f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     138,   142,   146,   150,   154,   158,   162,   166,   170,   174,
637f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     178,   182,   185,   188,   191,   194,   198,   200,   204,   206,
638f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     209,   212,   213,   215,   216,   218,   221,   226,   228,   230,
639f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     233,   235,   238,   240,   242,   244,   246,   248,   250,   252,
640f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     254,   256,   258,   260,   262,   264,   266,   268,   270,   272,
641f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     274,   276,   278,   280,   282,   284,   286,   288,   290,   292,
642f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     294,   296,   298,   300,   302,   304,   306,   308
643f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
644f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
645f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
646f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_int8 yyrhs[] =
647f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
648f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      61,     0,    -1,    -1,    61,    62,    -1,    64,    -1,    70,
649f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -1,    63,    -1,     6,    71,    -1,    20,    68,    24,    -1,
650f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       5,    68,    24,    -1,    23,    67,    24,    -1,    23,    67,
651f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      67,    24,    -1,     7,     9,    72,    24,    -1,     7,     8,
652f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      48,    49,    72,    24,    -1,     7,     8,    48,    69,    49,
653f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      72,    24,    -1,    17,    19,    24,    -1,    16,    76,    24,
654f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -1,    13,    75,    24,    -1,    13,    24,    -1,    14,    19,
655f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      73,    24,    -1,    15,    19,    73,    24,    -1,    10,    75,
656f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      24,    -1,    10,    24,    -1,    -1,    11,    65,    24,    -1,
657f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -1,    12,    66,    24,    -1,    18,    67,    24,    -1,     6,
658f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      24,    -1,    22,    -1,    21,    -1,    67,    -1,    19,    -1,
659f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    29,    68,    -1,    68,    30,    68,    -1,    68,    31,
660f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    -1,    68,    32,    68,    -1,    68,    33,    68,    -1,
661f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    34,    68,    -1,    68,    35,    68,    -1,    68,    38,
662f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    -1,    68,    39,    68,    -1,    68,    37,    68,    -1,
663f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    36,    68,    -1,    68,    40,    68,    -1,    68,    41,
664f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    -1,    68,    43,    68,    -1,    68,    42,    68,    -1,
665f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    46,    68,    -1,    68,    45,    68,    -1,    68,    44,
666f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    -1,    50,    68,    -1,    51,    68,    -1,    43,    68,
667f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -1,    42,    68,    -1,    48,    68,    49,    -1,    19,    -1,
668f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      69,    52,    19,    -1,    24,    -1,    76,    24,    -1,    76,
669f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      24,    -1,    -1,    76,    -1,    -1,    76,    -1,     4,    19,
670f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -1,     4,    48,    19,    49,    -1,    77,    -1,    74,    -1,
671f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      75,    74,    -1,    77,    -1,    76,    77,    -1,    19,    -1,
672f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      22,    -1,    78,    -1,    25,    -1,    27,    -1,    53,    -1,
673f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      54,    -1,    48,    -1,    49,    -1,    55,    -1,    56,    -1,
674f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      57,    -1,    33,    -1,    44,    -1,    42,    -1,    43,    -1,
675f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      51,    -1,    50,    -1,    45,    -1,    46,    -1,    41,    -1,
676f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      40,    -1,    36,    -1,    37,    -1,    39,    -1,    38,    -1,
677f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      35,    -1,    34,    -1,    32,    -1,    31,    -1,    30,    -1,
678f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      29,    -1,    58,    -1,    52,    -1,    59,    -1,    28,    -1
679f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
680f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
681f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
682f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_uint16 yyrline[] =
683f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
684f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,   184,   184,   186,   190,   193,   198,   199,   203,   206,
685f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     209,   217,   230,   233,   236,   239,   247,   255,   275,   285,
686f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     290,   295,   315,   330,   330,   333,   333,   336,   357,   361,
687f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     370,   375,   376,   379,   382,   385,   388,   391,   394,   397,
688f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     400,   403,   406,   409,   412,   415,   418,   421,   424,   432,
689f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     440,   443,   446,   449,   452,   455,   461,   466,   474,   475,
690f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     479,   485,   486,   489,   491,   498,   502,   506,   511,   515,
691f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     522,   527,   534,   538,   542,   546,   550,   557,   558,   559,
692f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     560,   561,   562,   563,   564,   565,   566,   567,   568,   569,
693f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     570,   571,   572,   573,   574,   575,   576,   577,   578,   579,
694f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     580,   581,   582,   583,   584,   585,   586,   587
695f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
696f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
697f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
698f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
699f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
700f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
701f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const char *const yytname[] =
702f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
703f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "$end", "error", "$undefined", "COMMA_FINAL", "DEFINED",
704f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "ELIF_EXPANDED", "HASH", "HASH_DEFINE", "FUNC_IDENTIFIER",
705f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "OBJ_IDENTIFIER", "HASH_ELIF", "HASH_ELSE", "HASH_ENDIF", "HASH_IF",
706f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "HASH_IFDEF", "HASH_IFNDEF", "HASH_LINE", "HASH_UNDEF", "HASH_VERSION",
707f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "IDENTIFIER", "IF_EXPANDED", "INTEGER", "INTEGER_STRING",
708f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "LINE_EXPANDED", "NEWLINE", "OTHER", "PLACEHOLDER", "SPACE", "PASTE",
709f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "OR", "AND", "'|'", "'^'", "'&'", "NOT_EQUAL", "EQUAL", "'<'", "'>'",
710f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "GREATER_OR_EQUAL", "LESS_OR_EQUAL", "RIGHT_SHIFT", "LEFT_SHIFT", "'+'",
711f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "'-'", "'*'", "'/'", "'%'", "UNARY", "'('", "')'", "'!'", "'~'", "','",
712f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "'['", "']'", "'{'", "'}'", "'.'", "';'", "'='", "$accept", "input",
713f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "line", "expanded_line", "control_line", "$@1", "$@2",
714f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "integer_constant", "expression", "identifier_list", "text_line",
715f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "non_directive", "replacement_list", "junk", "conditional_token",
716f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  "conditional_tokens", "pp_tokens", "preprocessing_token", "operator", 0
717f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
718f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
719f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
720f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifdef YYPRINT
721f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
722f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   token YYLEX-NUM.  */
723f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_uint16 yytoknum[] =
724f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
725f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
726f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
727f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
728f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     285,   124,    94,    38,   286,   287,    60,    62,   288,   289,
729f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     290,   291,    43,    45,    42,    47,    37,   292,    40,    41,
730f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      33,   126,    44,    91,    93,   123,   125,    46,    59,    61
731f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
732f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
733f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
734f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
735f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_uint8 yyr1[] =
736f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
737f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,    60,    61,    61,    62,    62,    62,    62,    63,    63,
738f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      63,    63,    64,    64,    64,    64,    64,    64,    64,    64,
739f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      64,    64,    64,    65,    64,    66,    64,    64,    64,    67,
740f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      67,    68,    68,    68,    68,    68,    68,    68,    68,    68,
741f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    68,    68,    68,    68,    68,    68,    68,    68,    68,
742f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    68,    68,    68,    68,    68,    69,    69,    70,    70,
743f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      71,    72,    72,    73,    73,    74,    74,    74,    75,    75,
744f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      76,    76,    77,    77,    77,    77,    77,    78,    78,    78,
745f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      78,    78,    78,    78,    78,    78,    78,    78,    78,    78,
746f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      78,    78,    78,    78,    78,    78,    78,    78,    78,    78,
747f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      78,    78,    78,    78,    78,    78,    78,    78
748f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
749f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
750f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
751f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_uint8 yyr2[] =
752f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
753f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,     2,     0,     2,     1,     1,     1,     2,     3,     3,
754f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       3,     4,     4,     6,     7,     3,     3,     3,     2,     4,
755f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       4,     3,     2,     0,     3,     0,     3,     3,     2,     1,
756f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       1,     1,     1,     3,     3,     3,     3,     3,     3,     3,
757f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
758f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       3,     2,     2,     2,     2,     3,     1,     3,     1,     2,
759f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     0,     1,     0,     1,     2,     4,     1,     1,     2,
760f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
761f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
762f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
763f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       1,     1,     1,     1,     1,     1,     1,     1
764f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
765f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
766f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
767f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   Performed when YYTABLE doesn't specify something else to do.  Zero
768f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   means the default is an error.  */
769f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_uint8 yydefact[] =
770f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
771f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       2,     0,     1,     0,     0,     0,     0,    23,    25,     0,
772f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,     0,     0,     0,     0,    72,     0,    73,     0,    58,
773f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      75,    76,   107,   103,   102,   101,   100,    84,    99,    98,
774f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      94,    95,    97,    96,    93,    92,    86,    87,    85,    90,
775f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      91,    79,    80,    89,    88,   105,    77,    78,    81,    82,
776f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      83,   104,   106,     3,     6,     4,     5,     0,    70,    74,
777f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      32,    30,    29,     0,     0,     0,     0,     0,    31,     0,
778f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      28,     7,     0,     0,    61,     0,    22,    68,     0,    67,
779f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,     0,    18,     0,    63,    63,     0,     0,     0,     0,
780f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,    59,    71,    54,    53,     0,    51,    52,     9,     0,
781f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
782f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,     0,     0,     0,     0,     0,     0,    60,     0,     0,
783f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      62,    65,     0,    21,    69,    24,    26,    17,     0,    64,
784f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,    16,    15,    27,     8,    10,     0,    55,    33,    34,
785f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      35,    36,    37,    38,    39,    43,    42,    40,    41,    44,
786f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      45,    47,    46,    50,    49,    48,    56,    61,     0,    12,
787f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,    19,    20,    11,     0,    61,     0,    66,    13,     0,
788f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      57,    14
789f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
790f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
791f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYDEFGOTO[NTERM-NUM].  */
792f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_int16 yydefgoto[] =
793f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
794f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -1,     1,    53,    54,    55,    80,    81,    68,    69,   158,
795f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      56,    71,   119,   128,    77,    78,   120,    58,    59
796f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
797f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
798f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
799f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   STATE-NUM.  */
800f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYPACT_NINF -149
801f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_int16 yypact[] =
802f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
803f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    -149,   115,  -149,   492,    -9,   103,   158,  -149,  -149,   201,
804f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -5,    48,   451,    50,    95,  -149,   492,  -149,    95,  -149,
805f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    -149,  -149,  -149,  -149,  -149,  -149,  -149,  -149,  -149,  -149,
806f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    -149,  -149,  -149,  -149,  -149,  -149,  -149,  -149,  -149,  -149,
807f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    -149,  -149,  -149,  -149,  -149,  -149,  -149,  -149,  -149,  -149,
808f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    -149,  -149,  -149,  -149,  -149,  -149,  -149,   328,  -149,  -149,
809f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    -149,  -149,  -149,   492,   492,   492,   492,   492,  -149,   515,
810f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    -149,  -149,   369,    23,   451,    38,  -149,  -149,   244,  -149,
811f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     -17,    51,  -149,   287,   451,   451,   410,    55,    63,   538,
812f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      52,  -149,  -149,  -149,  -149,   487,  -149,  -149,  -149,   492,
813f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     492,   492,   492,   492,   492,   492,   492,   492,   492,   492,
814f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     492,   492,   492,   492,   492,   492,   492,  -149,    19,    89,
815f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     451,  -149,    99,  -149,  -149,  -149,  -149,  -149,   100,   451,
816f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     112,  -149,  -149,  -149,  -149,  -149,   117,  -149,   555,   571,
817f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     586,   600,   613,   624,   624,    18,    18,    18,    18,    64,
818f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      64,    37,    37,  -149,  -149,  -149,  -149,   451,   -41,  -149,
819f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      70,  -149,  -149,  -149,   151,   451,   157,  -149,  -149,   154,
820f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    -149,  -149
821f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
822f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
823f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYPGOTO[NTERM-NUM].  */
824f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_int16 yypgoto[] =
825f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
826f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    -149,  -149,  -149,  -149,  -149,  -149,  -149,   -12,   -11,  -149,
827f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    -149,  -149,  -148,    94,   -13,   172,     0,    -6,  -149
828f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
829f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
830f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
831f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   positive, shift that token.  If negative, reduce the rule which
832f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   number is the opposite.  If YYTABLE_NINF, syntax error.  */
833f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYTABLE_NINF -1
834f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_uint8 yytable[] =
835f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
836f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      79,    57,    88,    79,    72,    89,    90,   125,   165,   164,
837f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      15,   166,    86,    17,    84,    70,    20,   169,    21,    22,
838f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
839f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      33,    34,    35,    36,    37,    38,    39,    40,   156,    41,
840f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
841f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      52,    92,    93,    94,    95,    96,    97,   121,   110,   111,
842f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     112,   113,   114,   115,   116,   124,    92,    85,   157,    87,
843f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     124,   118,    79,    61,    62,   126,   135,    79,   136,   132,
844f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      92,   114,   115,   116,   129,   129,   122,   133,   138,   139,
845f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
846f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     150,   151,   152,   153,   154,   155,   112,   113,   114,   115,
847f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     116,    73,    74,   159,    92,     2,    61,    62,   160,   167,
848f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       3,     4,     5,    92,   161,     6,     7,     8,     9,    10,
849f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      11,    12,    13,    14,    15,    16,   162,    17,    18,    19,
850f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      20,   163,    21,    22,    23,    24,    25,    26,    27,    28,
851f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
852f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      39,    40,    75,    41,    42,    43,    44,    45,    46,    47,
853f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      48,    49,    50,    51,    52,   168,   170,    15,   171,   130,
854f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      17,    83,    76,    20,     0,    21,    22,    23,    24,    25,
855f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
856f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      36,    37,    38,    39,    40,    75,    41,    42,    43,    44,
857f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      45,    46,    47,    48,    49,    50,    51,    52,     0,     0,
858f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      15,     0,     0,    17,     0,    82,    20,     0,    21,    22,
859f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
860f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      33,    34,    35,    36,    37,    38,    39,    40,    75,    41,
861f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
862f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      52,     0,     0,    15,     0,     0,    17,     0,   123,    20,
863f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,    21,    22,    23,    24,    25,    26,    27,    28,    29,
864f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
865f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      40,    75,    41,    42,    43,    44,    45,    46,    47,    48,
866f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      49,    50,    51,    52,     0,     0,    15,     0,     0,    17,
867f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,   127,    20,     0,    21,    22,    23,    24,    25,    26,
868f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
869f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      37,    38,    39,    40,     0,    41,    42,    43,    44,    45,
870f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      46,    47,    48,    49,    50,    51,    52,    15,     0,     0,
871f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      17,     0,    91,    20,     0,    21,    22,    23,    24,    25,
872f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
873f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      36,    37,    38,    39,    40,     0,    41,    42,    43,    44,
874f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      45,    46,    47,    48,    49,    50,    51,    52,    15,     0,
875f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,    17,     0,   117,    20,     0,    21,    22,    23,    24,
876f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
877f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      35,    36,    37,    38,    39,    40,     0,    41,    42,    43,
878f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      44,    45,    46,    47,    48,    49,    50,    51,    52,    15,
879f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,     0,    17,     0,   131,    20,     0,    21,    22,    23,
880f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
881f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      34,    35,    36,    37,    38,    39,    40,     0,    41,    42,
882f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
883f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      15,     0,     0,    17,     0,     0,    20,     0,    21,    22,
884f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
885f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      33,    34,    35,    36,    37,    38,    39,    40,     0,    41,
886f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
887f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      52,    60,     0,    61,    62,     0,    99,   100,   101,   102,
888f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
889f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     113,   114,   115,   116,    63,    64,   137,     0,     0,    98,
890f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      65,     0,    66,    67,    99,   100,   101,   102,   103,   104,
891f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
892f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     115,   116,   134,     0,     0,     0,     0,    99,   100,   101,
893f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
894f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     112,   113,   114,   115,   116,   100,   101,   102,   103,   104,
895f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
896f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     115,   116,   101,   102,   103,   104,   105,   106,   107,   108,
897f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     109,   110,   111,   112,   113,   114,   115,   116,   102,   103,
898f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
899f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     114,   115,   116,   103,   104,   105,   106,   107,   108,   109,
900f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     110,   111,   112,   113,   114,   115,   116,   104,   105,   106,
901f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
902f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
903f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     116
904f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
905f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
906f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yypact_value_is_default(yystate) \
907f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  ((yystate) == (-149))
908f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
909f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yytable_value_is_error(yytable_value) \
910f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYID (0)
911f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
912f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_int16 yycheck[] =
913f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
914f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       6,     1,    14,     9,     4,    16,    18,    24,    49,   157,
915f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      19,    52,    12,    22,    19,    24,    25,   165,    27,    28,
916f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
917f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      39,    40,    41,    42,    43,    44,    45,    46,    19,    48,
918f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
919f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      59,    57,    63,    64,    65,    66,    67,    19,    40,    41,
920f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      42,    43,    44,    45,    46,    78,    72,    19,    49,    19,
921f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      83,    48,    78,    21,    22,    24,    24,    83,    90,    24,
922f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      86,    44,    45,    46,    84,    85,    48,    24,    99,   100,
923f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
924f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     111,   112,   113,   114,   115,   116,    42,    43,    44,    45,
925f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      46,     8,     9,    24,   120,     0,    21,    22,    19,    49,
926f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       5,     6,     7,   129,    24,    10,    11,    12,    13,    14,
927f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      15,    16,    17,    18,    19,    20,    24,    22,    23,    24,
928f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      25,    24,    27,    28,    29,    30,    31,    32,    33,    34,
929f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
930f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      45,    46,     4,    48,    49,    50,    51,    52,    53,    54,
931f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      55,    56,    57,    58,    59,    24,    19,    19,    24,    85,
932f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      22,     9,    24,    25,    -1,    27,    28,    29,    30,    31,
933f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
934f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      42,    43,    44,    45,    46,     4,    48,    49,    50,    51,
935f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      52,    53,    54,    55,    56,    57,    58,    59,    -1,    -1,
936f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      19,    -1,    -1,    22,    -1,    24,    25,    -1,    27,    28,
937f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
938f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      39,    40,    41,    42,    43,    44,    45,    46,     4,    48,
939f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
940f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      59,    -1,    -1,    19,    -1,    -1,    22,    -1,    24,    25,
941f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
942f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
943f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      46,     4,    48,    49,    50,    51,    52,    53,    54,    55,
944f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      56,    57,    58,    59,    -1,    -1,    19,    -1,    -1,    22,
945f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -1,    24,    25,    -1,    27,    28,    29,    30,    31,    32,
946f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
947f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      43,    44,    45,    46,    -1,    48,    49,    50,    51,    52,
948f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      53,    54,    55,    56,    57,    58,    59,    19,    -1,    -1,
949f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      22,    -1,    24,    25,    -1,    27,    28,    29,    30,    31,
950f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
951f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      42,    43,    44,    45,    46,    -1,    48,    49,    50,    51,
952f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      52,    53,    54,    55,    56,    57,    58,    59,    19,    -1,
953f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -1,    22,    -1,    24,    25,    -1,    27,    28,    29,    30,
954f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
955f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      41,    42,    43,    44,    45,    46,    -1,    48,    49,    50,
956f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      51,    52,    53,    54,    55,    56,    57,    58,    59,    19,
957f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      -1,    -1,    22,    -1,    24,    25,    -1,    27,    28,    29,
958f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
959f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      40,    41,    42,    43,    44,    45,    46,    -1,    48,    49,
960f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
961f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      19,    -1,    -1,    22,    -1,    -1,    25,    -1,    27,    28,
962f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
963f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      39,    40,    41,    42,    43,    44,    45,    46,    -1,    48,
964f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
965f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      59,    19,    -1,    21,    22,    -1,    29,    30,    31,    32,
966f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
967f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      43,    44,    45,    46,    42,    43,    49,    -1,    -1,    24,
968f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      48,    -1,    50,    51,    29,    30,    31,    32,    33,    34,
969f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
970f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      45,    46,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
971f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
972f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      42,    43,    44,    45,    46,    30,    31,    32,    33,    34,
973f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
974f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      45,    46,    31,    32,    33,    34,    35,    36,    37,    38,
975f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      39,    40,    41,    42,    43,    44,    45,    46,    32,    33,
976f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
977f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      44,    45,    46,    33,    34,    35,    36,    37,    38,    39,
978f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      40,    41,    42,    43,    44,    45,    46,    34,    35,    36,
979f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
980f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
981f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      46
982f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
983f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
984f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
985f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   symbol of state STATE-NUM.  */
986f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic const yytype_uint8 yystos[] =
987f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
988f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       0,    61,     0,     5,     6,     7,    10,    11,    12,    13,
989f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      14,    15,    16,    17,    18,    19,    20,    22,    23,    24,
990f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      25,    27,    28,    29,    30,    31,    32,    33,    34,    35,
991f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
992f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      46,    48,    49,    50,    51,    52,    53,    54,    55,    56,
993f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      57,    58,    59,    62,    63,    64,    70,    76,    77,    78,
994f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      19,    21,    22,    42,    43,    48,    50,    51,    67,    68,
995f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      24,    71,    76,     8,     9,     4,    24,    74,    75,    77,
996f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      65,    66,    24,    75,    19,    19,    76,    19,    67,    68,
997f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      67,    24,    77,    68,    68,    68,    68,    68,    24,    29,
998f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
999f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      40,    41,    42,    43,    44,    45,    46,    24,    48,    72,
1000f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      76,    19,    48,    24,    74,    24,    24,    24,    73,    76,
1001f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      73,    24,    24,    24,    24,    24,    67,    49,    68,    68,
1002f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    68,    68,    68,    68,    68,    68,    68,    68,    68,
1003f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      68,    68,    68,    68,    68,    68,    19,    49,    69,    24,
1004f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      19,    24,    24,    24,    72,    49,    52,    49,    24,    72,
1005f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      19,    24
1006f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org};
1007f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1008f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yyerrok		(yyerrstatus = 0)
1009f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define yyclearin	(yychar = YYEMPTY)
1010f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYEMPTY		(-2)
1011f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYEOF		0
1012f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1013f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYACCEPT	goto yyacceptlab
1014f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYABORT		goto yyabortlab
1015f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYERROR		goto yyerrorlab
1016f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1017f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1018f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Like YYERROR except do call yyerror.  This remains here temporarily
1019f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   to ease the transition to the new meaning of YYERROR, for GCC.
1020f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   Once GCC version 2 has supplanted version 1, this can go.  However,
1021f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
1022f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
1023f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   discussed.  */
1024f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1025f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYFAIL		goto yyerrlab
1026f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if defined YYFAIL
1027f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* This is here to suppress warnings from the GCC cpp's
1028f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     -Wunused-macros.  Normally we don't worry about that warning, but
1029f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     some users do, and we want to make it easy for users to remove
1030f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     YYFAIL uses, which will produce warnings from Bison 2.5.  */
1031f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1032f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1033f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYRECOVERING()  (!!yyerrstatus)
1034f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1035f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYBACKUP(Token, Value)					\
1036f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgdo								\
1037f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yychar == YYEMPTY && yylen == 1)				\
1038f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {								\
1039f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yychar = (Token);						\
1040f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yylval = (Value);						\
1041f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYPOPSTACK (1);						\
1042f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      goto yybackup;						\
1043f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }								\
1044f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  else								\
1045f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {								\
1046f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yyerror (&yylloc, parser, YY_("syntax error: cannot back up")); \
1047f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYERROR;							\
1048f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }								\
1049f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgwhile (YYID (0))
1050f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1051f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1052f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYTERROR	1
1053f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYERRCODE	256
1054f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1055f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1056f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1057f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   If N is 0, then set CURRENT to the empty location which ends
1058f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   the previous symbol: RHS[0] (always defined).  */
1059f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1060f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1061f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifndef YYLLOC_DEFAULT
1062f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYLLOC_DEFAULT(Current, Rhs, N)				\
1063f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    do									\
1064f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      if (YYID (N))                                                    \
1065f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	{								\
1066f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
1067f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
1068f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
1069f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
1070f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}								\
1071f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      else								\
1072f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	{								\
1073f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  (Current).first_line   = (Current).last_line   =		\
1074f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    YYRHSLOC (Rhs, 0).last_line;				\
1075f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  (Current).first_column = (Current).last_column =		\
1076f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    YYRHSLOC (Rhs, 0).last_column;				\
1077f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}								\
1078f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    while (YYID (0))
1079f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1080f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1081f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1082f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YY_LOCATION_PRINT -- Print the location on the stream.
1083f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   This macro was not mandated originally: define only if we know
1084f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   we won't break user code: when these are the locations we know.  */
1085f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1086f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifndef YY_LOCATION_PRINT
1087f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1088f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YY_LOCATION_PRINT(File, Loc)			\
1089f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     fprintf (File, "%d.%d-%d.%d",			\
1090f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	      (Loc).first_line, (Loc).first_column,	\
1091f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	      (Loc).last_line,  (Loc).last_column)
1092f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# else
1093f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1094f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
1095f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1096f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1097f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1098f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYLEX -- calling `yylex' with the right arguments.  */
1099f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1100f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifdef YYLEX_PARAM
1101f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1102f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1103f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYLEX yylex (&yylval, &yylloc, parser)
1104f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1105f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1106f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Enable debugging if requested.  */
1107f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if YYDEBUG
1108f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1109f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifndef YYFPRINTF
1110f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1111f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  define YYFPRINTF fprintf
1112f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
1113f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1114f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYDPRINTF(Args)			\
1115f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgdo {						\
1116f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yydebug)					\
1117f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYFPRINTF Args;				\
1118f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org} while (YYID (0))
1119f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1120f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
1121f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgdo {									  \
1122f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yydebug)								  \
1123f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {									  \
1124f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYFPRINTF (stderr, "%s ", Title);					  \
1125f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yy_symbol_print (stderr,						  \
1126f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		  Type, Value, Location, parser); \
1127f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYFPRINTF (stderr, "\n");						  \
1128f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }									  \
1129f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org} while (YYID (0))
1130f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1131f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1132f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*--------------------------------.
1133f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| Print this symbol on YYOUTPUT.  |
1134f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org`--------------------------------*/
1135f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1136f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*ARGSUSED*/
1137f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1138f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
1139f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
1140f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, glcpp_parser_t *parser)
1141f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1142f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
1143f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parser)
1144f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    FILE *yyoutput;
1145f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    int yytype;
1146f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYSTYPE const * const yyvaluep;
1147f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYLTYPE const * const yylocationp;
1148f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    glcpp_parser_t *parser;
1149f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1150f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1151f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (!yyvaluep)
1152f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    return;
1153f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYUSE (yylocationp);
1154f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYUSE (parser);
1155f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifdef YYPRINT
1156f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yytype < YYNTOKENS)
1157f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1158f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# else
1159f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYUSE (yyoutput);
1160f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
1161f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  switch (yytype)
1162f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1163f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      default:
1164f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	break;
1165f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1166f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
1167f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1168f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1169f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*--------------------------------.
1170f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| Print this symbol on YYOUTPUT.  |
1171f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org`--------------------------------*/
1172f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1173f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1174f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
1175f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
1176f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, glcpp_parser_t *parser)
1177f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1178f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
1179f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, parser)
1180f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    FILE *yyoutput;
1181f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    int yytype;
1182f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYSTYPE const * const yyvaluep;
1183f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYLTYPE const * const yylocationp;
1184f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    glcpp_parser_t *parser;
1185f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1186f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1187f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yytype < YYNTOKENS)
1188f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1189f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  else
1190f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1191f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1192f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YY_LOCATION_PRINT (yyoutput, *yylocationp);
1193f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYFPRINTF (yyoutput, ": ");
1194f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parser);
1195f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYFPRINTF (yyoutput, ")");
1196f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
1197f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1198f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*------------------------------------------------------------------.
1199f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1200f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| TOP (included).                                                   |
1201f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org`------------------------------------------------------------------*/
1202f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1203f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1204f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
1205f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
1206f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1207f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1208f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
1209f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyy_stack_print (yybottom, yytop)
1210f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    yytype_int16 *yybottom;
1211f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    yytype_int16 *yytop;
1212f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1213f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1214f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYFPRINTF (stderr, "Stack now");
1215f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  for (; yybottom <= yytop; yybottom++)
1216f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1217f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      int yybot = *yybottom;
1218f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYFPRINTF (stderr, " %d", yybot);
1219f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1220f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYFPRINTF (stderr, "\n");
1221f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
1222f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1223f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YY_STACK_PRINT(Bottom, Top)				\
1224f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgdo {								\
1225f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yydebug)							\
1226f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    yy_stack_print ((Bottom), (Top));				\
1227f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org} while (YYID (0))
1228f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1229f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1230f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*------------------------------------------------.
1231f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| Report that the YYRULE is going to be reduced.  |
1232f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org`------------------------------------------------*/
1233f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1234f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1235f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
1236f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
1237f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, glcpp_parser_t *parser)
1238f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1239f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
1240f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyy_reduce_print (yyvsp, yylsp, yyrule, parser)
1241f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYSTYPE *yyvsp;
1242f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYLTYPE *yylsp;
1243f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    int yyrule;
1244f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    glcpp_parser_t *parser;
1245f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1246f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1247f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int yynrhs = yyr2[yyrule];
1248f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int yyi;
1249f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  unsigned long int yylno = yyrline[yyrule];
1250f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1251f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	     yyrule - 1, yylno);
1252f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* The symbols being reduced.  */
1253f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  for (yyi = 0; yyi < yynrhs; yyi++)
1254f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1255f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1256f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1257f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		       &(yyvsp[(yyi + 1) - (yynrhs)])
1258f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		       , &(yylsp[(yyi + 1) - (yynrhs)])		       , parser);
1259f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYFPRINTF (stderr, "\n");
1260f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1261f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
1262f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1263f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YY_REDUCE_PRINT(Rule)		\
1264f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgdo {					\
1265f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yydebug)				\
1266f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    yy_reduce_print (yyvsp, yylsp, Rule, parser); \
1267f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org} while (YYID (0))
1268f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1269f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Nonzero means print parse trace.  It is left uninitialized so that
1270f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   multiple parsers can coexist.  */
1271f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgint yydebug;
1272f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else /* !YYDEBUG */
1273f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYDPRINTF(Args)
1274f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1275f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YY_STACK_PRINT(Bottom, Top)
1276f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YY_REDUCE_PRINT(Rule)
1277f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif /* !YYDEBUG */
1278f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1279f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1280f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYINITDEPTH -- initial size of the parser's stacks.  */
1281f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifndef	YYINITDEPTH
1282f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYINITDEPTH 200
1283f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1284f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1285f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1286f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   if the built-in stack extension method is used).
1287f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1288f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   Do not make this value too large; the results are undefined if
1289f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1290f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   evaluated with infinite-precision integer arithmetic.  */
1291f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1292f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifndef YYMAXDEPTH
1293f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYMAXDEPTH 10000
1294f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1295f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1296f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1297f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if YYERROR_VERBOSE
1298f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1299f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifndef yystrlen
1300f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  if defined __GLIBC__ && defined _STRING_H
1301f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   define yystrlen strlen
1302f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  else
1303f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Return the length of YYSTR.  */
1304f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1305f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
1306f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic YYSIZE_T
1307f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyystrlen (const char *yystr)
1308f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1309f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic YYSIZE_T
1310f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyystrlen (yystr)
1311f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    const char *yystr;
1312f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1313f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1314f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYSIZE_T yylen;
1315f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  for (yylen = 0; yystr[yylen]; yylen++)
1316f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    continue;
1317f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  return yylen;
1318f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
1319f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  endif
1320f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
1321f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1322f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifndef yystpcpy
1323f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1324f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#   define yystpcpy stpcpy
1325f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  else
1326f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1327f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   YYDEST.  */
1328f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1329f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
1330f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic char *
1331f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyystpcpy (char *yydest, const char *yysrc)
1332f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1333f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic char *
1334f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyystpcpy (yydest, yysrc)
1335f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    char *yydest;
1336f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    const char *yysrc;
1337f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1338f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1339f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  char *yyd = yydest;
1340f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  const char *yys = yysrc;
1341f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1342f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  while ((*yyd++ = *yys++) != '\0')
1343f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    continue;
1344f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1345f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  return yyd - 1;
1346f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
1347f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  endif
1348f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
1349f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1350f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifndef yytnamerr
1351f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1352f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   quotes and backslashes, so that it's suitable for yyerror.  The
1353f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   heuristic is that double-quoting is unnecessary unless the string
1354f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   contains an apostrophe, a comma, or backslash (other than
1355f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1356f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   null, do not copy; instead, return the length of what the result
1357f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   would have been.  */
1358f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic YYSIZE_T
1359f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyytnamerr (char *yyres, const char *yystr)
1360f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1361f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (*yystr == '"')
1362f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1363f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYSIZE_T yyn = 0;
1364f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      char const *yyp = yystr;
1365f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1366f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      for (;;)
1367f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	switch (*++yyp)
1368f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  {
1369f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  case '\'':
1370f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  case ',':
1371f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    goto do_not_strip_quotes;
1372f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1373f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  case '\\':
1374f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    if (*++yyp != '\\')
1375f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	      goto do_not_strip_quotes;
1376f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    /* Fall through.  */
1377f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  default:
1378f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    if (yyres)
1379f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	      yyres[yyn] = *yyp;
1380f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    yyn++;
1381f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    break;
1382f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1383f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  case '"':
1384f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    if (yyres)
1385f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	      yyres[yyn] = '\0';
1386f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	    return yyn;
1387f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  }
1388f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    do_not_strip_quotes: ;
1389f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1390f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1391f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (! yyres)
1392f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    return yystrlen (yystr);
1393f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1394f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  return yystpcpy (yyres, yystr) - yyres;
1395f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
1396f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
1397f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1398f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1399f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   about the unexpected token YYTOKEN for the state stack whose top is
1400f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   YYSSP.
1401f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1402f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
1403f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   not large enough to hold the message.  In that case, also set
1404f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
1405f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org   required number of bytes is too large to store.  */
1406f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic int
1407f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1408f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                yytype_int16 *yyssp, int yytoken)
1409f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1410f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
1411f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYSIZE_T yysize = yysize0;
1412f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYSIZE_T yysize1;
1413f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1414f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Internationalized format string. */
1415f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  const char *yyformat = 0;
1416f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Arguments of yyformat. */
1417f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1418f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Number of reported tokens (one for the "unexpected", one per
1419f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     "expected"). */
1420f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int yycount = 0;
1421f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1422f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* There are many possibilities here to consider:
1423f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     - Assume YYFAIL is not used.  It's too flawed to consider.  See
1424f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1425f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       for details.  YYERROR is fine as it does not invoke this
1426f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       function.
1427f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     - If this state is a consistent state with a default action, then
1428f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       the only way this function was invoked is if the default action
1429f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       is an error action.  In that case, don't check for expected
1430f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       tokens because there are none.
1431f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     - The only way there can be no lookahead present (in yychar) is if
1432f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       this state is a consistent state with a default action.  Thus,
1433f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       detecting the absence of a lookahead is sufficient to determine
1434f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       that there is no unexpected or expected token to report.  In that
1435f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       case, just report a simple "syntax error".
1436f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     - Don't assume there isn't a lookahead just because this state is a
1437f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       consistent state with a default action.  There might have been a
1438f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       previous inconsistent state, consistent state with a non-default
1439f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       action, or user semantic action that manipulated yychar.
1440f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     - Of course, the expected token list depends on states to have
1441f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       correct lookahead information, and it depends on the parser not
1442f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       to perform extra reductions after fetching a lookahead from the
1443f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       scanner and before detecting a syntax error.  Thus, state merging
1444f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       (from LALR or IELR) and default reductions corrupt the expected
1445f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       token list.  However, the list is correct for canonical LR with
1446f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       one exception: it will still contain any token that will not be
1447f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       accepted due to an error action in a later state.
1448f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  */
1449f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yytoken != YYEMPTY)
1450f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1451f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      int yyn = yypact[*yyssp];
1452f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yyarg[yycount++] = yytname[yytoken];
1453f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      if (!yypact_value_is_default (yyn))
1454f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org        {
1455f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          /* Start YYX at -YYN if negative to avoid negative indexes in
1456f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org             YYCHECK.  In other words, skip the first -YYN actions for
1457f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org             this state because they are default actions.  */
1458f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          int yyxbegin = yyn < 0 ? -yyn : 0;
1459f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          /* Stay within bounds of both yycheck and yytname.  */
1460f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          int yychecklim = YYLAST - yyn + 1;
1461f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1462f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          int yyx;
1463f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1464f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1465f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1466f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                && !yytable_value_is_error (yytable[yyx + yyn]))
1467f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org              {
1468f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1469f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                  {
1470f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                    yycount = 1;
1471f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                    yysize = yysize0;
1472f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                    break;
1473f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                  }
1474f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                yyarg[yycount++] = yytname[yyx];
1475f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1476f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                if (! (yysize <= yysize1
1477f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1478f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                  return 2;
1479f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org                yysize = yysize1;
1480f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org              }
1481f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org        }
1482f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1483f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1484f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  switch (yycount)
1485f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1486f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# define YYCASE_(N, S)                      \
1487f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      case N:                               \
1488f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org        yyformat = S;                       \
1489f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      break
1490f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYCASE_(0, YY_("syntax error"));
1491f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYCASE_(1, YY_("syntax error, unexpected %s"));
1492f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1493f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1494f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1495f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1496f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# undef YYCASE_
1497f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1498f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1499f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yysize1 = yysize + yystrlen (yyformat);
1500f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1501f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    return 2;
1502f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yysize = yysize1;
1503f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1504f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (*yymsg_alloc < yysize)
1505f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1506f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      *yymsg_alloc = 2 * yysize;
1507f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      if (! (yysize <= *yymsg_alloc
1508f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1509f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1510f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      return 1;
1511f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1512f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1513f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Avoid sprintf, as that infringes on the user's name space.
1514f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     Don't have undefined behavior even if the translation
1515f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     produced a string with the wrong number of "%s"s.  */
1516f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  {
1517f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    char *yyp = *yymsg;
1518f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    int yyi = 0;
1519f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    while ((*yyp = *yyformat) != '\0')
1520f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1521f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org        {
1522f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          yyp += yytnamerr (yyp, yyarg[yyi++]);
1523f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          yyformat += 2;
1524f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org        }
1525f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      else
1526f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org        {
1527f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          yyp++;
1528f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org          yyformat++;
1529f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org        }
1530f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  }
1531f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  return 0;
1532f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
1533f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif /* YYERROR_VERBOSE */
1534f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1535f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*-----------------------------------------------.
1536f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| Release the memory associated to this symbol.  |
1537f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org`-----------------------------------------------*/
1538f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1539f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*ARGSUSED*/
1540f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1541f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
1542f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
1543f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, glcpp_parser_t *parser)
1544f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1545f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgstatic void
1546f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyydestruct (yymsg, yytype, yyvaluep, yylocationp, parser)
1547f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    const char *yymsg;
1548f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    int yytype;
1549f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYSTYPE *yyvaluep;
1550f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYLTYPE *yylocationp;
1551f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    glcpp_parser_t *parser;
1552f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1553f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1554f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYUSE (yyvaluep);
1555f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYUSE (yylocationp);
1556f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYUSE (parser);
1557f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1558f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (!yymsg)
1559f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    yymsg = "Deleting";
1560f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1561f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1562f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  switch (yytype)
1563f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1564f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1565f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      default:
1566f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	break;
1567f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1568f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
1569f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1570f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1571f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Prevent warnings from -Wmissing-prototypes.  */
1572f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifdef YYPARSE_PARAM
1573f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if defined __STDC__ || defined __cplusplus
1574f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgint yyparse (void *YYPARSE_PARAM);
1575f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1576f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgint yyparse ();
1577f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1578f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else /* ! YYPARSE_PARAM */
1579f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if defined __STDC__ || defined __cplusplus
1580f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgint yyparse (glcpp_parser_t *parser);
1581f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1582f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgint yyparse ();
1583f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1584f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif /* ! YYPARSE_PARAM */
1585f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1586f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1587f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*----------.
1588f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| yyparse.  |
1589f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org`----------*/
1590f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1591f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifdef YYPARSE_PARAM
1592f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1593f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
1594f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgint
1595f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyyparse (void *YYPARSE_PARAM)
1596f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1597f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgint
1598f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyyparse (YYPARSE_PARAM)
1599f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    void *YYPARSE_PARAM;
1600f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1601f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else /* ! YYPARSE_PARAM */
1602f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1603f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     || defined __cplusplus || defined _MSC_VER)
1604f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgint
1605f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyyparse (glcpp_parser_t *parser)
1606f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else
1607f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgint
1608f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyyparse (parser)
1609f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    glcpp_parser_t *parser;
1610f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1611f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1612f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1613f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* The lookahead symbol.  */
1614f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgint yychar;
1615f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1616f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* The semantic value of the lookahead symbol.  */
1617f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgYYSTYPE yylval;
1618f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1619f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Location data for the lookahead symbol.  */
1620f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgYYLTYPE yylloc;
1621f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1622f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    /* Number of syntax errors so far.  */
1623f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    int yynerrs;
1624f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1625f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    int yystate;
1626f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    /* Number of tokens to shift before error messages enabled.  */
1627f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    int yyerrstatus;
1628f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1629f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    /* The stacks and their tools:
1630f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       `yyss': related to states.
1631f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       `yyvs': related to semantic values.
1632f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       `yyls': related to locations.
1633f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1634f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       Refer to the stacks thru separate pointers, to allow yyoverflow
1635f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org       to reallocate them elsewhere.  */
1636f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1637f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    /* The state stack.  */
1638f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    yytype_int16 yyssa[YYINITDEPTH];
1639f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    yytype_int16 *yyss;
1640f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    yytype_int16 *yyssp;
1641f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1642f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    /* The semantic value stack.  */
1643f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYSTYPE yyvsa[YYINITDEPTH];
1644f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYSTYPE *yyvs;
1645f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYSTYPE *yyvsp;
1646f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1647f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    /* The location stack.  */
1648f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYLTYPE yylsa[YYINITDEPTH];
1649f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYLTYPE *yyls;
1650f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYLTYPE *yylsp;
1651f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1652f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    /* The locations where the error started and ended.  */
1653f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYLTYPE yyerror_range[3];
1654f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1655f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYSIZE_T yystacksize;
1656f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1657f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int yyn;
1658f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int yyresult;
1659f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Lookahead token as an internal (translated) token number.  */
1660f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int yytoken;
1661f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* The variables used to return semantic value and location from the
1662f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     action routines.  */
1663f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYSTYPE yyval;
1664f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYLTYPE yyloc;
1665f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1666f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if YYERROR_VERBOSE
1667f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Buffer for error messages, and its allocated size.  */
1668f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  char yymsgbuf[128];
1669f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  char *yymsg = yymsgbuf;
1670f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1671f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1672f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1673f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
1674f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1675f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* The number of symbols on the RHS of the reduced rule.
1676f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     Keep to zero when no symbol should be popped.  */
1677f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  int yylen = 0;
1678f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1679f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yytoken = 0;
1680f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyss = yyssa;
1681f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyvs = yyvsa;
1682f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyls = yylsa;
1683f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yystacksize = YYINITDEPTH;
1684f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1685f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYDPRINTF ((stderr, "Starting parse\n"));
1686f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1687f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yystate = 0;
1688f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyerrstatus = 0;
1689f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yynerrs = 0;
1690f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yychar = YYEMPTY; /* Cause a token to be read.  */
1691f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1692f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Initialize stack pointers.
1693f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     Waste one element of value and location stack
1694f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     so that they stay on the same level as the state stack.
1695f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     The wasted elements are never initialized.  */
1696f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyssp = yyss;
1697f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyvsp = yyvs;
1698f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yylsp = yyls;
1699f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1700f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1701f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Initialize the default location before parsing starts.  */
1702f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yylloc.first_line   = yylloc.last_line   = 1;
1703f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yylloc.first_column = yylloc.last_column = 1;
1704f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif
1705f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1706f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* User initialization code.  */
1707f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1708f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1590 of yacc.c  */
1709f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 151 "src/src/glsl/glcpp/glcpp-parse.y"
1710f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org{
1711f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yylloc.first_line = 1;
1712f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yylloc.first_column = 1;
1713f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yylloc.last_line = 1;
1714f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yylloc.last_column = 1;
1715f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yylloc.source = 0;
1716f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org}
1717f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1718f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1590 of yacc.c  */
1719f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 1720 "src/chromium_gensrc/mesa/glcpp-parse.c"
1720f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yylsp[0] = yylloc;
1721f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1722f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  goto yysetstate;
1723f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1724f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*------------------------------------------------------------.
1725f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| yynewstate -- Push a new state, which is found in yystate.  |
1726f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org`------------------------------------------------------------*/
1727f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org yynewstate:
1728f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* In all cases, when you get here, the value and location stacks
1729f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     have just been pushed.  So pushing a state here evens the stacks.  */
1730f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyssp++;
1731f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1732f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org yysetstate:
1733f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  *yyssp = yystate;
1734f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1735f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yyss + yystacksize - 1 <= yyssp)
1736f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1737f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      /* Get the current used size of the three stacks, in elements.  */
1738f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYSIZE_T yysize = yyssp - yyss + 1;
1739f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1740f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#ifdef yyoverflow
1741f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      {
1742f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	/* Give user a chance to reallocate the stack.  Use copies of
1743f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	   these so that the &'s don't force the real ones into
1744f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	   memory.  */
1745f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	YYSTYPE *yyvs1 = yyvs;
1746f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yytype_int16 *yyss1 = yyss;
1747f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	YYLTYPE *yyls1 = yyls;
1748f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1749f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	/* Each stack pointer address is followed by the size of the
1750f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	   data in use in that stack, in bytes.  This used to be a
1751f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	   conditional around just the two extra args, but that might
1752f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	   be undefined if yyoverflow is a macro.  */
1753f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yyoverflow (YY_("memory exhausted"),
1754f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		    &yyss1, yysize * sizeof (*yyssp),
1755f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		    &yyvs1, yysize * sizeof (*yyvsp),
1756f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		    &yyls1, yysize * sizeof (*yylsp),
1757f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		    &yystacksize);
1758f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1759f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yyls = yyls1;
1760f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yyss = yyss1;
1761f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yyvs = yyvs1;
1762f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      }
1763f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#else /* no yyoverflow */
1764f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# ifndef YYSTACK_RELOCATE
1765f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      goto yyexhaustedlab;
1766f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# else
1767f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      /* Extend the stack our own way.  */
1768f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      if (YYMAXDEPTH <= yystacksize)
1769f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	goto yyexhaustedlab;
1770f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yystacksize *= 2;
1771f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      if (YYMAXDEPTH < yystacksize)
1772f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yystacksize = YYMAXDEPTH;
1773f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1774f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      {
1775f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	yytype_int16 *yyss1 = yyss;
1776f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	union yyalloc *yyptr =
1777f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1778f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	if (! yyptr)
1779f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  goto yyexhaustedlab;
1780f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	YYSTACK_RELOCATE (yyss_alloc, yyss);
1781f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1782f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	YYSTACK_RELOCATE (yyls_alloc, yyls);
1783f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#  undef YYSTACK_RELOCATE
1784f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	if (yyss1 != yyssa)
1785f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	  YYSTACK_FREE (yyss1);
1786f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      }
1787f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org# endif
1788f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#endif /* no yyoverflow */
1789f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1790f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yyssp = yyss + yysize - 1;
1791f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yyvsp = yyvs + yysize - 1;
1792f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yylsp = yyls + yysize - 1;
1793f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1794f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1795f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		  (unsigned long int) yystacksize));
1796f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1797f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      if (yyss + yystacksize - 1 <= yyssp)
1798f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	YYABORT;
1799f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1800f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1801f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1802f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1803f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yystate == YYFINAL)
1804f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    YYACCEPT;
1805f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1806f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  goto yybackup;
1807f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1808f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*-----------.
1809f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| yybackup.  |
1810f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org`-----------*/
1811f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyybackup:
1812f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1813f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Do appropriate processing given the current state.  Read a
1814f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     lookahead token if we need one and don't already have one.  */
1815f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1816f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* First try to decide what to do without reference to lookahead token.  */
1817f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyn = yypact[yystate];
1818f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yypact_value_is_default (yyn))
1819f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    goto yydefault;
1820f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1821f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Not known => get a lookahead token if don't already have one.  */
1822f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1823f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1824f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yychar == YYEMPTY)
1825f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1826f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYDPRINTF ((stderr, "Reading a token: "));
1827f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yychar = YYLEX;
1828f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1829f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1830f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yychar <= YYEOF)
1831f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1832f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yychar = yytoken = YYEOF;
1833f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YYDPRINTF ((stderr, "Now at end of input.\n"));
1834f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1835f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  else
1836f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1837f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yytoken = YYTRANSLATE (yychar);
1838f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1839f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1840f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1841f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* If the proper action on seeing token YYTOKEN is to reduce or to
1842f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     detect an error, take that action.  */
1843f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyn += yytoken;
1844f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1845f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    goto yydefault;
1846f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyn = yytable[yyn];
1847f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yyn <= 0)
1848f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1849f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      if (yytable_value_is_error (yyn))
1850f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org        goto yyerrlab;
1851f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      yyn = -yyn;
1852f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org      goto yyreduce;
1853f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    }
1854f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1855f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Count tokens shifted since error; after three, turn off error
1856f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     status.  */
1857f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yyerrstatus)
1858f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    yyerrstatus--;
1859f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1860f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Shift the lookahead token.  */
1861f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1862f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1863f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Discard the shifted token.  */
1864f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yychar = YYEMPTY;
1865f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1866f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yystate = yyn;
1867f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  *++yyvsp = yylval;
1868f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  *++yylsp = yylloc;
1869f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  goto yynewstate;
1870f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1871f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1872f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*-----------------------------------------------------------.
1873f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| yydefault -- do the default action for the current state.  |
1874f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org`-----------------------------------------------------------*/
1875f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyydefault:
1876f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyn = yydefact[yystate];
1877f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  if (yyn == 0)
1878f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    goto yyerrlab;
1879f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  goto yyreduce;
1880f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1881f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1882f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/*-----------------------------.
1883f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org| yyreduce -- Do a reduction.  |
1884f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org`-----------------------------*/
1885f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.orgyyreduce:
1886f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* yyn is the number of a rule to reduce with.  */
1887f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yylen = yyr2[yyn];
1888f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1889f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* If YYLEN is nonzero, implement the default value of the action:
1890f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     `$$ = $1'.
1891f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1892f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     Otherwise, the following line sets YYVAL to garbage.
1893f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     This behavior is undocumented and Bison
1894f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     users should not rely upon it.  Assigning to YYVAL
1895f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     unconditionally makes the parser a bit smaller, and it avoids a
1896f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org     GCC warning that YYVAL may be used uninitialized.  */
1897f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  yyval = yyvsp[1-yylen];
1898f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1899f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  /* Default location.  */
1900f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
1901f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  YY_REDUCE_PRINT (yyn);
1902f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  switch (yyn)
1903f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1904f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org        case 4:
1905f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1906f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
1907f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 190 "src/src/glsl/glcpp/glcpp-parse.y"
1908f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1909f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "\n");
1910f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
1911f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
1912f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1913f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 5:
1914f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1915f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
1916f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 193 "src/src/glsl/glcpp/glcpp-parse.y"
1917f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1918f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_glcpp_parser_print_expanded_token_list (parser, (yyvsp[(1) - (1)].token_list));
1919f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "\n");
1920f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		ralloc_free ((yyvsp[(1) - (1)].token_list));
1921f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
1922f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
1923f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1924f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 8:
1925f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1926f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
1927f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 203 "src/src/glsl/glcpp/glcpp-parse.y"
1928f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1929f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[(1) - (3)]), (yyvsp[(2) - (3)].ival));
1930f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
1931f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
1932f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1933f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 9:
1934f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1935f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
1936f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 206 "src/src/glsl/glcpp/glcpp-parse.y"
1937f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1938f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_glcpp_parser_skip_stack_change_if (parser, & (yylsp[(1) - (3)]), "elif", (yyvsp[(2) - (3)].ival));
1939f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
1940f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
1941f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1942f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 10:
1943f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1944f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
1945f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 209 "src/src/glsl/glcpp/glcpp-parse.y"
1946f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1947f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		parser->has_new_line_number = 1;
1948f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		parser->new_line_number = (yyvsp[(2) - (3)].ival);
1949f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		ralloc_asprintf_rewrite_tail (&parser->output,
1950f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org					      &parser->output_length,
1951f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org					      "#line %" PRIiMAX "\n",
1952f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org					      (yyvsp[(2) - (3)].ival));
1953f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
1954f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
1955f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1956f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 11:
1957f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1958f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
1959f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 217 "src/src/glsl/glcpp/glcpp-parse.y"
1960f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1961f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		parser->has_new_line_number = 1;
1962f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		parser->new_line_number = (yyvsp[(2) - (4)].ival);
1963f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		parser->has_new_source_number = 1;
1964f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		parser->new_source_number = (yyvsp[(3) - (4)].ival);
1965f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		ralloc_asprintf_rewrite_tail (&parser->output,
1966f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org					      &parser->output_length,
1967f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org					      "#line %" PRIiMAX " %" PRIiMAX "\n",
1968f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org					      (yyvsp[(2) - (4)].ival), (yyvsp[(3) - (4)].ival));
1969f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
1970f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
1971f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1972f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 12:
1973f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1974f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
1975f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 230 "src/src/glsl/glcpp/glcpp-parse.y"
1976f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1977f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_define_object_macro (parser, & (yylsp[(2) - (4)]), (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].token_list));
1978f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
1979f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
1980f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1981f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 13:
1982f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1983f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
1984f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 233 "src/src/glsl/glcpp/glcpp-parse.y"
1985f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1986f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_define_function_macro (parser, & (yylsp[(2) - (6)]), (yyvsp[(2) - (6)].str), NULL, (yyvsp[(5) - (6)].token_list));
1987f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
1988f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
1989f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1990f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 14:
1991f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1992f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
1993f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 236 "src/src/glsl/glcpp/glcpp-parse.y"
1994f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
1995f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_define_function_macro (parser, & (yylsp[(2) - (7)]), (yyvsp[(2) - (7)].str), (yyvsp[(4) - (7)].string_list), (yyvsp[(6) - (7)].token_list));
1996f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
1997f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
1998f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
1999f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 15:
2000f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2001f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2002f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 239 "src/src/glsl/glcpp/glcpp-parse.y"
2003f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2004f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (3)].str));
2005f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		if (macro) {
2006f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			hash_table_remove (parser->defines, (yyvsp[(2) - (3)].str));
2007f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			ralloc_free (macro);
2008f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2009f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		ralloc_free ((yyvsp[(2) - (3)].str));
2010f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2011f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2012f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2013f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 16:
2014f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2015f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2016f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 247 "src/src/glsl/glcpp/glcpp-parse.y"
2017f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2018f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		if (parser->skip_stack == NULL ||
2019f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		    parser->skip_stack->type == SKIP_NO_SKIP)
2020f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		{
2021f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			_glcpp_parser_expand_and_lex_from (parser,
2022f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org							   LINE_EXPANDED, (yyvsp[(2) - (3)].token_list));
2023f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2024f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2025f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2026f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2027f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 17:
2028f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2029f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2030f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 255 "src/src/glsl/glcpp/glcpp-parse.y"
2031f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2032f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		/* Be careful to only evaluate the 'if' expression if
2033f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * we are not skipping. When we are skipping, we
2034f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * simply push a new 0-valued 'if' onto the skip
2035f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * stack.
2036f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 *
2037f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * This avoids generating diagnostics for invalid
2038f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * expressions that are being skipped. */
2039f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		if (parser->skip_stack == NULL ||
2040f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		    parser->skip_stack->type == SKIP_NO_SKIP)
2041f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		{
2042f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			_glcpp_parser_expand_and_lex_from (parser,
2043f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org							   IF_EXPANDED, (yyvsp[(2) - (3)].token_list));
2044f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2045f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		else
2046f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		{
2047f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			_glcpp_parser_skip_stack_push_if (parser, & (yylsp[(1) - (3)]), 0);
2048f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			parser->skip_stack->type = SKIP_TO_ENDIF;
2049f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2050f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2051f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2052f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2053f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 18:
2054f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2055f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2056f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 275 "src/src/glsl/glcpp/glcpp-parse.y"
2057f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2058f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		/* #if without an expression is only an error if we
2059f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 *  are not skipping */
2060f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		if (parser->skip_stack == NULL ||
2061f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		    parser->skip_stack->type == SKIP_NO_SKIP)
2062f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		{
2063f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			glcpp_error(& (yylsp[(1) - (2)]), parser, "#if with no expression");
2064f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2065f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[(1) - (2)]), 0);
2066f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2067f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2068f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2069f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 19:
2070f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2071f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2072f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 285 "src/src/glsl/glcpp/glcpp-parse.y"
2073f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2074f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (4)].str));
2075f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		ralloc_free ((yyvsp[(2) - (4)].str));
2076f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[(1) - (4)]), macro != NULL);
2077f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2078f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2079f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2080f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 20:
2081f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2082f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2083f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 290 "src/src/glsl/glcpp/glcpp-parse.y"
2084f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2085f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (4)].str));
2086f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		ralloc_free ((yyvsp[(2) - (4)].str));
2087f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[(1) - (4)]), macro == NULL);
2088f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2089f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2090f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2091f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 21:
2092f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2093f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2094f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 295 "src/src/glsl/glcpp/glcpp-parse.y"
2095f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2096f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		/* Be careful to only evaluate the 'elif' expression
2097f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * if we are not skipping. When we are skipping, we
2098f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * simply change to a 0-valued 'elif' on the skip
2099f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * stack.
2100f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 *
2101f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * This avoids generating diagnostics for invalid
2102f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * expressions that are being skipped. */
2103f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		if (parser->skip_stack &&
2104f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		    parser->skip_stack->type == SKIP_TO_ELSE)
2105f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		{
2106f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			_glcpp_parser_expand_and_lex_from (parser,
2107f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org							   ELIF_EXPANDED, (yyvsp[(2) - (3)].token_list));
2108f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2109f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		else
2110f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		{
2111f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			_glcpp_parser_skip_stack_change_if (parser, & (yylsp[(1) - (3)]),
2112f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org							    "elif", 0);
2113f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2114f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2115f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2116f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2117f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 22:
2118f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2119f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2120f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 315 "src/src/glsl/glcpp/glcpp-parse.y"
2121f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2122f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		/* #elif without an expression is an error unless we
2123f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * are skipping. */
2124f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		if (parser->skip_stack &&
2125f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		    parser->skip_stack->type == SKIP_TO_ELSE)
2126f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		{
2127f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			glcpp_error(& (yylsp[(1) - (2)]), parser, "#elif with no expression");
2128f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2129f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		else
2130f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		{
2131f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			_glcpp_parser_skip_stack_change_if (parser, & (yylsp[(1) - (2)]),
2132f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org							    "elif", 0);
2133f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			glcpp_warning(& (yylsp[(1) - (2)]), parser, "ignoring illegal #elif without expression");
2134f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2135f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2136f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2137f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2138f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 23:
2139f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2140f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2141f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 330 "src/src/glsl/glcpp/glcpp-parse.y"
2142f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2143f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_glcpp_parser_skip_stack_change_if (parser, & (yylsp[(1) - (1)]), "else", 1);
2144f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2145f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2146f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2147f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 25:
2148f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2149f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2150f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 333 "src/src/glsl/glcpp/glcpp-parse.y"
2151f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2152f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		_glcpp_parser_skip_stack_pop (parser, & (yylsp[(1) - (1)]));
2153f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2154f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2155f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2156f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 27:
2157f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2158f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2159f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 336 "src/src/glsl/glcpp/glcpp-parse.y"
2160f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2161f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		macro_t *macro = hash_table_find (parser->defines, "__VERSION__");
2162f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		if (macro) {
2163f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			hash_table_remove (parser->defines, "__VERSION__");
2164f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			ralloc_free (macro);
2165f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2166f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		add_builtin_define (parser, "__VERSION__", (yyvsp[(2) - (3)].ival));
2167f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2168f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		if ((yyvsp[(2) - (3)].ival) == 100)
2169f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			add_builtin_define (parser, "GL_ES", 1);
2170f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2171f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		/* Currently, all ES2 implementations support highp in the
2172f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * fragment shader, so we always define this macro in ES2.
2173f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * If we ever get a driver that doesn't support highp, we'll
2174f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 * need to add a flag to the gl_context and check that here.
2175f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		 */
2176f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		if ((yyvsp[(2) - (3)].ival) >= 130 || (yyvsp[(2) - (3)].ival) == 100)
2177f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			add_builtin_define (parser, "GL_FRAGMENT_PRECISION_HIGH", 1);
2178f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2179f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "#version %" PRIiMAX, (yyvsp[(2) - (3)].ival));
2180f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2181f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2182f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2183f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 29:
2184f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2185f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2186f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 361 "src/src/glsl/glcpp/glcpp-parse.y"
2187f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2188f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		if (strlen ((yyvsp[(1) - (1)].str)) >= 3 && strncmp ((yyvsp[(1) - (1)].str), "0x", 2) == 0) {
2189f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			(yyval.ival) = strtoll ((yyvsp[(1) - (1)].str) + 2, NULL, 16);
2190f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		} else if ((yyvsp[(1) - (1)].str)[0] == '0') {
2191f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			(yyval.ival) = strtoll ((yyvsp[(1) - (1)].str), NULL, 8);
2192f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		} else {
2193f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org			(yyval.ival) = strtoll ((yyvsp[(1) - (1)].str), NULL, 10);
2194f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		}
2195f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2196f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2197f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2198f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 30:
2199f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2200f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2201f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 370 "src/src/glsl/glcpp/glcpp-parse.y"
2202f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2203f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (1)].ival);
2204f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2205f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2206f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2207f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 32:
2208f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2209f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2210f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 376 "src/src/glsl/glcpp/glcpp-parse.y"
2211f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2212f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = 0;
2213f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2214f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2215f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2216f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 33:
2217f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2218f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2219f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 379 "src/src/glsl/glcpp/glcpp-parse.y"
2220f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2221f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) || (yyvsp[(3) - (3)].ival);
2222f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2223f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2224f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2225f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 34:
2226f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2227f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2228f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 382 "src/src/glsl/glcpp/glcpp-parse.y"
2229f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2230f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) && (yyvsp[(3) - (3)].ival);
2231f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2232f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2233f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2234f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 35:
2235f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2236f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2237f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 385 "src/src/glsl/glcpp/glcpp-parse.y"
2238f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2239f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival);
2240f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2241f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2242f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2243f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 36:
2244f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2245f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2246f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 388 "src/src/glsl/glcpp/glcpp-parse.y"
2247f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2248f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) ^ (yyvsp[(3) - (3)].ival);
2249f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2250f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2251f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2252f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 37:
2253f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2254f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2255f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 391 "src/src/glsl/glcpp/glcpp-parse.y"
2256f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2257f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) & (yyvsp[(3) - (3)].ival);
2258f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2259f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2260f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2261f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 38:
2262f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2263f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2264f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 394 "src/src/glsl/glcpp/glcpp-parse.y"
2265f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2266f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) != (yyvsp[(3) - (3)].ival);
2267f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2268f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2269f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2270f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 39:
2271f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2272f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2273f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 397 "src/src/glsl/glcpp/glcpp-parse.y"
2274f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2275f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) == (yyvsp[(3) - (3)].ival);
2276f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2277f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2278f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2279f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 40:
2280f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2281f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2282f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 400 "src/src/glsl/glcpp/glcpp-parse.y"
2283f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2284f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) >= (yyvsp[(3) - (3)].ival);
2285f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2286f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2287f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2288f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 41:
2289f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2290f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2291f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 403 "src/src/glsl/glcpp/glcpp-parse.y"
2292f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2293f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) <= (yyvsp[(3) - (3)].ival);
2294f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2295f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2296f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2297f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 42:
2298f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2299f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2300f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 406 "src/src/glsl/glcpp/glcpp-parse.y"
2301f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2302f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) > (yyvsp[(3) - (3)].ival);
2303f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2304f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2305f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2306f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 43:
2307f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2308f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2309f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 409 "src/src/glsl/glcpp/glcpp-parse.y"
2310f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2311f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) < (yyvsp[(3) - (3)].ival);
2312f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2313f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2314f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2315f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 44:
2316f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2317f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2318f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 412 "src/src/glsl/glcpp/glcpp-parse.y"
2319f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2320f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) >> (yyvsp[(3) - (3)].ival);
2321f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2322f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2323f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2324f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 45:
2325f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2326f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2327f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 415 "src/src/glsl/glcpp/glcpp-parse.y"
2328f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2329f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) << (yyvsp[(3) - (3)].ival);
2330f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2331f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2332f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2333f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 46:
2334f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2335f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2336f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#line 418 "src/src/glsl/glcpp/glcpp-parse.y"
2337f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    {
2338f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org		(yyval.ival) = (yyvsp[(1) - (3)].ival) - (yyvsp[(3) - (3)].ival);
2339f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org	}
2340f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org    break;
2341f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2342f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org  case 47:
2343f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org
2344f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org/* Line 1806 of yacc.c  */
2345f2304cf60bf51f05cc720689e8b89958f25ca5dakbr@chromium.org#