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