Bug Summary

File:dvdvmy.c
Location:line 1483, column 3
Description:Value stored to 'yytoken' is never read

Annotated Source Code

1/* A Bison parser, made by GNU Bison 2.5. */
2
3/* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20/* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33/* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36/* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43/* Identify Bison output. */
44#define YYBISON1 1
45
46/* Bison version. */
47#define YYBISON_VERSION"2.5" "2.5"
48
49/* Skeleton name. */
50#define YYSKELETON_NAME"yacc.c" "yacc.c"
51
52/* Pure parsers. */
53#define YYPURE0 0
54
55/* Push parsers. */
56#define YYPUSH0 0
57
58/* Pull parsers. */
59#define YYPULL1 1
60
61/* Using locations. */
62#define YYLSP_NEEDED0 0
63
64/* Substitute the variable and function names. */
65#define yyparsedvdvmparse dvdvmparse
66#define yylexdvdvmlex dvdvmlex
67#define yyerrordvdvmerror dvdvmerror
68#define yylvaldvdvmlval dvdvmlval
69#define yychardvdvmchar dvdvmchar
70#define yydebugdvdvmdebug dvdvmdebug
71#define yynerrsdvdvmnerrs dvdvmnerrs
72
73
74/* Copy the first part of user declarations. */
75
76/* Line 268 of yacc.c */
77#line 1 "dvdvmy.y"
78
79
80/*
81 * Copyright (C) 2002 Scott Smith (trckjunky@users.sourceforge.net)
82 *
83 * This program is free software; you can redistribute it and/or modify
84 * it under the terms of the GNU General Public License as published by
85 * the Free Software Foundation; either version 2 of the License, or (at
86 * your option) any later version.
87 *
88 * This program is distributed in the hope that it will be useful, but
89 * WITHOUT ANY WARRANTY; without even the implied warranty of
90 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
91 * General Public License for more details.
92 *
93 * You should have received a copy of the GNU General Public License
94 * along with this program; if not, write to the Free Software
95 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
96 * MA 02110-1301 USA.
97 */
98
99#include "compat.h" /* needed for bool */
100#include "dvdvm.h"
101
102
103#define YYERROR_VERBOSE1
104
105
106
107/* Line 268 of yacc.c */
108#line 109 "dvdvmy.c"
109
110/* Enabling traces. */
111#ifndef YYDEBUG0
112# define YYDEBUG0 0
113#endif
114
115/* Enabling verbose error messages. */
116#ifdef YYERROR_VERBOSE1
117# undef YYERROR_VERBOSE1
118# define YYERROR_VERBOSE1 1
119#else
120# define YYERROR_VERBOSE1 0
121#endif
122
123/* Enabling the token table. */
124#ifndef YYTOKEN_TABLE0
125# define YYTOKEN_TABLE0 0
126#endif
127
128
129/* Tokens. */
130#ifndef YYTOKENTYPE
131# define YYTOKENTYPE
132 /* Put the tokens into the symbol table, so that GDB and other debuggers
133 know about them. */
134 enum yytokentype {
135 NUM_TOK = 258,
136 G_TOK = 259,
137 S_TOK = 260,
138 ID_TOK = 261,
139 ANGLE_TOK = 262,
140 AUDIO_TOK = 263,
141 BREAK_TOK = 264,
142 BUTTON_TOK = 265,
143 CALL_TOK = 266,
144 CELL_TOK = 267,
145 CHAPTER_TOK = 268,
146 CLOSEBRACE_TOK = 269,
147 CLOSEPAREN_TOK = 270,
148 COUNTER_TOK = 271,
149 ELSE_TOK = 272,
150 ENTRY_TOK = 273,
151 EXIT_TOK = 274,
152 FPC_TOK = 275,
153 GOTO_TOK = 276,
154 IF_TOK = 277,
155 JUMP_TOK = 278,
156 MENU_TOK = 279,
157 NEXT_TOK = 280,
158 OPENBRACE_TOK = 281,
159 OPENPAREN_TOK = 282,
160 PGC_TOK = 283,
161 PREV_TOK = 284,
162 PROGRAM_TOK = 285,
163 PTT_TOK = 286,
164 REGION_TOK = 287,
165 RESUME_TOK = 288,
166 RND_TOK = 289,
167 ROOT_TOK = 290,
168 SET_TOK = 291,
169 SUBTITLE_TOK = 292,
170 TAIL_TOK = 293,
171 TITLE_TOK = 294,
172 TITLESET_TOK = 295,
173 TOP_TOK = 296,
174 UP_TOK = 297,
175 VMGM_TOK = 298,
176 BOR_TOK = 299,
177 LOR_TOK = 300,
178 XOR_TOK = 301,
179 _OR_TOK = 302,
180 BAND_TOK = 303,
181 LAND_TOK = 304,
182 _AND_TOK = 305,
183 NOT_TOK = 306,
184 NE_TOK = 307,
185 EQ_TOK = 308,
186 LT_TOK = 309,
187 LE_TOK = 310,
188 GT_TOK = 311,
189 GE_TOK = 312,
190 SUB_TOK = 313,
191 ADD_TOK = 314,
192 MOD_TOK = 315,
193 DIV_TOK = 316,
194 MUL_TOK = 317,
195 ADDSET_TOK = 318,
196 SUBSET_TOK = 319,
197 MULSET_TOK = 320,
198 DIVSET_TOK = 321,
199 MODSET_TOK = 322,
200 ANDSET_TOK = 323,
201 ORSET_TOK = 324,
202 XORSET_TOK = 325,
203 SEMICOLON_TOK = 326,
204 COLON_TOK = 327,
205 ERROR_TOK = 328
206 };
207#endif
208
209
210
211#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED1
212typedef union YYSTYPE
213{
214
215/* Line 293 of yacc.c */
216#line 91 "dvdvmy.y"
217
218 unsigned int int_val;
219 char *str_val;
220 struct vm_statement *statement;
221
222
223
224/* Line 293 of yacc.c */
225#line 226 "dvdvmy.c"
226} YYSTYPE;
227# define YYSTYPE_IS_TRIVIAL1 1
228# define yystypeYYSTYPE YYSTYPE /* obsolescent; will be withdrawn */
229# define YYSTYPE_IS_DECLARED1 1
230#endif
231
232
233/* Copy the second part of user declarations. */
234
235
236/* Line 343 of yacc.c */
237#line 238 "dvdvmy.c"
238
239#ifdef short
240# undef short
241#endif
242
243#ifdef YYTYPE_UINT8
244typedef YYTYPE_UINT8 yytype_uint8;
245#else
246typedef unsigned char yytype_uint8;
247#endif
248
249#ifdef YYTYPE_INT8
250typedef YYTYPE_INT8 yytype_int8;
251#elif (defined __STDC__1 || defined __C99__FUNC__ \
252 || defined __cplusplus || defined _MSC_VER)
253typedef signed char yytype_int8;
254#else
255typedef short int yytype_int8;
256#endif
257
258#ifdef YYTYPE_UINT16
259typedef YYTYPE_UINT16 yytype_uint16;
260#else
261typedef unsigned short int yytype_uint16;
262#endif
263
264#ifdef YYTYPE_INT16
265typedef YYTYPE_INT16 yytype_int16;
266#else
267typedef short int yytype_int16;
268#endif
269
270#ifndef YYSIZE_Tlong unsigned int
271# ifdef __SIZE_TYPE__long unsigned int
272# define YYSIZE_Tlong unsigned int __SIZE_TYPE__long unsigned int
273# elif defined size_t
274# define YYSIZE_Tlong unsigned int size_t
275# elif ! defined YYSIZE_Tlong unsigned int && (defined __STDC__1 || defined __C99__FUNC__ \
276 || defined __cplusplus || defined _MSC_VER)
277# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
278# define YYSIZE_Tlong unsigned int size_t
279# else
280# define YYSIZE_Tlong unsigned int unsigned int
281# endif
282#endif
283
284#define YYSIZE_MAXIMUM((long unsigned int) -1) ((YYSIZE_Tlong unsigned int) -1)
285
286#ifndef YY_
287# if defined YYENABLE_NLS && YYENABLE_NLS
288# if ENABLE_NLS
289# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
290# define YY_(msgid)msgid dgettext ("bison-runtime", msgid)
291# endif
292# endif
293# ifndef YY_
294# define YY_(msgid)msgid msgid
295# endif
296#endif
297
298/* Suppress unused-variable warnings by "using" E. */
299#if ! defined lint || defined __GNUC__4
300# define YYUSE(e)((void) (e)) ((void) (e))
301#else
302# define YYUSE(e)((void) (e)) /* empty */
303#endif
304
305/* Identity function, used to suppress warnings about constant conditions. */
306#ifndef lint
307# define YYID(n)(n) (n)
308#else
309#if (defined __STDC__1 || defined __C99__FUNC__ \
310 || defined __cplusplus || defined _MSC_VER)
311static int
312YYID (int yyi)(int yyi)
313#else
314static int
315YYID (yyi)(yyi)
316 int yyi;
317#endif
318{
319 return yyi;
320}
321#endif
322
323#if ! defined yyoverflow || YYERROR_VERBOSE1
324
325/* The parser invokes alloca or malloc; define the necessary symbols. */
326
327# ifdef YYSTACK_USE_ALLOCA
328# if YYSTACK_USE_ALLOCA
329# ifdef __GNUC__4
330# define YYSTACK_ALLOCmalloc __builtin_alloca
331# elif defined __BUILTIN_VA_ARG_INCR
332# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
333# elif defined _AIX
334# define YYSTACK_ALLOCmalloc __alloca
335# elif defined _MSC_VER
336# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
337# define alloca _alloca
338# else
339# define YYSTACK_ALLOCmalloc alloca
340# if ! defined _ALLOCA_H1 && ! defined EXIT_SUCCESS0 && (defined __STDC__1 || defined __C99__FUNC__ \
341 || defined __cplusplus || defined _MSC_VER)
342# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
343# ifndef EXIT_SUCCESS0
344# define EXIT_SUCCESS0 0
345# endif
346# endif
347# endif
348# endif
349# endif
350
351# ifdef YYSTACK_ALLOCmalloc
352 /* Pacify GCC's `empty if-body' warning. */
353# define YYSTACK_FREEfree(Ptr) do { /* empty */; } while (YYID (0)(0))
354# ifndef YYSTACK_ALLOC_MAXIMUM((long unsigned int) -1)
355 /* The OS might guarantee only one guard page at the bottom of the stack,
356 and a page size can be as small as 4096 bytes. So we cannot safely
357 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
358 to allow for a few compiler-allocated temporary stack slots. */
359# define YYSTACK_ALLOC_MAXIMUM((long unsigned int) -1) 4032 /* reasonable circa 2006 */
360# endif
361# else
362# define YYSTACK_ALLOCmalloc YYMALLOCmalloc
363# define YYSTACK_FREEfree YYFREEfree
364# ifndef YYSTACK_ALLOC_MAXIMUM((long unsigned int) -1)
365# define YYSTACK_ALLOC_MAXIMUM((long unsigned int) -1) YYSIZE_MAXIMUM((long unsigned int) -1)
366# endif
367# if (defined __cplusplus && ! defined EXIT_SUCCESS0 \
368 && ! ((defined YYMALLOCmalloc || defined malloc) \
369 && (defined YYFREEfree || defined free)))
370# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
371# ifndef EXIT_SUCCESS0
372# define EXIT_SUCCESS0 0
373# endif
374# endif
375# ifndef YYMALLOCmalloc
376# define YYMALLOCmalloc malloc
377# if ! defined malloc && ! defined EXIT_SUCCESS0 && (defined __STDC__1 || defined __C99__FUNC__ \
378 || defined __cplusplus || defined _MSC_VER)
379void *malloc (YYSIZE_Tlong unsigned int); /* INFRINGES ON USER NAME SPACE */
380# endif
381# endif
382# ifndef YYFREEfree
383# define YYFREEfree free
384# if ! defined free && ! defined EXIT_SUCCESS0 && (defined __STDC__1 || defined __C99__FUNC__ \
385 || defined __cplusplus || defined _MSC_VER)
386void free (void *); /* INFRINGES ON USER NAME SPACE */
387# endif
388# endif
389# endif
390#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
391
392
393#if (! defined yyoverflow \
394 && (! defined __cplusplus \
395 || (defined YYSTYPE_IS_TRIVIAL1 && YYSTYPE_IS_TRIVIAL1)))
396
397/* A type that is properly aligned for any stack member. */
398union yyalloc
399{
400 yytype_int16 yyss_alloc;
401 YYSTYPE yyvs_alloc;
402};
403
404/* The size of the maximum gap between one aligned stack and the next. */
405# define YYSTACK_GAP_MAXIMUM(sizeof (union yyalloc) - 1) (sizeof (union yyalloc) - 1)
406
407/* The size of an array large to enough to hold all stacks, each with
408 N elements. */
409# define YYSTACK_BYTES(N)((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) + (sizeof (
union yyalloc) - 1))
\
410 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
411 + YYSTACK_GAP_MAXIMUM(sizeof (union yyalloc) - 1))
412
413# define YYCOPY_NEEDED1 1
414
415/* Relocate STACK from its old location to the new one. The
416 local variables YYSIZE and YYSTACKSIZE give the old and new number of
417 elements in the stack, and YYPTR gives the new location of the
418 stack. Advance YYPTR to a properly aligned location for the next
419 stack. */
420# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
421 do \
422 { \
423 YYSIZE_Tlong unsigned int yynewbytes; \
424 YYCOPY (&yyptr->Stack_alloc, Stack, yysize)__builtin_memcpy (&yyptr->Stack_alloc, Stack, (yysize)
* sizeof (*(Stack)))
; \
425 Stack = &yyptr->Stack_alloc; \
426 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM(sizeof (union yyalloc) - 1); \
427 yyptr += yynewbytes / sizeof (*yyptr); \
428 } \
429 while (YYID (0)(0))
430
431#endif
432
433#if defined YYCOPY_NEEDED1 && YYCOPY_NEEDED1
434/* Copy COUNT objects from FROM to TO. The source and destination do
435 not overlap. */
436# ifndef YYCOPY
437# if defined __GNUC__4 && 1 < __GNUC__4
438# define YYCOPY(To, From, Count)__builtin_memcpy (To, From, (Count) * sizeof (*(From))) \
439 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
440# else
441# define YYCOPY(To, From, Count)__builtin_memcpy (To, From, (Count) * sizeof (*(From))) \
442 do \
443 { \
444 YYSIZE_Tlong unsigned int yyi; \
445 for (yyi = 0; yyi < (Count); yyi++) \
446 (To)[yyi] = (From)[yyi]; \
447 } \
448 while (YYID (0)(0))
449# endif
450# endif
451#endif /* !YYCOPY_NEEDED */
452
453/* YYFINAL -- State number of the termination state. */
454#define YYFINAL46 46
455/* YYLAST -- Last index in YYTABLE. */
456#define YYLAST401 401
457
458/* YYNTOKENS -- Number of terminals. */
459#define YYNTOKENS74 74
460/* YYNNTS -- Number of nonterminals. */
461#define YYNNTS18 18
462/* YYNRULES -- Number of rules. */
463#define YYNRULES95 95
464/* YYNRULES -- Number of states. */
465#define YYNSTATES189 189
466
467/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
468#define YYUNDEFTOK2 2
469#define YYMAXUTOK328 328
470
471#define YYTRANSLATE(YYX)((unsigned int) (YYX) <= 328 ? yytranslate[YYX] : 2) \
472 ((unsigned int) (YYX) <= YYMAXUTOK328 ? yytranslate[YYX] : YYUNDEFTOK2)
473
474/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
475static const yytype_uint8 yytranslate[] =
476{
477 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
478 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
479 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
480 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
481 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
482 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
483 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
484 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
485 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
486 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
487 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
488 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
489 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
490 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
491 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
492 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
493 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
494 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
495 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
496 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
497 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
498 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
499 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
500 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
501 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
502 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
503 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
504 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
505 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
506 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
507 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
508 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
509 65, 66, 67, 68, 69, 70, 71, 72, 73
510};
511
512#if YYDEBUG0
513/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
514 YYRHS. */
515static const yytype_uint16 yyprhs[] =
516{
517 0, 0, 3, 5, 7, 10, 12, 14, 17, 20,
518 24, 27, 30, 32, 36, 38, 41, 43, 44, 47,
519 49, 53, 57, 61, 65, 69, 73, 75, 78, 79,
520 82, 83, 89, 94, 99, 104, 109, 114, 119, 124,
521 129, 134, 139, 144, 149, 154, 157, 158, 165, 167,
522 169, 171, 173, 175, 177, 179, 181, 183, 187, 189,
523 193, 197, 201, 205, 209, 213, 217, 221, 225, 229,
524 234, 238, 242, 246, 250, 254, 258, 262, 266, 270,
525 274, 278, 281, 283, 286, 291, 296, 301, 306, 311,
526 316, 321, 326, 331, 337, 339
527};
528
529/* YYRHS -- A `-1'-separated list of the rules' RHS. */
530static const yytype_int8 yyrhs[] =
531{
532 75, 0, -1, 76, -1, 77, -1, 77, 76, -1,
533 81, -1, 83, -1, 19, 71, -1, 33, 71, -1,
534 21, 6, 71, -1, 6, 72, -1, 9, 71, -1,
535 89, -1, 26, 76, 14, -1, 91, -1, 40, 3,
536 -1, 43, -1, -1, 24, 3, -1, 24, -1, 24,
537 18, 39, -1, 24, 18, 35, -1, 24, 18, 37,
538 -1, 24, 18, 8, -1, 24, 18, 7, -1, 24,
539 18, 31, -1, 20, -1, 39, 3, -1, -1, 13,
540 3, -1, -1, 23, 78, 79, 80, 71, -1, 23,
541 12, 3, 71, -1, 23, 30, 3, 71, -1, 23,
542 12, 41, 71, -1, 23, 25, 12, 71, -1, 23,
543 29, 12, 71, -1, 23, 30, 41, 71, -1, 23,
544 25, 30, 71, -1, 23, 29, 30, 71, -1, 23,
545 28, 41, 71, -1, 23, 25, 28, 71, -1, 23,
546 29, 28, 71, -1, 23, 42, 28, 71, -1, 23,
547 28, 38, 71, -1, 33, 3, -1, -1, 11, 78,
548 79, 80, 82, 71, -1, 4, -1, 5, -1, 8,
549 -1, 37, -1, 7, -1, 10, -1, 32, -1, 84,
550 -1, 3, -1, 27, 86, 15, -1, 85, -1, 86,
551 59, 86, -1, 86, 58, 86, -1, 86, 62, 86,
552 -1, 86, 61, 86, -1, 86, 60, 86, -1, 86,
553 48, 86, -1, 86, 44, 86, -1, 86, 50, 86,
554 -1, 86, 47, 86, -1, 86, 46, 86, -1, 34,
555 27, 86, 15, -1, 27, 87, 15, -1, 86, 53,
556 86, -1, 86, 52, 86, -1, 86, 57, 86, -1,
557 86, 56, 86, -1, 86, 55, 86, -1, 86, 54,
558 86, -1, 87, 45, 87, -1, 87, 49, 87, -1,
559 87, 47, 87, -1, 87, 50, 87, -1, 51, 87,
560 -1, 84, -1, 16, 4, -1, 88, 36, 86, 71,
561 -1, 84, 63, 86, 71, -1, 84, 64, 86, 71,
562 -1, 84, 65, 86, 71, -1, 84, 66, 86, 71,
563 -1, 84, 67, 86, 71, -1, 84, 68, 86, 71,
564 -1, 84, 69, 86, 71, -1, 84, 70, 86, 71,
565 -1, 22, 27, 87, 15, 77, -1, 90, -1, 90,
566 17, 77, -1
567};
568
569/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
570static const yytype_uint16 yyrline[] =
571{
572 0, 102, 102, 107, 110, 116, 119, 122, 126, 131,
573 136, 141, 145, 148, 151, 156, 163, 166, 171, 178,
574 181, 184, 187, 190, 193, 196, 199, 202, 209, 214,
575 221, 226, 234, 243, 252, 257, 262, 267, 272, 277,
576 282, 287, 292, 297, 302, 309, 316, 321, 332, 335,
577 338, 341, 344, 347, 350, 355, 358, 363, 366, 371,
578 374, 377, 380, 383, 386, 389, 392, 395, 398, 401,
579 408, 411, 414, 417, 420, 423, 426, 429, 432, 435,
580 438, 441, 448, 451, 456, 462, 465, 468, 471, 474,
581 477, 480, 483, 488, 498, 501
582};
583#endif
584
585#if YYDEBUG0 || YYERROR_VERBOSE1 || YYTOKEN_TABLE0
586/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
587 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
588static const char *const yytname[] =
589{
590 "$end", "error", "$undefined", "NUM_TOK", "G_TOK", "S_TOK", "ID_TOK",
591 "ANGLE_TOK", "AUDIO_TOK", "BREAK_TOK", "BUTTON_TOK", "CALL_TOK",
592 "CELL_TOK", "CHAPTER_TOK", "CLOSEBRACE_TOK", "CLOSEPAREN_TOK",
593 "COUNTER_TOK", "ELSE_TOK", "ENTRY_TOK", "EXIT_TOK", "FPC_TOK",
594 "GOTO_TOK", "IF_TOK", "JUMP_TOK", "MENU_TOK", "NEXT_TOK",
595 "OPENBRACE_TOK", "OPENPAREN_TOK", "PGC_TOK", "PREV_TOK", "PROGRAM_TOK",
596 "PTT_TOK", "REGION_TOK", "RESUME_TOK", "RND_TOK", "ROOT_TOK", "SET_TOK",
597 "SUBTITLE_TOK", "TAIL_TOK", "TITLE_TOK", "TITLESET_TOK", "TOP_TOK",
598 "UP_TOK", "VMGM_TOK", "BOR_TOK", "LOR_TOK", "XOR_TOK", "_OR_TOK",
599 "BAND_TOK", "LAND_TOK", "_AND_TOK", "NOT_TOK", "NE_TOK", "EQ_TOK",
600 "LT_TOK", "LE_TOK", "GT_TOK", "GE_TOK", "SUB_TOK", "ADD_TOK", "MOD_TOK",
601 "DIV_TOK", "MUL_TOK", "ADDSET_TOK", "SUBSET_TOK", "MULSET_TOK",
602 "DIVSET_TOK", "MODSET_TOK", "ANDSET_TOK", "ORSET_TOK", "XORSET_TOK",
603 "SEMICOLON_TOK", "COLON_TOK", "ERROR_TOK", "$accept", "finalparse",
604 "statements", "statement", "jtsl", "jtml", "jcl", "jumpstatement",
605 "resumel", "callstatement", "reg", "regornum", "expression", "boolexpr",
606 "regorcounter", "setstatement", "ifstatement", "ifelsestatement", 0
607};
608#endif
609
610# ifdef YYPRINT
611/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
612 token YYLEX-NUM. */
613static const yytype_uint16 yytoknum[] =
614{
615 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
616 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
617 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
618 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
619 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
620 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
621 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
622 325, 326, 327, 328
623};
624# endif
625
626/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
627static const yytype_uint8 yyr1[] =
628{
629 0, 74, 75, 76, 76, 77, 77, 77, 77, 77,
630 77, 77, 77, 77, 77, 78, 78, 78, 79, 79,
631 79, 79, 79, 79, 79, 79, 79, 79, 79, 80,
632 80, 81, 81, 81, 81, 81, 81, 81, 81, 81,
633 81, 81, 81, 81, 81, 82, 82, 83, 84, 84,
634 84, 84, 84, 84, 84, 85, 85, 86, 86, 86,
635 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
636 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
637 87, 87, 88, 88, 89, 89, 89, 89, 89, 89,
638 89, 89, 89, 90, 91, 91
639};
640
641/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
642static const yytype_uint8 yyr2[] =
643{
644 0, 2, 1, 1, 2, 1, 1, 2, 2, 3,
645 2, 2, 1, 3, 1, 2, 1, 0, 2, 1,
646 3, 3, 3, 3, 3, 3, 1, 2, 0, 2,
647 0, 5, 4, 4, 4, 4, 4, 4, 4, 4,
648 4, 4, 4, 4, 4, 2, 0, 6, 1, 1,
649 1, 1, 1, 1, 1, 1, 1, 3, 1, 3,
650 3, 3, 3, 3, 3, 3, 3, 3, 3, 4,
651 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
652 3, 2, 1, 2, 4, 4, 4, 4, 4, 4,
653 4, 4, 4, 5, 1, 3
654};
655
656/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
657 Performed when YYTABLE doesn't specify something else to do. Zero
658 means the default is an error. */
659static const yytype_uint8 yydefact[] =
660{
661 0, 48, 49, 0, 52, 50, 0, 53, 17, 0,
662 0, 0, 0, 17, 0, 54, 0, 51, 0, 2,
663 3, 5, 6, 82, 0, 12, 94, 14, 10, 11,
664 0, 16, 28, 83, 7, 0, 0, 0, 0, 0,
665 0, 0, 0, 28, 0, 8, 1, 4, 0, 0,
666 0, 0, 0, 0, 0, 0, 0, 0, 15, 26,
667 19, 0, 30, 9, 56, 0, 0, 0, 55, 58,
668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
669 0, 0, 0, 0, 0, 30, 13, 0, 0, 0,
670 0, 0, 0, 0, 0, 0, 0, 95, 18, 0,
671 27, 0, 46, 0, 0, 0, 81, 0, 0, 0,
672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
673 0, 0, 0, 0, 0, 0, 0, 0, 32, 34,
674 35, 41, 38, 44, 40, 36, 42, 39, 33, 37,
675 43, 0, 0, 85, 86, 87, 88, 89, 90, 91,
676 92, 84, 24, 23, 25, 21, 22, 20, 29, 0,
677 0, 57, 70, 0, 65, 68, 67, 64, 66, 72,
678 71, 76, 75, 74, 73, 60, 59, 63, 62, 61,
679 93, 77, 79, 78, 80, 31, 45, 47, 69
680};
681
682/* YYDEFGOTO[NTERM-NUM]. */
683static const yytype_int16 yydefgoto[] =
684{
685 -1, 18, 19, 20, 32, 62, 102, 21, 160, 22,
686 68, 69, 70, 71, 24, 25, 26, 27
687};
688
689/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
690 STATE-NUM. */
691#define YYPACT_NINF-57 -57
692static const yytype_int16 yypact[] =
693{
694 202, -57, -57, -56, -57, -57, -38, -57, -8, 23,
695 -35, 19, 32, 1, 202, -57, -25, -57, 76, -57,
696 202, -57, -57, 120, 51, -57, 82, -57, -57, -57,
697 103, -57, -5, -57, -57, 34, 81, 7, 25, 4,
698 26, 9, 79, -5, 95, -57, -57, -57, 168, 168,
699 168, 168, 168, 168, 168, 168, 168, 202, -57, -57,
700 21, 108, 97, -57, -57, 81, 85, 81, -57, -57,
701 320, 2, 43, 45, 48, 50, 54, 63, 87, 88,
702 99, 109, 121, 122, 123, 97, -57, 168, 183, 203,
703 222, 229, 248, 255, 274, 281, 300, -57, -57, 89,
704 -57, 153, 141, 83, 132, 168, -57, 168, 168, 168,
705 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
706 168, 168, 168, 202, 81, 81, 81, 81, -57, -57,
707 -57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
708 -57, 125, 102, -57, -57, -57, -57, -57, -57, -57,
709 -57, -57, -57, -57, -57, -57, -57, -57, -57, 188,
710 126, -57, -57, 107, 42, 42, 42, 197, 197, 339,
711 339, 339, 339, 339, 339, 33, 33, -57, -57, -57,
712 -57, 29, 29, -57, -57, -57, -57, -57, -57
713};
714
715/* YYPGOTO[NTERM-NUM]. */
716static const yytype_int16 yypgoto[] =
717{
718 -57, -57, 8, -46, 185, 156, 116, -57, -57, -57,
719 0, -57, -47, -44, -57, -57, -57, -57
720};
721
722/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
723 positive, shift that token. If negative, reduce the rule which
724 number is the opposite. If YYTABLE_NINF, syntax error. */
725#define YYTABLE_NINF-1 -1
726static const yytype_uint8 yytable[] =
727{
728 23, 88, 89, 90, 91, 92, 93, 94, 95, 96,
729 72, 97, 82, 37, 23, 59, 28, 123, 103, 60,
730 23, 104, 44, 106, 98, 35, 38, 33, 47, 39,
731 40, 41, 30, 29, 61, 31, 34, 74, 79, 99,
732 142, 30, 77, 42, 31, 78, 45, 124, 73, 125,
733 83, 126, 127, 75, 80, 76, 81, 23, 163, 36,
734 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
735 174, 175, 176, 177, 178, 179, 46, 180, 126, 127,
736 181, 182, 183, 184, 64, 1, 2, 56, 4, 5,
737 110, 7, 111, 120, 121, 122, 152, 153, 161, 57,
738 118, 119, 120, 121, 122, 63, 58, 84, 65, 86,
739 101, 100, 105, 15, 128, 66, 129, 161, 17, 130,
740 154, 131, 188, 23, 155, 132, 156, 107, 157, 108,
741 109, 110, 67, 111, 133, 112, 113, 114, 115, 116,
742 117, 118, 119, 120, 121, 122, 107, 162, 108, 109,
743 110, 107, 111, 108, 109, 110, 158, 111, 134, 135,
744 118, 119, 120, 121, 122, 118, 119, 120, 121, 122,
745 136, 64, 1, 2, 159, 4, 5, 124, 7, 125,
746 137, 126, 127, 48, 49, 50, 51, 52, 53, 54,
747 55, 186, 138, 139, 140, 87, 185, 187, 43, 85,
748 15, 141, 66, 0, 0, 17, 1, 2, 3, 4,
749 5, 6, 7, 8, 0, 0, 0, 0, 9, 0,
750 0, 10, 0, 11, 12, 13, 0, 107, 14, 108,
751 109, 110, 0, 111, 15, 16, 0, 0, 0, 17,
752 0, 118, 119, 120, 121, 122, 0, 107, 0, 108,
753 109, 110, 0, 111, 143, 118, 119, 120, 121, 122,
754 0, 118, 119, 120, 121, 122, 107, 0, 108, 109,
755 110, 0, 111, 107, 144, 108, 109, 110, 0, 111,
756 118, 119, 120, 121, 122, 0, 0, 118, 119, 120,
757 121, 122, 107, 145, 108, 109, 110, 0, 111, 107,
758 146, 108, 109, 110, 0, 111, 118, 119, 120, 121,
759 122, 0, 0, 118, 119, 120, 121, 122, 107, 147,
760 108, 109, 110, 0, 111, 107, 148, 108, 109, 110,
761 0, 111, 118, 119, 120, 121, 122, 0, 0, 118,
762 119, 120, 121, 122, 107, 149, 108, 109, 110, 0,
763 111, 0, 150, 0, 0, 0, 0, 0, 118, 119,
764 120, 121, 122, 0, 107, 0, 108, 109, 110, 0,
765 111, 151, 112, 113, 114, 115, 116, 117, 118, 119,
766 120, 121, 122, 107, 0, 108, 0, 110, 0, 0,
767 0, 0, 0, 0, 0, 0, 0, 118, 119, 120,
768 121, 122
769};
770
771#define yypact_value_is_default(yystate)((yystate) == (-57)) \
772 ((yystate) == (-57))
773
774#define yytable_value_is_error(yytable_value)(0) \
775 YYID (0)(0)
776
777static const yytype_int8 yycheck[] =
778{
779 0, 48, 49, 50, 51, 52, 53, 54, 55, 56,
780 3, 57, 3, 12, 14, 20, 72, 15, 65, 24,
781 20, 65, 14, 67, 3, 6, 25, 4, 20, 28,
782 29, 30, 40, 71, 39, 43, 71, 12, 12, 18,
783 87, 40, 38, 42, 43, 41, 71, 45, 41, 47,
784 41, 49, 50, 28, 28, 30, 30, 57, 105, 27,
785 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
786 117, 118, 119, 120, 121, 122, 0, 123, 49, 50,
787 124, 125, 126, 127, 3, 4, 5, 36, 7, 8,
788 48, 10, 50, 60, 61, 62, 7, 8, 15, 17,
789 58, 59, 60, 61, 62, 71, 3, 28, 27, 14,
790 13, 3, 27, 32, 71, 34, 71, 15, 37, 71,
791 31, 71, 15, 123, 35, 71, 37, 44, 39, 46,
792 47, 48, 51, 50, 71, 52, 53, 54, 55, 56,
793 57, 58, 59, 60, 61, 62, 44, 15, 46, 47,
794 48, 44, 50, 46, 47, 48, 3, 50, 71, 71,
795 58, 59, 60, 61, 62, 58, 59, 60, 61, 62,
796 71, 3, 4, 5, 33, 7, 8, 45, 10, 47,
797 71, 49, 50, 63, 64, 65, 66, 67, 68, 69,
798 70, 3, 71, 71, 71, 27, 71, 71, 13, 43,
799 32, 85, 34, -1, -1, 37, 4, 5, 6, 7,
800 8, 9, 10, 11, -1, -1, -1, -1, 16, -1,
801 -1, 19, -1, 21, 22, 23, -1, 44, 26, 46,
802 47, 48, -1, 50, 32, 33, -1, -1, -1, 37,
803 -1, 58, 59, 60, 61, 62, -1, 44, -1, 46,
804 47, 48, -1, 50, 71, 58, 59, 60, 61, 62,
805 -1, 58, 59, 60, 61, 62, 44, -1, 46, 47,
806 48, -1, 50, 44, 71, 46, 47, 48, -1, 50,
807 58, 59, 60, 61, 62, -1, -1, 58, 59, 60,
808 61, 62, 44, 71, 46, 47, 48, -1, 50, 44,
809 71, 46, 47, 48, -1, 50, 58, 59, 60, 61,
810 62, -1, -1, 58, 59, 60, 61, 62, 44, 71,
811 46, 47, 48, -1, 50, 44, 71, 46, 47, 48,
812 -1, 50, 58, 59, 60, 61, 62, -1, -1, 58,
813 59, 60, 61, 62, 44, 71, 46, 47, 48, -1,
814 50, -1, 71, -1, -1, -1, -1, -1, 58, 59,
815 60, 61, 62, -1, 44, -1, 46, 47, 48, -1,
816 50, 71, 52, 53, 54, 55, 56, 57, 58, 59,
817 60, 61, 62, 44, -1, 46, -1, 48, -1, -1,
818 -1, -1, -1, -1, -1, -1, -1, 58, 59, 60,
819 61, 62
820};
821
822/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
823 symbol of state STATE-NUM. */
824static const yytype_uint8 yystos[] =
825{
826 0, 4, 5, 6, 7, 8, 9, 10, 11, 16,
827 19, 21, 22, 23, 26, 32, 33, 37, 75, 76,
828 77, 81, 83, 84, 88, 89, 90, 91, 72, 71,
829 40, 43, 78, 4, 71, 6, 27, 12, 25, 28,
830 29, 30, 42, 78, 76, 71, 0, 76, 63, 64,
831 65, 66, 67, 68, 69, 70, 36, 17, 3, 20,
832 24, 39, 79, 71, 3, 27, 34, 51, 84, 85,
833 86, 87, 3, 41, 12, 28, 30, 38, 41, 12,
834 28, 30, 3, 41, 28, 79, 14, 27, 86, 86,
835 86, 86, 86, 86, 86, 86, 86, 77, 3, 18,
836 3, 13, 80, 86, 87, 27, 87, 44, 46, 47,
837 48, 50, 52, 53, 54, 55, 56, 57, 58, 59,
838 60, 61, 62, 15, 45, 47, 49, 50, 71, 71,
839 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
840 71, 80, 86, 71, 71, 71, 71, 71, 71, 71,
841 71, 71, 7, 8, 31, 35, 37, 39, 3, 33,
842 82, 15, 15, 86, 86, 86, 86, 86, 86, 86,
843 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
844 77, 87, 87, 87, 87, 71, 3, 71, 15
845};
846
847#define yyerrok(yyerrstatus = 0) (yyerrstatus = 0)
848#define yyclearin(dvdvmchar = (-2)) (yychardvdvmchar = YYEMPTY(-2))
849#define YYEMPTY(-2) (-2)
850#define YYEOF0 0
851
852#define YYACCEPTgoto yyacceptlab goto yyacceptlab
853#define YYABORTgoto yyabortlab goto yyabortlab
854#define YYERRORgoto yyerrorlab goto yyerrorlab
855
856
857/* Like YYERROR except do call yyerror. This remains here temporarily
858 to ease the transition to the new meaning of YYERROR, for GCC.
859 Once GCC version 2 has supplanted version 1, this can go. However,
860 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
861 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
862 discussed. */
863
864#define YYFAILgoto yyerrlab goto yyerrlab
865#if defined YYFAILgoto yyerrlab
866 /* This is here to suppress warnings from the GCC cpp's
867 -Wunused-macros. Normally we don't worry about that warning, but
868 some users do, and we want to make it easy for users to remove
869 YYFAIL uses, which will produce warnings from Bison 2.5. */
870#endif
871
872#define YYRECOVERING()(!!yyerrstatus) (!!yyerrstatus)
873
874#define YYBACKUP(Token, Value)do if (dvdvmchar == (-2) && yylen == 1) { dvdvmchar =
(Token); dvdvmlval = (Value); (yyvsp -= (1), yyssp -= (1)); goto
yybackup; } else { dvdvmerror ("syntax error: cannot back up"
); goto yyerrorlab; } while ((0))
\
875do \
876 if (yychardvdvmchar == YYEMPTY(-2) && yylen == 1) \
877 { \
878 yychardvdvmchar = (Token); \
879 yylvaldvdvmlval = (Value); \
880 YYPOPSTACK (1)(yyvsp -= (1), yyssp -= (1)); \
881 goto yybackup; \
882 } \
883 else \
884 { \
885 yyerrordvdvmerror (YY_("syntax error: cannot back up")"syntax error: cannot back up"); \
886 YYERRORgoto yyerrorlab; \
887 } \
888while (YYID (0)(0))
889
890
891#define YYTERROR1 1
892#define YYERRCODE256 256
893
894
895/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
896 If N is 0, then set CURRENT to the empty location which ends
897 the previous symbol: RHS[0] (always defined). */
898
899#define YYRHSLOC(Rhs, K)((Rhs)[K]) ((Rhs)[K])
900#ifndef YYLLOC_DEFAULT
901# define YYLLOC_DEFAULT(Current, Rhs, N)do if ((N)) { (Current).first_line = ((Rhs)[1]).first_line; (
Current).first_column = ((Rhs)[1]).first_column; (Current).last_line
= ((Rhs)[N]).last_line; (Current).last_column = ((Rhs)[N]).last_column
; } else { (Current).first_line = (Current).last_line = ((Rhs
)[0]).last_line; (Current).first_column = (Current).last_column
= ((Rhs)[0]).last_column; } while ((0))
\
902 do \
903 if (YYID (N)(N)) \
904 { \
905 (Current).first_line = YYRHSLOC (Rhs, 1)((Rhs)[1]).first_line; \
906 (Current).first_column = YYRHSLOC (Rhs, 1)((Rhs)[1]).first_column; \
907 (Current).last_line = YYRHSLOC (Rhs, N)((Rhs)[N]).last_line; \
908 (Current).last_column = YYRHSLOC (Rhs, N)((Rhs)[N]).last_column; \
909 } \
910 else \
911 { \
912 (Current).first_line = (Current).last_line = \
913 YYRHSLOC (Rhs, 0)((Rhs)[0]).last_line; \
914 (Current).first_column = (Current).last_column = \
915 YYRHSLOC (Rhs, 0)((Rhs)[0]).last_column; \
916 } \
917 while (YYID (0)(0))
918#endif
919
920
921/* This macro is provided for backward compatibility. */
922
923#ifndef YY_LOCATION_PRINT
924# define YY_LOCATION_PRINT(File, Loc)((void) 0) ((void) 0)
925#endif
926
927
928/* YYLEX -- calling `yylex' with the right arguments. */
929
930#ifdef YYLEX_PARAM
931# define YYLEXdvdvmlex () yylexdvdvmlex (YYLEX_PARAM)
932#else
933# define YYLEXdvdvmlex () yylexdvdvmlex ()
934#endif
935
936/* Enable debugging if requested. */
937#if YYDEBUG0
938
939# ifndef YYFPRINTF
940# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
941# define YYFPRINTF fprintf
942# endif
943
944# define YYDPRINTF(Args) \
945do { \
946 if (yydebugdvdvmdebug) \
947 YYFPRINTF Args; \
948} while (YYID (0)(0))
949
950# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
951do { \
952 if (yydebugdvdvmdebug) \
953 { \
954 YYFPRINTF (stderrstderr, "%s ", Title); \
955 yy_symbol_print (stderrstderr, \
956 Type, Value); \
957 YYFPRINTF (stderrstderr, "\n"); \
958 } \
959} while (YYID (0)(0))
960
961
962/*--------------------------------.
963| Print this symbol on YYOUTPUT. |
964`--------------------------------*/
965
966/*ARGSUSED*/
967#if (defined __STDC__1 || defined __C99__FUNC__ \
968 || defined __cplusplus || defined _MSC_VER)
969static void
970yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
971#else
972static void
973yy_symbol_value_print (yyoutput, yytype, yyvaluep)
974 FILE *yyoutput;
975 int yytype;
976 YYSTYPE const * const yyvaluep;
977#endif
978{
979 if (!yyvaluep)
980 return;
981# ifdef YYPRINT
982 if (yytype < YYNTOKENS74)
983 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
984# else
985 YYUSE (yyoutput)((void) (yyoutput));
986# endif
987 switch (yytype)
988 {
989 default:
990 break;
991 }
992}
993
994
995/*--------------------------------.
996| Print this symbol on YYOUTPUT. |
997`--------------------------------*/
998
999#if (defined __STDC__1 || defined __C99__FUNC__ \
1000 || defined __cplusplus || defined _MSC_VER)
1001static void
1002yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1003#else
1004static void
1005yy_symbol_print (yyoutput, yytype, yyvaluep)
1006 FILE *yyoutput;
1007 int yytype;
1008 YYSTYPE const * const yyvaluep;
1009#endif
1010{
1011 if (yytype < YYNTOKENS74)
1012 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1013 else
1014 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1015
1016 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1017 YYFPRINTF (yyoutput, ")");
1018}
1019
1020/*------------------------------------------------------------------.
1021| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1022| TOP (included). |
1023`------------------------------------------------------------------*/
1024
1025#if (defined __STDC__1 || defined __C99__FUNC__ \
1026 || defined __cplusplus || defined _MSC_VER)
1027static void
1028yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1029#else
1030static void
1031yy_stack_print (yybottom, yytop)
1032 yytype_int16 *yybottom;
1033 yytype_int16 *yytop;
1034#endif
1035{
1036 YYFPRINTF (stderrstderr, "Stack now");
1037 for (; yybottom <= yytop; yybottom++)
1038 {
1039 int yybot = *yybottom;
1040 YYFPRINTF (stderrstderr, " %d", yybot);
1041 }
1042 YYFPRINTF (stderrstderr, "\n");
1043}
1044
1045# define YY_STACK_PRINT(Bottom, Top) \
1046do { \
1047 if (yydebugdvdvmdebug) \
1048 yy_stack_print ((Bottom), (Top)); \
1049} while (YYID (0)(0))
1050
1051
1052/*------------------------------------------------.
1053| Report that the YYRULE is going to be reduced. |
1054`------------------------------------------------*/
1055
1056#if (defined __STDC__1 || defined __C99__FUNC__ \
1057 || defined __cplusplus || defined _MSC_VER)
1058static void
1059yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1060#else
1061static void
1062yy_reduce_print (yyvsp, yyrule)
1063 YYSTYPE *yyvsp;
1064 int yyrule;
1065#endif
1066{
1067 int yynrhs = yyr2[yyrule];
1068 int yyi;
1069 unsigned long int yylno = yyrline[yyrule];
1070 YYFPRINTF (stderrstderr, "Reducing stack by rule %d (line %lu):\n",
1071 yyrule - 1, yylno);
1072 /* The symbols being reduced. */
1073 for (yyi = 0; yyi < yynrhs; yyi++)
1074 {
1075 YYFPRINTF (stderrstderr, " $%d = ", yyi + 1);
1076 yy_symbol_print (stderrstderr, yyrhs[yyprhs[yyrule] + yyi],
1077 &(yyvsp[(yyi + 1) - (yynrhs)])
1078 );
1079 YYFPRINTF (stderrstderr, "\n");
1080 }
1081}
1082
1083# define YY_REDUCE_PRINT(Rule) \
1084do { \
1085 if (yydebugdvdvmdebug) \
1086 yy_reduce_print (yyvsp, Rule); \
1087} while (YYID (0)(0))
1088
1089/* Nonzero means print parse trace. It is left uninitialized so that
1090 multiple parsers can coexist. */
1091int yydebugdvdvmdebug;
1092#else /* !YYDEBUG */
1093# define YYDPRINTF(Args)
1094# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1095# define YY_STACK_PRINT(Bottom, Top)
1096# define YY_REDUCE_PRINT(Rule)
1097#endif /* !YYDEBUG */
1098
1099
1100/* YYINITDEPTH -- initial size of the parser's stacks. */
1101#ifndef YYINITDEPTH200
1102# define YYINITDEPTH200 200
1103#endif
1104
1105/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1106 if the built-in stack extension method is used).
1107
1108 Do not make this value too large; the results are undefined if
1109 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1110 evaluated with infinite-precision integer arithmetic. */
1111
1112#ifndef YYMAXDEPTH10000
1113# define YYMAXDEPTH10000 10000
1114#endif
1115
1116
1117#if YYERROR_VERBOSE1
1118
1119# ifndef yystrlenstrlen
1120# if defined __GLIBC__2 && defined _STRING_H1
1121# define yystrlenstrlen strlen
1122# else
1123/* Return the length of YYSTR. */
1124#if (defined __STDC__1 || defined __C99__FUNC__ \
1125 || defined __cplusplus || defined _MSC_VER)
1126static YYSIZE_Tlong unsigned int
1127yystrlenstrlen (const char *yystr)
1128#else
1129static YYSIZE_Tlong unsigned int
1130yystrlenstrlen (yystr)
1131 const char *yystr;
1132#endif
1133{
1134 YYSIZE_Tlong unsigned int yylen;
1135 for (yylen = 0; yystr[yylen]; yylen++)
1136 continue;
1137 return yylen;
1138}
1139# endif
1140# endif
1141
1142# ifndef yystpcpystpcpy
1143# if defined __GLIBC__2 && defined _STRING_H1 && defined _GNU_SOURCE
1144# define yystpcpystpcpy stpcpy
1145# else
1146/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1147 YYDEST. */
1148#if (defined __STDC__1 || defined __C99__FUNC__ \
1149 || defined __cplusplus || defined _MSC_VER)
1150static char *
1151yystpcpy (char *yydest, const char *yysrc)__builtin_stpcpy (char *yydest, const char *yysrc)
1152#else
1153static char *
1154yystpcpy (yydest, yysrc)__builtin_stpcpy (yydest, yysrc)
1155 char *yydest;
1156 const char *yysrc;
1157#endif
1158{
1159 char *yyd = yydest;
1160 const char *yys = yysrc;
1161
1162 while ((*yyd++ = *yys++) != '\0')
1163 continue;
1164
1165 return yyd - 1;
1166}
1167# endif
1168# endif
1169
1170# ifndef yytnamerr
1171/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1172 quotes and backslashes, so that it's suitable for yyerror. The
1173 heuristic is that double-quoting is unnecessary unless the string
1174 contains an apostrophe, a comma, or backslash (other than
1175 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1176 null, do not copy; instead, return the length of what the result
1177 would have been. */
1178static YYSIZE_Tlong unsigned int
1179yytnamerr (char *yyres, const char *yystr)
1180{
1181 if (*yystr == '"')
1182 {
1183 YYSIZE_Tlong unsigned int yyn = 0;
1184 char const *yyp = yystr;
1185
1186 for (;;)
1187 switch (*++yyp)
1188 {
1189 case '\'':
1190 case ',':
1191 goto do_not_strip_quotes;
1192
1193 case '\\':
1194 if (*++yyp != '\\')
1195 goto do_not_strip_quotes;
1196 /* Fall through. */
1197 default:
1198 if (yyres)
1199 yyres[yyn] = *yyp;
1200 yyn++;
1201 break;
1202
1203 case '"':
1204 if (yyres)
1205 yyres[yyn] = '\0';
1206 return yyn;
1207 }
1208 do_not_strip_quotes: ;
1209 }
1210
1211 if (! yyres)
1212 return yystrlenstrlen (yystr);
1213
1214 return yystpcpy (yyres, yystr)__builtin_stpcpy (yyres, yystr) - yyres;
1215}
1216# endif
1217
1218/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1219 about the unexpected token YYTOKEN for the state stack whose top is
1220 YYSSP.
1221
1222 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1223 not large enough to hold the message. In that case, also set
1224 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1225 required number of bytes is too large to store. */
1226static int
1227yysyntax_error (YYSIZE_Tlong unsigned int *yymsg_alloc, char **yymsg,
1228 yytype_int16 *yyssp, int yytoken)
1229{
1230 YYSIZE_Tlong unsigned int yysize0 = yytnamerr (0, yytname[yytoken]);
1231 YYSIZE_Tlong unsigned int yysize = yysize0;
1232 YYSIZE_Tlong unsigned int yysize1;
1233 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1234 /* Internationalized format string. */
1235 const char *yyformat = 0;
1236 /* Arguments of yyformat. */
1237 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1238 /* Number of reported tokens (one for the "unexpected", one per
1239 "expected"). */
1240 int yycount = 0;
1241
1242 /* There are many possibilities here to consider:
1243 - Assume YYFAIL is not used. It's too flawed to consider. See
1244 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1245 for details. YYERROR is fine as it does not invoke this
1246 function.
1247 - If this state is a consistent state with a default action, then
1248 the only way this function was invoked is if the default action
1249 is an error action. In that case, don't check for expected
1250 tokens because there are none.
1251 - The only way there can be no lookahead present (in yychar) is if
1252 this state is a consistent state with a default action. Thus,
1253 detecting the absence of a lookahead is sufficient to determine
1254 that there is no unexpected or expected token to report. In that
1255 case, just report a simple "syntax error".
1256 - Don't assume there isn't a lookahead just because this state is a
1257 consistent state with a default action. There might have been a
1258 previous inconsistent state, consistent state with a non-default
1259 action, or user semantic action that manipulated yychar.
1260 - Of course, the expected token list depends on states to have
1261 correct lookahead information, and it depends on the parser not
1262 to perform extra reductions after fetching a lookahead from the
1263 scanner and before detecting a syntax error. Thus, state merging
1264 (from LALR or IELR) and default reductions corrupt the expected
1265 token list. However, the list is correct for canonical LR with
1266 one exception: it will still contain any token that will not be
1267 accepted due to an error action in a later state.
1268 */
1269 if (yytoken != YYEMPTY(-2))
1270 {
1271 int yyn = yypact[*yyssp];
1272 yyarg[yycount++] = yytname[yytoken];
1273 if (!yypact_value_is_default (yyn)((yyn) == (-57)))
1274 {
1275 /* Start YYX at -YYN if negative to avoid negative indexes in
1276 YYCHECK. In other words, skip the first -YYN actions for
1277 this state because they are default actions. */
1278 int yyxbegin = yyn < 0 ? -yyn : 0;
1279 /* Stay within bounds of both yycheck and yytname. */
1280 int yychecklim = YYLAST401 - yyn + 1;
1281 int yyxend = yychecklim < YYNTOKENS74 ? yychecklim : YYNTOKENS74;
1282 int yyx;
1283
1284 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1285 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR1
1286 && !yytable_value_is_error (yytable[yyx + yyn])(0))
1287 {
1288 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1289 {
1290 yycount = 1;
1291 yysize = yysize0;
1292 break;
1293 }
1294 yyarg[yycount++] = yytname[yyx];
1295 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1296 if (! (yysize <= yysize1
1297 && yysize1 <= YYSTACK_ALLOC_MAXIMUM((long unsigned int) -1)))
1298 return 2;
1299 yysize = yysize1;
1300 }
1301 }
1302 }
1303
1304 switch (yycount)
1305 {
1306# define YYCASE_(N, S) \
1307 case N: \
1308 yyformat = S; \
1309 break
1310 YYCASE_(0, YY_("syntax error")"syntax error");
1311 YYCASE_(1, YY_("syntax error, unexpected %s")"syntax error, unexpected %s");
1312 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")"syntax error, unexpected %s, expecting %s");
1313 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")"syntax error, unexpected %s, expecting %s or %s");
1314 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")"syntax error, unexpected %s, expecting %s or %s or %s");
1315 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")"syntax error, unexpected %s, expecting %s or %s or %s or %s");
1316# undef YYCASE_
1317 }
1318
1319 yysize1 = yysize + yystrlenstrlen (yyformat);
1320 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM((long unsigned int) -1)))
1321 return 2;
1322 yysize = yysize1;
1323
1324 if (*yymsg_alloc < yysize)
1325 {
1326 *yymsg_alloc = 2 * yysize;
1327 if (! (yysize <= *yymsg_alloc
1328 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM((long unsigned int) -1)))
1329 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM((long unsigned int) -1);
1330 return 1;
1331 }
1332
1333 /* Avoid sprintf, as that infringes on the user's name space.
1334 Don't have undefined behavior even if the translation
1335 produced a string with the wrong number of "%s"s. */
1336 {
1337 char *yyp = *yymsg;
1338 int yyi = 0;
1339 while ((*yyp = *yyformat) != '\0')
1340 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1341 {
1342 yyp += yytnamerr (yyp, yyarg[yyi++]);
1343 yyformat += 2;
1344 }
1345 else
1346 {
1347 yyp++;
1348 yyformat++;
1349 }
1350 }
1351 return 0;
1352}
1353#endif /* YYERROR_VERBOSE */
1354
1355/*-----------------------------------------------.
1356| Release the memory associated to this symbol. |
1357`-----------------------------------------------*/
1358
1359/*ARGSUSED*/
1360#if (defined __STDC__1 || defined __C99__FUNC__ \
1361 || defined __cplusplus || defined _MSC_VER)
1362static void
1363yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1364#else
1365static void
1366yydestruct (yymsg, yytype, yyvaluep)
1367 const char *yymsg;
1368 int yytype;
1369 YYSTYPE *yyvaluep;
1370#endif
1371{
1372 YYUSE (yyvaluep)((void) (yyvaluep));
1373
1374 if (!yymsg)
1375 yymsg = "Deleting";
1376 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1377
1378 switch (yytype)
1379 {
1380
1381 default:
1382 break;
1383 }
1384}
1385
1386
1387/* Prevent warnings from -Wmissing-prototypes. */
1388#ifdef YYPARSE_PARAM
1389#if defined __STDC__1 || defined __cplusplus
1390int yyparsedvdvmparse (void *YYPARSE_PARAM);
1391#else
1392int yyparsedvdvmparse ();
1393#endif
1394#else /* ! YYPARSE_PARAM */
1395#if defined __STDC__1 || defined __cplusplus
1396int yyparsedvdvmparse (void);
1397#else
1398int yyparsedvdvmparse ();
1399#endif
1400#endif /* ! YYPARSE_PARAM */
1401
1402
1403/* The lookahead symbol. */
1404int yychardvdvmchar;
1405
1406/* The semantic value of the lookahead symbol. */
1407YYSTYPE yylvaldvdvmlval;
1408
1409/* Number of syntax errors so far. */
1410int yynerrsdvdvmnerrs;
1411
1412
1413/*----------.
1414| yyparse. |
1415`----------*/
1416
1417#ifdef YYPARSE_PARAM
1418#if (defined __STDC__1 || defined __C99__FUNC__ \
1419 || defined __cplusplus || defined _MSC_VER)
1420int
1421yyparsedvdvmparse (void *YYPARSE_PARAM)
1422#else
1423int
1424yyparsedvdvmparse (YYPARSE_PARAM)
1425 void *YYPARSE_PARAM;
1426#endif
1427#else /* ! YYPARSE_PARAM */
1428#if (defined __STDC__1 || defined __C99__FUNC__ \
1429 || defined __cplusplus || defined _MSC_VER)
1430int
1431yyparsedvdvmparse (void)
1432#else
1433int
1434yyparsedvdvmparse ()
1435
1436#endif
1437#endif
1438{
1439 int yystate;
1440 /* Number of tokens to shift before error messages enabled. */
1441 int yyerrstatus;
1442
1443 /* The stacks and their tools:
1444 `yyss': related to states.
1445 `yyvs': related to semantic values.
1446
1447 Refer to the stacks thru separate pointers, to allow yyoverflow
1448 to reallocate them elsewhere. */
1449
1450 /* The state stack. */
1451 yytype_int16 yyssa[YYINITDEPTH200];
1452 yytype_int16 *yyss;
1453 yytype_int16 *yyssp;
1454
1455 /* The semantic value stack. */
1456 YYSTYPE yyvsa[YYINITDEPTH200];
1457 YYSTYPE *yyvs;
1458 YYSTYPE *yyvsp;
1459
1460 YYSIZE_Tlong unsigned int yystacksize;
1461
1462 int yyn;
1463 int yyresult;
1464 /* Lookahead token as an internal (translated) token number. */
1465 int yytoken;
1466 /* The variables used to return semantic value and location from the
1467 action routines. */
1468 YYSTYPE yyval;
1469
1470#if YYERROR_VERBOSE1
1471 /* Buffer for error messages, and its allocated size. */
1472 char yymsgbuf[128];
1473 char *yymsg = yymsgbuf;
1474 YYSIZE_Tlong unsigned int yymsg_alloc = sizeof yymsgbuf;
1475#endif
1476
1477#define YYPOPSTACK(N)(yyvsp -= (N), yyssp -= (N)) (yyvsp -= (N), yyssp -= (N))
1478
1479 /* The number of symbols on the RHS of the reduced rule.
1480 Keep to zero when no symbol should be popped. */
1481 int yylen = 0;
1482
1483 yytoken = 0;
Value stored to 'yytoken' is never read
1484 yyss = yyssa;
1485 yyvs = yyvsa;
1486 yystacksize = YYINITDEPTH200;
1487
1488 YYDPRINTF ((stderr, "Starting parse\n"));
1489
1490 yystate = 0;
1491 yyerrstatus = 0;
1492 yynerrsdvdvmnerrs = 0;
1493 yychardvdvmchar = YYEMPTY(-2); /* Cause a token to be read. */
1494
1495 /* Initialize stack pointers.
1496 Waste one element of value and location stack
1497 so that they stay on the same level as the state stack.
1498 The wasted elements are never initialized. */
1499 yyssp = yyss;
1500 yyvsp = yyvs;
1501
1502 goto yysetstate;
1503
1504/*------------------------------------------------------------.
1505| yynewstate -- Push a new state, which is found in yystate. |
1506`------------------------------------------------------------*/
1507 yynewstate:
1508 /* In all cases, when you get here, the value and location stacks
1509 have just been pushed. So pushing a state here evens the stacks. */
1510 yyssp++;
1511
1512 yysetstate:
1513 *yyssp = yystate;
1514
1515 if (yyss + yystacksize - 1 <= yyssp)
1516 {
1517 /* Get the current used size of the three stacks, in elements. */
1518 YYSIZE_Tlong unsigned int yysize = yyssp - yyss + 1;
1519
1520#ifdef yyoverflow
1521 {
1522 /* Give user a chance to reallocate the stack. Use copies of
1523 these so that the &'s don't force the real ones into
1524 memory. */
1525 YYSTYPE *yyvs1 = yyvs;
1526 yytype_int16 *yyss1 = yyss;
1527
1528 /* Each stack pointer address is followed by the size of the
1529 data in use in that stack, in bytes. This used to be a
1530 conditional around just the two extra args, but that might
1531 be undefined if yyoverflow is a macro. */
1532 yyoverflow (YY_("memory exhausted")"memory exhausted",
1533 &yyss1, yysize * sizeof (*yyssp),
1534 &yyvs1, yysize * sizeof (*yyvsp),
1535 &yystacksize);
1536
1537 yyss = yyss1;
1538 yyvs = yyvs1;
1539 }
1540#else /* no yyoverflow */
1541# ifndef YYSTACK_RELOCATE
1542 goto yyexhaustedlab;
1543# else
1544 /* Extend the stack our own way. */
1545 if (YYMAXDEPTH10000 <= yystacksize)
1546 goto yyexhaustedlab;
1547 yystacksize *= 2;
1548 if (YYMAXDEPTH10000 < yystacksize)
1549 yystacksize = YYMAXDEPTH10000;
1550
1551 {
1552 yytype_int16 *yyss1 = yyss;
1553 union yyalloc *yyptr =
1554 (union yyalloc *) YYSTACK_ALLOCmalloc (YYSTACK_BYTES (yystacksize)((yystacksize) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) +
(sizeof (union yyalloc) - 1))
);
1555 if (! yyptr)
1556 goto yyexhaustedlab;
1557 YYSTACK_RELOCATE (yyss_alloc, yyss);
1558 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1559# undef YYSTACK_RELOCATE
1560 if (yyss1 != yyssa)
1561 YYSTACK_FREEfree (yyss1);
1562 }
1563# endif
1564#endif /* no yyoverflow */
1565
1566 yyssp = yyss + yysize - 1;
1567 yyvsp = yyvs + yysize - 1;
1568
1569 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1570 (unsigned long int) yystacksize));
1571
1572 if (yyss + yystacksize - 1 <= yyssp)
1573 YYABORTgoto yyabortlab;
1574 }
1575
1576 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1577
1578 if (yystate == YYFINAL46)
1579 YYACCEPTgoto yyacceptlab;
1580
1581 goto yybackup;
1582
1583/*-----------.
1584| yybackup. |
1585`-----------*/
1586yybackup:
1587
1588 /* Do appropriate processing given the current state. Read a
1589 lookahead token if we need one and don't already have one. */
1590
1591 /* First try to decide what to do without reference to lookahead token. */
1592 yyn = yypact[yystate];
1593 if (yypact_value_is_default (yyn)((yyn) == (-57)))
1594 goto yydefault;
1595
1596 /* Not known => get a lookahead token if don't already have one. */
1597
1598 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1599 if (yychardvdvmchar == YYEMPTY(-2))
1600 {
1601 YYDPRINTF ((stderr, "Reading a token: "));
1602 yychardvdvmchar = YYLEXdvdvmlex ();
1603 }
1604
1605 if (yychardvdvmchar <= YYEOF0)
1606 {
1607 yychardvdvmchar = yytoken = YYEOF0;
1608 YYDPRINTF ((stderr, "Now at end of input.\n"));
1609 }
1610 else
1611 {
1612 yytoken = YYTRANSLATE (yychar)((unsigned int) (dvdvmchar) <= 328 ? yytranslate[dvdvmchar
] : 2)
;
1613 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1614 }
1615
1616 /* If the proper action on seeing token YYTOKEN is to reduce or to
1617 detect an error, take that action. */
1618 yyn += yytoken;
1619 if (yyn < 0 || YYLAST401 < yyn || yycheck[yyn] != yytoken)
1620 goto yydefault;
1621 yyn = yytable[yyn];
1622 if (yyn <= 0)
1623 {
1624 if (yytable_value_is_error (yyn)(0))
1625 goto yyerrlab;
1626 yyn = -yyn;
1627 goto yyreduce;
1628 }
1629
1630 /* Count tokens shifted since error; after three, turn off error
1631 status. */
1632 if (yyerrstatus)
1633 yyerrstatus--;
1634
1635 /* Shift the lookahead token. */
1636 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1637
1638 /* Discard the shifted token. */
1639 yychardvdvmchar = YYEMPTY(-2);
1640
1641 yystate = yyn;
1642 *++yyvsp = yylvaldvdvmlval;
1643
1644 goto yynewstate;
1645
1646
1647/*-----------------------------------------------------------.
1648| yydefault -- do the default action for the current state. |
1649`-----------------------------------------------------------*/
1650yydefault:
1651 yyn = yydefact[yystate];
1652 if (yyn == 0)
1653 goto yyerrlab;
1654 goto yyreduce;
1655
1656
1657/*-----------------------------.
1658| yyreduce -- Do a reduction. |
1659`-----------------------------*/
1660yyreduce:
1661 /* yyn is the number of a rule to reduce with. */
1662 yylen = yyr2[yyn];
1663
1664 /* If YYLEN is nonzero, implement the default value of the action:
1665 `$$ = $1'.
1666
1667 Otherwise, the following line sets YYVAL to garbage.
1668 This behavior is undocumented and Bison
1669 users should not rely upon it. Assigning to YYVAL
1670 unconditionally makes the parser a bit smaller, and it avoids a
1671 GCC warning that YYVAL may be used uninitialized. */
1672 yyval = yyvsp[1-yylen];
1673
1674
1675 YY_REDUCE_PRINT (yyn);
1676 switch (yyn)
1677 {
1678 case 2:
1679
1680/* Line 1806 of yacc.c */
1681#line 102 "dvdvmy.y"
1682 {
1683 dvd_vm_parsed_cmd=(yyval.statement);
1684}
1685 break;
1686
1687 case 3:
1688
1689/* Line 1806 of yacc.c */
1690#line 107 "dvdvmy.y"
1691 {
1692 (yyval.statement)=(yyvsp[(1) - (1)].statement);
1693}
1694 break;
1695
1696 case 4:
1697
1698/* Line 1806 of yacc.c */
1699#line 110 "dvdvmy.y"
1700 {
1701 (yyval.statement)=(yyvsp[(1) - (2)].statement);
1702 (yyval.statement)->next=(yyvsp[(2) - (2)].statement);
1703}
1704 break;
1705
1706 case 5:
1707
1708/* Line 1806 of yacc.c */
1709#line 116 "dvdvmy.y"
1710 {
1711 (yyval.statement)=(yyvsp[(1) - (1)].statement);
1712}
1713 break;
1714
1715 case 6:
1716
1717/* Line 1806 of yacc.c */
1718#line 119 "dvdvmy.y"
1719 {
1720 (yyval.statement)=(yyvsp[(1) - (1)].statement);
1721}
1722 break;
1723
1724 case 7:
1725
1726/* Line 1806 of yacc.c */
1727#line 122 "dvdvmy.y"
1728 {
1729 (yyval.statement)=statement_new();
1730 (yyval.statement)->op=VM_EXIT;
1731}
1732 break;
1733
1734 case 8:
1735
1736/* Line 1806 of yacc.c */
1737#line 126 "dvdvmy.y"
1738 {
1739 (yyval.statement)=statement_new();
1740 (yyval.statement)->op=VM_LINK;
1741 (yyval.statement)->i1=16;
1742}
1743 break;
1744
1745 case 9:
1746
1747/* Line 1806 of yacc.c */
1748#line 131 "dvdvmy.y"
1749 {
1750 (yyval.statement)=statement_new();
1751 (yyval.statement)->op=VM_GOTO;
1752 (yyval.statement)->s1=(yyvsp[(2) - (3)].str_val);
1753}
1754 break;
1755
1756 case 10:
1757
1758/* Line 1806 of yacc.c */
1759#line 136 "dvdvmy.y"
1760 {
1761 (yyval.statement)=statement_new();
1762 (yyval.statement)->op=VM_LABEL;
1763 (yyval.statement)->s1=(yyvsp[(1) - (2)].str_val);
1764}
1765 break;
1766
1767 case 11:
1768
1769/* Line 1806 of yacc.c */
1770#line 141 "dvdvmy.y"
1771 {
1772 (yyval.statement)=statement_new();
1773 (yyval.statement)->op=VM_BREAK;
1774}
1775 break;
1776
1777 case 12:
1778
1779/* Line 1806 of yacc.c */
1780#line 145 "dvdvmy.y"
1781 {
1782 (yyval.statement)=(yyvsp[(1) - (1)].statement);
1783}
1784 break;
1785
1786 case 13:
1787
1788/* Line 1806 of yacc.c */
1789#line 148 "dvdvmy.y"
1790 {
1791 (yyval.statement)=(yyvsp[(2) - (3)].statement);
1792}
1793 break;
1794
1795 case 14:
1796
1797/* Line 1806 of yacc.c */
1798#line 151 "dvdvmy.y"
1799 {
1800 (yyval.statement)=(yyvsp[(1) - (1)].statement);
1801}
1802 break;
1803
1804 case 15:
1805
1806/* Line 1806 of yacc.c */
1807#line 156 "dvdvmy.y"
1808 {
1809 if ((yyvsp[(2) - (2)].int_val) < 1 || (yyvsp[(2) - (2)].int_val) > 99)
1810 {
1811 yyerrordvdvmerror("titleset number out of range");
1812 } /*if*/
1813 (yyval.int_val)=((yyvsp[(2) - (2)].int_val))+1;
1814}
1815 break;
1816
1817 case 16:
1818
1819/* Line 1806 of yacc.c */
1820#line 163 "dvdvmy.y"
1821 {
1822 (yyval.int_val)=1;
1823}
1824 break;
1825
1826 case 17:
1827
1828/* Line 1806 of yacc.c */
1829#line 166 "dvdvmy.y"
1830 {
1831 (yyval.int_val)=0;
1832}
1833 break;
1834
1835 case 18:
1836
1837/* Line 1806 of yacc.c */
1838#line 171 "dvdvmy.y"
1839 {
1840 if ((yyvsp[(2) - (2)].int_val) < 1 || (yyvsp[(2) - (2)].int_val) > 99)
1841 {
1842 yyerrordvdvmerror("menu number out of range");
1843 } /*if*/
1844 (yyval.int_val)=(yyvsp[(2) - (2)].int_val);
1845}
1846 break;
1847
1848 case 19:
1849
1850/* Line 1806 of yacc.c */
1851#line 178 "dvdvmy.y"
1852 {
1853 (yyval.int_val)=120; // default entry
1854}
1855 break;
1856
1857 case 20:
1858
1859/* Line 1806 of yacc.c */
1860#line 181 "dvdvmy.y"
1861 {
1862 (yyval.int_val)=122;
1863}
1864 break;
1865
1866 case 21:
1867
1868/* Line 1806 of yacc.c */
1869#line 184 "dvdvmy.y"
1870 {
1871 (yyval.int_val)=123;
1872}
1873 break;
1874
1875 case 22:
1876
1877/* Line 1806 of yacc.c */
1878#line 187 "dvdvmy.y"
1879 {
1880 (yyval.int_val)=124;
1881}
1882 break;
1883
1884 case 23:
1885
1886/* Line 1806 of yacc.c */
1887#line 190 "dvdvmy.y"
1888 {
1889 (yyval.int_val)=125;
1890}
1891 break;
1892
1893 case 24:
1894
1895/* Line 1806 of yacc.c */
1896#line 193 "dvdvmy.y"
1897 {
1898 (yyval.int_val)=126;
1899}
1900 break;
1901
1902 case 25:
1903
1904/* Line 1806 of yacc.c */
1905#line 196 "dvdvmy.y"
1906 {
1907 (yyval.int_val)=127;
1908}
1909 break;
1910
1911 case 26:
1912
1913/* Line 1806 of yacc.c */
1914#line 199 "dvdvmy.y"
1915 {
1916 (yyval.int_val)=121;
1917}
1918 break;
1919
1920 case 27:
1921
1922/* Line 1806 of yacc.c */
1923#line 202 "dvdvmy.y"
1924 {
1925 if ((yyvsp[(2) - (2)].int_val) < 1 || (yyvsp[(2) - (2)].int_val) > 99)
1926 {
1927 yyerrordvdvmerror("title number out of range");
1928 } /*if*/
1929 (yyval.int_val)=((yyvsp[(2) - (2)].int_val))|128;
1930}
1931 break;
1932
1933 case 28:
1934
1935/* Line 1806 of yacc.c */
1936#line 209 "dvdvmy.y"
1937 {
1938 (yyval.int_val)=0;
1939}
1940 break;
1941
1942 case 29:
1943
1944/* Line 1806 of yacc.c */
1945#line 214 "dvdvmy.y"
1946 {
1947 if ((yyvsp[(2) - (2)].int_val) < 1 || (yyvsp[(2) - (2)].int_val) > 65535)
1948 {
1949 yyerrordvdvmerror("chapter number out of range");
1950 } /*if*/
1951 (yyval.int_val)=(yyvsp[(2) - (2)].int_val);
1952}
1953 break;
1954
1955 case 30:
1956
1957/* Line 1806 of yacc.c */
1958#line 221 "dvdvmy.y"
1959 {
1960 (yyval.int_val)=0;
1961}
1962 break;
1963
1964 case 31:
1965
1966/* Line 1806 of yacc.c */
1967#line 226 "dvdvmy.y"
1968 {
1969 (yyval.statement)=statement_new();
1970 (yyval.statement)->op=VM_JUMP;
1971 /* values already range-checked: */
1972 (yyval.statement)->i1=(yyvsp[(2) - (5)].int_val);
1973 (yyval.statement)->i2=(yyvsp[(3) - (5)].int_val);
1974 (yyval.statement)->i3=(yyvsp[(4) - (5)].int_val);
1975}
1976 break;
1977
1978 case 32:
1979
1980/* Line 1806 of yacc.c */
1981#line 234 "dvdvmy.y"
1982 {
1983 if ((yyvsp[(3) - (4)].int_val) < 1 || (yyvsp[(3) - (4)].int_val) > 65535)
1984 {
1985 yyerrordvdvmerror("cell number out of range");
1986 } /*if*/
1987 (yyval.statement)=statement_new();
1988 (yyval.statement)->op=VM_JUMP;
1989 (yyval.statement)->i3=2*65536+(yyvsp[(3) - (4)].int_val);
1990}
1991 break;
1992
1993 case 33:
1994
1995/* Line 1806 of yacc.c */
1996#line 243 "dvdvmy.y"
1997 {
1998 if ((yyvsp[(3) - (4)].int_val) < 1 || (yyvsp[(3) - (4)].int_val) > 65535)
1999 {
2000 yyerrordvdvmerror("program number out of range");
2001 } /*if*/
2002 (yyval.statement)=statement_new();
2003 (yyval.statement)->op=VM_JUMP;
2004 (yyval.statement)->i3=65536+(yyvsp[(3) - (4)].int_val);
2005}
2006 break;
2007
2008 case 34:
2009
2010/* Line 1806 of yacc.c */
2011#line 252 "dvdvmy.y"
2012 {
2013 (yyval.statement)=statement_new();
2014 (yyval.statement)->op=VM_LINK;
2015 (yyval.statement)->i1=1;
2016}
2017 break;
2018
2019 case 35:
2020
2021/* Line 1806 of yacc.c */
2022#line 257 "dvdvmy.y"
2023 {
2024 (yyval.statement)=statement_new();
2025 (yyval.statement)->op=VM_LINK;
2026 (yyval.statement)->i1=2;
2027}
2028 break;
2029
2030 case 36:
2031
2032/* Line 1806 of yacc.c */
2033#line 262 "dvdvmy.y"
2034 {
2035 (yyval.statement)=statement_new();
2036 (yyval.statement)->op=VM_LINK;
2037 (yyval.statement)->i1=3;
2038}
2039 break;
2040
2041 case 37:
2042
2043/* Line 1806 of yacc.c */
2044#line 267 "dvdvmy.y"
2045 {
2046 (yyval.statement)=statement_new();
2047 (yyval.statement)->op=VM_LINK;
2048 (yyval.statement)->i1=5;
2049}
2050 break;
2051
2052 case 38:
2053
2054/* Line 1806 of yacc.c */
2055#line 272 "dvdvmy.y"
2056 {
2057 (yyval.statement)=statement_new();
2058 (yyval.statement)->op=VM_LINK;
2059 (yyval.statement)->i1=6;
2060}
2061 break;
2062
2063 case 39:
2064
2065/* Line 1806 of yacc.c */
2066#line 277 "dvdvmy.y"
2067 {
2068 (yyval.statement)=statement_new();
2069 (yyval.statement)->op=VM_LINK;
2070 (yyval.statement)->i1=7;
2071}
2072 break;
2073
2074 case 40:
2075
2076/* Line 1806 of yacc.c */
2077#line 282 "dvdvmy.y"
2078 {
2079 (yyval.statement)=statement_new();
2080 (yyval.statement)->op=VM_LINK;
2081 (yyval.statement)->i1=9;
2082}
2083 break;
2084
2085 case 41:
2086
2087/* Line 1806 of yacc.c */
2088#line 287 "dvdvmy.y"
2089 {
2090 (yyval.statement)=statement_new();
2091 (yyval.statement)->op=VM_LINK;
2092 (yyval.statement)->i1=10;
2093}
2094 break;
2095
2096 case 42:
2097
2098/* Line 1806 of yacc.c */
2099#line 292 "dvdvmy.y"
2100 {
2101 (yyval.statement)=statement_new();
2102 (yyval.statement)->op=VM_LINK;
2103 (yyval.statement)->i1=11;
2104}
2105 break;
2106
2107 case 43:
2108
2109/* Line 1806 of yacc.c */
2110#line 297 "dvdvmy.y"
2111 {
2112 (yyval.statement)=statement_new();
2113 (yyval.statement)->op=VM_LINK;
2114 (yyval.statement)->i1=12;
2115}
2116 break;
2117
2118 case 44:
2119
2120/* Line 1806 of yacc.c */
2121#line 302 "dvdvmy.y"
2122 {
2123 (yyval.statement)=statement_new();
2124 (yyval.statement)->op=VM_LINK;
2125 (yyval.statement)->i1=13;
2126}
2127 break;
2128
2129 case 45:
2130
2131/* Line 1806 of yacc.c */
2132#line 309 "dvdvmy.y"
2133 {
2134 if ((yyvsp[(2) - (2)].int_val) < 1 || (yyvsp[(2) - (2)].int_val) > 65535)
2135 {
2136 yyerrordvdvmerror("resume cell number out of range");
2137 } /*if*/
2138 (yyval.int_val)=(yyvsp[(2) - (2)].int_val);
2139}
2140 break;
2141
2142 case 46:
2143
2144/* Line 1806 of yacc.c */
2145#line 316 "dvdvmy.y"
2146 {
2147 (yyval.int_val)=0;
2148}
2149 break;
2150
2151 case 47:
2152
2153/* Line 1806 of yacc.c */
2154#line 321 "dvdvmy.y"
2155 {
2156 (yyval.statement)=statement_new();
2157 (yyval.statement)->op=VM_CALL;
2158 /* values already range-checked: */
2159 (yyval.statement)->i1=(yyvsp[(2) - (6)].int_val);
2160 (yyval.statement)->i2=(yyvsp[(3) - (6)].int_val);
2161 (yyval.statement)->i3=(yyvsp[(4) - (6)].int_val);
2162 (yyval.statement)->i4=(yyvsp[(5) - (6)].int_val);
2163}
2164 break;
2165
2166 case 48:
2167
2168/* Line 1806 of yacc.c */
2169#line 332 "dvdvmy.y"
2170 {
2171 (yyval.int_val)=(yyvsp[(1) - (1)].int_val);
2172}
2173 break;
2174
2175 case 49:
2176
2177/* Line 1806 of yacc.c */
2178#line 335 "dvdvmy.y"
2179 {
2180 (yyval.int_val)=(yyvsp[(1) - (1)].int_val)+0x80;
2181}
2182 break;
2183
2184 case 50:
2185
2186/* Line 1806 of yacc.c */
2187#line 338 "dvdvmy.y"
2188 {
2189 (yyval.int_val)=0x81;
2190}
2191 break;
2192
2193 case 51:
2194
2195/* Line 1806 of yacc.c */
2196#line 341 "dvdvmy.y"
2197 {
2198 (yyval.int_val)=0x82;
2199}
2200 break;
2201
2202 case 52:
2203
2204/* Line 1806 of yacc.c */
2205#line 344 "dvdvmy.y"
2206 {
2207 (yyval.int_val)=0x83;
2208}
2209 break;
2210
2211 case 53:
2212
2213/* Line 1806 of yacc.c */
2214#line 347 "dvdvmy.y"
2215 {
2216 (yyval.int_val)=0x88;
2217}
2218 break;
2219
2220 case 54:
2221
2222/* Line 1806 of yacc.c */
2223#line 350 "dvdvmy.y"
2224 {
2225 (yyval.int_val)=0x80+20;
2226}
2227 break;
2228
2229 case 55:
2230
2231/* Line 1806 of yacc.c */
2232#line 355 "dvdvmy.y"
2233 {
2234 (yyval.int_val)=(yyvsp[(1) - (1)].int_val)-256;
2235}
2236 break;
2237
2238 case 56:
2239
2240/* Line 1806 of yacc.c */
2241#line 358 "dvdvmy.y"
2242 {
2243 (yyval.int_val)=(yyvsp[(1) - (1)].int_val);
2244}
2245 break;
2246
2247 case 57:
2248
2249/* Line 1806 of yacc.c */
2250#line 363 "dvdvmy.y"
2251 {
2252 (yyval.statement)=(yyvsp[(2) - (3)].statement);
2253}
2254 break;
2255
2256 case 58:
2257
2258/* Line 1806 of yacc.c */
2259#line 366 "dvdvmy.y"
2260 {
2261 (yyval.statement)=statement_new();
2262 (yyval.statement)->op=VM_VAL;
2263 (yyval.statement)->i1=(yyvsp[(1) - (1)].int_val);
2264}
2265 break;
2266
2267 case 59:
2268
2269/* Line 1806 of yacc.c */
2270#line 371 "dvdvmy.y"
2271 {
2272 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_ADD,(yyvsp[(3) - (3)].statement));
2273}
2274 break;
2275
2276 case 60:
2277
2278/* Line 1806 of yacc.c */
2279#line 374 "dvdvmy.y"
2280 {
2281 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_SUB,(yyvsp[(3) - (3)].statement));
2282}
2283 break;
2284
2285 case 61:
2286
2287/* Line 1806 of yacc.c */
2288#line 377 "dvdvmy.y"
2289 {
2290 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_MUL,(yyvsp[(3) - (3)].statement));
2291}
2292 break;
2293
2294 case 62:
2295
2296/* Line 1806 of yacc.c */
2297#line 380 "dvdvmy.y"
2298 {
2299 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_DIV,(yyvsp[(3) - (3)].statement));
2300}
2301 break;
2302
2303 case 63:
2304
2305/* Line 1806 of yacc.c */
2306#line 383 "dvdvmy.y"
2307 {
2308 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_MOD,(yyvsp[(3) - (3)].statement));
2309}
2310 break;
2311
2312 case 64:
2313
2314/* Line 1806 of yacc.c */
2315#line 386 "dvdvmy.y"
2316 {
2317 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_AND,(yyvsp[(3) - (3)].statement));
2318}
2319 break;
2320
2321 case 65:
2322
2323/* Line 1806 of yacc.c */
2324#line 389 "dvdvmy.y"
2325 {
2326 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_OR, (yyvsp[(3) - (3)].statement));
2327}
2328 break;
2329
2330 case 66:
2331
2332/* Line 1806 of yacc.c */
2333#line 392 "dvdvmy.y"
2334 {
2335 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_AND,(yyvsp[(3) - (3)].statement));
2336}
2337 break;
2338
2339 case 67:
2340
2341/* Line 1806 of yacc.c */
2342#line 395 "dvdvmy.y"
2343 {
2344 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_OR, (yyvsp[(3) - (3)].statement));
2345}
2346 break;
2347
2348 case 68:
2349
2350/* Line 1806 of yacc.c */
2351#line 398 "dvdvmy.y"
2352 {
2353 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_XOR,(yyvsp[(3) - (3)].statement));
2354}
2355 break;
2356
2357 case 69:
2358
2359/* Line 1806 of yacc.c */
2360#line 401 "dvdvmy.y"
2361 {
2362 (yyval.statement)=statement_new();
2363 (yyval.statement)->op=VM_RND;
2364 (yyval.statement)->param=(yyvsp[(3) - (4)].statement);
2365}
2366 break;
2367
2368 case 70:
2369
2370/* Line 1806 of yacc.c */
2371#line 408 "dvdvmy.y"
2372 {
2373 (yyval.statement)=(yyvsp[(2) - (3)].statement);
2374}
2375 break;
2376
2377 case 71:
2378
2379/* Line 1806 of yacc.c */
2380#line 411 "dvdvmy.y"
2381 {
2382 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_EQ,(yyvsp[(3) - (3)].statement));
2383}
2384 break;
2385
2386 case 72:
2387
2388/* Line 1806 of yacc.c */
2389#line 414 "dvdvmy.y"
2390 {
2391 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_NE,(yyvsp[(3) - (3)].statement));
2392}
2393 break;
2394
2395 case 73:
2396
2397/* Line 1806 of yacc.c */
2398#line 417 "dvdvmy.y"
2399 {
2400 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_GTE,(yyvsp[(3) - (3)].statement));
2401}
2402 break;
2403
2404 case 74:
2405
2406/* Line 1806 of yacc.c */
2407#line 420 "dvdvmy.y"
2408 {
2409 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_GT,(yyvsp[(3) - (3)].statement));
2410}
2411 break;
2412
2413 case 75:
2414
2415/* Line 1806 of yacc.c */
2416#line 423 "dvdvmy.y"
2417 {
2418 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_LTE,(yyvsp[(3) - (3)].statement));
2419}
2420 break;
2421
2422 case 76:
2423
2424/* Line 1806 of yacc.c */
2425#line 426 "dvdvmy.y"
2426 {
2427 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_LT,(yyvsp[(3) - (3)].statement));
2428}
2429 break;
2430
2431 case 77:
2432
2433/* Line 1806 of yacc.c */
2434#line 429 "dvdvmy.y"
2435 {
2436 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_LOR,(yyvsp[(3) - (3)].statement));
2437}
2438 break;
2439
2440 case 78:
2441
2442/* Line 1806 of yacc.c */
2443#line 432 "dvdvmy.y"
2444 {
2445 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_LAND,(yyvsp[(3) - (3)].statement));
2446}
2447 break;
2448
2449 case 79:
2450
2451/* Line 1806 of yacc.c */
2452#line 435 "dvdvmy.y"
2453 {
2454 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_LOR,(yyvsp[(3) - (3)].statement));
2455}
2456 break;
2457
2458 case 80:
2459
2460/* Line 1806 of yacc.c */
2461#line 438 "dvdvmy.y"
2462 {
2463 (yyval.statement)=statement_expression((yyvsp[(1) - (3)].statement),VM_LAND,(yyvsp[(3) - (3)].statement));
2464}
2465 break;
2466
2467 case 81:
2468
2469/* Line 1806 of yacc.c */
2470#line 441 "dvdvmy.y"
2471 {
2472 (yyval.statement)=statement_new();
2473 (yyval.statement)->op=VM_NOT;
2474 (yyval.statement)->param=(yyvsp[(2) - (2)].statement);
2475}
2476 break;
2477
2478 case 82:
2479
2480/* Line 1806 of yacc.c */
2481#line 448 "dvdvmy.y"
2482 {
2483 (yyval.int_val)=(yyvsp[(1) - (1)].int_val);
2484}
2485 break;
2486
2487 case 83:
2488
2489/* Line 1806 of yacc.c */
2490#line 451 "dvdvmy.y"
2491 {
2492 (yyval.int_val)=(yyvsp[(2) - (2)].int_val)+0x20;
2493}
2494 break;
2495
2496 case 84:
2497
2498/* Line 1806 of yacc.c */
2499#line 456 "dvdvmy.y"
2500 {
2501 (yyval.statement)=statement_new();
2502 (yyval.statement)->op=VM_SET;
2503 (yyval.statement)->i1=(yyvsp[(1) - (4)].int_val);
2504 (yyval.statement)->param=(yyvsp[(3) - (4)].statement);
2505}
2506 break;
2507
2508 case 85:
2509
2510/* Line 1806 of yacc.c */
2511#line 462 "dvdvmy.y"
2512 {
2513 (yyval.statement)=statement_setop((yyvsp[(1) - (4)].int_val),VM_ADD,(yyvsp[(3) - (4)].statement));
2514}
2515 break;
2516
2517 case 86:
2518
2519/* Line 1806 of yacc.c */
2520#line 465 "dvdvmy.y"
2521 {
2522 (yyval.statement)=statement_setop((yyvsp[(1) - (4)].int_val),VM_SUB,(yyvsp[(3) - (4)].statement));
2523}
2524 break;
2525
2526 case 87:
2527
2528/* Line 1806 of yacc.c */
2529#line 468 "dvdvmy.y"
2530 {
2531 (yyval.statement)=statement_setop((yyvsp[(1) - (4)].int_val),VM_MUL,(yyvsp[(3) - (4)].statement));
2532}
2533 break;
2534
2535 case 88:
2536
2537/* Line 1806 of yacc.c */
2538#line 471 "dvdvmy.y"
2539 {
2540 (yyval.statement)=statement_setop((yyvsp[(1) - (4)].int_val),VM_DIV,(yyvsp[(3) - (4)].statement));
2541}
2542 break;
2543
2544 case 89:
2545
2546/* Line 1806 of yacc.c */
2547#line 474 "dvdvmy.y"
2548 {
2549 (yyval.statement)=statement_setop((yyvsp[(1) - (4)].int_val),VM_MOD,(yyvsp[(3) - (4)].statement));
2550}
2551 break;
2552
2553 case 90:
2554
2555/* Line 1806 of yacc.c */
2556#line 477 "dvdvmy.y"
2557 {
2558 (yyval.statement)=statement_setop((yyvsp[(1) - (4)].int_val),VM_AND,(yyvsp[(3) - (4)].statement));
2559}
2560 break;
2561
2562 case 91:
2563
2564/* Line 1806 of yacc.c */
2565#line 480 "dvdvmy.y"
2566 {
2567 (yyval.statement)=statement_setop((yyvsp[(1) - (4)].int_val),VM_OR,(yyvsp[(3) - (4)].statement));
2568}
2569 break;
2570
2571 case 92:
2572
2573/* Line 1806 of yacc.c */
2574#line 483 "dvdvmy.y"
2575 {
2576 (yyval.statement)=statement_setop((yyvsp[(1) - (4)].int_val),VM_XOR,(yyvsp[(3) - (4)].statement));
2577}
2578 break;
2579
2580 case 93:
2581
2582/* Line 1806 of yacc.c */
2583#line 488 "dvdvmy.y"
2584 {
2585 (yyval.statement)=statement_new();
2586 (yyval.statement)->op=VM_IF;
2587 (yyval.statement)->param=(yyvsp[(3) - (5)].statement);
2588 (yyvsp[(3) - (5)].statement)->next=statement_new();
2589 (yyvsp[(3) - (5)].statement)->next->op=VM_IF;
2590 (yyvsp[(3) - (5)].statement)->next->param=(yyvsp[(5) - (5)].statement);
2591}
2592 break;
2593
2594 case 94:
2595
2596/* Line 1806 of yacc.c */
2597#line 498 "dvdvmy.y"
2598 {
2599 (yyval.statement)=(yyvsp[(1) - (1)].statement);
2600}
2601 break;
2602
2603 case 95:
2604
2605/* Line 1806 of yacc.c */
2606#line 501 "dvdvmy.y"
2607 {
2608 (yyval.statement)=(yyvsp[(1) - (3)].statement);
2609 (yyval.statement)->param->next->next=(yyvsp[(3) - (3)].statement);
2610}
2611 break;
2612
2613
2614
2615/* Line 1806 of yacc.c */
2616#line 2617 "dvdvmy.c"
2617 default: break;
2618 }
2619 /* User semantic actions sometimes alter yychar, and that requires
2620 that yytoken be updated with the new translation. We take the
2621 approach of translating immediately before every use of yytoken.
2622 One alternative is translating here after every semantic action,
2623 but that translation would be missed if the semantic action invokes
2624 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
2625 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
2626 incorrect destructor might then be invoked immediately. In the
2627 case of YYERROR or YYBACKUP, subsequent parser actions might lead
2628 to an incorrect destructor call or verbose syntax error message
2629 before the lookahead is translated. */
2630 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2631
2632 YYPOPSTACK (yylen)(yyvsp -= (yylen), yyssp -= (yylen));
2633 yylen = 0;
2634 YY_STACK_PRINT (yyss, yyssp);
2635
2636 *++yyvsp = yyval;
2637
2638 /* Now `shift' the result of the reduction. Determine what state
2639 that goes to, based on the state we popped back to and the rule
2640 number reduced by. */
2641
2642 yyn = yyr1[yyn];
2643
2644 yystate = yypgoto[yyn - YYNTOKENS74] + *yyssp;
2645 if (0 <= yystate && yystate <= YYLAST401 && yycheck[yystate] == *yyssp)
2646 yystate = yytable[yystate];
2647 else
2648 yystate = yydefgoto[yyn - YYNTOKENS74];
2649
2650 goto yynewstate;
2651
2652
2653/*------------------------------------.
2654| yyerrlab -- here on detecting error |
2655`------------------------------------*/
2656yyerrlab:
2657 /* Make sure we have latest lookahead translation. See comments at
2658 user semantic actions for why this is necessary. */
2659 yytoken = yychardvdvmchar == YYEMPTY(-2) ? YYEMPTY(-2) : YYTRANSLATE (yychar)((unsigned int) (dvdvmchar) <= 328 ? yytranslate[dvdvmchar
] : 2)
;
2660
2661 /* If not already recovering from an error, report this error. */
2662 if (!yyerrstatus)
2663 {
2664 ++yynerrsdvdvmnerrs;
2665#if ! YYERROR_VERBOSE1
2666 yyerrordvdvmerror (YY_("syntax error")"syntax error");
2667#else
2668# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
2669 yyssp, yytoken)
2670 {
2671 char const *yymsgp = YY_("syntax error")"syntax error";
2672 int yysyntax_error_status;
2673 yysyntax_error_status = YYSYNTAX_ERROR;
2674 if (yysyntax_error_status == 0)
2675 yymsgp = yymsg;
2676 else if (yysyntax_error_status == 1)
2677 {
2678 if (yymsg != yymsgbuf)
2679 YYSTACK_FREEfree (yymsg);
2680 yymsg = (char *) YYSTACK_ALLOCmalloc (yymsg_alloc);
2681 if (!yymsg)
2682 {
2683 yymsg = yymsgbuf;
2684 yymsg_alloc = sizeof yymsgbuf;
2685 yysyntax_error_status = 2;
2686 }
2687 else
2688 {
2689 yysyntax_error_status = YYSYNTAX_ERROR;
2690 yymsgp = yymsg;
2691 }
2692 }
2693 yyerrordvdvmerror (yymsgp);
2694 if (yysyntax_error_status == 2)
2695 goto yyexhaustedlab;
2696 }
2697# undef YYSYNTAX_ERROR
2698#endif
2699 }
2700
2701
2702
2703 if (yyerrstatus == 3)
2704 {
2705 /* If just tried and failed to reuse lookahead token after an
2706 error, discard it. */
2707
2708 if (yychardvdvmchar <= YYEOF0)
2709 {
2710 /* Return failure if at end of input. */
2711 if (yychardvdvmchar == YYEOF0)
2712 YYABORTgoto yyabortlab;
2713 }
2714 else
2715 {
2716 yydestruct ("Error: discarding",
2717 yytoken, &yylvaldvdvmlval);
2718 yychardvdvmchar = YYEMPTY(-2);
2719 }
2720 }
2721
2722 /* Else will try to reuse lookahead token after shifting the error
2723 token. */
2724 goto yyerrlab1;
2725
2726
2727/*---------------------------------------------------.
2728| yyerrorlab -- error raised explicitly by YYERROR. |
2729`---------------------------------------------------*/
2730yyerrorlab:
2731
2732 /* Pacify compilers like GCC when the user code never invokes
2733 YYERROR and the label yyerrorlab therefore never appears in user
2734 code. */
2735 if (/*CONSTCOND*/ 0)
2736 goto yyerrorlab;
2737
2738 /* Do not reclaim the symbols of the rule which action triggered
2739 this YYERROR. */
2740 YYPOPSTACK (yylen)(yyvsp -= (yylen), yyssp -= (yylen));
2741 yylen = 0;
2742 YY_STACK_PRINT (yyss, yyssp);
2743 yystate = *yyssp;
2744 goto yyerrlab1;
2745
2746
2747/*-------------------------------------------------------------.
2748| yyerrlab1 -- common code for both syntax error and YYERROR. |
2749`-------------------------------------------------------------*/
2750yyerrlab1:
2751 yyerrstatus = 3; /* Each real token shifted decrements this. */
2752
2753 for (;;)
2754 {
2755 yyn = yypact[yystate];
2756 if (!yypact_value_is_default (yyn)((yyn) == (-57)))
2757 {
2758 yyn += YYTERROR1;
2759 if (0 <= yyn && yyn <= YYLAST401 && yycheck[yyn] == YYTERROR1)
2760 {
2761 yyn = yytable[yyn];
2762 if (0 < yyn)
2763 break;
2764 }
2765 }
2766
2767 /* Pop the current state because it cannot handle the error token. */
2768 if (yyssp == yyss)
2769 YYABORTgoto yyabortlab;
2770
2771
2772 yydestruct ("Error: popping",
2773 yystos[yystate], yyvsp);
2774 YYPOPSTACK (1)(yyvsp -= (1), yyssp -= (1));
2775 yystate = *yyssp;
2776 YY_STACK_PRINT (yyss, yyssp);
2777 }
2778
2779 *++yyvsp = yylvaldvdvmlval;
2780
2781
2782 /* Shift the error token. */
2783 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
2784
2785 yystate = yyn;
2786 goto yynewstate;
2787
2788
2789/*-------------------------------------.
2790| yyacceptlab -- YYACCEPT comes here. |
2791`-------------------------------------*/
2792yyacceptlab:
2793 yyresult = 0;
2794 goto yyreturn;
2795
2796/*-----------------------------------.
2797| yyabortlab -- YYABORT comes here. |
2798`-----------------------------------*/
2799yyabortlab:
2800 yyresult = 1;
2801 goto yyreturn;
2802
2803#if !defined(yyoverflow) || YYERROR_VERBOSE1
2804/*-------------------------------------------------.
2805| yyexhaustedlab -- memory exhaustion comes here. |
2806`-------------------------------------------------*/
2807yyexhaustedlab:
2808 yyerrordvdvmerror (YY_("memory exhausted")"memory exhausted");
2809 yyresult = 2;
2810 /* Fall through. */
2811#endif
2812
2813yyreturn:
2814 if (yychardvdvmchar != YYEMPTY(-2))
2815 {
2816 /* Make sure we have latest lookahead translation. See comments at
2817 user semantic actions for why this is necessary. */
2818 yytoken = YYTRANSLATE (yychar)((unsigned int) (dvdvmchar) <= 328 ? yytranslate[dvdvmchar
] : 2)
;
2819 yydestruct ("Cleanup: discarding lookahead",
2820 yytoken, &yylvaldvdvmlval);
2821 }
2822 /* Do not reclaim the symbols of the rule which action triggered
2823 this YYABORT or YYACCEPT. */
2824 YYPOPSTACK (yylen)(yyvsp -= (yylen), yyssp -= (yylen));
2825 YY_STACK_PRINT (yyss, yyssp);
2826 while (yyssp != yyss)
2827 {
2828 yydestruct ("Cleanup: popping",
2829 yystos[*yyssp], yyvsp);
2830 YYPOPSTACK (1)(yyvsp -= (1), yyssp -= (1));
2831 }
2832#ifndef yyoverflow
2833 if (yyss != yyssa)
2834 YYSTACK_FREEfree (yyss);
2835#endif
2836#if YYERROR_VERBOSE1
2837 if (yymsg != yymsgbuf)
2838 YYSTACK_FREEfree (yymsg);
2839#endif
2840 /* Make sure YYID is used. */
2841 return YYID (yyresult)(yyresult);
2842}
2843
2844
2845