source: XIOS/trunk/extern/src_netcdf4/daptab.c @ 409

Last change on this file since 409 was 409, checked in by ymipsl, 11 years ago

Add improved nectdf internal library src

YM

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