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