dtparser.tab.c revision 1.1 1 1.1 christos
2 1.1 christos /* A Bison parser, made by GNU Bison 2.4.1. */
3 1.1 christos
4 1.1 christos /* Skeleton implementation for Bison's Yacc-like parsers in C
5 1.1 christos
6 1.1 christos Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7 1.1 christos Free Software Foundation, Inc.
8 1.1 christos
9 1.1 christos This program is free software: you can redistribute it and/or modify
10 1.1 christos it under the terms of the GNU General Public License as published by
11 1.1 christos the Free Software Foundation, either version 3 of the License, or
12 1.1 christos (at your option) any later version.
13 1.1 christos
14 1.1 christos This program is distributed in the hope that it will be useful,
15 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of
16 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 1.1 christos GNU General Public License for more details.
18 1.1 christos
19 1.1 christos You should have received a copy of the GNU General Public License
20 1.1 christos along with this program. If not, see <http://www.gnu.org/licenses/>. */
21 1.1 christos
22 1.1 christos /* As a special exception, you may create a larger work that contains
23 1.1 christos part or all of the Bison parser skeleton and distribute that work
24 1.1 christos under terms of your choice, so long as that work isn't itself a
25 1.1 christos parser generator using the skeleton or a modified version thereof
26 1.1 christos as a parser skeleton. Alternatively, if you modify or redistribute
27 1.1 christos the parser skeleton itself, you may (at your option) remove this
28 1.1 christos special exception, which will cause the skeleton and the resulting
29 1.1 christos Bison output files to be licensed under the GNU General Public
30 1.1 christos License without this special exception.
31 1.1 christos
32 1.1 christos This special exception was added by the Free Software Foundation in
33 1.1 christos version 2.2 of Bison. */
34 1.1 christos
35 1.1 christos /* C LALR(1) parser skeleton written by Richard Stallman, by
36 1.1 christos simplifying the original so-called "semantic" parser. */
37 1.1 christos
38 1.1 christos /* All symbols defined below should begin with yy or YY, to avoid
39 1.1 christos infringing on user name space. This should be done even for local
40 1.1 christos variables, as they might otherwise be expanded by user macros.
41 1.1 christos There are some unavoidable exceptions within include files to
42 1.1 christos define necessary library symbols; they are noted "INFRINGES ON
43 1.1 christos USER NAME SPACE" below. */
44 1.1 christos
45 1.1 christos /* Identify Bison output. */
46 1.1 christos #define YYBISON 1
47 1.1 christos
48 1.1 christos /* Bison version. */
49 1.1 christos #define YYBISON_VERSION "2.4.1"
50 1.1 christos
51 1.1 christos /* Skeleton name. */
52 1.1 christos #define YYSKELETON_NAME "yacc.c"
53 1.1 christos
54 1.1 christos /* Pure parsers. */
55 1.1 christos #define YYPURE 0
56 1.1 christos
57 1.1 christos /* Push parsers. */
58 1.1 christos #define YYPUSH 0
59 1.1 christos
60 1.1 christos /* Pull parsers. */
61 1.1 christos #define YYPULL 1
62 1.1 christos
63 1.1 christos /* Using locations. */
64 1.1 christos #define YYLSP_NEEDED 0
65 1.1 christos
66 1.1 christos
67 1.1 christos
68 1.1 christos /* Copy the first part of user declarations. */
69 1.1 christos
70 1.1 christos /* Line 189 of yacc.c */
71 1.1 christos #line 1 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
72 1.1 christos
73 1.1 christos /******************************************************************************
74 1.1 christos *
75 1.1 christos * Module Name: dtparser.y - Bison input file for table compiler parser
76 1.1 christos *
77 1.1 christos *****************************************************************************/
78 1.1 christos
79 1.1 christos /******************************************************************************
80 1.1 christos *
81 1.1 christos * 1. Copyright Notice
82 1.1 christos *
83 1.1 christos * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
84 1.1 christos * All rights reserved.
85 1.1 christos *
86 1.1 christos * 2. License
87 1.1 christos *
88 1.1 christos * 2.1. This is your license from Intel Corp. under its intellectual property
89 1.1 christos * rights. You may have additional license terms from the party that provided
90 1.1 christos * you this software, covering your right to use that party's intellectual
91 1.1 christos * property rights.
92 1.1 christos *
93 1.1 christos * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
94 1.1 christos * copy of the source code appearing in this file ("Covered Code") an
95 1.1 christos * irrevocable, perpetual, worldwide license under Intel's copyrights in the
96 1.1 christos * base code distributed originally by Intel ("Original Intel Code") to copy,
97 1.1 christos * make derivatives, distribute, use and display any portion of the Covered
98 1.1 christos * Code in any form, with the right to sublicense such rights; and
99 1.1 christos *
100 1.1 christos * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
101 1.1 christos * license (with the right to sublicense), under only those claims of Intel
102 1.1 christos * patents that are infringed by the Original Intel Code, to make, use, sell,
103 1.1 christos * offer to sell, and import the Covered Code and derivative works thereof
104 1.1 christos * solely to the minimum extent necessary to exercise the above copyright
105 1.1 christos * license, and in no event shall the patent license extend to any additions
106 1.1 christos * to or modifications of the Original Intel Code. No other license or right
107 1.1 christos * is granted directly or by implication, estoppel or otherwise;
108 1.1 christos *
109 1.1 christos * The above copyright and patent license is granted only if the following
110 1.1 christos * conditions are met:
111 1.1 christos *
112 1.1 christos * 3. Conditions
113 1.1 christos *
114 1.1 christos * 3.1. Redistribution of Source with Rights to Further Distribute Source.
115 1.1 christos * Redistribution of source code of any substantial portion of the Covered
116 1.1 christos * Code or modification with rights to further distribute source must include
117 1.1 christos * the above Copyright Notice, the above License, this list of Conditions,
118 1.1 christos * and the following Disclaimer and Export Compliance provision. In addition,
119 1.1 christos * Licensee must cause all Covered Code to which Licensee contributes to
120 1.1 christos * contain a file documenting the changes Licensee made to create that Covered
121 1.1 christos * Code and the date of any change. Licensee must include in that file the
122 1.1 christos * documentation of any changes made by any predecessor Licensee. Licensee
123 1.1 christos * must include a prominent statement that the modification is derived,
124 1.1 christos * directly or indirectly, from Original Intel Code.
125 1.1 christos *
126 1.1 christos * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
127 1.1 christos * Redistribution of source code of any substantial portion of the Covered
128 1.1 christos * Code or modification without rights to further distribute source must
129 1.1 christos * include the following Disclaimer and Export Compliance provision in the
130 1.1 christos * documentation and/or other materials provided with distribution. In
131 1.1 christos * addition, Licensee may not authorize further sublicense of source of any
132 1.1 christos * portion of the Covered Code, and must include terms to the effect that the
133 1.1 christos * license from Licensee to its licensee is limited to the intellectual
134 1.1 christos * property embodied in the software Licensee provides to its licensee, and
135 1.1 christos * not to intellectual property embodied in modifications its licensee may
136 1.1 christos * make.
137 1.1 christos *
138 1.1 christos * 3.3. Redistribution of Executable. Redistribution in executable form of any
139 1.1 christos * substantial portion of the Covered Code or modification must reproduce the
140 1.1 christos * above Copyright Notice, and the following Disclaimer and Export Compliance
141 1.1 christos * provision in the documentation and/or other materials provided with the
142 1.1 christos * distribution.
143 1.1 christos *
144 1.1 christos * 3.4. Intel retains all right, title, and interest in and to the Original
145 1.1 christos * Intel Code.
146 1.1 christos *
147 1.1 christos * 3.5. Neither the name Intel nor any other trademark owned or controlled by
148 1.1 christos * Intel shall be used in advertising or otherwise to promote the sale, use or
149 1.1 christos * other dealings in products derived from or relating to the Covered Code
150 1.1 christos * without prior written authorization from Intel.
151 1.1 christos *
152 1.1 christos * 4. Disclaimer and Export Compliance
153 1.1 christos *
154 1.1 christos * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
155 1.1 christos * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
156 1.1 christos * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
157 1.1 christos * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
158 1.1 christos * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
159 1.1 christos * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
160 1.1 christos * PARTICULAR PURPOSE.
161 1.1 christos *
162 1.1 christos * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
163 1.1 christos * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
164 1.1 christos * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
165 1.1 christos * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
166 1.1 christos * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
167 1.1 christos * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
168 1.1 christos * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
169 1.1 christos * LIMITED REMEDY.
170 1.1 christos *
171 1.1 christos * 4.3. Licensee shall not export, either directly or indirectly, any of this
172 1.1 christos * software or system incorporating such software without first obtaining any
173 1.1 christos * required license or other approval from the U. S. Department of Commerce or
174 1.1 christos * any other agency or department of the United States Government. In the
175 1.1 christos * event Licensee exports any such software from the United States or
176 1.1 christos * re-exports any such software from a foreign destination, Licensee shall
177 1.1 christos * ensure that the distribution and export/re-export of the software is in
178 1.1 christos * compliance with all laws, regulations, orders, or other restrictions of the
179 1.1 christos * U.S. Export Administration Regulations. Licensee agrees that neither it nor
180 1.1 christos * any of its subsidiaries will export/re-export any technical data, process,
181 1.1 christos * software, or service, directly or indirectly, to any country for which the
182 1.1 christos * United States government or any agency thereof requires an export license,
183 1.1 christos * other governmental approval, or letter of assurance, without first obtaining
184 1.1 christos * such license, approval or letter.
185 1.1 christos *
186 1.1 christos *****************************************************************************
187 1.1 christos *
188 1.1 christos * Alternatively, you may choose to be licensed under the terms of the
189 1.1 christos * following license:
190 1.1 christos *
191 1.1 christos * Redistribution and use in source and binary forms, with or without
192 1.1 christos * modification, are permitted provided that the following conditions
193 1.1 christos * are met:
194 1.1 christos * 1. Redistributions of source code must retain the above copyright
195 1.1 christos * notice, this list of conditions, and the following disclaimer,
196 1.1 christos * without modification.
197 1.1 christos * 2. Redistributions in binary form must reproduce at minimum a disclaimer
198 1.1 christos * substantially similar to the "NO WARRANTY" disclaimer below
199 1.1 christos * ("Disclaimer") and any redistribution must be conditioned upon
200 1.1 christos * including a substantially similar Disclaimer requirement for further
201 1.1 christos * binary redistribution.
202 1.1 christos * 3. Neither the names of the above-listed copyright holders nor the names
203 1.1 christos * of any contributors may be used to endorse or promote products derived
204 1.1 christos * from this software without specific prior written permission.
205 1.1 christos *
206 1.1 christos * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
207 1.1 christos * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
208 1.1 christos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
209 1.1 christos * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
210 1.1 christos * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
211 1.1 christos * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
212 1.1 christos * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
213 1.1 christos * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
214 1.1 christos * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
215 1.1 christos * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
216 1.1 christos * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
217 1.1 christos *
218 1.1 christos * Alternatively, you may choose to be licensed under the terms of the
219 1.1 christos * GNU General Public License ("GPL") version 2 as published by the Free
220 1.1 christos * Software Foundation.
221 1.1 christos *
222 1.1 christos *****************************************************************************/
223 1.1 christos
224 1.1 christos #include "aslcompiler.h"
225 1.1 christos
226 1.1 christos #define _COMPONENT DT_COMPILER
227 1.1 christos ACPI_MODULE_NAME ("dtparser")
228 1.1 christos
229 1.1 christos void * AslLocalAllocate (unsigned int Size);
230 1.1 christos
231 1.1 christos /* Bison/yacc configuration */
232 1.1 christos
233 1.1 christos #undef alloca
234 1.1 christos #define alloca AslLocalAllocate
235 1.1 christos
236 1.1 christos int DtParserlex (void);
237 1.1 christos int DtParserparse (void);
238 1.1 christos void DtParsererror (char const *msg);
239 1.1 christos extern char *DtParsertext;
240 1.1 christos extern DT_FIELD *AslGbl_CurrentField;
241 1.1 christos
242 1.1 christos UINT64 DtParserResult; /* Expression return value */
243 1.1 christos
244 1.1 christos /* Bison/yacc configuration */
245 1.1 christos
246 1.1 christos #define yytname DtParsername
247 1.1 christos #define YYDEBUG 1 /* Enable debug output */
248 1.1 christos #define YYERROR_VERBOSE 1 /* Verbose error messages */
249 1.1 christos #define YYFLAG -32768
250 1.1 christos
251 1.1 christos /* Define YYMALLOC/YYFREE to prevent redefinition errors */
252 1.1 christos
253 1.1 christos #define YYMALLOC malloc
254 1.1 christos #define YYFREE free
255 1.1 christos
256 1.1 christos
257 1.1 christos /* Line 189 of yacc.c */
258 1.1 christos #line 259 "dtparser.tab.c"
259 1.1 christos
260 1.1 christos /* Enabling traces. */
261 1.1 christos #ifndef YYDEBUG
262 1.1 christos # define YYDEBUG 0
263 1.1 christos #endif
264 1.1 christos
265 1.1 christos /* Enabling verbose error messages. */
266 1.1 christos #ifdef YYERROR_VERBOSE
267 1.1 christos # undef YYERROR_VERBOSE
268 1.1 christos # define YYERROR_VERBOSE 1
269 1.1 christos #else
270 1.1 christos # define YYERROR_VERBOSE 0
271 1.1 christos #endif
272 1.1 christos
273 1.1 christos /* Enabling the token table. */
274 1.1 christos #ifndef YYTOKEN_TABLE
275 1.1 christos # define YYTOKEN_TABLE 0
276 1.1 christos #endif
277 1.1 christos
278 1.1 christos
279 1.1 christos /* Tokens. */
280 1.1 christos #ifndef YYTOKENTYPE
281 1.1 christos # define YYTOKENTYPE
282 1.1 christos /* Put the tokens into the symbol table, so that GDB and other debuggers
283 1.1 christos know about them. */
284 1.1 christos enum yytokentype {
285 1.1 christos OP_EXP_EOF = 258,
286 1.1 christos OP_EXP_NEW_LINE = 259,
287 1.1 christos OP_EXP_NUMBER = 260,
288 1.1 christos OP_EXP_HEX_NUMBER = 261,
289 1.1 christos OP_EXP_DECIMAL_NUMBER = 262,
290 1.1 christos OP_EXP_LABEL = 263,
291 1.1 christos OP_EXP_PAREN_OPEN = 264,
292 1.1 christos OP_EXP_PAREN_CLOSE = 265,
293 1.1 christos OP_EXP_LOGICAL_OR = 266,
294 1.1 christos OP_EXP_LOGICAL_AND = 267,
295 1.1 christos OP_EXP_OR = 268,
296 1.1 christos OP_EXP_XOR = 269,
297 1.1 christos OP_EXP_AND = 270,
298 1.1 christos OP_EXP_NOT_EQUAL = 271,
299 1.1 christos OP_EXP_EQUAL = 272,
300 1.1 christos OP_EXP_LESS_EQUAL = 273,
301 1.1 christos OP_EXP_GREATER_EQUAL = 274,
302 1.1 christos OP_EXP_LESS = 275,
303 1.1 christos OP_EXP_GREATER = 276,
304 1.1 christos OP_EXP_SHIFT_LEFT = 277,
305 1.1 christos OP_EXP_SHIFT_RIGHT = 278,
306 1.1 christos OP_EXP_SUBTRACT = 279,
307 1.1 christos OP_EXP_ADD = 280,
308 1.1 christos OP_EXP_MODULO = 281,
309 1.1 christos OP_EXP_DIVIDE = 282,
310 1.1 christos OP_EXP_MULTIPLY = 283,
311 1.1 christos OP_EXP_LOGICAL_NOT = 284,
312 1.1 christos OP_EXP_ONES_COMPLIMENT = 285
313 1.1 christos };
314 1.1 christos #endif
315 1.1 christos
316 1.1 christos
317 1.1 christos
318 1.1 christos #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
319 1.1 christos typedef union YYSTYPE
320 1.1 christos {
321 1.1 christos
322 1.1 christos /* Line 214 of yacc.c */
323 1.1 christos #line 187 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
324 1.1 christos
325 1.1 christos UINT64 value;
326 1.1 christos UINT32 op;
327 1.1 christos
328 1.1 christos
329 1.1 christos
330 1.1 christos /* Line 214 of yacc.c */
331 1.1 christos #line 332 "dtparser.tab.c"
332 1.1 christos } YYSTYPE;
333 1.1 christos # define YYSTYPE_IS_TRIVIAL 1
334 1.1 christos # define yystype YYSTYPE /* obsolescent; will be withdrawn */
335 1.1 christos # define YYSTYPE_IS_DECLARED 1
336 1.1 christos #endif
337 1.1 christos
338 1.1 christos
339 1.1 christos /* Copy the second part of user declarations. */
340 1.1 christos
341 1.1 christos
342 1.1 christos /* Line 264 of yacc.c */
343 1.1 christos #line 344 "dtparser.tab.c"
344 1.1 christos
345 1.1 christos #ifdef short
346 1.1 christos # undef short
347 1.1 christos #endif
348 1.1 christos
349 1.1 christos #ifdef YYTYPE_UINT8
350 1.1 christos typedef YYTYPE_UINT8 yytype_uint8;
351 1.1 christos #else
352 1.1 christos typedef unsigned char yytype_uint8;
353 1.1 christos #endif
354 1.1 christos
355 1.1 christos #ifdef YYTYPE_INT8
356 1.1 christos typedef YYTYPE_INT8 yytype_int8;
357 1.1 christos #elif (defined __STDC__ || defined __C99__FUNC__ \
358 1.1 christos || defined __cplusplus || defined _MSC_VER)
359 1.1 christos typedef signed char yytype_int8;
360 1.1 christos #else
361 1.1 christos typedef short int yytype_int8;
362 1.1 christos #endif
363 1.1 christos
364 1.1 christos #ifdef YYTYPE_UINT16
365 1.1 christos typedef YYTYPE_UINT16 yytype_uint16;
366 1.1 christos #else
367 1.1 christos typedef unsigned short int yytype_uint16;
368 1.1 christos #endif
369 1.1 christos
370 1.1 christos #ifdef YYTYPE_INT16
371 1.1 christos typedef YYTYPE_INT16 yytype_int16;
372 1.1 christos #else
373 1.1 christos typedef short int yytype_int16;
374 1.1 christos #endif
375 1.1 christos
376 1.1 christos #ifndef YYSIZE_T
377 1.1 christos # ifdef __SIZE_TYPE__
378 1.1 christos # define YYSIZE_T __SIZE_TYPE__
379 1.1 christos # elif defined size_t
380 1.1 christos # define YYSIZE_T size_t
381 1.1 christos # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
382 1.1 christos || defined __cplusplus || defined _MSC_VER)
383 1.1 christos # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
384 1.1 christos # define YYSIZE_T size_t
385 1.1 christos # else
386 1.1 christos # define YYSIZE_T unsigned int
387 1.1 christos # endif
388 1.1 christos #endif
389 1.1 christos
390 1.1 christos #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
391 1.1 christos
392 1.1 christos #ifndef YY_
393 1.1 christos # if YYENABLE_NLS
394 1.1 christos # if ENABLE_NLS
395 1.1 christos # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
396 1.1 christos # define YY_(msgid) dgettext ("bison-runtime", msgid)
397 1.1 christos # endif
398 1.1 christos # endif
399 1.1 christos # ifndef YY_
400 1.1 christos # define YY_(msgid) msgid
401 1.1 christos # endif
402 1.1 christos #endif
403 1.1 christos
404 1.1 christos /* Suppress unused-variable warnings by "using" E. */
405 1.1 christos #if ! defined lint || defined __GNUC__
406 1.1 christos # define YYUSE(e) ((void) (e))
407 1.1 christos #else
408 1.1 christos # define YYUSE(e) /* empty */
409 1.1 christos #endif
410 1.1 christos
411 1.1 christos /* Identity function, used to suppress warnings about constant conditions. */
412 1.1 christos #ifndef lint
413 1.1 christos # define YYID(n) (n)
414 1.1 christos #else
415 1.1 christos #if (defined __STDC__ || defined __C99__FUNC__ \
416 1.1 christos || defined __cplusplus || defined _MSC_VER)
417 1.1 christos static int
418 1.1 christos YYID (int yyi)
419 1.1 christos #else
420 1.1 christos static int
421 1.1 christos YYID (yyi)
422 1.1 christos int yyi;
423 1.1 christos #endif
424 1.1 christos {
425 1.1 christos return yyi;
426 1.1 christos }
427 1.1 christos #endif
428 1.1 christos
429 1.1 christos #if ! defined yyoverflow || YYERROR_VERBOSE
430 1.1 christos
431 1.1 christos /* The parser invokes alloca or malloc; define the necessary symbols. */
432 1.1 christos
433 1.1 christos # ifdef YYSTACK_USE_ALLOCA
434 1.1 christos # if YYSTACK_USE_ALLOCA
435 1.1 christos # ifdef __GNUC__
436 1.1 christos # define YYSTACK_ALLOC __builtin_alloca
437 1.1 christos # elif defined __BUILTIN_VA_ARG_INCR
438 1.1 christos # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
439 1.1 christos # elif defined _AIX
440 1.1 christos # define YYSTACK_ALLOC __alloca
441 1.1 christos # elif defined _MSC_VER
442 1.1 christos # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
443 1.1 christos # define alloca _alloca
444 1.1 christos # else
445 1.1 christos # define YYSTACK_ALLOC alloca
446 1.1 christos # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
447 1.1 christos || defined __cplusplus || defined _MSC_VER)
448 1.1 christos # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
449 1.1 christos # ifndef _STDLIB_H
450 1.1 christos # define _STDLIB_H 1
451 1.1 christos # endif
452 1.1 christos # endif
453 1.1 christos # endif
454 1.1 christos # endif
455 1.1 christos # endif
456 1.1 christos
457 1.1 christos # ifdef YYSTACK_ALLOC
458 1.1 christos /* Pacify GCC's `empty if-body' warning. */
459 1.1 christos # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
460 1.1 christos # ifndef YYSTACK_ALLOC_MAXIMUM
461 1.1 christos /* The OS might guarantee only one guard page at the bottom of the stack,
462 1.1 christos and a page size can be as small as 4096 bytes. So we cannot safely
463 1.1 christos invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
464 1.1 christos to allow for a few compiler-allocated temporary stack slots. */
465 1.1 christos # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
466 1.1 christos # endif
467 1.1 christos # else
468 1.1 christos # define YYSTACK_ALLOC YYMALLOC
469 1.1 christos # define YYSTACK_FREE YYFREE
470 1.1 christos # ifndef YYSTACK_ALLOC_MAXIMUM
471 1.1 christos # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
472 1.1 christos # endif
473 1.1 christos # if (defined __cplusplus && ! defined _STDLIB_H \
474 1.1 christos && ! ((defined YYMALLOC || defined malloc) \
475 1.1 christos && (defined YYFREE || defined free)))
476 1.1 christos # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
477 1.1 christos # ifndef _STDLIB_H
478 1.1 christos # define _STDLIB_H 1
479 1.1 christos # endif
480 1.1 christos # endif
481 1.1 christos # ifndef YYMALLOC
482 1.1 christos # define YYMALLOC malloc
483 1.1 christos # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
484 1.1 christos || defined __cplusplus || defined _MSC_VER)
485 1.1 christos void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
486 1.1 christos # endif
487 1.1 christos # endif
488 1.1 christos # ifndef YYFREE
489 1.1 christos # define YYFREE free
490 1.1 christos # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
491 1.1 christos || defined __cplusplus || defined _MSC_VER)
492 1.1 christos void free (void *); /* INFRINGES ON USER NAME SPACE */
493 1.1 christos # endif
494 1.1 christos # endif
495 1.1 christos # endif
496 1.1 christos #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
497 1.1 christos
498 1.1 christos
499 1.1 christos #if (! defined yyoverflow \
500 1.1 christos && (! defined __cplusplus \
501 1.1 christos || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
502 1.1 christos
503 1.1 christos /* A type that is properly aligned for any stack member. */
504 1.1 christos union yyalloc
505 1.1 christos {
506 1.1 christos yytype_int16 yyss_alloc;
507 1.1 christos YYSTYPE yyvs_alloc;
508 1.1 christos };
509 1.1 christos
510 1.1 christos /* The size of the maximum gap between one aligned stack and the next. */
511 1.1 christos # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
512 1.1 christos
513 1.1 christos /* The size of an array large to enough to hold all stacks, each with
514 1.1 christos N elements. */
515 1.1 christos # define YYSTACK_BYTES(N) \
516 1.1 christos ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
517 1.1 christos + YYSTACK_GAP_MAXIMUM)
518 1.1 christos
519 1.1 christos /* Copy COUNT objects from FROM to TO. The source and destination do
520 1.1 christos not overlap. */
521 1.1 christos # ifndef YYCOPY
522 1.1 christos # if defined __GNUC__ && 1 < __GNUC__
523 1.1 christos # define YYCOPY(To, From, Count) \
524 1.1 christos __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
525 1.1 christos # else
526 1.1 christos # define YYCOPY(To, From, Count) \
527 1.1 christos do \
528 1.1 christos { \
529 1.1 christos YYSIZE_T yyi; \
530 1.1 christos for (yyi = 0; yyi < (Count); yyi++) \
531 1.1 christos (To)[yyi] = (From)[yyi]; \
532 1.1 christos } \
533 1.1 christos while (YYID (0))
534 1.1 christos # endif
535 1.1 christos # endif
536 1.1 christos
537 1.1 christos /* Relocate STACK from its old location to the new one. The
538 1.1 christos local variables YYSIZE and YYSTACKSIZE give the old and new number of
539 1.1 christos elements in the stack, and YYPTR gives the new location of the
540 1.1 christos stack. Advance YYPTR to a properly aligned location for the next
541 1.1 christos stack. */
542 1.1 christos # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
543 1.1 christos do \
544 1.1 christos { \
545 1.1 christos YYSIZE_T yynewbytes; \
546 1.1 christos YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
547 1.1 christos Stack = &yyptr->Stack_alloc; \
548 1.1 christos yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
549 1.1 christos yyptr += yynewbytes / sizeof (*yyptr); \
550 1.1 christos } \
551 1.1 christos while (YYID (0))
552 1.1 christos
553 1.1 christos #endif
554 1.1 christos
555 1.1 christos /* YYFINAL -- State number of the termination state. */
556 1.1 christos #define YYFINAL 13
557 1.1 christos /* YYLAST -- Last index in YYTABLE. */
558 1.1 christos #define YYLAST 170
559 1.1 christos
560 1.1 christos /* YYNTOKENS -- Number of terminals. */
561 1.1 christos #define YYNTOKENS 31
562 1.1 christos /* YYNNTS -- Number of nonterminals. */
563 1.1 christos #define YYNNTS 3
564 1.1 christos /* YYNRULES -- Number of rules. */
565 1.1 christos #define YYNRULES 28
566 1.1 christos /* YYNRULES -- Number of states. */
567 1.1 christos #define YYNSTATES 53
568 1.1 christos
569 1.1 christos /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
570 1.1 christos #define YYUNDEFTOK 2
571 1.1 christos #define YYMAXUTOK 285
572 1.1 christos
573 1.1 christos #define YYTRANSLATE(YYX) \
574 1.1 christos ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
575 1.1 christos
576 1.1 christos /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
577 1.1 christos static const yytype_uint8 yytranslate[] =
578 1.1 christos {
579 1.1 christos 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
580 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
581 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
582 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
583 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
584 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
585 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
586 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
587 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
588 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
589 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
590 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
591 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
592 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
593 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
594 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
595 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
596 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
597 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
598 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
599 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
600 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
601 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
602 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
603 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
604 1.1 christos 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
605 1.1 christos 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
606 1.1 christos 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
607 1.1 christos 25, 26, 27, 28, 29, 30
608 1.1 christos };
609 1.1 christos
610 1.1 christos #if YYDEBUG
611 1.1 christos /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
612 1.1 christos YYRHS. */
613 1.1 christos static const yytype_uint8 yyprhs[] =
614 1.1 christos {
615 1.1 christos 0, 0, 3, 6, 9, 12, 15, 19, 23, 27,
616 1.1 christos 31, 35, 39, 43, 47, 51, 55, 59, 63, 67,
617 1.1 christos 71, 75, 79, 83, 87, 91, 93, 95, 97
618 1.1 christos };
619 1.1 christos
620 1.1 christos /* YYRHS -- A `-1'-separated list of the rules' RHS. */
621 1.1 christos static const yytype_int8 yyrhs[] =
622 1.1 christos {
623 1.1 christos 32, 0, -1, 33, 4, -1, 33, 3, -1, 29,
624 1.1 christos 33, -1, 30, 33, -1, 33, 28, 33, -1, 33,
625 1.1 christos 27, 33, -1, 33, 26, 33, -1, 33, 25, 33,
626 1.1 christos -1, 33, 24, 33, -1, 33, 23, 33, -1, 33,
627 1.1 christos 22, 33, -1, 33, 21, 33, -1, 33, 20, 33,
628 1.1 christos -1, 33, 19, 33, -1, 33, 18, 33, -1, 33,
629 1.1 christos 17, 33, -1, 33, 16, 33, -1, 33, 15, 33,
630 1.1 christos -1, 33, 14, 33, -1, 33, 13, 33, -1, 33,
631 1.1 christos 12, 33, -1, 33, 11, 33, -1, 9, 33, 10,
632 1.1 christos -1, 8, -1, 5, -1, 6, -1, 7, -1
633 1.1 christos };
634 1.1 christos
635 1.1 christos /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
636 1.1 christos static const yytype_uint16 yyrline[] =
637 1.1 christos {
638 1.1 christos 0, 236, 236, 237, 244, 245, 249, 250, 251, 252,
639 1.1 christos 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
640 1.1 christos 263, 264, 265, 266, 270, 275, 286, 290, 294
641 1.1 christos };
642 1.1 christos #endif
643 1.1 christos
644 1.1 christos #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
645 1.1 christos /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
646 1.1 christos First, the terminals, then, starting at YYNTOKENS, nonterminals. */
647 1.1 christos static const char *const yytname[] =
648 1.1 christos {
649 1.1 christos "$end", "error", "$undefined", "OP_EXP_EOF", "OP_EXP_NEW_LINE",
650 1.1 christos "OP_EXP_NUMBER", "OP_EXP_HEX_NUMBER", "OP_EXP_DECIMAL_NUMBER",
651 1.1 christos "OP_EXP_LABEL", "OP_EXP_PAREN_OPEN", "OP_EXP_PAREN_CLOSE",
652 1.1 christos "OP_EXP_LOGICAL_OR", "OP_EXP_LOGICAL_AND", "OP_EXP_OR", "OP_EXP_XOR",
653 1.1 christos "OP_EXP_AND", "OP_EXP_NOT_EQUAL", "OP_EXP_EQUAL", "OP_EXP_LESS_EQUAL",
654 1.1 christos "OP_EXP_GREATER_EQUAL", "OP_EXP_LESS", "OP_EXP_GREATER",
655 1.1 christos "OP_EXP_SHIFT_LEFT", "OP_EXP_SHIFT_RIGHT", "OP_EXP_SUBTRACT",
656 1.1 christos "OP_EXP_ADD", "OP_EXP_MODULO", "OP_EXP_DIVIDE", "OP_EXP_MULTIPLY",
657 1.1 christos "OP_EXP_LOGICAL_NOT", "OP_EXP_ONES_COMPLIMENT", "$accept", "Value",
658 1.1 christos "Expression", 0
659 1.1 christos };
660 1.1 christos #endif
661 1.1 christos
662 1.1 christos # ifdef YYPRINT
663 1.1 christos /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
664 1.1 christos token YYLEX-NUM. */
665 1.1 christos static const yytype_uint16 yytoknum[] =
666 1.1 christos {
667 1.1 christos 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
668 1.1 christos 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
669 1.1 christos 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
670 1.1 christos 285
671 1.1 christos };
672 1.1 christos # endif
673 1.1 christos
674 1.1 christos /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
675 1.1 christos static const yytype_uint8 yyr1[] =
676 1.1 christos {
677 1.1 christos 0, 31, 32, 32, 33, 33, 33, 33, 33, 33,
678 1.1 christos 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
679 1.1 christos 33, 33, 33, 33, 33, 33, 33, 33, 33
680 1.1 christos };
681 1.1 christos
682 1.1 christos /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
683 1.1 christos static const yytype_uint8 yyr2[] =
684 1.1 christos {
685 1.1 christos 0, 2, 2, 2, 2, 2, 3, 3, 3, 3,
686 1.1 christos 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
687 1.1 christos 3, 3, 3, 3, 3, 1, 1, 1, 1
688 1.1 christos };
689 1.1 christos
690 1.1 christos /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
691 1.1 christos STATE-NUM when YYTABLE doesn't specify something else to do. Zero
692 1.1 christos means the default is an error. */
693 1.1 christos static const yytype_uint8 yydefact[] =
694 1.1 christos {
695 1.1 christos 0, 26, 27, 28, 25, 0, 0, 0, 0, 0,
696 1.1 christos 0, 4, 5, 1, 3, 2, 0, 0, 0, 0,
697 1.1 christos 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
698 1.1 christos 0, 0, 0, 0, 24, 23, 22, 21, 20, 19,
699 1.1 christos 18, 17, 16, 15, 14, 13, 12, 11, 10, 9,
700 1.1 christos 8, 7, 6
701 1.1 christos };
702 1.1 christos
703 1.1 christos /* YYDEFGOTO[NTERM-NUM]. */
704 1.1 christos static const yytype_int8 yydefgoto[] =
705 1.1 christos {
706 1.1 christos -1, 8, 9
707 1.1 christos };
708 1.1 christos
709 1.1 christos /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
710 1.1 christos STATE-NUM. */
711 1.1 christos #define YYPACT_NINF -20
712 1.1 christos static const yytype_int16 yypact[] =
713 1.1 christos {
714 1.1 christos 27, -20, -20, -20, -20, 27, 27, 27, 10, 26,
715 1.1 christos 48, -20, -20, -20, -20, -20, 27, 27, 27, 27,
716 1.1 christos 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
717 1.1 christos 27, 27, 27, 27, -20, 65, 81, 96, 110, 123,
718 1.1 christos 134, 134, -19, -19, -19, -19, 139, 139, 142, 142,
719 1.1 christos -20, -20, -20
720 1.1 christos };
721 1.1 christos
722 1.1 christos /* YYPGOTO[NTERM-NUM]. */
723 1.1 christos static const yytype_int8 yypgoto[] =
724 1.1 christos {
725 1.1 christos -20, -20, -5
726 1.1 christos };
727 1.1 christos
728 1.1 christos /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
729 1.1 christos positive, shift that token. If negative, reduce the rule which
730 1.1 christos number is the opposite. If zero, do what YYDEFACT says.
731 1.1 christos If YYTABLE_NINF, syntax error. */
732 1.1 christos #define YYTABLE_NINF -1
733 1.1 christos static const yytype_uint8 yytable[] =
734 1.1 christos {
735 1.1 christos 10, 11, 12, 27, 28, 29, 30, 31, 32, 33,
736 1.1 christos 13, 35, 36, 37, 38, 39, 40, 41, 42, 43,
737 1.1 christos 44, 45, 46, 47, 48, 49, 50, 51, 52, 14,
738 1.1 christos 15, 0, 1, 2, 3, 4, 5, 16, 17, 18,
739 1.1 christos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
740 1.1 christos 29, 30, 31, 32, 33, 0, 6, 7, 34, 16,
741 1.1 christos 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
742 1.1 christos 27, 28, 29, 30, 31, 32, 33, 17, 18, 19,
743 1.1 christos 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
744 1.1 christos 30, 31, 32, 33, 18, 19, 20, 21, 22, 23,
745 1.1 christos 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
746 1.1 christos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
747 1.1 christos 29, 30, 31, 32, 33, 20, 21, 22, 23, 24,
748 1.1 christos 25, 26, 27, 28, 29, 30, 31, 32, 33, 21,
749 1.1 christos 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
750 1.1 christos 32, 33, 23, 24, 25, 26, 27, 28, 29, 30,
751 1.1 christos 31, 32, 33, 29, 30, 31, 32, 33, 31, 32,
752 1.1 christos 33
753 1.1 christos };
754 1.1 christos
755 1.1 christos static const yytype_int8 yycheck[] =
756 1.1 christos {
757 1.1 christos 5, 6, 7, 22, 23, 24, 25, 26, 27, 28,
758 1.1 christos 0, 16, 17, 18, 19, 20, 21, 22, 23, 24,
759 1.1 christos 25, 26, 27, 28, 29, 30, 31, 32, 33, 3,
760 1.1 christos 4, -1, 5, 6, 7, 8, 9, 11, 12, 13,
761 1.1 christos 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
762 1.1 christos 24, 25, 26, 27, 28, -1, 29, 30, 10, 11,
763 1.1 christos 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
764 1.1 christos 22, 23, 24, 25, 26, 27, 28, 12, 13, 14,
765 1.1 christos 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
766 1.1 christos 25, 26, 27, 28, 13, 14, 15, 16, 17, 18,
767 1.1 christos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
768 1.1 christos 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
769 1.1 christos 24, 25, 26, 27, 28, 15, 16, 17, 18, 19,
770 1.1 christos 20, 21, 22, 23, 24, 25, 26, 27, 28, 16,
771 1.1 christos 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
772 1.1 christos 27, 28, 18, 19, 20, 21, 22, 23, 24, 25,
773 1.1 christos 26, 27, 28, 24, 25, 26, 27, 28, 26, 27,
774 1.1 christos 28
775 1.1 christos };
776 1.1 christos
777 1.1 christos /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
778 1.1 christos symbol of state STATE-NUM. */
779 1.1 christos static const yytype_uint8 yystos[] =
780 1.1 christos {
781 1.1 christos 0, 5, 6, 7, 8, 9, 29, 30, 32, 33,
782 1.1 christos 33, 33, 33, 0, 3, 4, 11, 12, 13, 14,
783 1.1 christos 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
784 1.1 christos 25, 26, 27, 28, 10, 33, 33, 33, 33, 33,
785 1.1 christos 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
786 1.1 christos 33, 33, 33
787 1.1 christos };
788 1.1 christos
789 1.1 christos #define yyerrok (yyerrstatus = 0)
790 1.1 christos #define yyclearin (yychar = YYEMPTY)
791 1.1 christos #define YYEMPTY (-2)
792 1.1 christos #define YYEOF 0
793 1.1 christos
794 1.1 christos #define YYACCEPT goto yyacceptlab
795 1.1 christos #define YYABORT goto yyabortlab
796 1.1 christos #define YYERROR goto yyerrorlab
797 1.1 christos
798 1.1 christos
799 1.1 christos /* Like YYERROR except do call yyerror. This remains here temporarily
800 1.1 christos to ease the transition to the new meaning of YYERROR, for GCC.
801 1.1 christos Once GCC version 2 has supplanted version 1, this can go. */
802 1.1 christos
803 1.1 christos #define YYFAIL goto yyerrlab
804 1.1 christos
805 1.1 christos #define YYRECOVERING() (!!yyerrstatus)
806 1.1 christos
807 1.1 christos #define YYBACKUP(Token, Value) \
808 1.1 christos do \
809 1.1 christos if (yychar == YYEMPTY && yylen == 1) \
810 1.1 christos { \
811 1.1 christos yychar = (Token); \
812 1.1 christos yylval = (Value); \
813 1.1 christos yytoken = YYTRANSLATE (yychar); \
814 1.1 christos YYPOPSTACK (1); \
815 1.1 christos goto yybackup; \
816 1.1 christos } \
817 1.1 christos else \
818 1.1 christos { \
819 1.1 christos yyerror (YY_("syntax error: cannot back up")); \
820 1.1 christos YYERROR; \
821 1.1 christos } \
822 1.1 christos while (YYID (0))
823 1.1 christos
824 1.1 christos
825 1.1 christos #define YYTERROR 1
826 1.1 christos #define YYERRCODE 256
827 1.1 christos
828 1.1 christos
829 1.1 christos /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
830 1.1 christos If N is 0, then set CURRENT to the empty location which ends
831 1.1 christos the previous symbol: RHS[0] (always defined). */
832 1.1 christos
833 1.1 christos #define YYRHSLOC(Rhs, K) ((Rhs)[K])
834 1.1 christos #ifndef YYLLOC_DEFAULT
835 1.1 christos # define YYLLOC_DEFAULT(Current, Rhs, N) \
836 1.1 christos do \
837 1.1 christos if (YYID (N)) \
838 1.1 christos { \
839 1.1 christos (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
840 1.1 christos (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
841 1.1 christos (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
842 1.1 christos (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
843 1.1 christos } \
844 1.1 christos else \
845 1.1 christos { \
846 1.1 christos (Current).first_line = (Current).last_line = \
847 1.1 christos YYRHSLOC (Rhs, 0).last_line; \
848 1.1 christos (Current).first_column = (Current).last_column = \
849 1.1 christos YYRHSLOC (Rhs, 0).last_column; \
850 1.1 christos } \
851 1.1 christos while (YYID (0))
852 1.1 christos #endif
853 1.1 christos
854 1.1 christos
855 1.1 christos /* YY_LOCATION_PRINT -- Print the location on the stream.
856 1.1 christos This macro was not mandated originally: define only if we know
857 1.1 christos we won't break user code: when these are the locations we know. */
858 1.1 christos
859 1.1 christos #ifndef YY_LOCATION_PRINT
860 1.1 christos # if YYLTYPE_IS_TRIVIAL
861 1.1 christos # define YY_LOCATION_PRINT(File, Loc) \
862 1.1 christos fprintf (File, "%d.%d-%d.%d", \
863 1.1 christos (Loc).first_line, (Loc).first_column, \
864 1.1 christos (Loc).last_line, (Loc).last_column)
865 1.1 christos # else
866 1.1 christos # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
867 1.1 christos # endif
868 1.1 christos #endif
869 1.1 christos
870 1.1 christos
871 1.1 christos /* YYLEX -- calling `yylex' with the right arguments. */
872 1.1 christos
873 1.1 christos #ifdef YYLEX_PARAM
874 1.1 christos # define YYLEX yylex (YYLEX_PARAM)
875 1.1 christos #else
876 1.1 christos # define YYLEX yylex ()
877 1.1 christos #endif
878 1.1 christos
879 1.1 christos /* Enable debugging if requested. */
880 1.1 christos #if YYDEBUG
881 1.1 christos
882 1.1 christos # ifndef YYFPRINTF
883 1.1 christos # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
884 1.1 christos # define YYFPRINTF fprintf
885 1.1 christos # endif
886 1.1 christos
887 1.1 christos # define YYDPRINTF(Args) \
888 1.1 christos do { \
889 1.1 christos if (yydebug) \
890 1.1 christos YYFPRINTF Args; \
891 1.1 christos } while (YYID (0))
892 1.1 christos
893 1.1 christos # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
894 1.1 christos do { \
895 1.1 christos if (yydebug) \
896 1.1 christos { \
897 1.1 christos YYFPRINTF (stderr, "%s ", Title); \
898 1.1 christos yy_symbol_print (stderr, \
899 1.1 christos Type, Value); \
900 1.1 christos YYFPRINTF (stderr, "\n"); \
901 1.1 christos } \
902 1.1 christos } while (YYID (0))
903 1.1 christos
904 1.1 christos
905 1.1 christos /*--------------------------------.
906 1.1 christos | Print this symbol on YYOUTPUT. |
907 1.1 christos `--------------------------------*/
908 1.1 christos
909 1.1 christos /*ARGSUSED*/
910 1.1 christos #if (defined __STDC__ || defined __C99__FUNC__ \
911 1.1 christos || defined __cplusplus || defined _MSC_VER)
912 1.1 christos static void
913 1.1 christos yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
914 1.1 christos #else
915 1.1 christos static void
916 1.1 christos yy_symbol_value_print (yyoutput, yytype, yyvaluep)
917 1.1 christos FILE *yyoutput;
918 1.1 christos int yytype;
919 1.1 christos YYSTYPE const * const yyvaluep;
920 1.1 christos #endif
921 1.1 christos {
922 1.1 christos if (!yyvaluep)
923 1.1 christos return;
924 1.1 christos # ifdef YYPRINT
925 1.1 christos if (yytype < YYNTOKENS)
926 1.1 christos YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
927 1.1 christos # else
928 1.1 christos YYUSE (yyoutput);
929 1.1 christos # endif
930 1.1 christos switch (yytype)
931 1.1 christos {
932 1.1 christos default:
933 1.1 christos break;
934 1.1 christos }
935 1.1 christos }
936 1.1 christos
937 1.1 christos
938 1.1 christos /*--------------------------------.
939 1.1 christos | Print this symbol on YYOUTPUT. |
940 1.1 christos `--------------------------------*/
941 1.1 christos
942 1.1 christos #if (defined __STDC__ || defined __C99__FUNC__ \
943 1.1 christos || defined __cplusplus || defined _MSC_VER)
944 1.1 christos static void
945 1.1 christos yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
946 1.1 christos #else
947 1.1 christos static void
948 1.1 christos yy_symbol_print (yyoutput, yytype, yyvaluep)
949 1.1 christos FILE *yyoutput;
950 1.1 christos int yytype;
951 1.1 christos YYSTYPE const * const yyvaluep;
952 1.1 christos #endif
953 1.1 christos {
954 1.1 christos if (yytype < YYNTOKENS)
955 1.1 christos YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
956 1.1 christos else
957 1.1 christos YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
958 1.1 christos
959 1.1 christos yy_symbol_value_print (yyoutput, yytype, yyvaluep);
960 1.1 christos YYFPRINTF (yyoutput, ")");
961 1.1 christos }
962 1.1 christos
963 1.1 christos /*------------------------------------------------------------------.
964 1.1 christos | yy_stack_print -- Print the state stack from its BOTTOM up to its |
965 1.1 christos | TOP (included). |
966 1.1 christos `------------------------------------------------------------------*/
967 1.1 christos
968 1.1 christos #if (defined __STDC__ || defined __C99__FUNC__ \
969 1.1 christos || defined __cplusplus || defined _MSC_VER)
970 1.1 christos static void
971 1.1 christos yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
972 1.1 christos #else
973 1.1 christos static void
974 1.1 christos yy_stack_print (yybottom, yytop)
975 1.1 christos yytype_int16 *yybottom;
976 1.1 christos yytype_int16 *yytop;
977 1.1 christos #endif
978 1.1 christos {
979 1.1 christos YYFPRINTF (stderr, "Stack now");
980 1.1 christos for (; yybottom <= yytop; yybottom++)
981 1.1 christos {
982 1.1 christos int yybot = *yybottom;
983 1.1 christos YYFPRINTF (stderr, " %d", yybot);
984 1.1 christos }
985 1.1 christos YYFPRINTF (stderr, "\n");
986 1.1 christos }
987 1.1 christos
988 1.1 christos # define YY_STACK_PRINT(Bottom, Top) \
989 1.1 christos do { \
990 1.1 christos if (yydebug) \
991 1.1 christos yy_stack_print ((Bottom), (Top)); \
992 1.1 christos } while (YYID (0))
993 1.1 christos
994 1.1 christos
995 1.1 christos /*------------------------------------------------.
996 1.1 christos | Report that the YYRULE is going to be reduced. |
997 1.1 christos `------------------------------------------------*/
998 1.1 christos
999 1.1 christos #if (defined __STDC__ || defined __C99__FUNC__ \
1000 1.1 christos || defined __cplusplus || defined _MSC_VER)
1001 1.1 christos static void
1002 1.1 christos yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1003 1.1 christos #else
1004 1.1 christos static void
1005 1.1 christos yy_reduce_print (yyvsp, yyrule)
1006 1.1 christos YYSTYPE *yyvsp;
1007 1.1 christos int yyrule;
1008 1.1 christos #endif
1009 1.1 christos {
1010 1.1 christos int yynrhs = yyr2[yyrule];
1011 1.1 christos int yyi;
1012 1.1 christos unsigned long int yylno = yyrline[yyrule];
1013 1.1 christos YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1014 1.1 christos yyrule - 1, yylno);
1015 1.1 christos /* The symbols being reduced. */
1016 1.1 christos for (yyi = 0; yyi < yynrhs; yyi++)
1017 1.1 christos {
1018 1.1 christos YYFPRINTF (stderr, " $%d = ", yyi + 1);
1019 1.1 christos yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1020 1.1 christos &(yyvsp[(yyi + 1) - (yynrhs)])
1021 1.1 christos );
1022 1.1 christos YYFPRINTF (stderr, "\n");
1023 1.1 christos }
1024 1.1 christos }
1025 1.1 christos
1026 1.1 christos # define YY_REDUCE_PRINT(Rule) \
1027 1.1 christos do { \
1028 1.1 christos if (yydebug) \
1029 1.1 christos yy_reduce_print (yyvsp, Rule); \
1030 1.1 christos } while (YYID (0))
1031 1.1 christos
1032 1.1 christos /* Nonzero means print parse trace. It is left uninitialized so that
1033 1.1 christos multiple parsers can coexist. */
1034 1.1 christos int yydebug;
1035 1.1 christos #else /* !YYDEBUG */
1036 1.1 christos # define YYDPRINTF(Args)
1037 1.1 christos # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1038 1.1 christos # define YY_STACK_PRINT(Bottom, Top)
1039 1.1 christos # define YY_REDUCE_PRINT(Rule)
1040 1.1 christos #endif /* !YYDEBUG */
1041 1.1 christos
1042 1.1 christos
1043 1.1 christos /* YYINITDEPTH -- initial size of the parser's stacks. */
1044 1.1 christos #ifndef YYINITDEPTH
1045 1.1 christos # define YYINITDEPTH 200
1046 1.1 christos #endif
1047 1.1 christos
1048 1.1 christos /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1049 1.1 christos if the built-in stack extension method is used).
1050 1.1 christos
1051 1.1 christos Do not make this value too large; the results are undefined if
1052 1.1 christos YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1053 1.1 christos evaluated with infinite-precision integer arithmetic. */
1054 1.1 christos
1055 1.1 christos #ifndef YYMAXDEPTH
1056 1.1 christos # define YYMAXDEPTH 10000
1057 1.1 christos #endif
1058 1.1 christos
1059 1.1 christos
1060 1.1 christos
1062 1.1 christos #if YYERROR_VERBOSE
1063 1.1 christos
1064 1.1 christos # ifndef yystrlen
1065 1.1 christos # if defined __GLIBC__ && defined _STRING_H
1066 1.1 christos # define yystrlen strlen
1067 1.1 christos # else
1068 1.1 christos /* Return the length of YYSTR. */
1069 1.1 christos #if (defined __STDC__ || defined __C99__FUNC__ \
1070 1.1 christos || defined __cplusplus || defined _MSC_VER)
1071 1.1 christos static YYSIZE_T
1072 1.1 christos yystrlen (const char *yystr)
1073 1.1 christos #else
1074 1.1 christos static YYSIZE_T
1075 1.1 christos yystrlen (yystr)
1076 1.1 christos const char *yystr;
1077 1.1 christos #endif
1078 1.1 christos {
1079 1.1 christos YYSIZE_T yylen;
1080 1.1 christos for (yylen = 0; yystr[yylen]; yylen++)
1081 1.1 christos continue;
1082 1.1 christos return yylen;
1083 1.1 christos }
1084 1.1 christos # endif
1085 1.1 christos # endif
1086 1.1 christos
1087 1.1 christos # ifndef yystpcpy
1088 1.1 christos # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1089 1.1 christos # define yystpcpy stpcpy
1090 1.1 christos # else
1091 1.1 christos /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1092 1.1 christos YYDEST. */
1093 1.1 christos #if (defined __STDC__ || defined __C99__FUNC__ \
1094 1.1 christos || defined __cplusplus || defined _MSC_VER)
1095 1.1 christos static char *
1096 1.1 christos yystpcpy (char *yydest, const char *yysrc)
1097 1.1 christos #else
1098 1.1 christos static char *
1099 1.1 christos yystpcpy (yydest, yysrc)
1100 1.1 christos char *yydest;
1101 1.1 christos const char *yysrc;
1102 1.1 christos #endif
1103 1.1 christos {
1104 1.1 christos char *yyd = yydest;
1105 1.1 christos const char *yys = yysrc;
1106 1.1 christos
1107 1.1 christos while ((*yyd++ = *yys++) != '\0')
1108 1.1 christos continue;
1109 1.1 christos
1110 1.1 christos return yyd - 1;
1111 1.1 christos }
1112 1.1 christos # endif
1113 1.1 christos # endif
1114 1.1 christos
1115 1.1 christos # ifndef yytnamerr
1116 1.1 christos /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1117 1.1 christos quotes and backslashes, so that it's suitable for yyerror. The
1118 1.1 christos heuristic is that double-quoting is unnecessary unless the string
1119 1.1 christos contains an apostrophe, a comma, or backslash (other than
1120 1.1 christos backslash-backslash). YYSTR is taken from yytname. If YYRES is
1121 1.1 christos null, do not copy; instead, return the length of what the result
1122 1.1 christos would have been. */
1123 1.1 christos static YYSIZE_T
1124 1.1 christos yytnamerr (char *yyres, const char *yystr)
1125 1.1 christos {
1126 1.1 christos if (*yystr == '"')
1127 1.1 christos {
1128 1.1 christos YYSIZE_T yyn = 0;
1129 1.1 christos char const *yyp = yystr;
1130 1.1 christos
1131 1.1 christos for (;;)
1132 1.1 christos switch (*++yyp)
1133 1.1 christos {
1134 1.1 christos case '\'':
1135 1.1 christos case ',':
1136 1.1 christos goto do_not_strip_quotes;
1137 1.1 christos
1138 1.1 christos case '\\':
1139 1.1 christos if (*++yyp != '\\')
1140 1.1 christos goto do_not_strip_quotes;
1141 1.1 christos /* Fall through. */
1142 1.1 christos default:
1143 1.1 christos if (yyres)
1144 1.1 christos yyres[yyn] = *yyp;
1145 1.1 christos yyn++;
1146 1.1 christos break;
1147 1.1 christos
1148 1.1 christos case '"':
1149 1.1 christos if (yyres)
1150 1.1 christos yyres[yyn] = '\0';
1151 1.1 christos return yyn;
1152 1.1 christos }
1153 1.1 christos do_not_strip_quotes: ;
1154 1.1 christos }
1155 1.1 christos
1156 1.1 christos if (! yyres)
1157 1.1 christos return yystrlen (yystr);
1158 1.1 christos
1159 1.1 christos return yystpcpy (yyres, yystr) - yyres;
1160 1.1 christos }
1161 1.1 christos # endif
1162 1.1 christos
1163 1.1 christos /* Copy into YYRESULT an error message about the unexpected token
1164 1.1 christos YYCHAR while in state YYSTATE. Return the number of bytes copied,
1165 1.1 christos including the terminating null byte. If YYRESULT is null, do not
1166 1.1 christos copy anything; just return the number of bytes that would be
1167 1.1 christos copied. As a special case, return 0 if an ordinary "syntax error"
1168 1.1 christos message will do. Return YYSIZE_MAXIMUM if overflow occurs during
1169 1.1 christos size calculation. */
1170 1.1 christos static YYSIZE_T
1171 1.1 christos yysyntax_error (char *yyresult, int yystate, int yychar)
1172 1.1 christos {
1173 1.1 christos int yyn = yypact[yystate];
1174 1.1 christos
1175 1.1 christos if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1176 1.1 christos return 0;
1177 1.1 christos else
1178 1.1 christos {
1179 1.1 christos int yytype = YYTRANSLATE (yychar);
1180 1.1 christos YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1181 1.1 christos YYSIZE_T yysize = yysize0;
1182 1.1 christos YYSIZE_T yysize1;
1183 1.1 christos int yysize_overflow = 0;
1184 1.1 christos enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1185 1.1 christos char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1186 1.1 christos int yyx;
1187 1.1 christos
1188 1.1 christos # if 0
1189 1.1 christos /* This is so xgettext sees the translatable formats that are
1190 1.1 christos constructed on the fly. */
1191 1.1 christos YY_("syntax error, unexpected %s");
1192 1.1 christos YY_("syntax error, unexpected %s, expecting %s");
1193 1.1 christos YY_("syntax error, unexpected %s, expecting %s or %s");
1194 1.1 christos YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1195 1.1 christos YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1196 1.1 christos # endif
1197 1.1 christos char *yyfmt;
1198 1.1 christos char const *yyf;
1199 1.1 christos static char const yyunexpected[] = "syntax error, unexpected %s";
1200 1.1 christos static char const yyexpecting[] = ", expecting %s";
1201 1.1 christos static char const yyor[] = " or %s";
1202 1.1 christos char yyformat[sizeof yyunexpected
1203 1.1 christos + sizeof yyexpecting - 1
1204 1.1 christos + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1205 1.1 christos * (sizeof yyor - 1))];
1206 1.1 christos char const *yyprefix = yyexpecting;
1207 1.1 christos
1208 1.1 christos /* Start YYX at -YYN if negative to avoid negative indexes in
1209 1.1 christos YYCHECK. */
1210 1.1 christos int yyxbegin = yyn < 0 ? -yyn : 0;
1211 1.1 christos
1212 1.1 christos /* Stay within bounds of both yycheck and yytname. */
1213 1.1 christos int yychecklim = YYLAST - yyn + 1;
1214 1.1 christos int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1215 1.1 christos int yycount = 1;
1216 1.1 christos
1217 1.1 christos yyarg[0] = yytname[yytype];
1218 1.1 christos yyfmt = yystpcpy (yyformat, yyunexpected);
1219 1.1 christos
1220 1.1 christos for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1221 1.1 christos if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1222 1.1 christos {
1223 1.1 christos if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1224 1.1 christos {
1225 1.1 christos yycount = 1;
1226 1.1 christos yysize = yysize0;
1227 1.1 christos yyformat[sizeof yyunexpected - 1] = '\0';
1228 1.1 christos break;
1229 1.1 christos }
1230 1.1 christos yyarg[yycount++] = yytname[yyx];
1231 1.1 christos yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1232 1.1 christos yysize_overflow |= (yysize1 < yysize);
1233 1.1 christos yysize = yysize1;
1234 1.1 christos yyfmt = yystpcpy (yyfmt, yyprefix);
1235 1.1 christos yyprefix = yyor;
1236 1.1 christos }
1237 1.1 christos
1238 1.1 christos yyf = YY_(yyformat);
1239 1.1 christos yysize1 = yysize + yystrlen (yyf);
1240 1.1 christos yysize_overflow |= (yysize1 < yysize);
1241 1.1 christos yysize = yysize1;
1242 1.1 christos
1243 1.1 christos if (yysize_overflow)
1244 1.1 christos return YYSIZE_MAXIMUM;
1245 1.1 christos
1246 1.1 christos if (yyresult)
1247 1.1 christos {
1248 1.1 christos /* Avoid sprintf, as that infringes on the user's name space.
1249 1.1 christos Don't have undefined behavior even if the translation
1250 1.1 christos produced a string with the wrong number of "%s"s. */
1251 1.1 christos char *yyp = yyresult;
1252 1.1 christos int yyi = 0;
1253 1.1 christos while ((*yyp = *yyf) != '\0')
1254 1.1 christos {
1255 1.1 christos if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1256 1.1 christos {
1257 1.1 christos yyp += yytnamerr (yyp, yyarg[yyi++]);
1258 1.1 christos yyf += 2;
1259 1.1 christos }
1260 1.1 christos else
1261 1.1 christos {
1262 1.1 christos yyp++;
1263 1.1 christos yyf++;
1264 1.1 christos }
1265 1.1 christos }
1266 1.1 christos }
1267 1.1 christos return yysize;
1268 1.1 christos }
1269 1.1 christos }
1270 1.1 christos #endif /* YYERROR_VERBOSE */
1271 1.1 christos
1272 1.1 christos
1274 1.1 christos /*-----------------------------------------------.
1275 1.1 christos | Release the memory associated to this symbol. |
1276 1.1 christos `-----------------------------------------------*/
1277 1.1 christos
1278 1.1 christos /*ARGSUSED*/
1279 1.1 christos #if (defined __STDC__ || defined __C99__FUNC__ \
1280 1.1 christos || defined __cplusplus || defined _MSC_VER)
1281 1.1 christos static void
1282 1.1 christos yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1283 1.1 christos #else
1284 1.1 christos static void
1285 1.1 christos yydestruct (yymsg, yytype, yyvaluep)
1286 1.1 christos const char *yymsg;
1287 1.1 christos int yytype;
1288 1.1 christos YYSTYPE *yyvaluep;
1289 1.1 christos #endif
1290 1.1 christos {
1291 1.1 christos YYUSE (yyvaluep);
1292 1.1 christos
1293 1.1 christos if (!yymsg)
1294 1.1 christos yymsg = "Deleting";
1295 1.1 christos YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1296 1.1 christos
1297 1.1 christos switch (yytype)
1298 1.1 christos {
1299 1.1 christos
1300 1.1 christos default:
1301 1.1 christos break;
1302 1.1 christos }
1303 1.1 christos }
1304 1.1 christos
1305 1.1 christos /* Prevent warnings from -Wmissing-prototypes. */
1306 1.1 christos #ifdef YYPARSE_PARAM
1307 1.1 christos #if defined __STDC__ || defined __cplusplus
1308 1.1 christos int yyparse (void *YYPARSE_PARAM);
1309 1.1 christos #else
1310 1.1 christos int yyparse ();
1311 1.1 christos #endif
1312 1.1 christos #else /* ! YYPARSE_PARAM */
1313 1.1 christos #if defined __STDC__ || defined __cplusplus
1314 1.1 christos int yyparse (void);
1315 1.1 christos #else
1316 1.1 christos int yyparse ();
1317 1.1 christos #endif
1318 1.1 christos #endif /* ! YYPARSE_PARAM */
1319 1.1 christos
1320 1.1 christos
1321 1.1 christos /* The lookahead symbol. */
1322 1.1 christos int yychar;
1323 1.1 christos
1324 1.1 christos /* The semantic value of the lookahead symbol. */
1325 1.1 christos YYSTYPE yylval;
1326 1.1 christos
1327 1.1 christos /* Number of syntax errors so far. */
1328 1.1 christos int yynerrs;
1329 1.1 christos
1330 1.1 christos
1331 1.1 christos
1332 1.1 christos /*-------------------------.
1333 1.1 christos | yyparse or yypush_parse. |
1334 1.1 christos `-------------------------*/
1335 1.1 christos
1336 1.1 christos #ifdef YYPARSE_PARAM
1337 1.1 christos #if (defined __STDC__ || defined __C99__FUNC__ \
1338 1.1 christos || defined __cplusplus || defined _MSC_VER)
1339 1.1 christos int
1340 1.1 christos yyparse (void *YYPARSE_PARAM)
1341 1.1 christos #else
1342 1.1 christos int
1343 1.1 christos yyparse (YYPARSE_PARAM)
1344 1.1 christos void *YYPARSE_PARAM;
1345 1.1 christos #endif
1346 1.1 christos #else /* ! YYPARSE_PARAM */
1347 1.1 christos #if (defined __STDC__ || defined __C99__FUNC__ \
1348 1.1 christos || defined __cplusplus || defined _MSC_VER)
1349 1.1 christos int
1350 1.1 christos yyparse (void)
1351 1.1 christos #else
1352 1.1 christos int
1353 1.1 christos yyparse ()
1354 1.1 christos
1355 1.1 christos #endif
1356 1.1 christos #endif
1357 1.1 christos {
1358 1.1 christos
1359 1.1 christos
1360 1.1 christos int yystate;
1361 1.1 christos /* Number of tokens to shift before error messages enabled. */
1362 1.1 christos int yyerrstatus;
1363 1.1 christos
1364 1.1 christos /* The stacks and their tools:
1365 1.1 christos `yyss': related to states.
1366 1.1 christos `yyvs': related to semantic values.
1367 1.1 christos
1368 1.1 christos Refer to the stacks thru separate pointers, to allow yyoverflow
1369 1.1 christos to reallocate them elsewhere. */
1370 1.1 christos
1371 1.1 christos /* The state stack. */
1372 1.1 christos yytype_int16 yyssa[YYINITDEPTH];
1373 1.1 christos yytype_int16 *yyss;
1374 1.1 christos yytype_int16 *yyssp;
1375 1.1 christos
1376 1.1 christos /* The semantic value stack. */
1377 1.1 christos YYSTYPE yyvsa[YYINITDEPTH];
1378 1.1 christos YYSTYPE *yyvs;
1379 1.1 christos YYSTYPE *yyvsp;
1380 1.1 christos
1381 1.1 christos YYSIZE_T yystacksize;
1382 1.1 christos
1383 1.1 christos int yyn;
1384 1.1 christos int yyresult;
1385 1.1 christos /* Lookahead token as an internal (translated) token number. */
1386 1.1 christos int yytoken;
1387 1.1 christos /* The variables used to return semantic value and location from the
1388 1.1 christos action routines. */
1389 1.1 christos YYSTYPE yyval;
1390 1.1 christos
1391 1.1 christos #if YYERROR_VERBOSE
1392 1.1 christos /* Buffer for error messages, and its allocated size. */
1393 1.1 christos char yymsgbuf[128];
1394 1.1 christos char *yymsg = yymsgbuf;
1395 1.1 christos YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1396 1.1 christos #endif
1397 1.1 christos
1398 1.1 christos #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1399 1.1 christos
1400 1.1 christos /* The number of symbols on the RHS of the reduced rule.
1401 1.1 christos Keep to zero when no symbol should be popped. */
1402 1.1 christos int yylen = 0;
1403 1.1 christos
1404 1.1 christos yytoken = 0;
1405 1.1 christos yyss = yyssa;
1406 1.1 christos yyvs = yyvsa;
1407 1.1 christos yystacksize = YYINITDEPTH;
1408 1.1 christos
1409 1.1 christos YYDPRINTF ((stderr, "Starting parse\n"));
1410 1.1 christos
1411 1.1 christos yystate = 0;
1412 1.1 christos yyerrstatus = 0;
1413 1.1 christos yynerrs = 0;
1414 1.1 christos yychar = YYEMPTY; /* Cause a token to be read. */
1415 1.1 christos
1416 1.1 christos /* Initialize stack pointers.
1417 1.1 christos Waste one element of value and location stack
1418 1.1 christos so that they stay on the same level as the state stack.
1419 1.1 christos The wasted elements are never initialized. */
1420 1.1 christos yyssp = yyss;
1421 1.1 christos yyvsp = yyvs;
1422 1.1 christos
1423 1.1 christos goto yysetstate;
1424 1.1 christos
1425 1.1 christos /*------------------------------------------------------------.
1426 1.1 christos | yynewstate -- Push a new state, which is found in yystate. |
1427 1.1 christos `------------------------------------------------------------*/
1428 1.1 christos yynewstate:
1429 1.1 christos /* In all cases, when you get here, the value and location stacks
1430 1.1 christos have just been pushed. So pushing a state here evens the stacks. */
1431 1.1 christos yyssp++;
1432 1.1 christos
1433 1.1 christos yysetstate:
1434 1.1 christos *yyssp = yystate;
1435 1.1 christos
1436 1.1 christos if (yyss + yystacksize - 1 <= yyssp)
1437 1.1 christos {
1438 1.1 christos /* Get the current used size of the three stacks, in elements. */
1439 1.1 christos YYSIZE_T yysize = yyssp - yyss + 1;
1440 1.1 christos
1441 1.1 christos #ifdef yyoverflow
1442 1.1 christos {
1443 1.1 christos /* Give user a chance to reallocate the stack. Use copies of
1444 1.1 christos these so that the &'s don't force the real ones into
1445 1.1 christos memory. */
1446 1.1 christos YYSTYPE *yyvs1 = yyvs;
1447 1.1 christos yytype_int16 *yyss1 = yyss;
1448 1.1 christos
1449 1.1 christos /* Each stack pointer address is followed by the size of the
1450 1.1 christos data in use in that stack, in bytes. This used to be a
1451 1.1 christos conditional around just the two extra args, but that might
1452 1.1 christos be undefined if yyoverflow is a macro. */
1453 1.1 christos yyoverflow (YY_("memory exhausted"),
1454 1.1 christos &yyss1, yysize * sizeof (*yyssp),
1455 1.1 christos &yyvs1, yysize * sizeof (*yyvsp),
1456 1.1 christos &yystacksize);
1457 1.1 christos
1458 1.1 christos yyss = yyss1;
1459 1.1 christos yyvs = yyvs1;
1460 1.1 christos }
1461 1.1 christos #else /* no yyoverflow */
1462 1.1 christos # ifndef YYSTACK_RELOCATE
1463 1.1 christos goto yyexhaustedlab;
1464 1.1 christos # else
1465 1.1 christos /* Extend the stack our own way. */
1466 1.1 christos if (YYMAXDEPTH <= yystacksize)
1467 1.1 christos goto yyexhaustedlab;
1468 1.1 christos yystacksize *= 2;
1469 1.1 christos if (YYMAXDEPTH < yystacksize)
1470 1.1 christos yystacksize = YYMAXDEPTH;
1471 1.1 christos
1472 1.1 christos {
1473 1.1 christos yytype_int16 *yyss1 = yyss;
1474 1.1 christos union yyalloc *yyptr =
1475 1.1 christos (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1476 1.1 christos if (! yyptr)
1477 1.1 christos goto yyexhaustedlab;
1478 1.1 christos YYSTACK_RELOCATE (yyss_alloc, yyss);
1479 1.1 christos YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1480 1.1 christos # undef YYSTACK_RELOCATE
1481 1.1 christos if (yyss1 != yyssa)
1482 1.1 christos YYSTACK_FREE (yyss1);
1483 1.1 christos }
1484 1.1 christos # endif
1485 1.1 christos #endif /* no yyoverflow */
1486 1.1 christos
1487 1.1 christos yyssp = yyss + yysize - 1;
1488 1.1 christos yyvsp = yyvs + yysize - 1;
1489 1.1 christos
1490 1.1 christos YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1491 1.1 christos (unsigned long int) yystacksize));
1492 1.1 christos
1493 1.1 christos if (yyss + yystacksize - 1 <= yyssp)
1494 1.1 christos YYABORT;
1495 1.1 christos }
1496 1.1 christos
1497 1.1 christos YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1498 1.1 christos
1499 1.1 christos if (yystate == YYFINAL)
1500 1.1 christos YYACCEPT;
1501 1.1 christos
1502 1.1 christos goto yybackup;
1503 1.1 christos
1504 1.1 christos /*-----------.
1505 1.1 christos | yybackup. |
1506 1.1 christos `-----------*/
1507 1.1 christos yybackup:
1508 1.1 christos
1509 1.1 christos /* Do appropriate processing given the current state. Read a
1510 1.1 christos lookahead token if we need one and don't already have one. */
1511 1.1 christos
1512 1.1 christos /* First try to decide what to do without reference to lookahead token. */
1513 1.1 christos yyn = yypact[yystate];
1514 1.1 christos if (yyn == YYPACT_NINF)
1515 1.1 christos goto yydefault;
1516 1.1 christos
1517 1.1 christos /* Not known => get a lookahead token if don't already have one. */
1518 1.1 christos
1519 1.1 christos /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1520 1.1 christos if (yychar == YYEMPTY)
1521 1.1 christos {
1522 1.1 christos YYDPRINTF ((stderr, "Reading a token: "));
1523 1.1 christos yychar = YYLEX;
1524 1.1 christos }
1525 1.1 christos
1526 1.1 christos if (yychar <= YYEOF)
1527 1.1 christos {
1528 1.1 christos yychar = yytoken = YYEOF;
1529 1.1 christos YYDPRINTF ((stderr, "Now at end of input.\n"));
1530 1.1 christos }
1531 1.1 christos else
1532 1.1 christos {
1533 1.1 christos yytoken = YYTRANSLATE (yychar);
1534 1.1 christos YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1535 1.1 christos }
1536 1.1 christos
1537 1.1 christos /* If the proper action on seeing token YYTOKEN is to reduce or to
1538 1.1 christos detect an error, take that action. */
1539 1.1 christos yyn += yytoken;
1540 1.1 christos if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1541 1.1 christos goto yydefault;
1542 1.1 christos yyn = yytable[yyn];
1543 1.1 christos if (yyn <= 0)
1544 1.1 christos {
1545 1.1 christos if (yyn == 0 || yyn == YYTABLE_NINF)
1546 1.1 christos goto yyerrlab;
1547 1.1 christos yyn = -yyn;
1548 1.1 christos goto yyreduce;
1549 1.1 christos }
1550 1.1 christos
1551 1.1 christos /* Count tokens shifted since error; after three, turn off error
1552 1.1 christos status. */
1553 1.1 christos if (yyerrstatus)
1554 1.1 christos yyerrstatus--;
1555 1.1 christos
1556 1.1 christos /* Shift the lookahead token. */
1557 1.1 christos YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1558 1.1 christos
1559 1.1 christos /* Discard the shifted token. */
1560 1.1 christos yychar = YYEMPTY;
1561 1.1 christos
1562 1.1 christos yystate = yyn;
1563 1.1 christos *++yyvsp = yylval;
1564 1.1 christos
1565 1.1 christos goto yynewstate;
1566 1.1 christos
1567 1.1 christos
1568 1.1 christos /*-----------------------------------------------------------.
1569 1.1 christos | yydefault -- do the default action for the current state. |
1570 1.1 christos `-----------------------------------------------------------*/
1571 1.1 christos yydefault:
1572 1.1 christos yyn = yydefact[yystate];
1573 1.1 christos if (yyn == 0)
1574 1.1 christos goto yyerrlab;
1575 1.1 christos goto yyreduce;
1576 1.1 christos
1577 1.1 christos
1578 1.1 christos /*-----------------------------.
1579 1.1 christos | yyreduce -- Do a reduction. |
1580 1.1 christos `-----------------------------*/
1581 1.1 christos yyreduce:
1582 1.1 christos /* yyn is the number of a rule to reduce with. */
1583 1.1 christos yylen = yyr2[yyn];
1584 1.1 christos
1585 1.1 christos /* If YYLEN is nonzero, implement the default value of the action:
1586 1.1 christos `$$ = $1'.
1587 1.1 christos
1588 1.1 christos Otherwise, the following line sets YYVAL to garbage.
1589 1.1 christos This behavior is undocumented and Bison
1590 1.1 christos users should not rely upon it. Assigning to YYVAL
1591 1.1 christos unconditionally makes the parser a bit smaller, and it avoids a
1592 1.1 christos GCC warning that YYVAL may be used uninitialized. */
1593 1.1 christos yyval = yyvsp[1-yylen];
1594 1.1 christos
1595 1.1 christos
1596 1.1 christos YY_REDUCE_PRINT (yyn);
1597 1.1 christos switch (yyn)
1598 1.1 christos {
1599 1.1 christos case 2:
1600 1.1 christos
1601 1.1 christos /* Line 1455 of yacc.c */
1602 1.1 christos #line 236 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1603 1.1 christos { DtParserResult=(yyvsp[(1) - (2)].value); return 0; ;}
1604 1.1 christos break;
1605 1.1 christos
1606 1.1 christos case 3:
1607 1.1 christos
1608 1.1 christos /* Line 1455 of yacc.c */
1609 1.1 christos #line 237 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1610 1.1 christos { DtParserResult=(yyvsp[(1) - (2)].value); return 0; ;}
1611 1.1 christos break;
1612 1.1 christos
1613 1.1 christos case 4:
1614 1.1 christos
1615 1.1 christos /* Line 1455 of yacc.c */
1616 1.1 christos #line 244 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1617 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(2) - (2)].value), OP_EXP_LOGICAL_NOT, (yyvsp[(2) - (2)].value));;}
1618 1.1 christos break;
1619 1.1 christos
1620 1.1 christos case 5:
1621 1.1 christos
1622 1.1 christos /* Line 1455 of yacc.c */
1623 1.1 christos #line 245 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1624 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(2) - (2)].value), OP_EXP_ONES_COMPLIMENT, (yyvsp[(2) - (2)].value));;}
1625 1.1 christos break;
1626 1.1 christos
1627 1.1 christos case 6:
1628 1.1 christos
1629 1.1 christos /* Line 1455 of yacc.c */
1630 1.1 christos #line 249 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1631 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_MULTIPLY, (yyvsp[(3) - (3)].value));;}
1632 1.1 christos break;
1633 1.1 christos
1634 1.1 christos case 7:
1635 1.1 christos
1636 1.1 christos /* Line 1455 of yacc.c */
1637 1.1 christos #line 250 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1638 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_DIVIDE, (yyvsp[(3) - (3)].value));;}
1639 1.1 christos break;
1640 1.1 christos
1641 1.1 christos case 8:
1642 1.1 christos
1643 1.1 christos /* Line 1455 of yacc.c */
1644 1.1 christos #line 251 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1645 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_MODULO, (yyvsp[(3) - (3)].value));;}
1646 1.1 christos break;
1647 1.1 christos
1648 1.1 christos case 9:
1649 1.1 christos
1650 1.1 christos /* Line 1455 of yacc.c */
1651 1.1 christos #line 252 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1652 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_ADD, (yyvsp[(3) - (3)].value));;}
1653 1.1 christos break;
1654 1.1 christos
1655 1.1 christos case 10:
1656 1.1 christos
1657 1.1 christos /* Line 1455 of yacc.c */
1658 1.1 christos #line 253 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1659 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_SUBTRACT, (yyvsp[(3) - (3)].value));;}
1660 1.1 christos break;
1661 1.1 christos
1662 1.1 christos case 11:
1663 1.1 christos
1664 1.1 christos /* Line 1455 of yacc.c */
1665 1.1 christos #line 254 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1666 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_SHIFT_RIGHT, (yyvsp[(3) - (3)].value));;}
1667 1.1 christos break;
1668 1.1 christos
1669 1.1 christos case 12:
1670 1.1 christos
1671 1.1 christos /* Line 1455 of yacc.c */
1672 1.1 christos #line 255 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1673 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_SHIFT_LEFT, (yyvsp[(3) - (3)].value));;}
1674 1.1 christos break;
1675 1.1 christos
1676 1.1 christos case 13:
1677 1.1 christos
1678 1.1 christos /* Line 1455 of yacc.c */
1679 1.1 christos #line 256 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1680 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_GREATER, (yyvsp[(3) - (3)].value));;}
1681 1.1 christos break;
1682 1.1 christos
1683 1.1 christos case 14:
1684 1.1 christos
1685 1.1 christos /* Line 1455 of yacc.c */
1686 1.1 christos #line 257 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1687 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_LESS, (yyvsp[(3) - (3)].value));;}
1688 1.1 christos break;
1689 1.1 christos
1690 1.1 christos case 15:
1691 1.1 christos
1692 1.1 christos /* Line 1455 of yacc.c */
1693 1.1 christos #line 258 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1694 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_GREATER_EQUAL, (yyvsp[(3) - (3)].value));;}
1695 1.1 christos break;
1696 1.1 christos
1697 1.1 christos case 16:
1698 1.1 christos
1699 1.1 christos /* Line 1455 of yacc.c */
1700 1.1 christos #line 259 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1701 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_LESS_EQUAL, (yyvsp[(3) - (3)].value));;}
1702 1.1 christos break;
1703 1.1 christos
1704 1.1 christos case 17:
1705 1.1 christos
1706 1.1 christos /* Line 1455 of yacc.c */
1707 1.1 christos #line 260 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1708 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_EQUAL, (yyvsp[(3) - (3)].value));;}
1709 1.1 christos break;
1710 1.1 christos
1711 1.1 christos case 18:
1712 1.1 christos
1713 1.1 christos /* Line 1455 of yacc.c */
1714 1.1 christos #line 261 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1715 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_NOT_EQUAL, (yyvsp[(3) - (3)].value));;}
1716 1.1 christos break;
1717 1.1 christos
1718 1.1 christos case 19:
1719 1.1 christos
1720 1.1 christos /* Line 1455 of yacc.c */
1721 1.1 christos #line 262 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1722 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_AND, (yyvsp[(3) - (3)].value));;}
1723 1.1 christos break;
1724 1.1 christos
1725 1.1 christos case 20:
1726 1.1 christos
1727 1.1 christos /* Line 1455 of yacc.c */
1728 1.1 christos #line 263 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1729 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_XOR, (yyvsp[(3) - (3)].value));;}
1730 1.1 christos break;
1731 1.1 christos
1732 1.1 christos case 21:
1733 1.1 christos
1734 1.1 christos /* Line 1455 of yacc.c */
1735 1.1 christos #line 264 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1736 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_OR, (yyvsp[(3) - (3)].value));;}
1737 1.1 christos break;
1738 1.1 christos
1739 1.1 christos case 22:
1740 1.1 christos
1741 1.1 christos /* Line 1455 of yacc.c */
1742 1.1 christos #line 265 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1743 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_LOGICAL_AND, (yyvsp[(3) - (3)].value));;}
1744 1.1 christos break;
1745 1.1 christos
1746 1.1 christos case 23:
1747 1.1 christos
1748 1.1 christos /* Line 1455 of yacc.c */
1749 1.1 christos #line 266 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1750 1.1 christos { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), OP_EXP_LOGICAL_OR, (yyvsp[(3) - (3)].value));;}
1751 1.1 christos break;
1752 1.1 christos
1753 1.1 christos case 24:
1754 1.1 christos
1755 1.1 christos /* Line 1455 of yacc.c */
1756 1.1 christos #line 271 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1757 1.1 christos { (yyval.value) = (yyvsp[(2) - (3)].value);;}
1758 1.1 christos break;
1759 1.1 christos
1760 1.1 christos case 25:
1761 1.1 christos
1762 1.1 christos /* Line 1455 of yacc.c */
1763 1.1 christos #line 275 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1764 1.1 christos { (yyval.value) = DtResolveLabel (DtParsertext);;}
1765 1.1 christos break;
1766 1.1 christos
1767 1.1 christos case 26:
1768 1.1 christos
1769 1.1 christos /* Line 1455 of yacc.c */
1770 1.1 christos #line 286 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1771 1.1 christos { (yyval.value) = DtDoConstant (DtParsertext);;}
1772 1.1 christos break;
1773 1.1 christos
1774 1.1 christos case 27:
1775 1.1 christos
1776 1.1 christos /* Line 1455 of yacc.c */
1777 1.1 christos #line 290 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1778 1.1 christos { (yyval.value) = DtDoConstant (DtParsertext);;}
1779 1.1 christos break;
1780 1.1 christos
1781 1.1 christos case 28:
1782 1.1 christos
1783 1.1 christos /* Line 1455 of yacc.c */
1784 1.1 christos #line 294 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
1785 1.1 christos { (yyval.value) = DtDoConstant (DtParsertext);;}
1786 1.1 christos break;
1787 1.1 christos
1788 1.1 christos
1789 1.1 christos
1790 1.1 christos /* Line 1455 of yacc.c */
1791 1.1 christos #line 1790 "dtparser.tab.c"
1792 1.1 christos default: break;
1793 1.1 christos }
1794 1.1 christos YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
1795 1.1 christos
1796 1.1 christos YYPOPSTACK (yylen);
1797 1.1 christos yylen = 0;
1798 1.1 christos YY_STACK_PRINT (yyss, yyssp);
1799 1.1 christos
1800 1.1 christos *++yyvsp = yyval;
1801 1.1 christos
1802 1.1 christos /* Now `shift' the result of the reduction. Determine what state
1803 1.1 christos that goes to, based on the state we popped back to and the rule
1804 1.1 christos number reduced by. */
1805 1.1 christos
1806 1.1 christos yyn = yyr1[yyn];
1807 1.1 christos
1808 1.1 christos yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
1809 1.1 christos if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1810 1.1 christos yystate = yytable[yystate];
1811 1.1 christos else
1812 1.1 christos yystate = yydefgoto[yyn - YYNTOKENS];
1813 1.1 christos
1814 1.1 christos goto yynewstate;
1815 1.1 christos
1816 1.1 christos
1817 1.1 christos /*------------------------------------.
1818 1.1 christos | yyerrlab -- here on detecting error |
1819 1.1 christos `------------------------------------*/
1820 1.1 christos yyerrlab:
1821 1.1 christos /* If not already recovering from an error, report this error. */
1822 1.1 christos if (!yyerrstatus)
1823 1.1 christos {
1824 1.1 christos ++yynerrs;
1825 1.1 christos #if ! YYERROR_VERBOSE
1826 1.1 christos yyerror (YY_("syntax error"));
1827 1.1 christos #else
1828 1.1 christos {
1829 1.1 christos YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
1830 1.1 christos if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
1831 1.1 christos {
1832 1.1 christos YYSIZE_T yyalloc = 2 * yysize;
1833 1.1 christos if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
1834 1.1 christos yyalloc = YYSTACK_ALLOC_MAXIMUM;
1835 1.1 christos if (yymsg != yymsgbuf)
1836 1.1 christos YYSTACK_FREE (yymsg);
1837 1.1 christos yymsg = (char *) YYSTACK_ALLOC (yyalloc);
1838 1.1 christos if (yymsg)
1839 1.1 christos yymsg_alloc = yyalloc;
1840 1.1 christos else
1841 1.1 christos {
1842 1.1 christos yymsg = yymsgbuf;
1843 1.1 christos yymsg_alloc = sizeof yymsgbuf;
1844 1.1 christos }
1845 1.1 christos }
1846 1.1 christos
1847 1.1 christos if (0 < yysize && yysize <= yymsg_alloc)
1848 1.1 christos {
1849 1.1 christos (void) yysyntax_error (yymsg, yystate, yychar);
1850 1.1 christos yyerror (yymsg);
1851 1.1 christos }
1852 1.1 christos else
1853 1.1 christos {
1854 1.1 christos yyerror (YY_("syntax error"));
1855 1.1 christos if (yysize != 0)
1856 1.1 christos goto yyexhaustedlab;
1857 1.1 christos }
1858 1.1 christos }
1859 1.1 christos #endif
1860 1.1 christos }
1861 1.1 christos
1862 1.1 christos
1863 1.1 christos
1864 1.1 christos if (yyerrstatus == 3)
1865 1.1 christos {
1866 1.1 christos /* If just tried and failed to reuse lookahead token after an
1867 1.1 christos error, discard it. */
1868 1.1 christos
1869 1.1 christos if (yychar <= YYEOF)
1870 1.1 christos {
1871 1.1 christos /* Return failure if at end of input. */
1872 1.1 christos if (yychar == YYEOF)
1873 1.1 christos YYABORT;
1874 1.1 christos }
1875 1.1 christos else
1876 1.1 christos {
1877 1.1 christos yydestruct ("Error: discarding",
1878 1.1 christos yytoken, &yylval);
1879 1.1 christos yychar = YYEMPTY;
1880 1.1 christos }
1881 1.1 christos }
1882 1.1 christos
1883 1.1 christos /* Else will try to reuse lookahead token after shifting the error
1884 1.1 christos token. */
1885 1.1 christos goto yyerrlab1;
1886 1.1 christos
1887 1.1 christos
1888 1.1 christos /*---------------------------------------------------.
1889 1.1 christos | yyerrorlab -- error raised explicitly by YYERROR. |
1890 1.1 christos `---------------------------------------------------*/
1891 1.1 christos yyerrorlab:
1892 1.1 christos
1893 1.1 christos /* Pacify compilers like GCC when the user code never invokes
1894 1.1 christos YYERROR and the label yyerrorlab therefore never appears in user
1895 1.1 christos code. */
1896 1.1 christos if (/*CONSTCOND*/ 0)
1897 1.1 christos goto yyerrorlab;
1898 1.1 christos
1899 1.1 christos /* Do not reclaim the symbols of the rule which action triggered
1900 1.1 christos this YYERROR. */
1901 1.1 christos YYPOPSTACK (yylen);
1902 1.1 christos yylen = 0;
1903 1.1 christos YY_STACK_PRINT (yyss, yyssp);
1904 1.1 christos yystate = *yyssp;
1905 1.1 christos goto yyerrlab1;
1906 1.1 christos
1907 1.1 christos
1908 1.1 christos /*-------------------------------------------------------------.
1909 1.1 christos | yyerrlab1 -- common code for both syntax error and YYERROR. |
1910 1.1 christos `-------------------------------------------------------------*/
1911 1.1 christos yyerrlab1:
1912 1.1 christos yyerrstatus = 3; /* Each real token shifted decrements this. */
1913 1.1 christos
1914 1.1 christos for (;;)
1915 1.1 christos {
1916 1.1 christos yyn = yypact[yystate];
1917 1.1 christos if (yyn != YYPACT_NINF)
1918 1.1 christos {
1919 1.1 christos yyn += YYTERROR;
1920 1.1 christos if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
1921 1.1 christos {
1922 1.1 christos yyn = yytable[yyn];
1923 1.1 christos if (0 < yyn)
1924 1.1 christos break;
1925 1.1 christos }
1926 1.1 christos }
1927 1.1 christos
1928 1.1 christos /* Pop the current state because it cannot handle the error token. */
1929 1.1 christos if (yyssp == yyss)
1930 1.1 christos YYABORT;
1931 1.1 christos
1932 1.1 christos
1933 1.1 christos yydestruct ("Error: popping",
1934 1.1 christos yystos[yystate], yyvsp);
1935 1.1 christos YYPOPSTACK (1);
1936 1.1 christos yystate = *yyssp;
1937 1.1 christos YY_STACK_PRINT (yyss, yyssp);
1938 1.1 christos }
1939 1.1 christos
1940 1.1 christos *++yyvsp = yylval;
1941 1.1 christos
1942 1.1 christos
1943 1.1 christos /* Shift the error token. */
1944 1.1 christos YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
1945 1.1 christos
1946 1.1 christos yystate = yyn;
1947 1.1 christos goto yynewstate;
1948 1.1 christos
1949 1.1 christos
1950 1.1 christos /*-------------------------------------.
1951 1.1 christos | yyacceptlab -- YYACCEPT comes here. |
1952 1.1 christos `-------------------------------------*/
1953 1.1 christos yyacceptlab:
1954 1.1 christos yyresult = 0;
1955 1.1 christos goto yyreturn;
1956 1.1 christos
1957 1.1 christos /*-----------------------------------.
1958 1.1 christos | yyabortlab -- YYABORT comes here. |
1959 1.1 christos `-----------------------------------*/
1960 1.1 christos yyabortlab:
1961 1.1 christos yyresult = 1;
1962 1.1 christos goto yyreturn;
1963 1.1 christos
1964 1.1 christos #if !defined(yyoverflow) || YYERROR_VERBOSE
1965 1.1 christos /*-------------------------------------------------.
1966 1.1 christos | yyexhaustedlab -- memory exhaustion comes here. |
1967 1.1 christos `-------------------------------------------------*/
1968 1.1 christos yyexhaustedlab:
1969 1.1 christos yyerror (YY_("memory exhausted"));
1970 1.1 christos yyresult = 2;
1971 1.1 christos /* Fall through. */
1972 1.1 christos #endif
1973 1.1 christos
1974 1.1 christos yyreturn:
1975 1.1 christos if (yychar != YYEMPTY)
1976 1.1 christos yydestruct ("Cleanup: discarding lookahead",
1977 1.1 christos yytoken, &yylval);
1978 1.1 christos /* Do not reclaim the symbols of the rule which action triggered
1979 1.1 christos this YYABORT or YYACCEPT. */
1980 1.1 christos YYPOPSTACK (yylen);
1981 1.1 christos YY_STACK_PRINT (yyss, yyssp);
1982 1.1 christos while (yyssp != yyss)
1983 1.1 christos {
1984 1.1 christos yydestruct ("Cleanup: popping",
1985 1.1 christos yystos[*yyssp], yyvsp);
1986 1.1 christos YYPOPSTACK (1);
1987 1.1 christos }
1988 1.1 christos #ifndef yyoverflow
1989 1.1 christos if (yyss != yyssa)
1990 1.1 christos YYSTACK_FREE (yyss);
1991 1.1 christos #endif
1992 1.1 christos #if YYERROR_VERBOSE
1993 1.1 christos if (yymsg != yymsgbuf)
1994 1.1 christos YYSTACK_FREE (yymsg);
1995 1.1 christos #endif
1996 1.1 christos /* Make sure YYID is used. */
1997 1.1 christos return YYID (yyresult);
1998 1.1 christos }
1999 1.1 christos
2000 1.1 christos
2001 1.1 christos
2002 1.1 christos /* Line 1675 of yacc.c */
2003 1.1 christos #line 296 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\dtparser.y"
2004 1.1 christos
2005 1.1 christos
2006 1.1 christos /*! [End] no source code translation !*/
2007 1.1 christos
2008 1.1 christos /*
2009 1.1 christos * Local support functions, including parser entry point
2010 1.1 christos */
2011 1.1 christos #define PR_FIRST_PARSE_OPCODE OP_EXP_EOF
2012 1.1 christos #define PR_YYTNAME_START 3
2013 1.1 christos
2014 1.1 christos
2015 1.1 christos /******************************************************************************
2016 1.1 christos *
2017 1.1 christos * FUNCTION: DtParsererror
2018 1.1 christos *
2019 1.1 christos * PARAMETERS: Message - Parser-generated error message
2020 1.1 christos *
2021 1.1 christos * RETURN: None
2022 1.1 christos *
2023 1.1 christos * DESCRIPTION: Handler for parser errors
2024 1.1 christos *
2025 1.1 christos *****************************************************************************/
2026 1.1 christos
2027 1.1 christos void
2028 1.1 christos DtParsererror (
2029 1.1 christos char const *Message)
2030 1.1 christos {
2031 1.1 christos DtError (ASL_ERROR, ASL_MSG_SYNTAX,
2032 1.1 christos AslGbl_CurrentField, (char *) Message);
2033 1.1 christos }
2034 1.1 christos
2035 1.1 christos
2036 1.1 christos /******************************************************************************
2037 1.1 christos *
2038 1.1 christos * FUNCTION: DtGetOpName
2039 1.1 christos *
2040 1.1 christos * PARAMETERS: ParseOpcode - Parser token (OP_EXP_*)
2041 1.1 christos *
2042 1.1 christos * RETURN: Pointer to the opcode name
2043 1.1 christos *
2044 1.1 christos * DESCRIPTION: Get the ascii name of the parse opcode for debug output
2045 1.1 christos *
2046 1.1 christos *****************************************************************************/
2047 1.1 christos
2048 1.1 christos char *
2049 1.1 christos DtGetOpName (
2050 1.1 christos UINT32 ParseOpcode)
2051 1.1 christos {
2052 1.1 christos #ifdef ASL_YYTNAME_START
2053 1.1 christos /*
2054 1.1 christos * First entries (PR_YYTNAME_START) in yytname are special reserved names.
2055 1.1 christos * Ignore first 6 characters of name (OP_EXP_)
2056 1.1 christos */
2057 1.1 christos return ((char *) yytname
2058 1.1 christos [(ParseOpcode - PR_FIRST_PARSE_OPCODE) + PR_YYTNAME_START] + 6);
2059 1.1 christos #else
2060 1.1 christos return ("[Unknown parser generator]");
2061 1.1 christos #endif
2062 1.1 christos }
2063 1.1 christos
2064 1.1 christos
2065 1.1 christos /******************************************************************************
2066 1.1 christos *
2067 1.1 christos * FUNCTION: DtEvaluateExpression
2068 1.1 christos *
2069 1.1 christos * PARAMETERS: ExprString - Expression to be evaluated. Must be
2070 1.1 christos * terminated by either a newline or a NUL
2071 1.1 christos * string terminator
2072 1.1 christos *
2073 1.1 christos * RETURN: 64-bit value for the expression
2074 1.1 christos *
2075 1.1 christos * DESCRIPTION: Main entry point for the DT expression parser
2076 1.1 christos *
2077 1.1 christos *****************************************************************************/
2078 1.1 christos
2079 1.1 christos UINT64
2080 1.1 christos DtEvaluateExpression (
2081 1.1 christos char *ExprString)
2082 1.1 christos {
2083 1.1 christos
2084 1.1 christos DbgPrint (ASL_DEBUG_OUTPUT,
2085 1.1 christos "**** Input expression: %s (Base 16)\n", ExprString);
2086 1.1 christos
2087 1.1 christos /* Point lexer to the input string */
2088 1.1 christos
2089 1.1 christos if (DtInitLexer (ExprString))
2090 1.1 christos {
2091 1.1 christos DtError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL,
2092 1.1 christos AslGbl_CurrentField, "Could not initialize lexer");
2093 1.1 christos return (0);
2094 1.1 christos }
2095 1.1 christos
2096 1.1 christos /* Parse/Evaluate the input string (value returned in DtParserResult) */
2097 1.1 christos
2098 1.1 christos DtParserparse ();
2099 1.1 christos DtTerminateLexer ();
2100 1.1 christos
2101 1.1 christos DbgPrint (ASL_DEBUG_OUTPUT,
2102 1.1 christos "**** Parser returned value: %u (%8.8X%8.8X)\n",
2103 1.1 christos (UINT32) DtParserResult, ACPI_FORMAT_UINT64 (DtParserResult));
2104 1.1 christos
2105 1.1 christos return (DtParserResult);
2106 }
2107
2108