105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                                             -*- C -*-
2cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Yacc compatible skeleton for Bison
4cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation,
605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Inc.
7cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# This program is free software: you can redistribute it and/or modify
9cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# it under the terms of the GNU General Public License as published by
1005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# the Free Software Foundation, either version 3 of the License, or
11cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# (at your option) any later version.
1205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#
13cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# This program is distributed in the hope that it will be useful,
14cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# but WITHOUT ANY WARRANTY; without even the implied warranty of
15cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# GNU General Public License for more details.
1705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#
18cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# You should have received a copy of the GNU General Public License
1905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# along with this program.  If not, see <http://www.gnu.org/licenses/>.
2005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Check the value of %define api.push-pull.
2205436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_percent_define_default([[api.push-pull]], [[pull]])
2305436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_percent_define_check_values([[[[api.push-pull]],
2405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                 [[pull]], [[push]], [[both]]]])
2505436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_define_flag_if([pull]) m4_define([b4_pull_flag], [[1]])
2605436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_define_flag_if([push]) m4_define([b4_push_flag], [[1]])
2705436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_case(b4_percent_define_get([[api.push-pull]]),
2805436638acc7c010349a69c3395f1a57c642dc62Ying Wang        [pull], [m4_define([b4_push_flag], [[0]])],
2905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        [push], [m4_define([b4_pull_flag], [[0]])])
3005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Handle BISON_USE_PUSH_FOR_PULL for the test suite.  So that push parsing
3205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# tests function as written, do not let BISON_USE_PUSH_FOR_PULL modify the
3305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# behavior of Bison at all when push parsing is already requested.
3405436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_define_flag_if([use_push_for_pull])
3505436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_use_push_for_pull_if([
3605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  b4_push_if([m4_define([b4_use_push_for_pull_flag], [[0]])],
3705436638acc7c010349a69c3395f1a57c642dc62Ying Wang             [m4_define([b4_push_flag], [[1]])])])
3805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Check the value of %define parse.lac and friends, where LAC stands for
4005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# lookahead correction.
4105436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_percent_define_default([[parse.lac]], [[none]])
4205436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_percent_define_default([[parse.lac.es-capacity-initial]], [[20]])
4305436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_percent_define_default([[parse.lac.memory-trace]], [[failures]])
4405436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_percent_define_check_values([[[[parse.lac]], [[full]], [[none]]]],
4505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                               [[[[parse.lac.memory-trace]],
4605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                 [[failures]], [[full]]]])
4705436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_define_flag_if([lac])
4805436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_define([b4_lac_flag],
4905436638acc7c010349a69c3395f1a57c642dc62Ying Wang          [m4_if(b4_percent_define_get([[parse.lac]]),
5005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 [none], [[0]], [[1]])])
51cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
52cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_include(b4_pkgdatadir/[c.m4])
53cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
54cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## ---------------- ##
55cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## Default values.  ##
56cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## ---------------- ##
57cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
58cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Stack parameters.
59cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_define_default([b4_stack_depth_max], [10000])
60cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_define_default([b4_stack_depth_init],  [200])
61cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
62cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
63cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## ------------------------ ##
64cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## Pure/impure interfaces.  ##
65cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## ------------------------ ##
66cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
6705436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_percent_define_default([[api.pure]], [[false]])
6805436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_percent_define_check_values([[[[api.pure]],
6905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                 [[false]], [[true]], [[]], [[full]]]])
7005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
7105436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_define([b4_pure_flag], [[0]])
7205436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_case(b4_percent_define_get([[api.pure]]),
7305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        [false], [m4_define([b4_pure_flag], [[0]])],
7405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        [true],  [m4_define([b4_pure_flag], [[1]])],
7505436638acc7c010349a69c3395f1a57c642dc62Ying Wang        [],      [m4_define([b4_pure_flag], [[1]])],
7605436638acc7c010349a69c3395f1a57c642dc62Ying Wang        [full],  [m4_define([b4_pure_flag], [[2]])])
7705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
7805436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_define([b4_pure_if],
7905436638acc7c010349a69c3395f1a57c642dc62Ying Wang[m4_case(b4_pure_flag,
8005436638acc7c010349a69c3395f1a57c642dc62Ying Wang         [0], [$2],
8105436638acc7c010349a69c3395f1a57c642dc62Ying Wang         [1], [$1],
8205436638acc7c010349a69c3395f1a57c642dc62Ying Wang         [2], [$1])])
8305436638acc7c010349a69c3395f1a57c642dc62Ying Wang         [m4_fatal([invalid api.pure value: ]$1)])])
8405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
8505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# b4_yyerror_arg_loc_if(ARG)
8605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# --------------------------
8705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Expand ARG iff yyerror is to be given a location as argument.
8805436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_define([b4_yyerror_arg_loc_if],
8905436638acc7c010349a69c3395f1a57c642dc62Ying Wang[b4_locations_if([m4_case(b4_pure_flag,
9005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                          [1], [m4_ifset([b4_parse_param], [$1])],
9105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                          [2], [$1])])])
92cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
93cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# b4_yyerror_args
94cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ---------------
95cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Arguments passed to yyerror: user args plus yylloc.
96cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_define([b4_yyerror_args],
9705436638acc7c010349a69c3395f1a57c642dc62Ying Wang[b4_yyerror_arg_loc_if([&yylloc, ])dnl
98cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_ifset([b4_parse_param], [b4_c_args(b4_parse_param), ])])
99cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
100cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
101cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# b4_lex_param
102cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ------------
103cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Accumulate in b4_lex_param all the yylex arguments.
104cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# b4_lex_param arrives quoted twice, but we want to keep only one level.
105cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_define([b4_lex_param],
106cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_dquote(b4_pure_if([[[[YYSTYPE *]], [[&yylval]]][]dnl
107cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectb4_locations_if([, [[YYLTYPE *], [&yylloc]]])m4_ifdef([b4_lex_param], [, ])])dnl
108cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_ifdef([b4_lex_param], b4_lex_param)))
109cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
110cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
111cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## ------------ ##
112cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## Data Types.  ##
113cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## ------------ ##
114cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
115cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# b4_int_type(MIN, MAX)
116cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ---------------------
117cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Return the smallest int type able to handle numbers ranging from
118cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# MIN to MAX (included).  Overwrite the version from c.m4, which
119cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# uses only C89 types, so that the user can override the shorter
120cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# types, and so that pre-C89 compilers are handled correctly.
121cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_define([b4_int_type],
122cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project[m4_if(b4_ints_in($@,      [0],   [255]), [1], [yytype_uint8],
123cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       b4_ints_in($@,   [-128],   [127]), [1], [yytype_int8],
124cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
125cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       b4_ints_in($@,      [0], [65535]), [1], [yytype_uint16],
126cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       b4_ints_in($@, [-32768], [32767]), [1], [yytype_int16],
127cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
128cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       m4_eval([0 <= $1]),                [1], [unsigned int],
129cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
130cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					       [int])])
131cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
132cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
133cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## ----------------- ##
134cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## Semantic Values.  ##
135cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## ----------------- ##
136cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
137cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
138cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# b4_lhs_value([TYPE])
139cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# --------------------
140cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Expansion of $<TYPE>$.
141cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_define([b4_lhs_value],
142cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project[(yyval[]m4_ifval([$1], [.$1]))])
143cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
144cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
145cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# b4_rhs_value(RULE-LENGTH, NUM, [TYPE])
146cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# --------------------------------------
147cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH
148cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# symbols on RHS.
149cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_define([b4_rhs_value],
150cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project[(yyvsp@{($2) - ($1)@}m4_ifval([$3], [.$3]))])
151cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
152cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
153cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
154cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## ----------- ##
155cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## Locations.  ##
156cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project## ----------- ##
157cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
158cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# b4_lhs_location()
159cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# -----------------
160cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Expansion of @$.
161cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_define([b4_lhs_location],
162cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project[(yyloc)])
163cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
164cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
165cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# b4_rhs_location(RULE-LENGTH, NUM)
166cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ---------------------------------
167cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Expansion of @NUM, where the current rule has RULE-LENGTH symbols
168cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# on RHS.
169cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_define([b4_rhs_location],
170cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project[(yylsp@{($2) - ($1)@})])
171cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
172cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
17305436638acc7c010349a69c3395f1a57c642dc62Ying Wang## -------------- ##
17405436638acc7c010349a69c3395f1a57c642dc62Ying Wang## Declarations.  ##
17505436638acc7c010349a69c3395f1a57c642dc62Ying Wang## -------------- ##
17605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
17705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# b4_declare_scanner_communication_variables
17805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ------------------------------------------
17905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Declare the variables that are global, or local to YYPARSE if
18005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# pure-parser.
18105436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_define([b4_declare_scanner_communication_variables], [[
18205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The lookahead symbol.  */
18305436638acc7c010349a69c3395f1a57c642dc62Ying Wangint yychar;
18405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
18505436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_pure_if([[
18605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
18705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
18805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
18905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _Pragma ("GCC diagnostic push") \
19005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
19105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
19205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
19305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _Pragma ("GCC diagnostic pop")
19405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
19505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Default value used for initialization, for pacifying older GCCs
19605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   or non-GCC compilers.  */
19705436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic YYSTYPE yyval_default;
19805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YY_INITIAL_VALUE(Value) = Value
19905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif]b4_locations_if([[
20005436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic YYLTYPE yyloc_default][]b4_yyloc_default[;]])])[
20105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
20205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
20305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YY_IGNORE_MAYBE_UNINITIALIZED_END
20405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
20505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef YY_INITIAL_VALUE
20605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YY_INITIAL_VALUE(Value) /* Nothing. */
20705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
20805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
20905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The semantic value of the lookahead symbol.  */
21005436638acc7c010349a69c3395f1a57c642dc62Ying WangYYSTYPE yylval YY_INITIAL_VALUE(yyval_default);]b4_locations_if([[
21105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
21205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Location data for the lookahead symbol.  */
21305436638acc7c010349a69c3395f1a57c642dc62Ying WangYYLTYPE yylloc]b4_pure_if([ = yyloc_default], [b4_yyloc_default])[;
21405436638acc7c010349a69c3395f1a57c642dc62Ying Wang]])b4_pure_if([], [[
21505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
21605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Number of syntax errors so far.  */
21705436638acc7c010349a69c3395f1a57c642dc62Ying Wangint yynerrs;]])])
21805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
21905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
22005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# b4_declare_parser_state_variables
22105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ---------------------------------
22205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Declare all the variables that are needed to maintain the parser state
22305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# between calls to yypush_parse.
22405436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_define([b4_declare_parser_state_variables], [b4_pure_if([[
22505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* Number of syntax errors so far.  */
22605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    int yynerrs;
22705436638acc7c010349a69c3395f1a57c642dc62Ying Wang]])[
22805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    int yystate;
22905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* Number of tokens to shift before error messages enabled.  */
23005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    int yyerrstatus;
23105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
23205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* The stacks and their tools:
23305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       `yyss': related to states.
23405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       `yyvs': related to semantic values.]b4_locations_if([[
23505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       `yyls': related to locations.]])[
23605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
23705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       Refer to the stacks through separate pointers, to allow yyoverflow
23805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       to reallocate them elsewhere.  */
23905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
24005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* The state stack.  */
24105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yytype_int16 yyssa[YYINITDEPTH];
24205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yytype_int16 *yyss;
24305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yytype_int16 *yyssp;
24405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
24505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* The semantic value stack.  */
24605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYSTYPE yyvsa[YYINITDEPTH];
24705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYSTYPE *yyvs;
24805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYSTYPE *yyvsp;]b4_locations_if([[
24905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
25005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* The location stack.  */
25105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYLTYPE yylsa[YYINITDEPTH];
25205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYLTYPE *yyls;
25305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYLTYPE *yylsp;
25405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
25505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* The locations where the error started and ended.  */
25605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYLTYPE yyerror_range[3];]])[
25705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
25805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYSIZE_T yystacksize;]b4_lac_if([[
25905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
26005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yytype_int16 yyesa@{]b4_percent_define_get([[parse.lac.es-capacity-initial]])[@};
26105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yytype_int16 *yyes;
26205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYSIZE_T yyes_capacity;]])])
26305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
26405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
26505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# b4_declare_yyparse_push_
26605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ------------------------
26705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Declaration of yyparse (and dependencies) when using the push parser
26805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# (including in pull mode).
26905436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_define([b4_declare_yyparse_push_],
27005436638acc7c010349a69c3395f1a57c642dc62Ying Wang[[#ifndef YYPUSH_MORE_DEFINED
27105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YYPUSH_MORE_DEFINED
27205436638acc7c010349a69c3395f1a57c642dc62Ying Wangenum { YYPUSH_MORE = 4 };
27305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
27405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
27505436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef struct ]b4_prefix[pstate ]b4_prefix[pstate;
27605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
27705436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_pull_if([b4_c_function_decl([b4_prefix[parse]], [[int]], b4_parse_param)
27805436638acc7c010349a69c3395f1a57c642dc62Ying Wang])b4_c_function_decl([b4_prefix[push_parse]], [[int]],
27905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [[b4_prefix[pstate *ps]], [[ps]]]b4_pure_if([,
28005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [[[int pushed_char]], [[pushed_char]]],
28105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [[b4_api_PREFIX[STYPE const *pushed_val]], [[pushed_val]]]b4_locations_if([,
28205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [[b4_api_PREFIX[LTYPE *pushed_loc]], [[pushed_loc]]]])])m4_ifset([b4_parse_param], [,
28305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  b4_parse_param]))
28405436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_pull_if([b4_c_function_decl([b4_prefix[pull_parse]], [[int]],
28505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [[b4_prefix[pstate *ps]], [[ps]]]m4_ifset([b4_parse_param], [,
28605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  b4_parse_param]))])
28705436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_c_function_decl([b4_prefix[pstate_new]], [b4_prefix[pstate *]],
28805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                    [[[void]], []])
28905436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_c_function_decl([b4_prefix[pstate_delete]], [[void]],
29005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                   [[b4_prefix[pstate *ps]], [[ps]]])dnl
29105436638acc7c010349a69c3395f1a57c642dc62Ying Wang])
29205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
29305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# b4_declare_yyparse_
29405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# -------------------
29505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# When not the push parser.
29605436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_define([b4_declare_yyparse_],
29705436638acc7c010349a69c3395f1a57c642dc62Ying Wang[[#ifdef YYPARSE_PARAM
29805436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_c_function_decl(b4_prefix[parse], [int],
29905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                    [[void *YYPARSE_PARAM], [YYPARSE_PARAM]])[
30005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else /* ! YYPARSE_PARAM */
30105436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_c_function_decl(b4_prefix[parse], [int], b4_parse_param)[
30205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* ! YYPARSE_PARAM */]dnl
30305436638acc7c010349a69c3395f1a57c642dc62Ying Wang])
30405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
30505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
30605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# b4_declare_yyparse
30705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ------------------
30805436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_define([b4_declare_yyparse],
30905436638acc7c010349a69c3395f1a57c642dc62Ying Wang[b4_push_if([b4_declare_yyparse_push_],
31005436638acc7c010349a69c3395f1a57c642dc62Ying Wang            [b4_declare_yyparse_])[]dnl
31105436638acc7c010349a69c3395f1a57c642dc62Ying Wang])
312cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
313cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
31405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# b4_shared_declarations
31505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ----------------------
31605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Declaration that might either go into the header (if --defines)
31705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# or open coded in the parser body.
31805436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_define([b4_shared_declarations],
31905436638acc7c010349a69c3395f1a57c642dc62Ying Wang[b4_cpp_guard_open([b4_spec_defines_file])[
32005436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_declare_yydebug[
32105436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_percent_code_get([[requires]])[
32205436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_token_enums_defines(b4_tokens)[
32305436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_declare_yylstype[
32405436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_declare_yyparse[
32505436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_percent_code_get([[provides]])[
32605436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_cpp_guard_close([b4_spec_defines_file])[]dnl
32705436638acc7c010349a69c3395f1a57c642dc62Ying Wang])
32805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
32905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
33005436638acc7c010349a69c3395f1a57c642dc62Ying Wang## -------------- ##
33105436638acc7c010349a69c3395f1a57c642dc62Ying Wang## Output files.  ##
33205436638acc7c010349a69c3395f1a57c642dc62Ying Wang## -------------- ##
33305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
33405436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_output_begin([b4_parser_file_name])
33505436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_copyright([Bison implementation for Yacc-like parsers in C],
33605436638acc7c010349a69c3395f1a57c642dc62Ying Wang             [1984, 1989-1990, 2000-2012])[
337cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
338cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* C LALR(1) parser skeleton written by Richard Stallman, by
339cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   simplifying the original so-called "semantic" parser.  */
340cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
341cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* All symbols defined below should begin with yy or YY, to avoid
342cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   infringing on user name space.  This should be done even for local
343cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   variables, as they might otherwise be expanded by user macros.
344cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   There are some unavoidable exceptions within include files to
345cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   define necessary library symbols; they are noted "INFRINGES ON
346cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   USER NAME SPACE" below.  */
347cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
348cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_identification
34905436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_percent_code_get([[top]])[]dnl
35005436638acc7c010349a69c3395f1a57c642dc62Ying Wangm4_if(b4_api_prefix, [yy], [],
35105436638acc7c010349a69c3395f1a57c642dc62Ying Wang[[/* Substitute the type names.  */
35205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YYSTYPE         ]b4_api_PREFIX[STYPE]b4_locations_if([[
35305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YYLTYPE         ]b4_api_PREFIX[LTYPE]])])[
35405436638acc7c010349a69c3395f1a57c642dc62Ying Wang]m4_if(b4_prefix, [yy], [],
35505436638acc7c010349a69c3395f1a57c642dc62Ying Wang[[/* Substitute the variable and function names.  */]b4_pull_if([[
35605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyparse         ]b4_prefix[parse]])b4_push_if([[
35705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yypush_parse    ]b4_prefix[push_parse]b4_pull_if([[
35805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yypull_parse    ]b4_prefix[pull_parse]])[
35905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yypstate_new    ]b4_prefix[pstate_new
36005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yypstate_delete ]b4_prefix[pstate_delete
36105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yypstate        ]b4_prefix[pstate]])[
36205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yylex           ]b4_prefix[lex
36305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyerror         ]b4_prefix[error
36405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yylval          ]b4_prefix[lval
36505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yychar          ]b4_prefix[char
36605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yydebug         ]b4_prefix[debug
36705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yynerrs         ]b4_prefix[nerrs]b4_locations_if([[
36805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yylloc          ]b4_prefix[lloc]])])[
369cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
370cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Copy the first part of user declarations.  */
37105436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_user_pre_prologue[
372cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
37305436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_null_define[
374cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
375cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Enabling verbose error messages.  */
376cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YYERROR_VERBOSE
377cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# undef YYERROR_VERBOSE
378cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YYERROR_VERBOSE 1
379cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
380cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YYERROR_VERBOSE ]b4_error_verbose_flag[
381cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
382cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
38305436638acc7c010349a69c3395f1a57c642dc62Ying Wang]m4_ifval(m4_quote(b4_spec_defines_file),
38405436638acc7c010349a69c3395f1a57c642dc62Ying Wang[[/* In a future release of Bison, this section will be replaced
38505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   by #include "@basename(]b4_spec_defines_file[@)".  */
38605436638acc7c010349a69c3395f1a57c642dc62Ying Wang]])dnl
38705436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_shared_declarations[
388cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
389cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Copy the second part of user declarations.  */
39005436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_user_post_prologue
39105436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_percent_code_get[]dnl
392cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
39305436638acc7c010349a69c3395f1a57c642dc62Ying Wang[#ifdef short
394cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# undef short
395cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
396cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
397cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YYTYPE_UINT8
398cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef YYTYPE_UINT8 yytype_uint8;
399cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
400cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef unsigned char yytype_uint8;
401cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
402cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
403cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YYTYPE_INT8
404cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef YYTYPE_INT8 yytype_int8;
405cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#elif ]b4_c_modern[
406cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef signed char yytype_int8;
407cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
408cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef short int yytype_int8;
409cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
410cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
411cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YYTYPE_UINT16
412cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef YYTYPE_UINT16 yytype_uint16;
413cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
414cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef unsigned short int yytype_uint16;
415cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
416cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
417cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YYTYPE_INT16
418cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef YYTYPE_INT16 yytype_int16;
419cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
420cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef short int yytype_int16;
421cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
422cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
423cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YYSIZE_T
424cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifdef __SIZE_TYPE__
425cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define YYSIZE_T __SIZE_TYPE__
426cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# elif defined size_t
427cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define YYSIZE_T size_t
428cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# elif ! defined YYSIZE_T && ]b4_c_modern[
429cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
430cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define YYSIZE_T size_t
431cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# else
432cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define YYSIZE_T unsigned int
433cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
434cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
435cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
436cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
437cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
438cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_
43905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined YYENABLE_NLS && YYENABLE_NLS
440cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  if ENABLE_NLS
441cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
44205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
443cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  endif
444cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
445cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifndef YY_
44605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define YY_(Msgid) Msgid
447cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
448cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
449cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
450cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Suppress unused-variable warnings by "using" E.  */
451cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#if ! defined lint || defined __GNUC__
45205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YYUSE(E) ((void) (E))
453cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
45405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YYUSE(E) /* empty */
455cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
456cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
457cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Identity function, used to suppress warnings about constant conditions.  */
458cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef lint
45905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YYID(N) (N)
460cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
46105436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_c_function_def([YYID], [static int], [[int yyi], [yyi]])[
462cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
46305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return yyi;
464cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
465cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
466cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
46705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ]b4_lac_if([[1]], [[! defined yyoverflow || YYERROR_VERBOSE]])[
468cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
46905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The parser invokes alloca or malloc; define the necessary symbols.  */]dnl
47005436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_push_if([], [b4_lac_if([], [[
471cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
472cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifdef YYSTACK_USE_ALLOCA
473cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  if YYSTACK_USE_ALLOCA
474cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   ifdef __GNUC__
475cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#    define YYSTACK_ALLOC __builtin_alloca
476cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   elif defined __BUILTIN_VA_ARG_INCR
477cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
478cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   elif defined _AIX
479cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#    define YYSTACK_ALLOC __alloca
480cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   elif defined _MSC_VER
481cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
482cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#    define alloca _alloca
483cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   else
484cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#    define YYSTACK_ALLOC alloca
48505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && ]b4_c_modern[
486cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
48705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
48805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#     ifndef EXIT_SUCCESS
48905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#      define EXIT_SUCCESS 0
490cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#     endif
491cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#    endif
492cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   endif
493cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  endif
49405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif]])])[
495cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
496cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifdef YYSTACK_ALLOC
497cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   /* Pacify GCC's `empty if-body' warning.  */
498cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
499cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  ifndef YYSTACK_ALLOC_MAXIMUM
500cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    /* The OS might guarantee only one guard page at the bottom of the stack,
501cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       and a page size can be as small as 4096 bytes.  So we cannot safely
502cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
503cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       to allow for a few compiler-allocated temporary stack slots.  */
504cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
505cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  endif
506cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# else
507cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define YYSTACK_ALLOC YYMALLOC
508cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define YYSTACK_FREE YYFREE
509cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  ifndef YYSTACK_ALLOC_MAXIMUM
510cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
511cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  endif
51205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
513cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       && ! ((defined YYMALLOC || defined malloc) \
514cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	     && (defined YYFREE || defined free)))
515cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
51605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   ifndef EXIT_SUCCESS
51705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#    define EXIT_SUCCESS 0
518cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   endif
519cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  endif
520cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  ifndef YYMALLOC
521cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   define YYMALLOC malloc
52205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   if ! defined malloc && ! defined EXIT_SUCCESS && ]b4_c_modern[
523cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
524cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   endif
525cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  endif
526cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  ifndef YYFREE
527cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   define YYFREE free
52805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   if ! defined free && ! defined EXIT_SUCCESS && ]b4_c_modern[
529cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid free (void *); /* INFRINGES ON USER NAME SPACE */
530cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   endif
531cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  endif
53205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif]b4_lac_if([[
53305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YYCOPY_NEEDED 1]])[
53405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif]b4_lac_if([], [[ /* ! defined yyoverflow || YYERROR_VERBOSE */]])[
535cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
536cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
537cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#if (! defined yyoverflow \
538cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     && (! defined __cplusplus \
53905436638acc7c010349a69c3395f1a57c642dc62Ying Wang	 || (]b4_locations_if([[defined ]b4_api_PREFIX[LTYPE_IS_TRIVIAL && ]b4_api_PREFIX[LTYPE_IS_TRIVIAL \
54005436638acc7c010349a69c3395f1a57c642dc62Ying Wang	     && ]])[defined ]b4_api_PREFIX[STYPE_IS_TRIVIAL && ]b4_api_PREFIX[STYPE_IS_TRIVIAL)))
541cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
542cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* A type that is properly aligned for any stack member.  */
543cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectunion yyalloc
544cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
54505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yytype_int16 yyss_alloc;
54605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYSTYPE yyvs_alloc;]b4_locations_if([
54705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYLTYPE yyls_alloc;])[
54805436638acc7c010349a69c3395f1a57c642dc62Ying Wang};
549cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
550cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* The size of the maximum gap between one aligned stack and the next.  */
551cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
552cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
553cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* The size of an array large to enough to hold all stacks, each with
554cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   N elements.  */
555cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_locations_if(
556cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project[# define YYSTACK_BYTES(N) \
557cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
558cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      + 2 * YYSTACK_GAP_MAXIMUM)],
559cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project[# define YYSTACK_BYTES(N) \
560cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
561cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      + YYSTACK_GAP_MAXIMUM)])[
562cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
56305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YYCOPY_NEEDED 1
564cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
565cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Relocate STACK from its old location to the new one.  The
566cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   local variables YYSIZE and YYSTACKSIZE give the old and new number of
567cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   elements in the stack, and YYPTR gives the new location of the
568cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   stack.  Advance YYPTR to a properly aligned location for the next
569cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   stack.  */
57005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
571cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    do									\
572cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      {									\
573cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YYSIZE_T yynewbytes;						\
57405436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
57505436638acc7c010349a69c3395f1a57c642dc62Ying Wang	Stack = &yyptr->Stack_alloc;					\
576cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
577cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yyptr += yynewbytes / sizeof (*yyptr);				\
578cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      }									\
579cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    while (YYID (0))
580cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
581cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
582cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
58305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
58405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Copy COUNT objects from SRC to DST.  The source and destination do
58505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   not overlap.  */
58605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifndef YYCOPY
58705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if defined __GNUC__ && 1 < __GNUC__
58805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define YYCOPY(Dst, Src, Count) \
58905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
59005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  else
59105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define YYCOPY(Dst, Src, Count)              \
59205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      do                                        \
59305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {                                       \
59405436638acc7c010349a69c3395f1a57c642dc62Ying Wang          YYSIZE_T yyi;                         \
59505436638acc7c010349a69c3395f1a57c642dc62Ying Wang          for (yyi = 0; yyi < (Count); yyi++)   \
59605436638acc7c010349a69c3395f1a57c642dc62Ying Wang            (Dst)[yyi] = (Src)[yyi];            \
59705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }                                       \
59805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      while (YYID (0))
59905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
60005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
60105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* !YYCOPY_NEEDED */
60205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
603cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYFINAL -- State number of the termination state.  */
604cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYFINAL  ]b4_final_state_number[
605cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYLAST -- Last index in YYTABLE.  */
606cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYLAST   ]b4_last[
607cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
608cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYNTOKENS -- Number of terminals.  */
609cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYNTOKENS  ]b4_tokens_number[
610cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYNNTS -- Number of nonterminals.  */
611cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYNNTS  ]b4_nterms_number[
612cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYNRULES -- Number of rules.  */
613cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYNRULES  ]b4_rules_number[
614cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYNRULES -- Number of states.  */
615cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYNSTATES  ]b4_states_number[
616cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
617cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
618cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYUNDEFTOK  ]b4_undef_token_number[
619cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYMAXUTOK   ]b4_user_token_number_max[
620cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
621cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYTRANSLATE(YYX)						\
622cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
623cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
624cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
625cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_translate])[ yytranslate[] =
626cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
627cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_translate[
628cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
629cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
63005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ]b4_api_PREFIX[DEBUG
631cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
632cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   YYRHS.  */
633cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_prhs])[ yyprhs[] =
634cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
635cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_prhs[
636cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
637cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
638cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
639cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_rhs])[ yyrhs[] =
640cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
641cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_rhs[
642cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
643cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
644cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
645cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_rline])[ yyrline[] =
646cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
647cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_rline[
648cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
649cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
650cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
65105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ]b4_api_PREFIX[DEBUG || YYERROR_VERBOSE || ]b4_token_table_flag[
652cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
653cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
654cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const char *const yytname[] =
655cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
656cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_tname[
657cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
658cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
659cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
660cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifdef YYPRINT
661cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
662cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   token YYLEX-NUM.  */
663cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_toknum])[ yytoknum[] =
664cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
665cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_toknum[
666cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
667cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
668cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
669cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
670cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_r1])[ yyr1[] =
671cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
672cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_r1[
673cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
674cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
675cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
676cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_r2])[ yyr2[] =
677cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
678cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_r2[
679cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
680cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
68105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
68205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Performed when YYTABLE doesn't specify something else to do.  Zero
683cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   means the default is an error.  */
684cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_defact])[ yydefact[] =
685cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
686cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_defact[
687cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
688cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
689cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYDEFGOTO[NTERM-NUM].  */
690cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_defgoto])[ yydefgoto[] =
691cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
692cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_defgoto[
693cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
694cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
695cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
696cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   STATE-NUM.  */
697cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYPACT_NINF ]b4_pact_ninf[
698cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_pact])[ yypact[] =
699cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
700cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_pact[
701cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
702cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
703cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYPGOTO[NTERM-NUM].  */
704cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_pgoto])[ yypgoto[] =
705cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
706cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_pgoto[
707cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
708cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
709cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
710cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   positive, shift that token.  If negative, reduce the rule which
71105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   number is the opposite.  If YYTABLE_NINF, syntax error.  */
712cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYTABLE_NINF ]b4_table_ninf[
713cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_table])[ yytable[] =
714cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
715cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_table[
716cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
717cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
71805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yypact_value_is_default(Yystate) \
71905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  ]b4_table_value_equals([[pact]], [[Yystate]], [b4_pact_ninf])[
72005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
72105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yytable_value_is_error(Yytable_value) \
72205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  ]b4_table_value_equals([[table]], [[Yytable_value]], [b4_table_ninf])[
72305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
724cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_check])[ yycheck[] =
725cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
726cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_check[
727cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
728cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
729cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
730cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   symbol of state STATE-NUM.  */
731cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic const ]b4_int_type_for([b4_stos])[ yystos[] =
732cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
733cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ]b4_stos[
734cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project};
735cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
736cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yyerrok		(yyerrstatus = 0)
737cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yyclearin	(yychar = YYEMPTY)
738cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYEMPTY		(-2)
739cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYEOF		0
740cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
741cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYACCEPT	goto yyacceptlab
742cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYABORT		goto yyabortlab
743cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYERROR		goto yyerrorlab
744cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
745cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
746cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Like YYERROR except do call yyerror.  This remains here temporarily
747cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   to ease the transition to the new meaning of YYERROR, for GCC.
74805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Once GCC version 2 has supplanted version 1, this can go.  However,
74905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
75005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
75105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   discussed.  */
752cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
753cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYFAIL		goto yyerrlab
75405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined YYFAIL
75505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* This is here to suppress warnings from the GCC cpp's
75605436638acc7c010349a69c3395f1a57c642dc62Ying Wang     -Wunused-macros.  Normally we don't worry about that warning, but
75705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     some users do, and we want to make it easy for users to remove
75805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     YYFAIL uses, which will produce warnings from Bison 2.5.  */
75905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
760cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
761cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYRECOVERING()  (!!yyerrstatus)
762cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
76305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YYBACKUP(Token, Value)                                  \
76405436638acc7c010349a69c3395f1a57c642dc62Ying Wangdo                                                              \
76505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yychar == YYEMPTY)                                        \
76605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                           \
76705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yychar = (Token);                                         \
76805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yylval = (Value);                                         \
76905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYPOPSTACK (yylen);                                       \
77005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yystate = *yyssp;                                         \]b4_lac_if([[
77105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YY_LAC_DISCARD ("YYBACKUP");                              \]])[
77205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      goto yybackup;                                            \
77305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                           \
77405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  else                                                          \
77505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                           \
776cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yyerror (]b4_yyerror_args[YY_("syntax error: cannot back up")); \
777cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YYERROR;							\
778cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }								\
779cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectwhile (YYID (0))
780cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
78105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Error token number */
782cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYTERROR	1
783cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYERRCODE	256
784cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
78505436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_locations_if([[
78605436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_yylloc_default_define[
787cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYRHSLOC(Rhs, K) ((Rhs)[K])
78805436638acc7c010349a69c3395f1a57c642dc62Ying Wang]])[
78905436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_yy_location_print_define[
790cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
791cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYLEX -- calling `yylex' with the right arguments.  */
792cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YYLEX_PARAM
793cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YYLEX yylex (]b4_pure_if([&yylval[]b4_locations_if([, &yylloc]), ])[YYLEX_PARAM)
794cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
795cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YYLEX ]b4_c_function_call([yylex], [int], b4_lex_param)[
796cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
797cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
798cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Enable debugging if requested.  */
79905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ]b4_api_PREFIX[DEBUG
800cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
801cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifndef YYFPRINTF
802cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
803cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define YYFPRINTF fprintf
804cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
805cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
806cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YYDPRINTF(Args)			\
807cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectdo {						\
808cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yydebug)					\
809cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    YYFPRINTF Args;				\
810cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} while (YYID (0))
811cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
812cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
813cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectdo {									  \
814cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yydebug)								  \
815cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {									  \
816cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YYFPRINTF (stderr, "%s ", Title);					  \
817cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yy_symbol_print (stderr,						  \
818cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		  Type, Value]b4_locations_if([, Location])[]b4_user_args[); \
819cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YYFPRINTF (stderr, "\n");						  \
820cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }									  \
821cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} while (YYID (0))
822cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
823cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_yy_symbol_print_generate([b4_c_function_def])[
824cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
825cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*------------------------------------------------------------------.
826cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yy_stack_print -- Print the state stack from its BOTTOM up to its |
827cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| TOP (included).                                                   |
828cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`------------------------------------------------------------------*/
829cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
830cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_c_function_def([yy_stack_print], [static void],
83105436638acc7c010349a69c3395f1a57c642dc62Ying Wang		   [[yytype_int16 *yybottom], [yybottom]],
83205436638acc7c010349a69c3395f1a57c642dc62Ying Wang		   [[yytype_int16 *yytop],    [yytop]])[
833cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
834cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYFPRINTF (stderr, "Stack now");
83505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  for (; yybottom <= yytop; yybottom++)
83605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
83705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      int yybot = *yybottom;
83805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYFPRINTF (stderr, " %d", yybot);
83905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
840cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYFPRINTF (stderr, "\n");
841cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
842cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
843cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YY_STACK_PRINT(Bottom, Top)				\
844cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectdo {								\
845cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yydebug)							\
846cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    yy_stack_print ((Bottom), (Top));				\
847cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} while (YYID (0))
848cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
849cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
850cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*------------------------------------------------.
851cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Report that the YYRULE is going to be reduced.  |
852cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`------------------------------------------------*/
853cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
854cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_c_function_def([yy_reduce_print], [static void],
855cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		   [[YYSTYPE *yyvsp], [yyvsp]],
856cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    b4_locations_if([[[YYLTYPE *yylsp], [yylsp]],
857cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		   ])[[int yyrule], [yyrule]]m4_ifset([b4_parse_param], [,
85805436638acc7c010349a69c3395f1a57c642dc62Ying Wang		   b4_parse_param]))[
859cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
860cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  int yynrhs = yyr2[yyrule];
861cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  int yyi;
862cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  unsigned long int yylno = yyrline[yyrule];
863cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
864cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	     yyrule - 1, yylno);
865cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* The symbols being reduced.  */
866cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  for (yyi = 0; yyi < yynrhs; yyi++)
867cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
86805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
869cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
870cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		       &]b4_rhs_value(yynrhs, yyi + 1)[
871cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		       ]b4_locations_if([, &]b4_rhs_location(yynrhs, yyi + 1))[]dnl
872cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		       b4_user_args[);
87305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYFPRINTF (stderr, "\n");
874cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
875cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
876cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
877cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YY_REDUCE_PRINT(Rule)		\
878cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectdo {					\
879cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yydebug)				\
880cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    yy_reduce_print (yyvsp, ]b4_locations_if([yylsp, ])[Rule]b4_user_args[); \
881cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} while (YYID (0))
882cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
883cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Nonzero means print parse trace.  It is left uninitialized so that
884cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   multiple parsers can coexist.  */
885cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint yydebug;
88605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else /* !]b4_api_PREFIX[DEBUG */
887cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YYDPRINTF(Args)
888cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
889cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YY_STACK_PRINT(Bottom, Top)
890cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YY_REDUCE_PRINT(Rule)
89105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* !]b4_api_PREFIX[DEBUG */
892cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
893cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
894cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYINITDEPTH -- initial size of the parser's stacks.  */
895cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef	YYINITDEPTH
896cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YYINITDEPTH ]b4_stack_depth_init[
897cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
898cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
899cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
900cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   if the built-in stack extension method is used).
901cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
902cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   Do not make this value too large; the results are undefined if
903cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
904cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   evaluated with infinite-precision integer arithmetic.  */
905cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
906cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YYMAXDEPTH
907cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define YYMAXDEPTH ]b4_stack_depth_max[
90805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif]b4_lac_if([[
90905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
91005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Given a state stack such that *YYBOTTOM is its bottom, such that
91105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   *YYTOP is either its top or is YYTOP_EMPTY to indicate an empty
91205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   stack, and such that *YYCAPACITY is the maximum number of elements it
91305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   can hold without a reallocation, make sure there is enough room to
91405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   store YYADD more elements.  If not, allocate a new stack using
91505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   YYSTACK_ALLOC, copy the existing elements, and adjust *YYBOTTOM,
91605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   *YYTOP, and *YYCAPACITY to reflect the new capacity and memory
91705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   location.  If *YYBOTTOM != YYBOTTOM_NO_FREE, then free the old stack
91805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   using YYSTACK_FREE.  Return 0 if successful or if no reallocation is
91905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   required.  Return 1 if memory is exhausted.  */
92005436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic int
92105436638acc7c010349a69c3395f1a57c642dc62Ying Wangyy_lac_stack_realloc (YYSIZE_T *yycapacity, YYSIZE_T yyadd,
92205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ]b4_api_PREFIX[DEBUG
92305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                      char const *yydebug_prefix,
92405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                      char const *yydebug_suffix,
925cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
92605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                      yytype_int16 **yybottom,
92705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                      yytype_int16 *yybottom_no_free,
92805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                      yytype_int16 **yytop, yytype_int16 *yytop_empty)
92905436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
93005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYSIZE_T yysize_old =
93105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    *yytop == yytop_empty ? 0 : *yytop - *yybottom + 1;
93205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYSIZE_T yysize_new = yysize_old + yyadd;
93305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (*yycapacity < yysize_new)
93405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
93505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYSIZE_T yyalloc = 2 * yysize_new;
93605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yytype_int16 *yybottom_new;
93705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      /* Use YYMAXDEPTH for maximum stack size given that the stack
93805436638acc7c010349a69c3395f1a57c642dc62Ying Wang         should never need to grow larger than the main state stack
93905436638acc7c010349a69c3395f1a57c642dc62Ying Wang         needs to grow without LAC.  */
94005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (YYMAXDEPTH < yysize_new)
94105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {
94205436638acc7c010349a69c3395f1a57c642dc62Ying Wang          YYDPRINTF ((stderr, "%smax size exceeded%s", yydebug_prefix,
94305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                      yydebug_suffix));
94405436638acc7c010349a69c3395f1a57c642dc62Ying Wang          return 1;
94505436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
94605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (YYMAXDEPTH < yyalloc)
94705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        yyalloc = YYMAXDEPTH;
94805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yybottom_new =
94905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        (yytype_int16*) YYSTACK_ALLOC (yyalloc * sizeof *yybottom_new);
95005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (!yybottom_new)
95105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {
95205436638acc7c010349a69c3395f1a57c642dc62Ying Wang          YYDPRINTF ((stderr, "%srealloc failed%s", yydebug_prefix,
95305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                      yydebug_suffix));
95405436638acc7c010349a69c3395f1a57c642dc62Ying Wang          return 1;
95505436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
95605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (*yytop != yytop_empty)
95705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {
95805436638acc7c010349a69c3395f1a57c642dc62Ying Wang          YYCOPY (yybottom_new, *yybottom, yysize_old);
95905436638acc7c010349a69c3395f1a57c642dc62Ying Wang          *yytop = yybottom_new + (yysize_old - 1);
96005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
96105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (*yybottom != yybottom_no_free)
96205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        YYSTACK_FREE (*yybottom);
96305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      *yybottom = yybottom_new;
96405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      *yycapacity = yyalloc;]m4_if(b4_percent_define_get([[parse.lac.memory-trace]]),
96505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                   [full], [[
96605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYDPRINTF ((stderr, "%srealloc to %lu%s", yydebug_prefix,
96705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (unsigned long int) yyalloc, yydebug_suffix));]])[
96805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
96905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return 0;
97005436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
97105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
97205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Establish the initial context for the current lookahead if no initial
97305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   context is currently established.
97405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
97505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   We define a context as a snapshot of the parser stacks.  We define
97605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   the initial context for a lookahead as the context in which the
97705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   parser initially examines that lookahead in order to select a
97805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   syntactic action.  Thus, if the lookahead eventually proves
97905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   syntactically unacceptable (possibly in a later context reached via a
98005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   series of reductions), the initial context can be used to determine
98105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   the exact set of tokens that would be syntactically acceptable in the
98205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   lookahead's place.  Moreover, it is the context after which any
98305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   further semantic actions would be erroneous because they would be
98405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   determined by a syntactically unacceptable token.
98505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
98605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   YY_LAC_ESTABLISH should be invoked when a reduction is about to be
98705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   performed in an inconsistent state (which, for the purposes of LAC,
98805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   includes consistent states that don't know they're consistent because
98905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   their default reductions have been disabled).  Iff there is a
99005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   lookahead token, it should also be invoked before reporting a syntax
99105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   error.  This latter case is for the sake of the debugging output.
99205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
99305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   For parse.lac=full, the implementation of YY_LAC_ESTABLISH is as
99405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   follows.  If no initial context is currently established for the
99505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   current lookahead, then check if that lookahead can eventually be
99605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   shifted if syntactic actions continue from the current context.
99705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Report a syntax error if it cannot.  */
99805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_LAC_ESTABLISH                                         \
99905436638acc7c010349a69c3395f1a57c642dc62Ying Wangdo {                                                             \
100005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (!yy_lac_established)                                       \
100105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                            \
100205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYDPRINTF ((stderr,                                        \
100305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  "LAC: initial context established for %s\n",   \
100405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  yytname[yytoken]));                            \
100505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yy_lac_established = 1;                                    \
100605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      {                                                          \
100705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        int yy_lac_status =                                      \
100805436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yy_lac (yyesa, &yyes, &yyes_capacity, yyssp, yytoken); \
100905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        if (yy_lac_status == 2)                                  \
101005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          goto yyexhaustedlab;                                   \
101105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        if (yy_lac_status == 1)                                  \
101205436638acc7c010349a69c3395f1a57c642dc62Ying Wang          goto yyerrlab;                                         \
101305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      }                                                          \
101405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                            \
101505436638acc7c010349a69c3395f1a57c642dc62Ying Wang} while (YYID (0))
101605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
101705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Discard any previous initial lookahead context because of Event,
101805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   which may be a lookahead change or an invalidation of the currently
101905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   established initial context for the current lookahead.
102005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
102105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   The most common example of a lookahead change is a shift.  An example
102205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   of both cases is syntax error recovery.  That is, a syntax error
102305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   occurs when the lookahead is syntactically erroneous for the
102405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   currently established initial context, so error recovery manipulates
102505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   the parser stacks to try to find a new initial context in which the
102605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   current lookahead is syntactically acceptable.  If it fails to find
102705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   such a context, it discards the lookahead.  */
102805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ]b4_api_PREFIX[DEBUG
102905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YY_LAC_DISCARD(Event)                                           \
103005436638acc7c010349a69c3395f1a57c642dc62Ying Wangdo {                                                                     \
103105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yy_lac_established)                                                \
103205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                                    \
103305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (yydebug)                                                       \
103405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        YYFPRINTF (stderr, "LAC: initial context discarded due to "      \
103505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                   Event "\n");                                          \
103605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yy_lac_established = 0;                                            \
103705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                                    \
103805436638acc7c010349a69c3395f1a57c642dc62Ying Wang} while (YYID (0))
103905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
104005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YY_LAC_DISCARD(Event) yy_lac_established = 0
104105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
104205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
104305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Given the stack whose top is *YYSSP, return 0 iff YYTOKEN can
104405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   eventually (after perhaps some reductions) be shifted, return 1 if
104505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   not, or return 2 if memory is exhausted.  As preconditions and
104605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   postconditions: *YYES_CAPACITY is the allocated size of the array to
104705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   which *YYES points, and either *YYES = YYESA or *YYES points to an
104805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   array allocated with YYSTACK_ALLOC.  yy_lac may overwrite the
104905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   contents of either array, alter *YYES and *YYES_CAPACITY, and free
105005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   any old *YYES other than YYESA.  */
105105436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic int
105205436638acc7c010349a69c3395f1a57c642dc62Ying Wangyy_lac (yytype_int16 *yyesa, yytype_int16 **yyes,
105305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        YYSIZE_T *yyes_capacity, yytype_int16 *yyssp, int yytoken)
105405436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
105505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yytype_int16 *yyes_prev = yyssp;
105605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yytype_int16 *yyesp = yyes_prev;
105705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYDPRINTF ((stderr, "LAC: checking lookahead %s:", yytname[yytoken]));
105805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yytoken == YYUNDEFTOK)
105905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
106005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYDPRINTF ((stderr, " Always Err\n"));
106105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      return 1;
106205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
106305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  while (1)
106405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
106505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      int yyrule = yypact[*yyesp];
106605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (yypact_value_is_default (yyrule)
106705436638acc7c010349a69c3395f1a57c642dc62Ying Wang          || (yyrule += yytoken) < 0 || YYLAST < yyrule
106805436638acc7c010349a69c3395f1a57c642dc62Ying Wang          || yycheck[yyrule] != yytoken)
106905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {
107005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yyrule = yydefact[*yyesp];
107105436638acc7c010349a69c3395f1a57c642dc62Ying Wang          if (yyrule == 0)
107205436638acc7c010349a69c3395f1a57c642dc62Ying Wang            {
107305436638acc7c010349a69c3395f1a57c642dc62Ying Wang              YYDPRINTF ((stderr, " Err\n"));
107405436638acc7c010349a69c3395f1a57c642dc62Ying Wang              return 1;
107505436638acc7c010349a69c3395f1a57c642dc62Ying Wang            }
107605436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
107705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      else
107805436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {
107905436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yyrule = yytable[yyrule];
108005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          if (yytable_value_is_error (yyrule))
108105436638acc7c010349a69c3395f1a57c642dc62Ying Wang            {
108205436638acc7c010349a69c3395f1a57c642dc62Ying Wang              YYDPRINTF ((stderr, " Err\n"));
108305436638acc7c010349a69c3395f1a57c642dc62Ying Wang              return 1;
108405436638acc7c010349a69c3395f1a57c642dc62Ying Wang            }
108505436638acc7c010349a69c3395f1a57c642dc62Ying Wang          if (0 < yyrule)
108605436638acc7c010349a69c3395f1a57c642dc62Ying Wang            {
108705436638acc7c010349a69c3395f1a57c642dc62Ying Wang              YYDPRINTF ((stderr, " S%d\n", yyrule));
108805436638acc7c010349a69c3395f1a57c642dc62Ying Wang              return 0;
108905436638acc7c010349a69c3395f1a57c642dc62Ying Wang            }
109005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yyrule = -yyrule;
109105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
109205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      {
109305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        YYSIZE_T yylen = yyr2[yyrule];
109405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        YYDPRINTF ((stderr, " R%d", yyrule - 1));
109505436638acc7c010349a69c3395f1a57c642dc62Ying Wang        if (yyesp != yyes_prev)
109605436638acc7c010349a69c3395f1a57c642dc62Ying Wang          {
109705436638acc7c010349a69c3395f1a57c642dc62Ying Wang            YYSIZE_T yysize = yyesp - *yyes + 1;
109805436638acc7c010349a69c3395f1a57c642dc62Ying Wang            if (yylen < yysize)
109905436638acc7c010349a69c3395f1a57c642dc62Ying Wang              {
110005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                yyesp -= yylen;
110105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                yylen = 0;
110205436638acc7c010349a69c3395f1a57c642dc62Ying Wang              }
110305436638acc7c010349a69c3395f1a57c642dc62Ying Wang            else
110405436638acc7c010349a69c3395f1a57c642dc62Ying Wang              {
110505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                yylen -= yysize;
110605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                yyesp = yyes_prev;
110705436638acc7c010349a69c3395f1a57c642dc62Ying Wang              }
110805436638acc7c010349a69c3395f1a57c642dc62Ying Wang          }
110905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        if (yylen)
111005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yyesp = yyes_prev -= yylen;
111105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      }
111205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      {
111305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        int yystate;
111405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {
111505436638acc7c010349a69c3395f1a57c642dc62Ying Wang          int yylhs = yyr1[yyrule] - YYNTOKENS;
111605436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yystate = yypgoto[yylhs] + *yyesp;
111705436638acc7c010349a69c3395f1a57c642dc62Ying Wang          if (yystate < 0 || YYLAST < yystate
111805436638acc7c010349a69c3395f1a57c642dc62Ying Wang              || yycheck[yystate] != *yyesp)
111905436638acc7c010349a69c3395f1a57c642dc62Ying Wang            yystate = yydefgoto[yylhs];
112005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          else
112105436638acc7c010349a69c3395f1a57c642dc62Ying Wang            yystate = yytable[yystate];
112205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
112305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        if (yyesp == yyes_prev)
112405436638acc7c010349a69c3395f1a57c642dc62Ying Wang          {
112505436638acc7c010349a69c3395f1a57c642dc62Ying Wang            yyesp = *yyes;
112605436638acc7c010349a69c3395f1a57c642dc62Ying Wang            *yyesp = yystate;
112705436638acc7c010349a69c3395f1a57c642dc62Ying Wang          }
112805436638acc7c010349a69c3395f1a57c642dc62Ying Wang        else
112905436638acc7c010349a69c3395f1a57c642dc62Ying Wang          {
113005436638acc7c010349a69c3395f1a57c642dc62Ying Wang            if (yy_lac_stack_realloc (yyes_capacity, 1,
113105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ]b4_api_PREFIX[DEBUG
113205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                      " (", ")",
113305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
113405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                      yyes, yyesa, &yyesp, yyes_prev))
113505436638acc7c010349a69c3395f1a57c642dc62Ying Wang              {
113605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                YYDPRINTF ((stderr, "\n"));
113705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                return 2;
113805436638acc7c010349a69c3395f1a57c642dc62Ying Wang              }
113905436638acc7c010349a69c3395f1a57c642dc62Ying Wang            *++yyesp = yystate;
114005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          }
114105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        YYDPRINTF ((stderr, " G%d", yystate));
114205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      }
114305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
114405436638acc7c010349a69c3395f1a57c642dc62Ying Wang}]])[
1145cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1146cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1147cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#if YYERROR_VERBOSE
1148cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1149cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifndef yystrlen
1150cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  if defined __GLIBC__ && defined _STRING_H
1151cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   define yystrlen strlen
1152cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  else
1153cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Return the length of YYSTR.  */
1154cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_c_function_def([yystrlen], [static YYSIZE_T],
1155cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   [[const char *yystr], [yystr]])[
1156cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1157cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYSIZE_T yylen;
1158cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  for (yylen = 0; yystr[yylen]; yylen++)
1159cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    continue;
1160cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  return yylen;
1161cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
1162cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  endif
1163cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
1164cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1165cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifndef yystpcpy
1166cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1167cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#   define yystpcpy stpcpy
1168cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  else
1169cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1170cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   YYDEST.  */
1171cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_c_function_def([yystpcpy], [static char *],
1172cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   [[char *yydest], [yydest]], [[const char *yysrc], [yysrc]])[
1173cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1174cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  char *yyd = yydest;
1175cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  const char *yys = yysrc;
1176cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1177cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  while ((*yyd++ = *yys++) != '\0')
1178cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    continue;
1179cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1180cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  return yyd - 1;
1181cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
1182cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  endif
1183cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
1184cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1185cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifndef yytnamerr
1186cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1187cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   quotes and backslashes, so that it's suitable for yyerror.  The
1188cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   heuristic is that double-quoting is unnecessary unless the string
1189cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   contains an apostrophe, a comma, or backslash (other than
1190cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1191cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   null, do not copy; instead, return the length of what the result
1192cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   would have been.  */
1193cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic YYSIZE_T
1194cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyytnamerr (char *yyres, const char *yystr)
1195cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1196cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (*yystr == '"')
1197cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
1198cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YYSIZE_T yyn = 0;
1199cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      char const *yyp = yystr;
1200cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1201cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      for (;;)
1202cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	switch (*++yyp)
1203cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  {
1204cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  case '\'':
1205cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  case ',':
1206cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    goto do_not_strip_quotes;
1207cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1208cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  case '\\':
1209cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    if (*++yyp != '\\')
1210cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      goto do_not_strip_quotes;
1211cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    /* Fall through.  */
1212cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  default:
1213cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    if (yyres)
1214cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      yyres[yyn] = *yyp;
1215cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    yyn++;
1216cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    break;
1217cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1218cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  case '"':
1219cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    if (yyres)
1220cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      yyres[yyn] = '\0';
1221cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    return yyn;
1222cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  }
1223cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    do_not_strip_quotes: ;
1224cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
1225cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1226cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (! yyres)
1227cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return yystrlen (yystr);
1228cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1229cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  return yystpcpy (yyres, yystr) - yyres;
1230cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
1231cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
1232cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
123305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
123405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   about the unexpected token YYTOKEN for the state stack whose top is
123505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   YYSSP.]b4_lac_if([[  In order to see if a particular token T is a
123605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   valid looakhead, invoke yy_lac (YYESA, YYES, YYES_CAPACITY, YYSSP, T).]])[
123705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
123805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
123905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   not large enough to hold the message.  In that case, also set
124005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
124105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   required number of bytes is too large to store]b4_lac_if([[ or if
124205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   yy_lac returned 2]])[.  */
124305436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic int
124405436638acc7c010349a69c3395f1a57c642dc62Ying Wangyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
124505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                ]b4_lac_if([[yytype_int16 *yyesa, yytype_int16 **yyes,
124605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                YYSIZE_T *yyes_capacity, ]])[yytype_int16 *yyssp, int yytoken)
1247cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
124805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
124905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYSIZE_T yysize = yysize0;
125005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
125105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Internationalized format string. */
125205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  const char *yyformat = YY_NULL;
125305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Arguments of yyformat. */
125405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
125505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Number of reported tokens (one for the "unexpected", one per
125605436638acc7c010349a69c3395f1a57c642dc62Ying Wang     "expected"). */
125705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  int yycount = 0;
125805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
125905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* There are many possibilities here to consider:
126005436638acc7c010349a69c3395f1a57c642dc62Ying Wang     - Assume YYFAIL is not used.  It's too flawed to consider.  See
126105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
126205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       for details.  YYERROR is fine as it does not invoke this
126305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       function.
126405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     - If this state is a consistent state with a default action, then
126505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       the only way this function was invoked is if the default action
126605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       is an error action.  In that case, don't check for expected
126705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       tokens because there are none.
126805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     - The only way there can be no lookahead present (in yychar) is if
126905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       this state is a consistent state with a default action.  Thus,
127005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       detecting the absence of a lookahead is sufficient to determine
127105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       that there is no unexpected or expected token to report.  In that
127205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       case, just report a simple "syntax error".
127305436638acc7c010349a69c3395f1a57c642dc62Ying Wang     - Don't assume there isn't a lookahead just because this state is a
127405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       consistent state with a default action.  There might have been a
127505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       previous inconsistent state, consistent state with a non-default
127605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       action, or user semantic action that manipulated yychar.]b4_lac_if([[
127705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       In the first two cases, it might appear that the current syntax
127805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       error should have been detected in the previous state when yy_lac
127905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       was invoked.  However, at that time, there might have been a
128005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       different syntax error that discarded a different initial context
128105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       during error recovery, leaving behind the current lookahead.]], [[
128205436638acc7c010349a69c3395f1a57c642dc62Ying Wang     - Of course, the expected token list depends on states to have
128305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       correct lookahead information, and it depends on the parser not
128405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       to perform extra reductions after fetching a lookahead from the
128505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       scanner and before detecting a syntax error.  Thus, state merging
128605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       (from LALR or IELR) and default reductions corrupt the expected
128705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       token list.  However, the list is correct for canonical LR with
128805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       one exception: it will still contain any token that will not be
128905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       accepted due to an error action in a later state.]])[
129005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  */
129105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yytoken != YYEMPTY)
1292cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
129305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      int yyn = yypact[*yyssp];]b4_lac_if([[
129405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYDPRINTF ((stderr, "Constructing syntax error message\n"));]])[
129505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yyarg[yycount++] = yytname[yytoken];
129605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (!yypact_value_is_default (yyn))
129705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {]b4_lac_if([], [[
129805436638acc7c010349a69c3395f1a57c642dc62Ying Wang          /* Start YYX at -YYN if negative to avoid negative indexes in
129905436638acc7c010349a69c3395f1a57c642dc62Ying Wang             YYCHECK.  In other words, skip the first -YYN actions for
130005436638acc7c010349a69c3395f1a57c642dc62Ying Wang             this state because they are default actions.  */
130105436638acc7c010349a69c3395f1a57c642dc62Ying Wang          int yyxbegin = yyn < 0 ? -yyn : 0;
130205436638acc7c010349a69c3395f1a57c642dc62Ying Wang          /* Stay within bounds of both yycheck and yytname.  */
130305436638acc7c010349a69c3395f1a57c642dc62Ying Wang          int yychecklim = YYLAST - yyn + 1;
130405436638acc7c010349a69c3395f1a57c642dc62Ying Wang          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;]])[
130505436638acc7c010349a69c3395f1a57c642dc62Ying Wang          int yyx;]b4_lac_if([[
130605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
130705436638acc7c010349a69c3395f1a57c642dc62Ying Wang          for (yyx = 0; yyx < YYNTOKENS; ++yyx)
130805436638acc7c010349a69c3395f1a57c642dc62Ying Wang            if (yyx != YYTERROR && yyx != YYUNDEFTOK)
130905436638acc7c010349a69c3395f1a57c642dc62Ying Wang              {
131005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                {
131105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  int yy_lac_status = yy_lac (yyesa, yyes, yyes_capacity,
131205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                              yyssp, yyx);
131305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  if (yy_lac_status == 2)
131405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                    return 2;
131505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  if (yy_lac_status == 1)
131605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                    continue;
131705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                }]], [[
131805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
131905436638acc7c010349a69c3395f1a57c642dc62Ying Wang          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
132005436638acc7c010349a69c3395f1a57c642dc62Ying Wang            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
132105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                && !yytable_value_is_error (yytable[yyx + yyn]))
132205436638acc7c010349a69c3395f1a57c642dc62Ying Wang              {]])[
132305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
132405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  {
132505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                    yycount = 1;
132605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                    yysize = yysize0;
132705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                    break;
132805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  }
132905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                yyarg[yycount++] = yytname[yyx];
133005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                {
133105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
133205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  if (! (yysize <= yysize1
133305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
133405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                    return 2;
133505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  yysize = yysize1;
133605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                }
133705436638acc7c010349a69c3395f1a57c642dc62Ying Wang              }
133805436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }]b4_lac_if([[
133905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if ]b4_api_PREFIX[DEBUG
134005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      else if (yydebug)
134105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        YYFPRINTF (stderr, "No expected tokens.\n");
134205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif]])[
134305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
1344cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
134505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  switch (yycount)
134605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
134705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YYCASE_(N, S)                      \
134805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      case N:                               \
134905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        yyformat = S;                       \
135005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      break
135105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYCASE_(0, YY_("syntax error"));
135205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYCASE_(1, YY_("syntax error, unexpected %s"));
135305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
135405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
135505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
135605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
135705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef YYCASE_
135805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
1359cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
136005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  {
136105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
136205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
136305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      return 2;
136405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yysize = yysize1;
136505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
1366cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
136705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (*yymsg_alloc < yysize)
136805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
136905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      *yymsg_alloc = 2 * yysize;
137005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (! (yysize <= *yymsg_alloc
137105436638acc7c010349a69c3395f1a57c642dc62Ying Wang             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
137205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
137305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      return 1;
1374cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
137505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
137605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Avoid sprintf, as that infringes on the user's name space.
137705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     Don't have undefined behavior even if the translation
137805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     produced a string with the wrong number of "%s"s.  */
137905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  {
138005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    char *yyp = *yymsg;
138105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    int yyi = 0;
138205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    while ((*yyp = *yyformat) != '\0')
138305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
138405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {
138505436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yyp += yytnamerr (yyp, yyarg[yyi++]);
138605436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yyformat += 2;
138705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
138805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      else
138905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {
139005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yyp++;
139105436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yyformat++;
139205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
139305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
139405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return 0;
1395cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
1396cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif /* YYERROR_VERBOSE */
1397cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1398cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_yydestruct_generate([b4_c_function_def])[
1399cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
140005436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_pure_if([], [
1401cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
140205436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_declare_scanner_communication_variables])[]b4_push_if([[
1403cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
140405436638acc7c010349a69c3395f1a57c642dc62Ying Wangstruct yypstate
140505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  {]b4_declare_parser_state_variables[
140605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* Used to determine if this is the first time this instance has
140705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       been used.  */
140805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    int yynew;
140905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  };]b4_pure_if([], [[
1410cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
141105436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic char yypstate_allocated = 0;]])b4_pull_if([
1412cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
141305436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_c_function_def([[yyparse]], [[int]], b4_parse_param)[
141405436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
141505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return yypull_parse (YY_NULL]m4_ifset([b4_parse_param],
141605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                  [[, ]b4_c_args(b4_parse_param)])[);
141705436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
1418cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
141905436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_c_function_def([[yypull_parse]], [[int]],
142005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [[[yypstate *yyps]], [[yyps]]]m4_ifset([b4_parse_param], [,
142105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  b4_parse_param]))[
142205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
142305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  int yystatus;
142405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yypstate *yyps_local;]b4_pure_if([[
142505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  int yychar;
142605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYSTYPE yylval;]b4_locations_if([[
142705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  static YYLTYPE yyloc_default][]b4_yyloc_default[;
142805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYLTYPE yylloc = yyloc_default;]])])[
142905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yyps)
143005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yyps_local = yyps;
143105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  else
143205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
143305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yyps_local = yypstate_new ();
143405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (!yyps_local)
143505436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {]b4_pure_if([[
143605436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yyerror (]b4_yyerror_args[YY_("memory exhausted"));]], [[
143705436638acc7c010349a69c3395f1a57c642dc62Ying Wang          if (!yypstate_allocated)
143805436638acc7c010349a69c3395f1a57c642dc62Ying Wang            yyerror (]b4_yyerror_args[YY_("memory exhausted"));]])[
143905436638acc7c010349a69c3395f1a57c642dc62Ying Wang          return 2;
144005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
144105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
144205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  do {
144305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yychar = YYLEX;
144405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yystatus =
144505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yypush_parse (yyps_local]b4_pure_if([[, yychar, &yylval]b4_locations_if([[, &yylloc]])])m4_ifset([b4_parse_param], [, b4_c_args(b4_parse_param)])[);
144605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  } while (yystatus == YYPUSH_MORE);
144705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (!yyps)
144805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yypstate_delete (yyps_local);
144905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return yystatus;
145005436638acc7c010349a69c3395f1a57c642dc62Ying Wang}]])[
145105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
145205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Initialize the parser data structure.  */
145305436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_c_function_def([[yypstate_new]], [[yypstate *]])[
145405436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
145505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yypstate *yyps;]b4_pure_if([], [[
145605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yypstate_allocated)
145705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    return YY_NULL;]])[
145805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yyps = (yypstate *) malloc (sizeof *yyps);
145905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (!yyps)
146005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    return YY_NULL;
146105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yyps->yynew = 1;]b4_pure_if([], [[
146205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yypstate_allocated = 1;]])[
146305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return yyps;
146405436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
1465cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
146605436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_c_function_def([[yypstate_delete]], [[void]],
146705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                   [[[yypstate *yyps]], [[yyps]]])[
146805436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
146905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef yyoverflow
147005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* If the stack was reallocated but the parse did not complete, then the
147105436638acc7c010349a69c3395f1a57c642dc62Ying Wang     stack still needs to be freed.  */
147205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (!yyps->yynew && yyps->yyss != yyps->yyssa)
147305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYSTACK_FREE (yyps->yyss);
147405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif]b4_lac_if([[
147505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (!yyps->yynew && yyps->yyes != yyps->yyesa)
147605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYSTACK_FREE (yyps->yyes);]])[
147705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  free (yyps);]b4_pure_if([], [[
147805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yypstate_allocated = 0;]])[
147905436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
148005436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_pure_if([[
148105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define ]b4_prefix[nerrs yyps->]b4_prefix[nerrs]])[
148205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yystate yyps->yystate
148305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyerrstatus yyps->yyerrstatus
148405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyssa yyps->yyssa
148505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyss yyps->yyss
148605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyssp yyps->yyssp
148705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyvsa yyps->yyvsa
148805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyvs yyps->yyvs
148905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyvsp yyps->yyvsp]b4_locations_if([[
149005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yylsa yyps->yylsa
149105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyls yyps->yyls
149205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yylsp yyps->yylsp
149305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyerror_range yyps->yyerror_range]])[
149405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yystacksize yyps->yystacksize]b4_lac_if([[
149505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyesa yyps->yyesa
149605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyes yyps->yyes
149705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyes_capacity yyps->yyes_capacity]])[
149805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
149905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
150005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*---------------.
150105436638acc7c010349a69c3395f1a57c642dc62Ying Wang| yypush_parse.  |
150205436638acc7c010349a69c3395f1a57c642dc62Ying Wang`---------------*/
150305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
150405436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_c_function_def([[yypush_parse]], [[int]],
150505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [[[yypstate *yyps]], [[yyps]]]b4_pure_if([,
150605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [[[int yypushed_char]], [[yypushed_char]]],
150705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [[[YYSTYPE const *yypushed_val]], [[yypushed_val]]]b4_locations_if([,
150805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [[[YYLTYPE *yypushed_loc]], [[yypushed_loc]]]])])m4_ifset([b4_parse_param], [,
150905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  b4_parse_param]))], [[
1510cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1511cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1512cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*----------.
1513cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yyparse.  |
1514cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`----------*/
1515cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1516cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YYPARSE_PARAM
151705436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_c_function_def([yyparse], [int],
151805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                   [[void *YYPARSE_PARAM], [YYPARSE_PARAM]])[
1519cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else /* ! YYPARSE_PARAM */
152005436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_c_function_def([yyparse], [int], b4_parse_param)[
152105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif]])[
152205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{]b4_pure_if([b4_declare_scanner_communication_variables
152305436638acc7c010349a69c3395f1a57c642dc62Ying Wang])b4_push_if([b4_pure_if([], [[
152405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  int yypushed_char = yychar;
152505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYSTYPE yypushed_val = yylval;]b4_locations_if([[
152605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYLTYPE yypushed_loc = yylloc;]])
152705436638acc7c010349a69c3395f1a57c642dc62Ying Wang])],
152805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  [b4_declare_parser_state_variables
152905436638acc7c010349a69c3395f1a57c642dc62Ying Wang])b4_lac_if([[
153005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  int yy_lac_established = 0;]])[
1531cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  int yyn;
1532cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  int yyresult;
153305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Lookahead token as an internal (translated) token number.  */
1534cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  int yytoken = 0;
153505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* The variables used to return semantic value and location from the
153605436638acc7c010349a69c3395f1a57c642dc62Ying Wang     action routines.  */
153705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYSTYPE yyval;]b4_locations_if([[
153805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYLTYPE yyloc;]])[
153905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1540cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#if YYERROR_VERBOSE
1541cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Buffer for error messages, and its allocated size.  */
1542cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  char yymsgbuf[128];
1543cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  char *yymsg = yymsgbuf;
1544cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1545cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1546cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1547cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N)]b4_locations_if([, yylsp -= (N)])[)
1548cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1549cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* The number of symbols on the RHS of the reduced rule.
1550cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     Keep to zero when no symbol should be popped.  */
155105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  int yylen = 0;]b4_push_if([[
155205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
155305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (!yyps->yynew)
155405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
155505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yyn = yypact[yystate];
155605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      goto yyread_pushed_token;
155705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }]])[
155805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
155905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yyssp = yyss = yyssa;
156005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yyvsp = yyvs = yyvsa;]b4_locations_if([[
156105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yylsp = yyls = yylsa;]])[
156205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yystacksize = YYINITDEPTH;]b4_lac_if([[
156305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
156405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yyes = yyesa;
156505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yyes_capacity = sizeof yyesa / sizeof *yyes;
156605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (YYMAXDEPTH < yyes_capacity)
156705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yyes_capacity = YYMAXDEPTH;]])[
1568cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1569cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYDPRINTF ((stderr, "Starting parse\n"));
1570cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1571cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yystate = 0;
1572cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyerrstatus = 0;
1573cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yynerrs = 0;
157405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yychar = YYEMPTY; /* Cause a token to be read.  */
157505436638acc7c010349a69c3395f1a57c642dc62Ying Wang]m4_ifdef([b4_initial_action], [
157605436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_dollar_pushdef([m4_define([b4_dollar_dollar_used])yylval], [],
157705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  [b4_push_if([b4_pure_if([*])yypushed_loc], [yylloc])])dnl
157805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* User initialization code.  */
157905436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_user_initial_action
158005436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_dollar_popdef[]dnl
1581cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectm4_ifdef([b4_dollar_dollar_used],[[  yyvsp[0] = yylval;
158205436638acc7c010349a69c3395f1a57c642dc62Ying Wang]])])dnl
158305436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_locations_if([[  yylsp[0] = ]b4_push_if([b4_pure_if([*])yypushed_loc], [yylloc])[;
1584cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]])dnl
1585cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project[  goto yysetstate;
1586cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1587cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*------------------------------------------------------------.
1588cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yynewstate -- Push a new state, which is found in yystate.  |
1589cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`------------------------------------------------------------*/
1590cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yynewstate:
1591cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* In all cases, when you get here, the value and location stacks
1592cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     have just been pushed.  So pushing a state here evens the stacks.  */
1593cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyssp++;
1594cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1595cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yysetstate:
1596cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  *yyssp = yystate;
1597cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1598cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yyss + yystacksize - 1 <= yyssp)
1599cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
1600cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      /* Get the current used size of the three stacks, in elements.  */
1601cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YYSIZE_T yysize = yyssp - yyss + 1;
1602cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1603cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef yyoverflow
1604cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      {
1605cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Give user a chance to reallocate the stack.  Use copies of
1606cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	   these so that the &'s don't force the real ones into
1607cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	   memory.  */
1608cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YYSTYPE *yyvs1 = yyvs;
160905436638acc7c010349a69c3395f1a57c642dc62Ying Wang	yytype_int16 *yyss1 = yyss;]b4_locations_if([
161005436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YYLTYPE *yyls1 = yyls;])[
1611cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1612cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Each stack pointer address is followed by the size of the
1613cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	   data in use in that stack, in bytes.  This used to be a
1614cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	   conditional around just the two extra args, but that might
1615cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	   be undefined if yyoverflow is a macro.  */
1616cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yyoverflow (YY_("memory exhausted"),
1617cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		    &yyss1, yysize * sizeof (*yyssp),
161805436638acc7c010349a69c3395f1a57c642dc62Ying Wang		    &yyvs1, yysize * sizeof (*yyvsp),]b4_locations_if([
161905436638acc7c010349a69c3395f1a57c642dc62Ying Wang		    &yyls1, yysize * sizeof (*yylsp),])[
1620cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		    &yystacksize);
162105436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_locations_if([
162205436638acc7c010349a69c3395f1a57c642dc62Ying Wang	yyls = yyls1;])[
1623cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yyss = yyss1;
1624cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yyvs = yyvs1;
1625cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      }
1626cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else /* no yyoverflow */
1627cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifndef YYSTACK_RELOCATE
1628cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      goto yyexhaustedlab;
1629cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# else
1630cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      /* Extend the stack our own way.  */
1631cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      if (YYMAXDEPTH <= yystacksize)
1632cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	goto yyexhaustedlab;
1633cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yystacksize *= 2;
1634cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      if (YYMAXDEPTH < yystacksize)
1635cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yystacksize = YYMAXDEPTH;
1636cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1637cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      {
1638cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yytype_int16 *yyss1 = yyss;
1639cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	union yyalloc *yyptr =
1640cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1641cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if (! yyptr)
1642cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  goto yyexhaustedlab;
164305436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YYSTACK_RELOCATE (yyss_alloc, yyss);
164405436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YYSTACK_RELOCATE (yyvs_alloc, yyvs);]b4_locations_if([
164505436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YYSTACK_RELOCATE (yyls_alloc, yyls);])[
1646cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  undef YYSTACK_RELOCATE
1647cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if (yyss1 != yyssa)
1648cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  YYSTACK_FREE (yyss1);
1649cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      }
1650cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
1651cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif /* no yyoverflow */
1652cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1653cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yyssp = yyss + yysize - 1;
165405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yyvsp = yyvs + yysize - 1;]b4_locations_if([
165505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yylsp = yyls + yysize - 1;])[
1656cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1657cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1658cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		  (unsigned long int) yystacksize));
1659cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1660cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      if (yyss + yystacksize - 1 <= yyssp)
1661cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YYABORT;
1662cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
1663cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1664cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1665cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
166605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yystate == YYFINAL)
166705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYACCEPT;
166805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1669cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  goto yybackup;
1670cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1671cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-----------.
1672cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yybackup.  |
1673cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`-----------*/
1674cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyybackup:
1675cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1676cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Do appropriate processing given the current state.  Read a
167705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     lookahead token if we need one and don't already have one.  */
1678cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
167905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* First try to decide what to do without reference to lookahead token.  */
1680cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyn = yypact[yystate];
168105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yypact_value_is_default (yyn))
1682cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    goto yydefault;
1683cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
168405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Not known => get a lookahead token if don't already have one.  */
1685cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
168605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1687cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yychar == YYEMPTY)
168805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {]b4_push_if([[
168905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (!yyps->yynew)
169005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {]b4_use_push_for_pull_if([], [[
169105436638acc7c010349a69c3395f1a57c642dc62Ying Wang          YYDPRINTF ((stderr, "Return for a new token:\n"));]])[
169205436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yyresult = YYPUSH_MORE;
169305436638acc7c010349a69c3395f1a57c642dc62Ying Wang          goto yypushreturn;
169405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
169505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yyps->yynew = 0;]b4_pure_if([], [[
169605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      /* Restoring the pushed token is only necessary for the first
169705436638acc7c010349a69c3395f1a57c642dc62Ying Wang         yypush_parse invocation since subsequent invocations don't overwrite
169805436638acc7c010349a69c3395f1a57c642dc62Ying Wang         it before jumping to yyread_pushed_token.  */
169905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yychar = yypushed_char;
170005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yylval = yypushed_val;]b4_locations_if([[
170105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yylloc = yypushed_loc;]])])[
170205436638acc7c010349a69c3395f1a57c642dc62Ying Wangyyread_pushed_token:]])[
170305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YYDPRINTF ((stderr, "Reading a token: "));]b4_push_if([b4_pure_if([[
170405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yychar = yypushed_char;
170505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (yypushed_val)
170605436638acc7c010349a69c3395f1a57c642dc62Ying Wang        yylval = *yypushed_val;]b4_locations_if([[
170705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (yypushed_loc)
170805436638acc7c010349a69c3395f1a57c642dc62Ying Wang        yylloc = *yypushed_loc;]])])], [[
170905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yychar = YYLEX;]])[
1710cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
1711cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1712cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yychar <= YYEOF)
1713cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
1714cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yychar = yytoken = YYEOF;
1715cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YYDPRINTF ((stderr, "Now at end of input.\n"));
1716cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
1717cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  else
1718cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
1719cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yytoken = YYTRANSLATE (yychar);
1720cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1721cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
1722cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1723cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* If the proper action on seeing token YYTOKEN is to reduce or to
1724cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     detect an error, take that action.  */
1725cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyn += yytoken;
172605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)]b4_lac_if([[
172705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
172805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YY_LAC_ESTABLISH;
172905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      goto yydefault;
173005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }]], [[
173105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    goto yydefault;]])[
1732cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyn = yytable[yyn];
1733cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yyn <= 0)
1734cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
173505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (yytable_value_is_error (yyn))
173605436638acc7c010349a69c3395f1a57c642dc62Ying Wang        goto yyerrlab;]b4_lac_if([[
173705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YY_LAC_ESTABLISH;]])[
1738cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yyn = -yyn;
1739cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      goto yyreduce;
1740cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
1741cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1742cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Count tokens shifted since error; after three, turn off error
1743cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     status.  */
1744cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yyerrstatus)
1745cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    yyerrstatus--;
1746cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
174705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Shift the lookahead token.  */
1748cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1749cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
175005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Discard the shifted token.  */
175105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yychar = YYEMPTY;]b4_lac_if([[
175205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YY_LAC_DISCARD ("shift");]])[
1753cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1754cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yystate = yyn;
175505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1756cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  *++yyvsp = yylval;
175705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YY_IGNORE_MAYBE_UNINITIALIZED_END
1758cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_locations_if([  *++yylsp = yylloc;])[
1759cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  goto yynewstate;
1760cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1761cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1762cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-----------------------------------------------------------.
1763cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yydefault -- do the default action for the current state.  |
1764cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`-----------------------------------------------------------*/
1765cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyydefault:
1766cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyn = yydefact[yystate];
1767cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yyn == 0)
1768cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    goto yyerrlab;
1769cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  goto yyreduce;
1770cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1771cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1772cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-----------------------------.
1773cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yyreduce -- Do a reduction.  |
1774cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`-----------------------------*/
1775cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyyreduce:
1776cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* yyn is the number of a rule to reduce with.  */
1777cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yylen = yyr2[yyn];
1778cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1779cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* If YYLEN is nonzero, implement the default value of the action:
1780cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     `$$ = $1'.
1781cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1782cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     Otherwise, the following line sets YYVAL to garbage.
1783cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     This behavior is undocumented and Bison
1784cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     users should not rely upon it.  Assigning to YYVAL
1785cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     unconditionally makes the parser a bit smaller, and it avoids a
1786cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     GCC warning that YYVAL may be used uninitialized.  */
1787cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyval = yyvsp[1-yylen];
1788cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1789cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_locations_if(
1790cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project[[  /* Default location.  */
1791cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);]])[
179205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YY_REDUCE_PRINT (yyn);]b4_lac_if([[
179305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  {
179405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    int yychar_backup = yychar;
179505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    switch (yyn)
179605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      {
179705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        ]b4_user_actions[
179805436638acc7c010349a69c3395f1a57c642dc62Ying Wang        default: break;
179905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      }
180005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (yychar_backup != yychar)
180105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      YY_LAC_DISCARD ("yychar change");
180205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }]], [[
1803cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  switch (yyn)
1804cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
180505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      ]b4_user_actions[
1806cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      default: break;
180705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }]])[
180805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* User semantic actions sometimes alter yychar, and that requires
180905436638acc7c010349a69c3395f1a57c642dc62Ying Wang     that yytoken be updated with the new translation.  We take the
181005436638acc7c010349a69c3395f1a57c642dc62Ying Wang     approach of translating immediately before every use of yytoken.
181105436638acc7c010349a69c3395f1a57c642dc62Ying Wang     One alternative is translating here after every semantic action,
181205436638acc7c010349a69c3395f1a57c642dc62Ying Wang     but that translation would be missed if the semantic action invokes
181305436638acc7c010349a69c3395f1a57c642dc62Ying Wang     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
181405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
181505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     incorrect destructor might then be invoked immediately.  In the
181605436638acc7c010349a69c3395f1a57c642dc62Ying Wang     case of YYERROR or YYBACKUP, subsequent parser actions might lead
181705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     to an incorrect destructor call or verbose syntax error message
181805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     before the lookahead is translated.  */
1819cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
1820cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1821cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYPOPSTACK (yylen);
1822cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yylen = 0;
1823cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YY_STACK_PRINT (yyss, yyssp);
1824cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
182505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  *++yyvsp = yyval;]b4_locations_if([
182605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  *++yylsp = yyloc;])[
1827cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1828cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Now `shift' the result of the reduction.  Determine what state
1829cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     that goes to, based on the state we popped back to and the rule
1830cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     number reduced by.  */
1831cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1832cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyn = yyr1[yyn];
1833cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1834cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
1835cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1836cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    yystate = yytable[yystate];
1837cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  else
1838cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    yystate = yydefgoto[yyn - YYNTOKENS];
1839cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1840cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  goto yynewstate;
1841cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1842cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1843cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*------------------------------------.
1844cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yyerrlab -- here on detecting error |
1845cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`------------------------------------*/
1846cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyyerrlab:
184705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Make sure we have latest lookahead translation.  See comments at
184805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     user semantic actions for why this is necessary.  */
184905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
185005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1851cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* If not already recovering from an error, report this error.  */
1852cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (!yyerrstatus)
1853cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
1854cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      ++yynerrs;
1855cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#if ! YYERROR_VERBOSE
1856cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yyerror (]b4_yyerror_args[YY_("syntax error"));
1857cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
185805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \]b4_lac_if([[
185905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                        yyesa, &yyes, &yyes_capacity, \]])[
186005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                        yyssp, yytoken)
1861cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      {
186205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        char const *yymsgp = YY_("syntax error");
186305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        int yysyntax_error_status;]b4_lac_if([[
186405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        if (yychar != YYEMPTY)
186505436638acc7c010349a69c3395f1a57c642dc62Ying Wang          YY_LAC_ESTABLISH;]])[
186605436638acc7c010349a69c3395f1a57c642dc62Ying Wang        yysyntax_error_status = YYSYNTAX_ERROR;
186705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        if (yysyntax_error_status == 0)
186805436638acc7c010349a69c3395f1a57c642dc62Ying Wang          yymsgp = yymsg;
186905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        else if (yysyntax_error_status == 1)
187005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          {
187105436638acc7c010349a69c3395f1a57c642dc62Ying Wang            if (yymsg != yymsgbuf)
187205436638acc7c010349a69c3395f1a57c642dc62Ying Wang              YYSTACK_FREE (yymsg);
187305436638acc7c010349a69c3395f1a57c642dc62Ying Wang            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
187405436638acc7c010349a69c3395f1a57c642dc62Ying Wang            if (!yymsg)
187505436638acc7c010349a69c3395f1a57c642dc62Ying Wang              {
187605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                yymsg = yymsgbuf;
187705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                yymsg_alloc = sizeof yymsgbuf;
187805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                yysyntax_error_status = 2;
187905436638acc7c010349a69c3395f1a57c642dc62Ying Wang              }
188005436638acc7c010349a69c3395f1a57c642dc62Ying Wang            else
188105436638acc7c010349a69c3395f1a57c642dc62Ying Wang              {
188205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                yysyntax_error_status = YYSYNTAX_ERROR;
188305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                yymsgp = yymsg;
188405436638acc7c010349a69c3395f1a57c642dc62Ying Wang              }
188505436638acc7c010349a69c3395f1a57c642dc62Ying Wang          }
188605436638acc7c010349a69c3395f1a57c642dc62Ying Wang        yyerror (]b4_yyerror_args[yymsgp);
188705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        if (yysyntax_error_status == 2)
188805436638acc7c010349a69c3395f1a57c642dc62Ying Wang          goto yyexhaustedlab;
1889cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      }
189005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef YYSYNTAX_ERROR
1891cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1892cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
1893cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
189405436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_locations_if([[  yyerror_range[1] = yylloc;]])[
1895cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1896cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yyerrstatus == 3)
1897cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
189805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      /* If just tried and failed to reuse lookahead token after an
1899cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 error, discard it.  */
1900cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1901cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      if (yychar <= YYEOF)
1902cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	{
1903cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  /* Return failure if at end of input.  */
1904cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  if (yychar == YYEOF)
1905cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    YYABORT;
1906cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
1907cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      else
1908cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	{
1909cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  yydestruct ("Error: discarding",
1910cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		      yytoken, &yylval]b4_locations_if([, &yylloc])[]b4_user_args[);
1911cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  yychar = YYEMPTY;
1912cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
1913cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
1914cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
191505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Else will try to reuse lookahead token after shifting the error
1916cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     token.  */
1917cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  goto yyerrlab1;
1918cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1919cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1920cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*---------------------------------------------------.
1921cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yyerrorlab -- error raised explicitly by YYERROR.  |
1922cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`---------------------------------------------------*/
1923cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyyerrorlab:
1924cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1925cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Pacify compilers like GCC when the user code never invokes
1926cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     YYERROR and the label yyerrorlab therefore never appears in user
1927cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     code.  */
1928cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (/*CONSTCOND*/ 0)
1929cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     goto yyerrorlab;
1930cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
193105436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_locations_if([[  yyerror_range[1] = yylsp[1-yylen];
1932cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]])[  /* Do not reclaim the symbols of the rule which action triggered
1933cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     this YYERROR.  */
1934cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYPOPSTACK (yylen);
1935cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yylen = 0;
1936cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YY_STACK_PRINT (yyss, yyssp);
1937cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yystate = *yyssp;
1938cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  goto yyerrlab1;
1939cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1940cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1941cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-------------------------------------------------------------.
1942cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yyerrlab1 -- common code for both syntax error and YYERROR.  |
1943cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`-------------------------------------------------------------*/
1944cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyyerrlab1:
1945cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
1946cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1947cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  for (;;)
1948cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
1949cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yyn = yypact[yystate];
195005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (!yypact_value_is_default (yyn))
1951cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	{
1952cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  yyn += YYTERROR;
1953cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
1954cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    {
1955cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      yyn = yytable[yyn];
1956cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      if (0 < yyn)
1957cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		break;
1958cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    }
1959cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
1960cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1961cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      /* Pop the current state because it cannot handle the error token.  */
1962cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      if (yyssp == yyss)
1963cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YYABORT;
1964cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
196505436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_locations_if([[      yyerror_range[1] = *yylsp;]])[
1966cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yydestruct ("Error: popping",
1967cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		  yystos[yystate], yyvsp]b4_locations_if([, yylsp])[]b4_user_args[);
1968cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YYPOPSTACK (1);
1969cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yystate = *yyssp;
1970cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YY_STACK_PRINT (yyss, yyssp);
197105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }]b4_lac_if([[
1972cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
197305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* If the stack popping above didn't lose the initial context for the
197405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     current lookahead token, the shift below will for sure.  */
197505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YY_LAC_DISCARD ("error recovery");]])[
1976cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
197705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1978cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  *++yyvsp = yylval;
197905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YY_IGNORE_MAYBE_UNINITIALIZED_END
1980cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project]b4_locations_if([[
198105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yyerror_range[2] = yylloc;
1982cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Using YYLLOC is tempting, but would change the location of
198305436638acc7c010349a69c3395f1a57c642dc62Ying Wang     the lookahead.  YYLOC is available though.  */
198405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
1985cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  *++yylsp = yyloc;]])[
1986cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1987cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Shift the error token.  */
1988cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
1989cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1990cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yystate = yyn;
1991cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  goto yynewstate;
1992cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1993cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1994cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-------------------------------------.
1995cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yyacceptlab -- YYACCEPT comes here.  |
1996cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`-------------------------------------*/
1997cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyyacceptlab:
1998cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyresult = 0;
1999cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  goto yyreturn;
2000cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2001cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-----------------------------------.
2002cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yyabortlab -- YYABORT comes here.  |
2003cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`-----------------------------------*/
2004cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyyabortlab:
2005cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyresult = 1;
2006cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  goto yyreturn;
2007cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
200805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ]b4_lac_if([[1]], [[!defined yyoverflow || YYERROR_VERBOSE]])[
2009cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-------------------------------------------------.
2010cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| yyexhaustedlab -- memory exhaustion comes here.  |
2011cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`-------------------------------------------------*/
2012cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyyexhaustedlab:
2013cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyerror (]b4_yyerror_args[YY_("memory exhausted"));
2014cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  yyresult = 2;
2015cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Fall through.  */
2016cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
2017cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2018cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyyreturn:
201905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yychar != YYEMPTY)
202005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
202105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      /* Make sure we have latest lookahead translation.  See comments at
202205436638acc7c010349a69c3395f1a57c642dc62Ying Wang         user semantic actions for why this is necessary.  */
202305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yytoken = YYTRANSLATE (yychar);
202405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      yydestruct ("Cleanup: discarding lookahead",
202505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  yytoken, &yylval]b4_locations_if([, &yylloc])[]b4_user_args[);
202605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
2027cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Do not reclaim the symbols of the rule which action triggered
2028cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     this YYABORT or YYACCEPT.  */
2029cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YYPOPSTACK (yylen);
2030cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  YY_STACK_PRINT (yyss, yyssp);
2031cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  while (yyssp != yyss)
2032cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
2033cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      yydestruct ("Cleanup: popping",
2034cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		  yystos[*yyssp], yyvsp]b4_locations_if([, yylsp])[]b4_user_args[);
2035cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      YYPOPSTACK (1);
2036cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
2037cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef yyoverflow
2038cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yyss != yyssa)
2039cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    YYSTACK_FREE (yyss);
204005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif]b4_lac_if([[
204105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (yyes != yyesa)
204205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    YYSTACK_FREE (yyes);]])b4_push_if([[
204305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  yyps->yynew = 1;
204405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
204505436638acc7c010349a69c3395f1a57c642dc62Ying Wangyypushreturn:]])[
2046cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#if YYERROR_VERBOSE
2047cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (yymsg != yymsgbuf)
2048cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    YYSTACK_FREE (yymsg);
2049cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
2050cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Make sure YYID is used.  */
2051cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  return YYID (yyresult);
205205436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
2053cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2054cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
205505436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_epilogue[]dnl
205605436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_output_end()
2057cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
205805436638acc7c010349a69c3395f1a57c642dc62Ying Wangb4_defines_if(
205905436638acc7c010349a69c3395f1a57c642dc62Ying Wang[b4_output_begin([b4_spec_defines_file])[
206005436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_copyright([Bison interface for Yacc-like parsers in C],
206105436638acc7c010349a69c3395f1a57c642dc62Ying Wang              [1984, 1989-1990, 2000-2012])[
2062cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
206305436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_shared_declarations[
206405436638acc7c010349a69c3395f1a57c642dc62Ying Wang]b4_output_end()
206505436638acc7c010349a69c3395f1a57c642dc62Ying Wang])
2066