FLAME  devel
 All Classes Functions Variables Typedefs Enumerations Pages
glps.par.c
1 /* A Bison parser, made by GNU Bison 3.0.2. */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5  Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6 
7  This program is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 
20 /* As a special exception, you may create a larger work that contains
21  part or all of the Bison parser skeleton and distribute that work
22  under terms of your choice, so long as that work isn't itself a
23  parser generator using the skeleton or a modified version thereof
24  as a parser skeleton. Alternatively, if you modify or redistribute
25  the parser skeleton itself, you may (at your option) remove this
26  special exception, which will cause the skeleton and the resulting
27  Bison output files to be licensed under the GNU General Public
28  License without this special exception.
29 
30  This special exception was added by the Free Software Foundation in
31  version 2.2 of Bison. */
32 
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34  simplifying the original so-called "semantic" parser. */
35 
36 /* All symbols defined below should begin with yy or YY, to avoid
37  infringing on user name space. This should be done even for local
38  variables, as they might otherwise be expanded by user macros.
39  There are some unavoidable exceptions within include files to
40  define necessary library symbols; they are noted "INFRINGES ON
41  USER NAME SPACE" below. */
42 
43 /* Identify Bison output. */
44 #define YYBISON 1
45 
46 /* Bison version. */
47 #define YYBISON_VERSION "3.0.2"
48 
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51 
52 /* Pure parsers. */
53 #define YYPURE 2
54 
55 /* Push parsers. */
56 #define YYPUSH 0
57 
58 /* Pull parsers. */
59 #define YYPULL 1
60 
61 /* Substitute the type names. */
62 #define YYSTYPE GLPS_STYPE
63 /* Substitute the variable and function names. */
64 #define yyparse glps_parse
65 #define yylex glps_lex
66 #define yyerror glps_error
67 #define yydebug glps_debug
68 #define yynerrs glps_nerrs
69 
70 
71 /* Copy the first part of user declarations. */
72 #line 2 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:339 */
73 
74 #include <stdio.h>
75 #include <stdlib.h>
76 #include "glps_parser.h"
77 
78 #undef yyerror
79 static inline
80 void yyerror (yacc_arg arg, const char* msg)
81 {
82  glps_error(arg.scanner, arg.ctxt, "%s", msg);
83 }
84 
85 #line 86 "glps.par.c" /* yacc.c:339 */
86 
87 # ifndef YY_NULLPTR
88 # if defined __cplusplus && 201103L <= __cplusplus
89 # define YY_NULLPTR nullptr
90 # else
91 # define YY_NULLPTR 0
92 # endif
93 # endif
94 
95 /* Enabling verbose error messages. */
96 #ifdef YYERROR_VERBOSE
97 # undef YYERROR_VERBOSE
98 # define YYERROR_VERBOSE 1
99 #else
100 # define YYERROR_VERBOSE 0
101 #endif
102 
103 /* In a future release of Bison, this section will be replaced
104  by #include "glps.par.h". */
105 #ifndef YY_GLPS_GLPS_PAR_H_INCLUDED
106 # define YY_GLPS_GLPS_PAR_H_INCLUDED
107 /* Debug traces. */
108 #ifndef GLPS_DEBUG
109 # if defined YYDEBUG
110 #if YYDEBUG
111 # define GLPS_DEBUG 1
112 # else
113 # define GLPS_DEBUG 0
114 # endif
115 # else /* ! defined YYDEBUG */
116 # define GLPS_DEBUG 1
117 # endif /* ! defined YYDEBUG */
118 #endif /* ! defined GLPS_DEBUG */
119 #if GLPS_DEBUG
120 extern int glps_debug;
121 #endif
122 
123 /* Token type. */
124 #ifndef GLPS_TOKENTYPE
125 # define GLPS_TOKENTYPE
126  enum glps_tokentype
127  {
128  KEYWORD = 258,
129  STR = 259,
130  NUM = 260,
131  COMMENT = 261,
132  NEG = 262
133  };
134 #endif
135 
136 /* Value type. */
137 #if ! defined GLPS_STYPE && ! defined GLPS_STYPE_IS_DECLARED
138 typedef union GLPS_STYPE GLPS_STYPE;
139 union GLPS_STYPE
140 {
141 #line 22 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:355 */
142  string_t *string;
143 #line 29 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:355 */
144  double real;
145 #line 34 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:355 */
146  expr_t *exprv;
147 #line 40 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:355 */
148  vector_t *vector;
149 #line 46 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:355 */
150  kvlist_t *kvlist;
151 #line 52 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:355 */
152  strlist_t *strlist;
153 #line 58 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:355 */
154  kv_t kv;
155 
156 #line 157 "glps.par.c" /* yacc.c:355 */
157 };
158 # define GLPS_STYPE_IS_TRIVIAL 1
159 # define GLPS_STYPE_IS_DECLARED 1
160 #endif
161 
162 
163 
164 int glps_parse (yacc_arg parg);
165 
166 #endif /* !YY_GLPS_GLPS_PAR_H_INCLUDED */
167 
168 /* Copy the second part of user declarations. */
169 #line 70 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:358 */
170 
171 #include "glps.tab.h"
172 
173 #define PCLR(X) (X) = NULL
174 #define PERR(X) if(!X) YYERROR;
175 
176 #define scanner (yyscan_t)(parg.scanner)
177 #define ctxt parg.ctxt
178 
179 #line 180 "glps.par.c" /* yacc.c:358 */
180 
181 #ifdef short
182 # undef short
183 #endif
184 
185 #ifdef YYTYPE_UINT8
186 typedef YYTYPE_UINT8 yytype_uint8;
187 #else
188 typedef unsigned char yytype_uint8;
189 #endif
190 
191 #ifdef YYTYPE_INT8
192 typedef YYTYPE_INT8 yytype_int8;
193 #else
194 typedef signed char yytype_int8;
195 #endif
196 
197 #ifdef YYTYPE_UINT16
198 typedef YYTYPE_UINT16 yytype_uint16;
199 #else
200 typedef unsigned short int yytype_uint16;
201 #endif
202 
203 #ifdef YYTYPE_INT16
204 typedef YYTYPE_INT16 yytype_int16;
205 #else
206 typedef short int yytype_int16;
207 #endif
208 
209 #ifndef YYSIZE_T
210 # ifdef __SIZE_TYPE__
211 # define YYSIZE_T __SIZE_TYPE__
212 # elif defined size_t
213 # define YYSIZE_T size_t
214 # elif ! defined YYSIZE_T
215 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
216 # define YYSIZE_T size_t
217 # else
218 # define YYSIZE_T unsigned int
219 # endif
220 #endif
221 
222 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
223 
224 #ifndef YY_
225 # if defined YYENABLE_NLS && YYENABLE_NLS
226 # if ENABLE_NLS
227 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
228 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
229 # endif
230 # endif
231 # ifndef YY_
232 # define YY_(Msgid) Msgid
233 # endif
234 #endif
235 
236 #ifndef YY_ATTRIBUTE
237 # if (defined __GNUC__ \
238  && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
239  || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
240 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
241 # else
242 # define YY_ATTRIBUTE(Spec) /* empty */
243 # endif
244 #endif
245 
246 #ifndef YY_ATTRIBUTE_PURE
247 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
248 #endif
249 
250 #ifndef YY_ATTRIBUTE_UNUSED
251 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
252 #endif
253 
254 #if !defined _Noreturn \
255  && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
256 # if defined _MSC_VER && 1200 <= _MSC_VER
257 # define _Noreturn __declspec (noreturn)
258 # else
259 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
260 # endif
261 #endif
262 
263 /* Suppress unused-variable warnings by "using" E. */
264 #if ! defined lint || defined __GNUC__
265 # define YYUSE(E) ((void) (E))
266 #else
267 # define YYUSE(E) /* empty */
268 #endif
269 
270 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
271 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
272 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
273  _Pragma ("GCC diagnostic push") \
274  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
275  _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
276 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
277  _Pragma ("GCC diagnostic pop")
278 #else
279 # define YY_INITIAL_VALUE(Value) Value
280 #endif
281 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
282 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
283 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
284 #endif
285 #ifndef YY_INITIAL_VALUE
286 # define YY_INITIAL_VALUE(Value) /* Nothing. */
287 #endif
288 
289 
290 #if ! defined yyoverflow || YYERROR_VERBOSE
291 
292 /* The parser invokes alloca or malloc; define the necessary symbols. */
293 
294 # ifdef YYSTACK_USE_ALLOCA
295 # if YYSTACK_USE_ALLOCA
296 # ifdef __GNUC__
297 # define YYSTACK_ALLOC __builtin_alloca
298 # elif defined __BUILTIN_VA_ARG_INCR
299 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
300 # elif defined _AIX
301 # define YYSTACK_ALLOC __alloca
302 # elif defined _MSC_VER
303 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
304 # define alloca _alloca
305 # else
306 # define YYSTACK_ALLOC alloca
307 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
308 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
309  /* Use EXIT_SUCCESS as a witness for stdlib.h. */
310 # ifndef EXIT_SUCCESS
311 # define EXIT_SUCCESS 0
312 # endif
313 # endif
314 # endif
315 # endif
316 # endif
317 
318 # ifdef YYSTACK_ALLOC
319  /* Pacify GCC's 'empty if-body' warning. */
320 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
321 # ifndef YYSTACK_ALLOC_MAXIMUM
322  /* The OS might guarantee only one guard page at the bottom of the stack,
323  and a page size can be as small as 4096 bytes. So we cannot safely
324  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
325  to allow for a few compiler-allocated temporary stack slots. */
326 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
327 # endif
328 # else
329 # define YYSTACK_ALLOC YYMALLOC
330 # define YYSTACK_FREE YYFREE
331 # ifndef YYSTACK_ALLOC_MAXIMUM
332 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
333 # endif
334 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
335  && ! ((defined YYMALLOC || defined malloc) \
336  && (defined YYFREE || defined free)))
337 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
338 # ifndef EXIT_SUCCESS
339 # define EXIT_SUCCESS 0
340 # endif
341 # endif
342 # ifndef YYMALLOC
343 # define YYMALLOC malloc
344 # if ! defined malloc && ! defined EXIT_SUCCESS
345 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
346 # endif
347 # endif
348 # ifndef YYFREE
349 # define YYFREE free
350 # if ! defined free && ! defined EXIT_SUCCESS
351 void free (void *); /* INFRINGES ON USER NAME SPACE */
352 # endif
353 # endif
354 # endif
355 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
356 
357 
358 #if (! defined yyoverflow \
359  && (! defined __cplusplus \
360  || (defined GLPS_STYPE_IS_TRIVIAL && GLPS_STYPE_IS_TRIVIAL)))
361 
362 /* A type that is properly aligned for any stack member. */
363 union yyalloc
364 {
365  yytype_int16 yyss_alloc;
366  YYSTYPE yyvs_alloc;
367 };
368 
369 /* The size of the maximum gap between one aligned stack and the next. */
370 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
371 
372 /* The size of an array large to enough to hold all stacks, each with
373  N elements. */
374 # define YYSTACK_BYTES(N) \
375  ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
376  + YYSTACK_GAP_MAXIMUM)
377 
378 # define YYCOPY_NEEDED 1
379 
380 /* Relocate STACK from its old location to the new one. The
381  local variables YYSIZE and YYSTACKSIZE give the old and new number of
382  elements in the stack, and YYPTR gives the new location of the
383  stack. Advance YYPTR to a properly aligned location for the next
384  stack. */
385 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
386  do \
387  { \
388  YYSIZE_T yynewbytes; \
389  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
390  Stack = &yyptr->Stack_alloc; \
391  yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
392  yyptr += yynewbytes / sizeof (*yyptr); \
393  } \
394  while (0)
395 
396 #endif
397 
398 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
399 /* Copy COUNT objects from SRC to DST. The source and destination do
400  not overlap. */
401 # ifndef YYCOPY
402 # if defined __GNUC__ && 1 < __GNUC__
403 # define YYCOPY(Dst, Src, Count) \
404  __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
405 # else
406 # define YYCOPY(Dst, Src, Count) \
407  do \
408  { \
409  YYSIZE_T yyi; \
410  for (yyi = 0; yyi < (Count); yyi++) \
411  (Dst)[yyi] = (Src)[yyi]; \
412  } \
413  while (0)
414 # endif
415 # endif
416 #endif /* !YYCOPY_NEEDED */
417 
418 /* YYFINAL -- State number of the termination state. */
419 #define YYFINAL 13
420 /* YYLAST -- Last index in YYTABLE. */
421 #define YYLAST 78
422 
423 /* YYNTOKENS -- Number of terminals. */
424 #define YYNTOKENS 20
425 /* YYNNTS -- Number of nonterminals. */
426 #define YYNNTS 14
427 /* YYNRULES -- Number of rules. */
428 #define YYNRULES 34
429 /* YYNSTATES -- Number of states. */
430 #define YYNSTATES 63
431 
432 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
433  by yylex, with out-of-bounds checking. */
434 #define YYUNDEFTOK 2
435 #define YYMAXUTOK 262
436 
437 #define YYTRANSLATE(YYX) \
438  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
439 
440 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
441  as returned by yylex, without out-of-bounds checking. */
442 static const yytype_uint8 yytranslate[] =
443 {
444  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
445  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
446  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
447  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
448  15, 16, 9, 8, 17, 7, 2, 10, 2, 2,
449  2, 2, 2, 2, 2, 2, 2, 2, 14, 13,
450  2, 12, 2, 2, 2, 2, 2, 2, 2, 2,
451  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
452  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
453  2, 18, 2, 19, 2, 2, 2, 2, 2, 2,
454  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
455  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
456  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
457  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
458  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
459  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
460  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
461  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
462  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
463  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
464  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
465  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
466  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
467  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
468  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
469  2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
470  5, 6, 11
471 };
472 
473 #if GLPS_DEBUG
474  /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
475 static const yytype_uint8 yyrline[] =
476 {
477  0, 82, 82, 83, 85, 86, 87, 88, 89, 91,
478  93, 95, 97, 99, 101, 102, 104, 106, 107, 108,
479  110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
480  120, 122, 123, 124, 126
481 };
482 #endif
483 
484 #if GLPS_DEBUG || YYERROR_VERBOSE || 0
485 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
486  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
487 static const char *const yytname[] =
488 {
489  "$end", "error", "$undefined", "KEYWORD", "STR", "NUM", "COMMENT",
490  "'-'", "'+'", "'*'", "'/'", "NEG", "'='", "';'", "':'", "'('", "')'",
491  "','", "'['", "']'", "$accept", "file", "entry", "assignment", "element",
492  "line", "func", "command", "properties", "property", "line_list", "expr",
493  "expr_list", "vector", YY_NULLPTR
494 };
495 #endif
496 
497 # ifdef YYPRINT
498 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
499  (internal) symbol number NUM (which must be that of a token). */
500 static const yytype_uint16 yytoknum[] =
501 {
502  0, 256, 257, 258, 259, 260, 261, 45, 43, 42,
503  47, 262, 61, 59, 58, 40, 41, 44, 91, 93
504 };
505 # endif
506 
507 #define YYPACT_NINF -10
508 
509 #define yypact_value_is_default(Yystate) \
510  (!!((Yystate) == (-10)))
511 
512 #define YYTABLE_NINF -1
513 
514 #define yytable_value_is_error(Yytable_value) \
515  0
516 
517  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
518  STATE-NUM. */
519 static const yytype_int8 yypact[] =
520 {
521  1, 57, 12, 1, -10, -10, -10, -10, -10, 10,
522  -10, 15, 10, -10, -10, 4, -10, -10, 10, 10,
523  10, -2, -10, 25, 44, 10, -10, 48, 22, 7,
524  10, 10, 10, 10, -10, 5, 24, 27, 28, 58,
525  -10, 10, -10, -8, -8, -10, -10, 10, 32, 29,
526  -10, -10, -10, -10, 33, 26, 10, -10, 35, 10,
527  68, -10, -10
528 };
529 
530  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
531  Performed when YYTABLE does not specify something else to do. Zero
532  means the default is an error. */
533 static const yytype_uint8 yydefact[] =
534 {
535  2, 0, 0, 2, 4, 5, 6, 7, 8, 0,
536  13, 0, 0, 1, 3, 23, 22, 20, 0, 0,
537  31, 0, 21, 14, 0, 0, 28, 0, 32, 0,
538  0, 0, 0, 0, 9, 0, 0, 0, 0, 0,
539  29, 31, 34, 25, 24, 26, 27, 17, 0, 14,
540  10, 12, 30, 33, 0, 18, 0, 15, 0, 17,
541  16, 11, 19
542 };
543 
544  /* YYPGOTO[NTERM-NUM]. */
545 static const yytype_int8 yypgoto[] =
546 {
547  -10, 42, -10, -10, -10, -10, -10, -10, 13, -10,
548  0, -9, 20, -10
549 };
550 
551  /* YYDEFGOTO[NTERM-NUM]. */
552 static const yytype_int8 yydefgoto[] =
553 {
554  -1, 2, 3, 4, 5, 6, 7, 8, 37, 49,
555  54, 28, 29, 22
556 };
557 
558  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
559  positive, shift that token. If negative, reduce the rule whose
560  number is the opposite. If YYTABLE_NINF, syntax error. */
561 static const yytype_uint8 yytable[] =
562 {
563  21, 32, 33, 24, 1, 30, 31, 32, 33, 26,
564  27, 34, 13, 15, 16, 17, 39, 18, 23, 25,
565  47, 43, 44, 45, 46, 19, 42, 48, 20, 30,
566  31, 32, 33, 30, 31, 32, 33, 35, 55, 41,
567  50, 51, 36, 59, 56, 14, 36, 60, 61, 58,
568  55, 30, 31, 32, 33, 30, 31, 32, 33, 62,
569  38, 53, 57, 0, 40, 30, 31, 32, 33, 9,
570  10, 11, 12, 0, 52, 30, 31, 32, 33
571 };
572 
573 static const yytype_int8 yycheck[] =
574 {
575  9, 9, 10, 12, 3, 7, 8, 9, 10, 18,
576  19, 13, 0, 3, 4, 5, 25, 7, 3, 15,
577  15, 30, 31, 32, 33, 15, 19, 3, 18, 7,
578  8, 9, 10, 7, 8, 9, 10, 12, 47, 17,
579  13, 13, 17, 17, 12, 3, 17, 56, 13, 16,
580  59, 7, 8, 9, 10, 7, 8, 9, 10, 59,
581  16, 41, 49, -1, 16, 7, 8, 9, 10, 12,
582  13, 14, 15, -1, 16, 7, 8, 9, 10
583 };
584 
585  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
586  symbol of state STATE-NUM. */
587 static const yytype_uint8 yystos[] =
588 {
589  0, 3, 21, 22, 23, 24, 25, 26, 27, 12,
590  13, 14, 15, 0, 21, 3, 4, 5, 7, 15,
591  18, 31, 33, 3, 31, 15, 31, 31, 31, 32,
592  7, 8, 9, 10, 13, 12, 17, 28, 16, 31,
593  16, 17, 19, 31, 31, 31, 31, 15, 3, 29,
594  13, 13, 16, 32, 30, 31, 12, 28, 16, 17,
595  31, 13, 30
596 };
597 
598  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
599 static const yytype_uint8 yyr1[] =
600 {
601  0, 20, 21, 21, 22, 22, 22, 22, 22, 23,
602  24, 25, 26, 27, 28, 28, 29, 30, 30, 30,
603  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
604  31, 32, 32, 32, 33
605 };
606 
607  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
608 static const yytype_uint8 yyr2[] =
609 {
610  0, 2, 0, 2, 1, 1, 1, 1, 1, 4,
611  5, 8, 5, 2, 0, 3, 3, 0, 1, 3,
612  1, 1, 1, 1, 3, 3, 3, 3, 2, 3,
613  4, 0, 1, 3, 3
614 };
615 
616 
617 #define yyerrok (yyerrstatus = 0)
618 #define yyclearin (yychar = YYEMPTY)
619 #define YYEMPTY (-2)
620 #define YYEOF 0
621 
622 #define YYACCEPT goto yyacceptlab
623 #define YYABORT goto yyabortlab
624 #define YYERROR goto yyerrorlab
625 
626 
627 #define YYRECOVERING() (!!yyerrstatus)
628 
629 #define YYBACKUP(Token, Value) \
630 do \
631  if (yychar == YYEMPTY) \
632  { \
633  yychar = (Token); \
634  yylval = (Value); \
635  YYPOPSTACK (yylen); \
636  yystate = *yyssp; \
637  goto yybackup; \
638  } \
639  else \
640  { \
641  yyerror (parg, YY_("syntax error: cannot back up")); \
642  YYERROR; \
643  } \
644 while (0)
645 
646 /* Error token number */
647 #define YYTERROR 1
648 #define YYERRCODE 256
649 
650 
651 
652 /* Enable debugging if requested. */
653 #if GLPS_DEBUG
654 
655 # ifndef YYFPRINTF
656 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
657 # define YYFPRINTF fprintf
658 # endif
659 
660 # define YYDPRINTF(Args) \
661 do { \
662  if (yydebug) \
663  YYFPRINTF Args; \
664 } while (0)
665 
666 /* This macro is provided for backward compatibility. */
667 #ifndef YY_LOCATION_PRINT
668 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
669 #endif
670 
671 
672 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
673 do { \
674  if (yydebug) \
675  { \
676  YYFPRINTF (stderr, "%s ", Title); \
677  yy_symbol_print (stderr, \
678  Type, Value, parg); \
679  YYFPRINTF (stderr, "\n"); \
680  } \
681 } while (0)
682 
683 
684 /*----------------------------------------.
685 | Print this symbol's value on YYOUTPUT. |
686 `----------------------------------------*/
687 
688 static void
689 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, yacc_arg parg)
690 {
691  FILE *yyo = yyoutput;
692  YYUSE (yyo);
693  YYUSE (parg);
694  if (!yyvaluep)
695  return;
696 # ifdef YYPRINT
697  if (yytype < YYNTOKENS)
698  YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
699 # endif
700  switch (yytype)
701  {
702  case 3: /* KEYWORD */
703 #line 27 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:684 */
704  { glps_string_debug(yyoutput, ((*yyvaluep).string)); }
705 #line 706 "glps.par.c" /* yacc.c:684 */
706  break;
707 
708  case 4: /* STR */
709 #line 27 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:684 */
710  { glps_string_debug(yyoutput, ((*yyvaluep).string)); }
711 #line 712 "glps.par.c" /* yacc.c:684 */
712  break;
713 
714  case 5: /* NUM */
715 #line 32 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:684 */
716  { fprintf(yyoutput, "%g", ((*yyvaluep).real)); }
717 #line 718 "glps.par.c" /* yacc.c:684 */
718  break;
719 
720  case 28: /* properties */
721 #line 50 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:684 */
722  { fprintf(yyoutput, "%p", ((*yyvaluep).kvlist)); }
723 #line 724 "glps.par.c" /* yacc.c:684 */
724  break;
725 
726  case 30: /* line_list */
727 #line 56 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:684 */
728  { fprintf(yyoutput, "%p", ((*yyvaluep).strlist)); }
729 #line 730 "glps.par.c" /* yacc.c:684 */
730  break;
731 
732  case 31: /* expr */
733 #line 38 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:684 */
734  { glps_expr_debug(yyoutput, ((*yyvaluep).exprv)); }
735 #line 736 "glps.par.c" /* yacc.c:684 */
736  break;
737 
738  case 32: /* expr_list */
739 #line 44 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:684 */
740  { fprintf(yyoutput, "%p", ((*yyvaluep).vector)); }
741 #line 742 "glps.par.c" /* yacc.c:684 */
742  break;
743 
744  case 33: /* vector */
745 #line 44 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:684 */
746  { fprintf(yyoutput, "%p", ((*yyvaluep).vector)); }
747 #line 748 "glps.par.c" /* yacc.c:684 */
748  break;
749 
750 
751  default:
752  break;
753  }
754 }
755 
756 
757 /*--------------------------------.
758 | Print this symbol on YYOUTPUT. |
759 `--------------------------------*/
760 
761 static void
762 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, yacc_arg parg)
763 {
764  YYFPRINTF (yyoutput, "%s %s (",
765  yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
766 
767  yy_symbol_value_print (yyoutput, yytype, yyvaluep, parg);
768  YYFPRINTF (yyoutput, ")");
769 }
770 
771 /*------------------------------------------------------------------.
772 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
773 | TOP (included). |
774 `------------------------------------------------------------------*/
775 
776 static void
777 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
778 {
779  YYFPRINTF (stderr, "Stack now");
780  for (; yybottom <= yytop; yybottom++)
781  {
782  int yybot = *yybottom;
783  YYFPRINTF (stderr, " %d", yybot);
784  }
785  YYFPRINTF (stderr, "\n");
786 }
787 
788 # define YY_STACK_PRINT(Bottom, Top) \
789 do { \
790  if (yydebug) \
791  yy_stack_print ((Bottom), (Top)); \
792 } while (0)
793 
794 
795 /*------------------------------------------------.
796 | Report that the YYRULE is going to be reduced. |
797 `------------------------------------------------*/
798 
799 static void
800 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, yacc_arg parg)
801 {
802  unsigned long int yylno = yyrline[yyrule];
803  int yynrhs = yyr2[yyrule];
804  int yyi;
805  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
806  yyrule - 1, yylno);
807  /* The symbols being reduced. */
808  for (yyi = 0; yyi < yynrhs; yyi++)
809  {
810  YYFPRINTF (stderr, " $%d = ", yyi + 1);
811  yy_symbol_print (stderr,
812  yystos[yyssp[yyi + 1 - yynrhs]],
813  &(yyvsp[(yyi + 1) - (yynrhs)])
814  , parg);
815  YYFPRINTF (stderr, "\n");
816  }
817 }
818 
819 # define YY_REDUCE_PRINT(Rule) \
820 do { \
821  if (yydebug) \
822  yy_reduce_print (yyssp, yyvsp, Rule, parg); \
823 } while (0)
824 
825 /* Nonzero means print parse trace. It is left uninitialized so that
826  multiple parsers can coexist. */
827 int yydebug;
828 #else /* !GLPS_DEBUG */
829 # define YYDPRINTF(Args)
830 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
831 # define YY_STACK_PRINT(Bottom, Top)
832 # define YY_REDUCE_PRINT(Rule)
833 #endif /* !GLPS_DEBUG */
834 
835 
836 /* YYINITDEPTH -- initial size of the parser's stacks. */
837 #ifndef YYINITDEPTH
838 # define YYINITDEPTH 200
839 #endif
840 
841 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
842  if the built-in stack extension method is used).
843 
844  Do not make this value too large; the results are undefined if
845  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
846  evaluated with infinite-precision integer arithmetic. */
847 
848 #ifndef YYMAXDEPTH
849 # define YYMAXDEPTH 10000
850 #endif
851 
852 
853 #if YYERROR_VERBOSE
854 
855 # ifndef yystrlen
856 # if defined __GLIBC__ && defined _STRING_H
857 # define yystrlen strlen
858 # else
859 /* Return the length of YYSTR. */
860 static YYSIZE_T
861 yystrlen (const char *yystr)
862 {
863  YYSIZE_T yylen;
864  for (yylen = 0; yystr[yylen]; yylen++)
865  continue;
866  return yylen;
867 }
868 # endif
869 # endif
870 
871 # ifndef yystpcpy
872 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
873 # define yystpcpy stpcpy
874 # else
875 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
876  YYDEST. */
877 static char *
878 yystpcpy (char *yydest, const char *yysrc)
879 {
880  char *yyd = yydest;
881  const char *yys = yysrc;
882 
883  while ((*yyd++ = *yys++) != '\0')
884  continue;
885 
886  return yyd - 1;
887 }
888 # endif
889 # endif
890 
891 # ifndef yytnamerr
892 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
893  quotes and backslashes, so that it's suitable for yyerror. The
894  heuristic is that double-quoting is unnecessary unless the string
895  contains an apostrophe, a comma, or backslash (other than
896  backslash-backslash). YYSTR is taken from yytname. If YYRES is
897  null, do not copy; instead, return the length of what the result
898  would have been. */
899 static YYSIZE_T
900 yytnamerr (char *yyres, const char *yystr)
901 {
902  if (*yystr == '"')
903  {
904  YYSIZE_T yyn = 0;
905  char const *yyp = yystr;
906 
907  for (;;)
908  switch (*++yyp)
909  {
910  case '\'':
911  case ',':
912  goto do_not_strip_quotes;
913 
914  case '\\':
915  if (*++yyp != '\\')
916  goto do_not_strip_quotes;
917  /* Fall through. */
918  default:
919  if (yyres)
920  yyres[yyn] = *yyp;
921  yyn++;
922  break;
923 
924  case '"':
925  if (yyres)
926  yyres[yyn] = '\0';
927  return yyn;
928  }
929  do_not_strip_quotes: ;
930  }
931 
932  if (! yyres)
933  return yystrlen (yystr);
934 
935  return yystpcpy (yyres, yystr) - yyres;
936 }
937 # endif
938 
939 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
940  about the unexpected token YYTOKEN for the state stack whose top is
941  YYSSP.
942 
943  Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
944  not large enough to hold the message. In that case, also set
945  *YYMSG_ALLOC to the required number of bytes. Return 2 if the
946  required number of bytes is too large to store. */
947 static int
948 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
949  yytype_int16 *yyssp, int yytoken)
950 {
951  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
952  YYSIZE_T yysize = yysize0;
953  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
954  /* Internationalized format string. */
955  const char *yyformat = YY_NULLPTR;
956  /* Arguments of yyformat. */
957  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
958  /* Number of reported tokens (one for the "unexpected", one per
959  "expected"). */
960  int yycount = 0;
961 
962  /* There are many possibilities here to consider:
963  - If this state is a consistent state with a default action, then
964  the only way this function was invoked is if the default action
965  is an error action. In that case, don't check for expected
966  tokens because there are none.
967  - The only way there can be no lookahead present (in yychar) is if
968  this state is a consistent state with a default action. Thus,
969  detecting the absence of a lookahead is sufficient to determine
970  that there is no unexpected or expected token to report. In that
971  case, just report a simple "syntax error".
972  - Don't assume there isn't a lookahead just because this state is a
973  consistent state with a default action. There might have been a
974  previous inconsistent state, consistent state with a non-default
975  action, or user semantic action that manipulated yychar.
976  - Of course, the expected token list depends on states to have
977  correct lookahead information, and it depends on the parser not
978  to perform extra reductions after fetching a lookahead from the
979  scanner and before detecting a syntax error. Thus, state merging
980  (from LALR or IELR) and default reductions corrupt the expected
981  token list. However, the list is correct for canonical LR with
982  one exception: it will still contain any token that will not be
983  accepted due to an error action in a later state.
984  */
985  if (yytoken != YYEMPTY)
986  {
987  int yyn = yypact[*yyssp];
988  yyarg[yycount++] = yytname[yytoken];
989  if (!yypact_value_is_default (yyn))
990  {
991  /* Start YYX at -YYN if negative to avoid negative indexes in
992  YYCHECK. In other words, skip the first -YYN actions for
993  this state because they are default actions. */
994  int yyxbegin = yyn < 0 ? -yyn : 0;
995  /* Stay within bounds of both yycheck and yytname. */
996  int yychecklim = YYLAST - yyn + 1;
997  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
998  int yyx;
999 
1000  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1001  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1002  && !yytable_value_is_error (yytable[yyx + yyn]))
1003  {
1004  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1005  {
1006  yycount = 1;
1007  yysize = yysize0;
1008  break;
1009  }
1010  yyarg[yycount++] = yytname[yyx];
1011  {
1012  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1013  if (! (yysize <= yysize1
1014  && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1015  return 2;
1016  yysize = yysize1;
1017  }
1018  }
1019  }
1020  }
1021 
1022  switch (yycount)
1023  {
1024 # define YYCASE_(N, S) \
1025  case N: \
1026  yyformat = S; \
1027  break
1028  YYCASE_(0, YY_("syntax error"));
1029  YYCASE_(1, YY_("syntax error, unexpected %s"));
1030  YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1031  YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1032  YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1033  YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1034 # undef YYCASE_
1035  }
1036 
1037  {
1038  YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1039  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1040  return 2;
1041  yysize = yysize1;
1042  }
1043 
1044  if (*yymsg_alloc < yysize)
1045  {
1046  *yymsg_alloc = 2 * yysize;
1047  if (! (yysize <= *yymsg_alloc
1048  && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1049  *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1050  return 1;
1051  }
1052 
1053  /* Avoid sprintf, as that infringes on the user's name space.
1054  Don't have undefined behavior even if the translation
1055  produced a string with the wrong number of "%s"s. */
1056  {
1057  char *yyp = *yymsg;
1058  int yyi = 0;
1059  while ((*yyp = *yyformat) != '\0')
1060  if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1061  {
1062  yyp += yytnamerr (yyp, yyarg[yyi++]);
1063  yyformat += 2;
1064  }
1065  else
1066  {
1067  yyp++;
1068  yyformat++;
1069  }
1070  }
1071  return 0;
1072 }
1073 #endif /* YYERROR_VERBOSE */
1074 
1075 /*-----------------------------------------------.
1076 | Release the memory associated to this symbol. |
1077 `-----------------------------------------------*/
1078 
1079 static void
1080 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, yacc_arg parg)
1081 {
1082  YYUSE (yyvaluep);
1083  YYUSE (parg);
1084  if (!yymsg)
1085  yymsg = "Deleting";
1086  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1087 
1088  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1089  switch (yytype)
1090  {
1091  case 3: /* KEYWORD */
1092 #line 23 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1257 */
1093  { glps_string_cleanup(((*yyvaluep).string)); ((*yyvaluep).string) = NULL; }
1094 #line 1095 "glps.par.c" /* yacc.c:1257 */
1095  break;
1096 
1097  case 4: /* STR */
1098 #line 23 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1257 */
1099  { glps_string_cleanup(((*yyvaluep).string)); ((*yyvaluep).string) = NULL; }
1100 #line 1101 "glps.par.c" /* yacc.c:1257 */
1101  break;
1102 
1103  case 28: /* properties */
1104 #line 47 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1257 */
1105  { glps_kvlist_cleanup(((*yyvaluep).kvlist)); }
1106 #line 1107 "glps.par.c" /* yacc.c:1257 */
1107  break;
1108 
1109  case 29: /* property */
1110 #line 59 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1257 */
1111  { free(((*yyvaluep).kv).key); ((*yyvaluep).kv).key = NULL;glps_expr_cleanup(((*yyvaluep).kv).value); }
1112 #line 1113 "glps.par.c" /* yacc.c:1257 */
1113  break;
1114 
1115  case 30: /* line_list */
1116 #line 53 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1257 */
1117  { glps_strlist_cleanup(((*yyvaluep).strlist)); }
1118 #line 1119 "glps.par.c" /* yacc.c:1257 */
1119  break;
1120 
1121  case 31: /* expr */
1122 #line 35 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1257 */
1123  { glps_expr_cleanup(((*yyvaluep).exprv)); }
1124 #line 1125 "glps.par.c" /* yacc.c:1257 */
1125  break;
1126 
1127  case 32: /* expr_list */
1128 #line 41 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1257 */
1129  { glps_vector_cleanup(((*yyvaluep).vector)); }
1130 #line 1131 "glps.par.c" /* yacc.c:1257 */
1131  break;
1132 
1133  case 33: /* vector */
1134 #line 41 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1257 */
1135  { glps_vector_cleanup(((*yyvaluep).vector)); }
1136 #line 1137 "glps.par.c" /* yacc.c:1257 */
1137  break;
1138 
1139 
1140  default:
1141  break;
1142  }
1143  YY_IGNORE_MAYBE_UNINITIALIZED_END
1144 }
1145 
1146 
1147 
1148 
1149 /*----------.
1150 | yyparse. |
1151 `----------*/
1152 
1153 int
1154 yyparse (yacc_arg parg)
1155 {
1156 /* The lookahead symbol. */
1157 int yychar;
1158 
1159 
1160 /* The semantic value of the lookahead symbol. */
1161 /* Default value used for initialization, for pacifying older GCCs
1162  or non-GCC compilers. */
1163 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1164 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
1165 
1166  /* Number of syntax errors so far. */
1167  int yynerrs;
1168 
1169  int yystate;
1170  /* Number of tokens to shift before error messages enabled. */
1171  int yyerrstatus;
1172 
1173  /* The stacks and their tools:
1174  'yyss': related to states.
1175  'yyvs': related to semantic values.
1176 
1177  Refer to the stacks through separate pointers, to allow yyoverflow
1178  to reallocate them elsewhere. */
1179 
1180  /* The state stack. */
1181  yytype_int16 yyssa[YYINITDEPTH];
1182  yytype_int16 *yyss;
1183  yytype_int16 *yyssp;
1184 
1185  /* The semantic value stack. */
1186  YYSTYPE yyvsa[YYINITDEPTH];
1187  YYSTYPE *yyvs;
1188  YYSTYPE *yyvsp;
1189 
1190  YYSIZE_T yystacksize;
1191 
1192  int yyn;
1193  int yyresult;
1194  /* Lookahead token as an internal (translated) token number. */
1195  int yytoken = 0;
1196  /* The variables used to return semantic value and location from the
1197  action routines. */
1198  YYSTYPE yyval;
1199 
1200 #if YYERROR_VERBOSE
1201  /* Buffer for error messages, and its allocated size. */
1202  char yymsgbuf[128];
1203  char *yymsg = yymsgbuf;
1204  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1205 #endif
1206 
1207 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1208 
1209  /* The number of symbols on the RHS of the reduced rule.
1210  Keep to zero when no symbol should be popped. */
1211  int yylen = 0;
1212 
1213  yyssp = yyss = yyssa;
1214  yyvsp = yyvs = yyvsa;
1215  yystacksize = YYINITDEPTH;
1216 
1217  YYDPRINTF ((stderr, "Starting parse\n"));
1218 
1219  yystate = 0;
1220  yyerrstatus = 0;
1221  yynerrs = 0;
1222  yychar = YYEMPTY; /* Cause a token to be read. */
1223  goto yysetstate;
1224 
1225 /*------------------------------------------------------------.
1226 | yynewstate -- Push a new state, which is found in yystate. |
1227 `------------------------------------------------------------*/
1228  yynewstate:
1229  /* In all cases, when you get here, the value and location stacks
1230  have just been pushed. So pushing a state here evens the stacks. */
1231  yyssp++;
1232 
1233  yysetstate:
1234  *yyssp = yystate;
1235 
1236  if (yyss + yystacksize - 1 <= yyssp)
1237  {
1238  /* Get the current used size of the three stacks, in elements. */
1239  YYSIZE_T yysize = yyssp - yyss + 1;
1240 
1241 #ifdef yyoverflow
1242  {
1243  /* Give user a chance to reallocate the stack. Use copies of
1244  these so that the &'s don't force the real ones into
1245  memory. */
1246  YYSTYPE *yyvs1 = yyvs;
1247  yytype_int16 *yyss1 = yyss;
1248 
1249  /* Each stack pointer address is followed by the size of the
1250  data in use in that stack, in bytes. This used to be a
1251  conditional around just the two extra args, but that might
1252  be undefined if yyoverflow is a macro. */
1253  yyoverflow (YY_("memory exhausted"),
1254  &yyss1, yysize * sizeof (*yyssp),
1255  &yyvs1, yysize * sizeof (*yyvsp),
1256  &yystacksize);
1257 
1258  yyss = yyss1;
1259  yyvs = yyvs1;
1260  }
1261 #else /* no yyoverflow */
1262 # ifndef YYSTACK_RELOCATE
1263  goto yyexhaustedlab;
1264 # else
1265  /* Extend the stack our own way. */
1266  if (YYMAXDEPTH <= yystacksize)
1267  goto yyexhaustedlab;
1268  yystacksize *= 2;
1269  if (YYMAXDEPTH < yystacksize)
1270  yystacksize = YYMAXDEPTH;
1271 
1272  {
1273  yytype_int16 *yyss1 = yyss;
1274  union yyalloc *yyptr =
1275  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1276  if (! yyptr)
1277  goto yyexhaustedlab;
1278  YYSTACK_RELOCATE (yyss_alloc, yyss);
1279  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1280 # undef YYSTACK_RELOCATE
1281  if (yyss1 != yyssa)
1282  YYSTACK_FREE (yyss1);
1283  }
1284 # endif
1285 #endif /* no yyoverflow */
1286 
1287  yyssp = yyss + yysize - 1;
1288  yyvsp = yyvs + yysize - 1;
1289 
1290  YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1291  (unsigned long int) yystacksize));
1292 
1293  if (yyss + yystacksize - 1 <= yyssp)
1294  YYABORT;
1295  }
1296 
1297  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1298 
1299  if (yystate == YYFINAL)
1300  YYACCEPT;
1301 
1302  goto yybackup;
1303 
1304 /*-----------.
1305 | yybackup. |
1306 `-----------*/
1307 yybackup:
1308 
1309  /* Do appropriate processing given the current state. Read a
1310  lookahead token if we need one and don't already have one. */
1311 
1312  /* First try to decide what to do without reference to lookahead token. */
1313  yyn = yypact[yystate];
1314  if (yypact_value_is_default (yyn))
1315  goto yydefault;
1316 
1317  /* Not known => get a lookahead token if don't already have one. */
1318 
1319  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1320  if (yychar == YYEMPTY)
1321  {
1322  YYDPRINTF ((stderr, "Reading a token: "));
1323  yychar = yylex (&yylval, scanner);
1324  }
1325 
1326  if (yychar <= YYEOF)
1327  {
1328  yychar = yytoken = YYEOF;
1329  YYDPRINTF ((stderr, "Now at end of input.\n"));
1330  }
1331  else
1332  {
1333  yytoken = YYTRANSLATE (yychar);
1334  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1335  }
1336 
1337  /* If the proper action on seeing token YYTOKEN is to reduce or to
1338  detect an error, take that action. */
1339  yyn += yytoken;
1340  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1341  goto yydefault;
1342  yyn = yytable[yyn];
1343  if (yyn <= 0)
1344  {
1345  if (yytable_value_is_error (yyn))
1346  goto yyerrlab;
1347  yyn = -yyn;
1348  goto yyreduce;
1349  }
1350 
1351  /* Count tokens shifted since error; after three, turn off error
1352  status. */
1353  if (yyerrstatus)
1354  yyerrstatus--;
1355 
1356  /* Shift the lookahead token. */
1357  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1358 
1359  /* Discard the shifted token. */
1360  yychar = YYEMPTY;
1361 
1362  yystate = yyn;
1363  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1364  *++yyvsp = yylval;
1365  YY_IGNORE_MAYBE_UNINITIALIZED_END
1366 
1367  goto yynewstate;
1368 
1369 
1370 /*-----------------------------------------------------------.
1371 | yydefault -- do the default action for the current state. |
1372 `-----------------------------------------------------------*/
1373 yydefault:
1374  yyn = yydefact[yystate];
1375  if (yyn == 0)
1376  goto yyerrlab;
1377  goto yyreduce;
1378 
1379 
1380 /*-----------------------------.
1381 | yyreduce -- Do a reduction. |
1382 `-----------------------------*/
1383 yyreduce:
1384  /* yyn is the number of a rule to reduce with. */
1385  yylen = yyr2[yyn];
1386 
1387  /* If YYLEN is nonzero, implement the default value of the action:
1388  '$$ = $1'.
1389 
1390  Otherwise, the following line sets YYVAL to garbage.
1391  This behavior is undocumented and Bison
1392  users should not rely upon it. Assigning to YYVAL
1393  unconditionally makes the parser a bit smaller, and it avoids a
1394  GCC warning that YYVAL may be used uninitialized. */
1395  yyval = yyvsp[1-yylen];
1396 
1397 
1398  YY_REDUCE_PRINT (yyn);
1399  switch (yyn)
1400  {
1401  case 9:
1402 #line 91 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1403  { glps_assign(ctxt, (yyvsp[-3].string), (yyvsp[-1].exprv)); PCLR((yyvsp[-3].string)); }
1404 #line 1405 "glps.par.c" /* yacc.c:1646 */
1405  break;
1406 
1407  case 10:
1408 #line 93 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1409  { glps_add_element(ctxt, (yyvsp[-4].string), (yyvsp[-2].string), (yyvsp[-1].kvlist)); PCLR((yyvsp[-4].string)); PCLR((yyvsp[-2].string)); PCLR((yyvsp[-1].kvlist)); }
1410 #line 1411 "glps.par.c" /* yacc.c:1646 */
1411  break;
1412 
1413  case 11:
1414 #line 95 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1415  { glps_add_line(ctxt, (yyvsp[-7].string), (yyvsp[-5].string), (yyvsp[-2].strlist)); PCLR((yyvsp[-7].string)); PCLR((yyvsp[-5].string)); PCLR((yyvsp[-2].strlist)); }
1416 #line 1417 "glps.par.c" /* yacc.c:1646 */
1417  break;
1418 
1419  case 12:
1420 #line 97 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1421  { glps_call1(ctxt, (yyvsp[-4].string), (yyvsp[-2].exprv)); PCLR((yyvsp[-4].string)); PCLR((yyvsp[-2].exprv)); }
1422 #line 1423 "glps.par.c" /* yacc.c:1646 */
1423  break;
1424 
1425  case 13:
1426 #line 99 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1427  { glps_command(ctxt, (yyvsp[-1].string)); }
1428 #line 1429 "glps.par.c" /* yacc.c:1646 */
1429  break;
1430 
1431  case 14:
1432 #line 101 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1433  { (yyval.kvlist) = NULL; }
1434 #line 1435 "glps.par.c" /* yacc.c:1646 */
1435  break;
1436 
1437  case 15:
1438 #line 102 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1439  { (yyval.kvlist) = glps_append_kv(ctxt, (yyvsp[0].kvlist), &(yyvsp[-1].kv)); PCLR((yyvsp[0].kvlist)); PERR((yyval.kvlist)); }
1440 #line 1441 "glps.par.c" /* yacc.c:1646 */
1441  break;
1442 
1443  case 16:
1444 #line 104 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1445  { (yyval.kv).key = (yyvsp[-2].string); (yyval.kv).value = (yyvsp[0].exprv); PCLR((yyvsp[-2].string)); PCLR((yyvsp[0].exprv)); }
1446 #line 1447 "glps.par.c" /* yacc.c:1646 */
1447  break;
1448 
1449  case 17:
1450 #line 106 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1451  { (yyval.strlist) = NULL; }
1452 #line 1453 "glps.par.c" /* yacc.c:1646 */
1453  break;
1454 
1455  case 18:
1456 #line 107 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1457  { (yyval.strlist) = glps_append_expr(ctxt, NULL, (yyvsp[0].exprv)); PERR((yyval.strlist)); }
1458 #line 1459 "glps.par.c" /* yacc.c:1646 */
1459  break;
1460 
1461  case 19:
1462 #line 108 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1463  { (yyval.strlist) = glps_append_expr(ctxt, (yyvsp[0].strlist), (yyvsp[-2].exprv)); PERR((yyval.strlist)); }
1464 #line 1465 "glps.par.c" /* yacc.c:1646 */
1465  break;
1466 
1467  case 20:
1468 #line 110 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1469  { (yyval.exprv) = glps_add_value(ctxt, glps_expr_number, (yyvsp[0].real)); }
1470 #line 1471 "glps.par.c" /* yacc.c:1646 */
1471  break;
1472 
1473  case 21:
1474 #line 111 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1475  { (yyval.exprv) = glps_add_value(ctxt, glps_expr_vector, (yyvsp[0].vector)); PCLR((yyvsp[0].vector)); PERR((yyval.exprv)); }
1476 #line 1477 "glps.par.c" /* yacc.c:1646 */
1477  break;
1478 
1479  case 22:
1480 #line 112 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1481  { (yyval.exprv) = glps_add_value(ctxt, glps_expr_string, (yyvsp[0].string)); PCLR((yyvsp[0].string)); PERR((yyval.exprv)); }
1482 #line 1483 "glps.par.c" /* yacc.c:1646 */
1483  break;
1484 
1485  case 23:
1486 #line 113 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1487  { (yyval.exprv) = glps_add_value(ctxt, glps_expr_var, (yyvsp[0].string)); PCLR((yyvsp[0].string)); PERR((yyval.exprv)); }
1488 #line 1489 "glps.par.c" /* yacc.c:1646 */
1489  break;
1490 
1491  case 24:
1492 #line 114 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1493  { expr_t *A[2] = {(yyvsp[-2].exprv),(yyvsp[0].exprv)}; (yyval.exprv) = glps_add_op(ctxt, glps_string_alloc("+",1), 2, A); PCLR((yyvsp[-2].exprv)); PCLR((yyvsp[0].exprv)); PERR((yyval.exprv)); }
1494 #line 1495 "glps.par.c" /* yacc.c:1646 */
1495  break;
1496 
1497  case 25:
1498 #line 115 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1499  { expr_t *A[2] = {(yyvsp[-2].exprv),(yyvsp[0].exprv)}; (yyval.exprv) = glps_add_op(ctxt, glps_string_alloc("-",1), 2, A); PCLR((yyvsp[-2].exprv)); PCLR((yyvsp[0].exprv)); PERR((yyval.exprv)); }
1500 #line 1501 "glps.par.c" /* yacc.c:1646 */
1501  break;
1502 
1503  case 26:
1504 #line 116 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1505  { expr_t *A[2] = {(yyvsp[-2].exprv),(yyvsp[0].exprv)}; (yyval.exprv) = glps_add_op(ctxt, glps_string_alloc("*",1), 2, A); PCLR((yyvsp[-2].exprv)); PCLR((yyvsp[0].exprv)); PERR((yyval.exprv)); }
1506 #line 1507 "glps.par.c" /* yacc.c:1646 */
1507  break;
1508 
1509  case 27:
1510 #line 117 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1511  { expr_t *A[2] = {(yyvsp[-2].exprv),(yyvsp[0].exprv)}; (yyval.exprv) = glps_add_op(ctxt, glps_string_alloc("/",1), 2, A); PCLR((yyvsp[-2].exprv)); PCLR((yyvsp[0].exprv)); PERR((yyval.exprv)); }
1512 #line 1513 "glps.par.c" /* yacc.c:1646 */
1513  break;
1514 
1515  case 28:
1516 #line 118 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1517  { expr_t *A[1] = {(yyvsp[0].exprv)}; (yyval.exprv) = glps_add_op(ctxt, glps_string_alloc("-",1), 1, A); PCLR((yyvsp[0].exprv)); PERR((yyval.exprv)); }
1518 #line 1519 "glps.par.c" /* yacc.c:1646 */
1519  break;
1520 
1521  case 29:
1522 #line 119 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1523  { (yyval.exprv) = (yyvsp[-1].exprv); PCLR((yyvsp[-1].exprv)); PERR((yyval.exprv)); }
1524 #line 1525 "glps.par.c" /* yacc.c:1646 */
1525  break;
1526 
1527  case 30:
1528 #line 120 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1529  { expr_t *A[1] = {(yyvsp[-1].exprv)}; (yyval.exprv) = glps_add_op(ctxt, (yyvsp[-3].string), 1, A); PCLR((yyvsp[-3].string)); PCLR((yyvsp[-1].exprv)); PERR((yyval.exprv)); }
1530 #line 1531 "glps.par.c" /* yacc.c:1646 */
1531  break;
1532 
1533  case 31:
1534 #line 122 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1535  { (yyval.vector) = NULL; }
1536 #line 1537 "glps.par.c" /* yacc.c:1646 */
1537  break;
1538 
1539  case 32:
1540 #line 123 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1541  { (yyval.vector) = glps_append_vector(ctxt, NULL, (yyvsp[0].exprv)); PERR((yyval.vector)); }
1542 #line 1543 "glps.par.c" /* yacc.c:1646 */
1543  break;
1544 
1545  case 33:
1546 #line 124 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1547  { (yyval.vector) = glps_append_vector(ctxt, (yyvsp[0].vector), (yyvsp[-2].exprv)); PERR((yyval.vector)); }
1548 #line 1549 "glps.par.c" /* yacc.c:1646 */
1549  break;
1550 
1551  case 34:
1552 #line 126 "/home/mdavidsaver/work.frib/jmbgsddb/src/glps.y" /* yacc.c:1646 */
1553  { (yyval.vector) = (yyvsp[-1].vector); }
1554 #line 1555 "glps.par.c" /* yacc.c:1646 */
1555  break;
1556 
1557 
1558 #line 1559 "glps.par.c" /* yacc.c:1646 */
1559  default: break;
1560  }
1561  /* User semantic actions sometimes alter yychar, and that requires
1562  that yytoken be updated with the new translation. We take the
1563  approach of translating immediately before every use of yytoken.
1564  One alternative is translating here after every semantic action,
1565  but that translation would be missed if the semantic action invokes
1566  YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1567  if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
1568  incorrect destructor might then be invoked immediately. In the
1569  case of YYERROR or YYBACKUP, subsequent parser actions might lead
1570  to an incorrect destructor call or verbose syntax error message
1571  before the lookahead is translated. */
1572  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
1573 
1574  YYPOPSTACK (yylen);
1575  yylen = 0;
1576  YY_STACK_PRINT (yyss, yyssp);
1577 
1578  *++yyvsp = yyval;
1579 
1580  /* Now 'shift' the result of the reduction. Determine what state
1581  that goes to, based on the state we popped back to and the rule
1582  number reduced by. */
1583 
1584  yyn = yyr1[yyn];
1585 
1586  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
1587  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1588  yystate = yytable[yystate];
1589  else
1590  yystate = yydefgoto[yyn - YYNTOKENS];
1591 
1592  goto yynewstate;
1593 
1594 
1595 /*--------------------------------------.
1596 | yyerrlab -- here on detecting error. |
1597 `--------------------------------------*/
1598 yyerrlab:
1599  /* Make sure we have latest lookahead translation. See comments at
1600  user semantic actions for why this is necessary. */
1601  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
1602 
1603  /* If not already recovering from an error, report this error. */
1604  if (!yyerrstatus)
1605  {
1606  ++yynerrs;
1607 #if ! YYERROR_VERBOSE
1608  yyerror (parg, YY_("syntax error"));
1609 #else
1610 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
1611  yyssp, yytoken)
1612  {
1613  char const *yymsgp = YY_("syntax error");
1614  int yysyntax_error_status;
1615  yysyntax_error_status = YYSYNTAX_ERROR;
1616  if (yysyntax_error_status == 0)
1617  yymsgp = yymsg;
1618  else if (yysyntax_error_status == 1)
1619  {
1620  if (yymsg != yymsgbuf)
1621  YYSTACK_FREE (yymsg);
1622  yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
1623  if (!yymsg)
1624  {
1625  yymsg = yymsgbuf;
1626  yymsg_alloc = sizeof yymsgbuf;
1627  yysyntax_error_status = 2;
1628  }
1629  else
1630  {
1631  yysyntax_error_status = YYSYNTAX_ERROR;
1632  yymsgp = yymsg;
1633  }
1634  }
1635  yyerror (parg, yymsgp);
1636  if (yysyntax_error_status == 2)
1637  goto yyexhaustedlab;
1638  }
1639 # undef YYSYNTAX_ERROR
1640 #endif
1641  }
1642 
1643 
1644 
1645  if (yyerrstatus == 3)
1646  {
1647  /* If just tried and failed to reuse lookahead token after an
1648  error, discard it. */
1649 
1650  if (yychar <= YYEOF)
1651  {
1652  /* Return failure if at end of input. */
1653  if (yychar == YYEOF)
1654  YYABORT;
1655  }
1656  else
1657  {
1658  yydestruct ("Error: discarding",
1659  yytoken, &yylval, parg);
1660  yychar = YYEMPTY;
1661  }
1662  }
1663 
1664  /* Else will try to reuse lookahead token after shifting the error
1665  token. */
1666  goto yyerrlab1;
1667 
1668 
1669 /*---------------------------------------------------.
1670 | yyerrorlab -- error raised explicitly by YYERROR. |
1671 `---------------------------------------------------*/
1672 yyerrorlab:
1673 
1674  /* Pacify compilers like GCC when the user code never invokes
1675  YYERROR and the label yyerrorlab therefore never appears in user
1676  code. */
1677  if (/*CONSTCOND*/ 0)
1678  goto yyerrorlab;
1679 
1680  /* Do not reclaim the symbols of the rule whose action triggered
1681  this YYERROR. */
1682  YYPOPSTACK (yylen);
1683  yylen = 0;
1684  YY_STACK_PRINT (yyss, yyssp);
1685  yystate = *yyssp;
1686  goto yyerrlab1;
1687 
1688 
1689 /*-------------------------------------------------------------.
1690 | yyerrlab1 -- common code for both syntax error and YYERROR. |
1691 `-------------------------------------------------------------*/
1692 yyerrlab1:
1693  yyerrstatus = 3; /* Each real token shifted decrements this. */
1694 
1695  for (;;)
1696  {
1697  yyn = yypact[yystate];
1698  if (!yypact_value_is_default (yyn))
1699  {
1700  yyn += YYTERROR;
1701  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
1702  {
1703  yyn = yytable[yyn];
1704  if (0 < yyn)
1705  break;
1706  }
1707  }
1708 
1709  /* Pop the current state because it cannot handle the error token. */
1710  if (yyssp == yyss)
1711  YYABORT;
1712 
1713 
1714  yydestruct ("Error: popping",
1715  yystos[yystate], yyvsp, parg);
1716  YYPOPSTACK (1);
1717  yystate = *yyssp;
1718  YY_STACK_PRINT (yyss, yyssp);
1719  }
1720 
1721  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1722  *++yyvsp = yylval;
1723  YY_IGNORE_MAYBE_UNINITIALIZED_END
1724 
1725 
1726  /* Shift the error token. */
1727  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
1728 
1729  yystate = yyn;
1730  goto yynewstate;
1731 
1732 
1733 /*-------------------------------------.
1734 | yyacceptlab -- YYACCEPT comes here. |
1735 `-------------------------------------*/
1736 yyacceptlab:
1737  yyresult = 0;
1738  goto yyreturn;
1739 
1740 /*-----------------------------------.
1741 | yyabortlab -- YYABORT comes here. |
1742 `-----------------------------------*/
1743 yyabortlab:
1744  yyresult = 1;
1745  goto yyreturn;
1746 
1747 #if !defined yyoverflow || YYERROR_VERBOSE
1748 /*-------------------------------------------------.
1749 | yyexhaustedlab -- memory exhaustion comes here. |
1750 `-------------------------------------------------*/
1751 yyexhaustedlab:
1752  yyerror (parg, YY_("memory exhausted"));
1753  yyresult = 2;
1754  /* Fall through. */
1755 #endif
1756 
1757 yyreturn:
1758  if (yychar != YYEMPTY)
1759  {
1760  /* Make sure we have latest lookahead translation. See comments at
1761  user semantic actions for why this is necessary. */
1762  yytoken = YYTRANSLATE (yychar);
1763  yydestruct ("Cleanup: discarding lookahead",
1764  yytoken, &yylval, parg);
1765  }
1766  /* Do not reclaim the symbols of the rule whose action triggered
1767  this YYABORT or YYACCEPT. */
1768  YYPOPSTACK (yylen);
1769  YY_STACK_PRINT (yyss, yyssp);
1770  while (yyssp != yyss)
1771  {
1772  yydestruct ("Cleanup: popping",
1773  yystos[*yyssp], yyvsp, parg);
1774  YYPOPSTACK (1);
1775  }
1776 #ifndef yyoverflow
1777  if (yyss != yyssa)
1778  YYSTACK_FREE (yyss);
1779 #endif
1780 #if YYERROR_VERBOSE
1781  if (yymsg != yymsgbuf)
1782  YYSTACK_FREE (yymsg);
1783 #endif
1784  return yyresult;
1785 }