00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 
00045 
00046 #define YYBISON 1
00047 
00048 
00049 #define YYBISON_VERSION "2.4.1"
00050 
00051 
00052 #define YYSKELETON_NAME "yacc.c"
00053 
00054 
00055 #define YYPURE 0
00056 
00057 
00058 #define YYPUSH 0
00059 
00060 
00061 #define YYPULL 1
00062 
00063 
00064 #define YYLSP_NEEDED 0
00065 
00066 
00067 
00068 
00069 
00070 
00071 #line 1 "data-syntax.y"
00072 
00073 #define YYDEBUG 1
00074 #include "data.h"
00075 #include "array-creator.h"
00076 #include "data-token.h"
00077 #include "symbol.h"
00078 #define YYSTYPE Data
00079 
00080 
00081 #line 15 "data-syntax.y"
00082 
00083 
00084 #define y_tabbed
00085 #include <stdlib.h>
00086 #include <assert.h>
00087 #include <stdlib.h>
00088 #include <stdio.h>
00089 #include <string>
00090 extern int yylex();
00091 Data parse_result;
00092 void yyerror(const char* text)
00093   {
00094   printf("%s\n",text);
00095   exit(10);
00096   }
00097 
00098 
00099 
00100 
00101 #line 102 "data-syntax.cpp"
00102 
00103 
00104 #ifndef YYDEBUG
00105 # define YYDEBUG 0
00106 #endif
00107 
00108 
00109 #ifdef YYERROR_VERBOSE
00110 # undef YYERROR_VERBOSE
00111 # define YYERROR_VERBOSE 1
00112 #else
00113 # define YYERROR_VERBOSE 0
00114 #endif
00115 
00116 
00117 #ifndef YYTOKEN_TABLE
00118 # define YYTOKEN_TABLE 0
00119 #endif
00120 
00121 
00122 
00123 #ifndef YYTOKENTYPE
00124 # define YYTOKENTYPE
00125    
00126 
00127    enum yytokentype {
00128      BRACE_OPEN = 258,
00129      BRACE_CLOSE = 259,
00130      COLON = 260,
00131      BRACKET_OPEN = 261,
00132      BRACKET_CLOSE = 262,
00133      SYMBOL = 263,
00134      NUMBER = 264,
00135      STRING = 265,
00136      DIMENSION_OPEN = 266,
00137      DIMENSION_CLOSE = 267
00138    };
00139 #endif
00140 
00141 
00142 
00143 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00144 typedef int YYSTYPE;
00145 # define YYSTYPE_IS_TRIVIAL 1
00146 # define yystype YYSTYPE 
00147 # define YYSTYPE_IS_DECLARED 1
00148 #endif
00149 
00150 
00151 
00152 
00153 
00154 
00155 #line 156 "data-syntax.cpp"
00156 
00157 #ifdef short
00158 # undef short
00159 #endif
00160 
00161 #ifdef YYTYPE_UINT8
00162 typedef YYTYPE_UINT8 yytype_uint8;
00163 #else
00164 typedef unsigned char yytype_uint8;
00165 #endif
00166 
00167 #ifdef YYTYPE_INT8
00168 typedef YYTYPE_INT8 yytype_int8;
00169 #elif (defined __STDC__ || defined __C99__FUNC__ \
00170      || defined __cplusplus || defined _MSC_VER)
00171 typedef signed char yytype_int8;
00172 #else
00173 typedef short int yytype_int8;
00174 #endif
00175 
00176 #ifdef YYTYPE_UINT16
00177 typedef YYTYPE_UINT16 yytype_uint16;
00178 #else
00179 typedef unsigned short int yytype_uint16;
00180 #endif
00181 
00182 #ifdef YYTYPE_INT16
00183 typedef YYTYPE_INT16 yytype_int16;
00184 #else
00185 typedef short int yytype_int16;
00186 #endif
00187 
00188 #ifndef YYSIZE_T
00189 # ifdef __SIZE_TYPE__
00190 #  define YYSIZE_T __SIZE_TYPE__
00191 # elif defined size_t
00192 #  define YYSIZE_T size_t
00193 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
00194      || defined __cplusplus || defined _MSC_VER)
00195 #  include <stddef.h> 
00196 #  define YYSIZE_T size_t
00197 # else
00198 #  define YYSIZE_T unsigned int
00199 # endif
00200 #endif
00201 
00202 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
00203 
00204 #ifndef YY_
00205 # if YYENABLE_NLS
00206 #  if ENABLE_NLS
00207 #   include <libintl.h> 
00208 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
00209 #  endif
00210 # endif
00211 # ifndef YY_
00212 #  define YY_(msgid) msgid
00213 # endif
00214 #endif
00215 
00216 
00217 #if ! defined lint || defined __GNUC__
00218 # define YYUSE(e) ((void) (e))
00219 #else
00220 # define YYUSE(e) 
00221 #endif
00222 
00223 
00224 #ifndef lint
00225 # define YYID(n) (n)
00226 #else
00227 #if (defined __STDC__ || defined __C99__FUNC__ \
00228      || defined __cplusplus || defined _MSC_VER)
00229 static int
00230 YYID (int yyi)
00231 #else
00232 static int
00233 YYID (yyi)
00234     int yyi;
00235 #endif
00236 {
00237   return yyi;
00238 }
00239 #endif
00240 
00241 #if ! defined yyoverflow || YYERROR_VERBOSE
00242 
00243 
00244 
00245 # ifdef YYSTACK_USE_ALLOCA
00246 #  if YYSTACK_USE_ALLOCA
00247 #   ifdef __GNUC__
00248 #    define YYSTACK_ALLOC __builtin_alloca
00249 #   elif defined __BUILTIN_VA_ARG_INCR
00250 #    include <alloca.h> 
00251 #   elif defined _AIX
00252 #    define YYSTACK_ALLOC __alloca
00253 #   elif defined _MSC_VER
00254 #    include <malloc.h> 
00255 #    define alloca _alloca
00256 #   else
00257 #    define YYSTACK_ALLOC alloca
00258 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00259      || defined __cplusplus || defined _MSC_VER)
00260 #     include <stdlib.h> 
00261 #     ifndef _STDLIB_H
00262 #      define _STDLIB_H 1
00263 #     endif
00264 #    endif
00265 #   endif
00266 #  endif
00267 # endif
00268 
00269 # ifdef YYSTACK_ALLOC
00270    
00271 #  define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
00272 #  ifndef YYSTACK_ALLOC_MAXIMUM
00273     
00274 
00275 
00276 
00277 #   define YYSTACK_ALLOC_MAXIMUM 4032 
00278 #  endif
00279 # else
00280 #  define YYSTACK_ALLOC YYMALLOC
00281 #  define YYSTACK_FREE YYFREE
00282 #  ifndef YYSTACK_ALLOC_MAXIMUM
00283 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
00284 #  endif
00285 #  if (defined __cplusplus && ! defined _STDLIB_H \
00286        && ! ((defined YYMALLOC || defined malloc) \
00287              && (defined YYFREE || defined free)))
00288 #   include <stdlib.h> 
00289 #   ifndef _STDLIB_H
00290 #    define _STDLIB_H 1
00291 #   endif
00292 #  endif
00293 #  ifndef YYMALLOC
00294 #   define YYMALLOC malloc
00295 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00296      || defined __cplusplus || defined _MSC_VER)
00297 void *malloc (YYSIZE_T); 
00298 #   endif
00299 #  endif
00300 #  ifndef YYFREE
00301 #   define YYFREE free
00302 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00303      || defined __cplusplus || defined _MSC_VER)
00304 void free (void *); 
00305 #   endif
00306 #  endif
00307 # endif
00308 #endif 
00309 
00310 
00311 #if (! defined yyoverflow \
00312      && (! defined __cplusplus \
00313          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00314 
00315 
00316 union yyalloc
00317 {
00318   yytype_int16 yyss_alloc;
00319   YYSTYPE yyvs_alloc;
00320 };
00321 
00322 
00323 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00324 
00325 
00326 
00327 # define YYSTACK_BYTES(N) \
00328      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
00329       + YYSTACK_GAP_MAXIMUM)
00330 
00331 
00332 
00333 # ifndef YYCOPY
00334 #  if defined __GNUC__ && 1 < __GNUC__
00335 #   define YYCOPY(To, From, Count) \
00336       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00337 #  else
00338 #   define YYCOPY(To, From, Count)              \
00339       do                                        \
00340         {                                       \
00341           YYSIZE_T yyi;                         \
00342           for (yyi = 0; yyi < (Count); yyi++)   \
00343             (To)[yyi] = (From)[yyi];            \
00344         }                                       \
00345       while (YYID (0))
00346 #  endif
00347 # endif
00348 
00349 
00350 
00351 
00352 
00353 
00354 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
00355     do                                                                  \
00356       {                                                                 \
00357         YYSIZE_T yynewbytes;                                            \
00358         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
00359         Stack = &yyptr->Stack_alloc;                                    \
00360         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00361         yyptr += yynewbytes / sizeof (*yyptr);                          \
00362       }                                                                 \
00363     while (YYID (0))
00364 
00365 #endif
00366 
00367 
00368 #define YYFINAL  15
00369 
00370 #define YYLAST   26
00371 
00372 
00373 #define YYNTOKENS  13
00374 
00375 #define YYNNTS  9
00376 
00377 #define YYNRULES  16
00378 
00379 #define YYNSTATES  27
00380 
00381 
00382 #define YYUNDEFTOK  2
00383 #define YYMAXUTOK   267
00384 
00385 #define YYTRANSLATE(YYX)                                                \
00386   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00387 
00388 
00389 static const yytype_uint8 yytranslate[] =
00390 {
00391        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00392        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00393        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00394        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00395        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00396        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00397        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00398        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00399        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00400        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00401        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00402        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00403        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00404        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00405        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00406        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00407        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00408        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00409        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00410        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00411        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00412        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00413        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00414        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00415        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00416        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
00417        5,     6,     7,     8,     9,    10,    11,    12
00418 };
00419 
00420 #if YYDEBUG
00421 
00422 
00423 static const yytype_uint8 yyprhs[] =
00424 {
00425        0,     0,     3,     5,     7,     9,    11,    13,    15,    17,
00426       21,    25,    26,    29,    36,    40,    43
00427 };
00428 
00429 
00430 static const yytype_int8 yyrhs[] =
00431 {
00432       14,     0,    -1,    15,    -1,    16,    -1,     8,    -1,     9,
00433       -1,    10,    -1,    19,    -1,    20,    -1,     3,    17,     4,
00434       -1,    17,    18,    15,    -1,    -1,     8,     5,    -1,    11,
00435        9,     5,     8,    12,    20,    -1,     6,    21,     7,    -1,
00436       21,    15,    -1,    -1
00437 };
00438 
00439 
00440 static const yytype_uint8 yyrline[] =
00441 {
00442        0,    34,    34,    36,    37,    38,    39,    40,    41,    43,
00443       46,    51,    53,    56,    59,    62,    66
00444 };
00445 #endif
00446 
00447 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
00448 
00449 
00450 static const char *const yytname[] =
00451 {
00452   "$end", "error", "$undefined", "BRACE_OPEN", "BRACE_CLOSE", "COLON",
00453   "BRACKET_OPEN", "BRACKET_CLOSE", "SYMBOL", "NUMBER", "STRING",
00454   "DIMENSION_OPEN", "DIMENSION_CLOSE", "$accept", "main", "data", "token",
00455   "associations", "field", "array", "sequence", "elements", 0
00456 };
00457 #endif
00458 
00459 # ifdef YYPRINT
00460 
00461 
00462 static const yytype_uint16 yytoknum[] =
00463 {
00464        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
00465      265,   266,   267
00466 };
00467 # endif
00468 
00469 
00470 static const yytype_uint8 yyr1[] =
00471 {
00472        0,    13,    14,    15,    15,    15,    15,    15,    15,    16,
00473       17,    17,    18,    19,    20,    21,    21
00474 };
00475 
00476 
00477 static const yytype_uint8 yyr2[] =
00478 {
00479        0,     2,     1,     1,     1,     1,     1,     1,     1,     3,
00480        3,     0,     2,     6,     3,     2,     0
00481 };
00482 
00483 
00484 
00485 
00486 static const yytype_uint8 yydefact[] =
00487 {
00488        0,    11,    16,     4,     5,     6,     0,     0,     2,     3,
00489        7,     8,     0,     0,     0,     1,     9,     0,     0,    14,
00490       15,     0,    12,    10,     0,     0,    13
00491 };
00492 
00493 
00494 static const yytype_int8 yydefgoto[] =
00495 {
00496       -1,     7,     8,     9,    12,    18,    10,    11,    13
00497 };
00498 
00499 
00500 
00501 #define YYPACT_NINF -9
00502 static const yytype_int8 yypact[] =
00503 {
00504        6,    -9,    -9,    -9,    -9,    -9,    -8,     2,    -9,    -9,
00505       -9,    -9,    15,    -3,     5,    -9,    -9,    16,     6,    -9,
00506       -9,     3,    -9,    -9,     8,    18,    -9
00507 };
00508 
00509 
00510 static const yytype_int8 yypgoto[] =
00511 {
00512       -9,    -9,     0,    -9,    -9,    -9,    -9,     1,    -9
00513 };
00514 
00515 
00516 
00517 
00518 
00519 #define YYTABLE_NINF -1
00520 static const yytype_uint8 yytable[] =
00521 {
00522        1,    14,    15,     2,    19,     3,     4,     5,     6,     1,
00523       21,    24,     2,    20,     3,     4,     5,     6,    23,    16,
00524       25,    22,     0,    17,     2,     0,    26
00525 };
00526 
00527 static const yytype_int8 yycheck[] =
00528 {
00529        3,     9,     0,     6,     7,     8,     9,    10,    11,     3,
00530        5,     8,     6,    13,     8,     9,    10,    11,    18,     4,
00531       12,     5,    -1,     8,     6,    -1,    25
00532 };
00533 
00534 
00535 
00536 static const yytype_uint8 yystos[] =
00537 {
00538        0,     3,     6,     8,     9,    10,    11,    14,    15,    16,
00539       19,    20,    17,    21,     9,     0,     4,     8,    18,     7,
00540       15,     5,     5,    15,     8,    12,    20
00541 };
00542 
00543 #define yyerrok         (yyerrstatus = 0)
00544 #define yyclearin       (yychar = YYEMPTY)
00545 #define YYEMPTY         (-2)
00546 #define YYEOF           0
00547 
00548 #define YYACCEPT        goto yyacceptlab
00549 #define YYABORT         goto yyabortlab
00550 #define YYERROR         goto yyerrorlab
00551 
00552 
00553 
00554 
00555 
00556 
00557 #define YYFAIL          goto yyerrlab
00558 
00559 #define YYRECOVERING()  (!!yyerrstatus)
00560 
00561 #define YYBACKUP(Token, Value)                                  \
00562 do                                                              \
00563   if (yychar == YYEMPTY && yylen == 1)                          \
00564     {                                                           \
00565       yychar = (Token);                                         \
00566       yylval = (Value);                                         \
00567       yytoken = YYTRANSLATE (yychar);                           \
00568       YYPOPSTACK (1);                                           \
00569       goto yybackup;                                            \
00570     }                                                           \
00571   else                                                          \
00572     {                                                           \
00573       yyerror (YY_("syntax error: cannot back up")); \
00574       YYERROR;                                                  \
00575     }                                                           \
00576 while (YYID (0))
00577 
00578 
00579 #define YYTERROR        1
00580 #define YYERRCODE       256
00581 
00582 
00583 
00584 
00585 
00586 
00587 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
00588 #ifndef YYLLOC_DEFAULT
00589 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
00590     do                                                                  \
00591       if (YYID (N))                                                    \
00592         {                                                               \
00593           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
00594           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
00595           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
00596           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
00597         }                                                               \
00598       else                                                              \
00599         {                                                               \
00600           (Current).first_line   = (Current).last_line   =              \
00601             YYRHSLOC (Rhs, 0).last_line;                                \
00602           (Current).first_column = (Current).last_column =              \
00603             YYRHSLOC (Rhs, 0).last_column;                              \
00604         }                                                               \
00605     while (YYID (0))
00606 #endif
00607 
00608 
00609 
00610 
00611 
00612 
00613 #ifndef YY_LOCATION_PRINT
00614 # if YYLTYPE_IS_TRIVIAL
00615 #  define YY_LOCATION_PRINT(File, Loc)                  \
00616      fprintf (File, "%d.%d-%d.%d",                      \
00617               (Loc).first_line, (Loc).first_column,     \
00618               (Loc).last_line,  (Loc).last_column)
00619 # else
00620 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
00621 # endif
00622 #endif
00623 
00624 
00625 
00626 
00627 #ifdef YYLEX_PARAM
00628 # define YYLEX yylex (YYLEX_PARAM)
00629 #else
00630 # define YYLEX yylex ()
00631 #endif
00632 
00633 
00634 #if YYDEBUG
00635 
00636 # ifndef YYFPRINTF
00637 #  include <stdio.h> 
00638 #  define YYFPRINTF fprintf
00639 # endif
00640 
00641 # define YYDPRINTF(Args)                        \
00642 do {                                            \
00643   if (yydebug)                                  \
00644     YYFPRINTF Args;                             \
00645 } while (YYID (0))
00646 
00647 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
00648 do {                                                                      \
00649   if (yydebug)                                                            \
00650     {                                                                     \
00651       YYFPRINTF (stderr, "%s ", Title);                                   \
00652       yy_symbol_print (stderr,                                            \
00653                   Type, Value); \
00654       YYFPRINTF (stderr, "\n");                                           \
00655     }                                                                     \
00656 } while (YYID (0))
00657 
00658 
00659 
00660 
00661 
00662 
00663 
00664 #if (defined __STDC__ || defined __C99__FUNC__ \
00665      || defined __cplusplus || defined _MSC_VER)
00666 static void
00667 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
00668 #else
00669 static void
00670 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
00671     FILE *yyoutput;
00672     int yytype;
00673     YYSTYPE const * const yyvaluep;
00674 #endif
00675 {
00676   if (!yyvaluep)
00677     return;
00678 # ifdef YYPRINT
00679   if (yytype < YYNTOKENS)
00680     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
00681 # else
00682   YYUSE (yyoutput);
00683 # endif
00684   switch (yytype)
00685     {
00686       default:
00687         break;
00688     }
00689 }
00690 
00691 
00692 
00693 
00694 
00695 
00696 #if (defined __STDC__ || defined __C99__FUNC__ \
00697      || defined __cplusplus || defined _MSC_VER)
00698 static void
00699 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
00700 #else
00701 static void
00702 yy_symbol_print (yyoutput, yytype, yyvaluep)
00703     FILE *yyoutput;
00704     int yytype;
00705     YYSTYPE const * const yyvaluep;
00706 #endif
00707 {
00708   if (yytype < YYNTOKENS)
00709     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
00710   else
00711     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
00712 
00713   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
00714   YYFPRINTF (yyoutput, ")");
00715 }
00716 
00717 
00718 
00719 
00720 
00721 
00722 #if (defined __STDC__ || defined __C99__FUNC__ \
00723      || defined __cplusplus || defined _MSC_VER)
00724 static void
00725 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
00726 #else
00727 static void
00728 yy_stack_print (yybottom, yytop)
00729     yytype_int16 *yybottom;
00730     yytype_int16 *yytop;
00731 #endif
00732 {
00733   YYFPRINTF (stderr, "Stack now");
00734   for (; yybottom <= yytop; yybottom++)
00735     {
00736       int yybot = *yybottom;
00737       YYFPRINTF (stderr, " %d", yybot);
00738     }
00739   YYFPRINTF (stderr, "\n");
00740 }
00741 
00742 # define YY_STACK_PRINT(Bottom, Top)                            \
00743 do {                                                            \
00744   if (yydebug)                                                  \
00745     yy_stack_print ((Bottom), (Top));                           \
00746 } while (YYID (0))
00747 
00748 
00749 
00750 
00751 
00752 
00753 #if (defined __STDC__ || defined __C99__FUNC__ \
00754      || defined __cplusplus || defined _MSC_VER)
00755 static void
00756 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
00757 #else
00758 static void
00759 yy_reduce_print (yyvsp, yyrule)
00760     YYSTYPE *yyvsp;
00761     int yyrule;
00762 #endif
00763 {
00764   int yynrhs = yyr2[yyrule];
00765   int yyi;
00766   unsigned long int yylno = yyrline[yyrule];
00767   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
00768              yyrule - 1, yylno);
00769   
00770   for (yyi = 0; yyi < yynrhs; yyi++)
00771     {
00772       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
00773       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
00774                        &(yyvsp[(yyi + 1) - (yynrhs)])
00775                                        );
00776       YYFPRINTF (stderr, "\n");
00777     }
00778 }
00779 
00780 # define YY_REDUCE_PRINT(Rule)          \
00781 do {                                    \
00782   if (yydebug)                          \
00783     yy_reduce_print (yyvsp, Rule); \
00784 } while (YYID (0))
00785 
00786 
00787 
00788 int yydebug;
00789 #else 
00790 # define YYDPRINTF(Args)
00791 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
00792 # define YY_STACK_PRINT(Bottom, Top)
00793 # define YY_REDUCE_PRINT(Rule)
00794 #endif 
00795 
00796 
00797 
00798 #ifndef YYINITDEPTH
00799 # define YYINITDEPTH 200
00800 #endif
00801 
00802 
00803 
00804 
00805 
00806 
00807 
00808 
00809 #ifndef YYMAXDEPTH
00810 # define YYMAXDEPTH 10000
00811 #endif
00812 
00813 
00814 
00815 #if YYERROR_VERBOSE
00816 
00817 # ifndef yystrlen
00818 #  if defined __GLIBC__ && defined _STRING_H
00819 #   define yystrlen strlen
00820 #  else
00821 
00822 #if (defined __STDC__ || defined __C99__FUNC__ \
00823      || defined __cplusplus || defined _MSC_VER)
00824 static YYSIZE_T
00825 yystrlen (const char *yystr)
00826 #else
00827 static YYSIZE_T
00828 yystrlen (yystr)
00829     const char *yystr;
00830 #endif
00831 {
00832   YYSIZE_T yylen;
00833   for (yylen = 0; yystr[yylen]; yylen++)
00834     continue;
00835   return yylen;
00836 }
00837 #  endif
00838 # endif
00839 
00840 # ifndef yystpcpy
00841 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
00842 #   define yystpcpy stpcpy
00843 #  else
00844 
00845 
00846 #if (defined __STDC__ || defined __C99__FUNC__ \
00847      || defined __cplusplus || defined _MSC_VER)
00848 static char *
00849 yystpcpy (char *yydest, const char *yysrc)
00850 #else
00851 static char *
00852 yystpcpy (yydest, yysrc)
00853     char *yydest;
00854     const char *yysrc;
00855 #endif
00856 {
00857   char *yyd = yydest;
00858   const char *yys = yysrc;
00859 
00860   while ((*yyd++ = *yys++) != '\0')
00861     continue;
00862 
00863   return yyd - 1;
00864 }
00865 #  endif
00866 # endif
00867 
00868 # ifndef yytnamerr
00869 
00870 
00871 
00872 
00873 
00874 
00875 
00876 static YYSIZE_T
00877 yytnamerr (char *yyres, const char *yystr)
00878 {
00879   if (*yystr == '"')
00880     {
00881       YYSIZE_T yyn = 0;
00882       char const *yyp = yystr;
00883 
00884       for (;;)
00885         switch (*++yyp)
00886           {
00887           case '\'':
00888           case ',':
00889             goto do_not_strip_quotes;
00890 
00891           case '\\':
00892             if (*++yyp != '\\')
00893               goto do_not_strip_quotes;
00894             
00895           default:
00896             if (yyres)
00897               yyres[yyn] = *yyp;
00898             yyn++;
00899             break;
00900 
00901           case '"':
00902             if (yyres)
00903               yyres[yyn] = '\0';
00904             return yyn;
00905           }
00906     do_not_strip_quotes: ;
00907     }
00908 
00909   if (! yyres)
00910     return yystrlen (yystr);
00911 
00912   return yystpcpy (yyres, yystr) - yyres;
00913 }
00914 # endif
00915 
00916 
00917 
00918 
00919 
00920 
00921 
00922 
00923 static YYSIZE_T
00924 yysyntax_error (char *yyresult, int yystate, int yychar)
00925 {
00926   int yyn = yypact[yystate];
00927 
00928   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
00929     return 0;
00930   else
00931     {
00932       int yytype = YYTRANSLATE (yychar);
00933       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
00934       YYSIZE_T yysize = yysize0;
00935       YYSIZE_T yysize1;
00936       int yysize_overflow = 0;
00937       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
00938       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
00939       int yyx;
00940 
00941 # if 0
00942       
00943 
00944       YY_("syntax error, unexpected %s");
00945       YY_("syntax error, unexpected %s, expecting %s");
00946       YY_("syntax error, unexpected %s, expecting %s or %s");
00947       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
00948       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
00949 # endif
00950       char *yyfmt;
00951       char const *yyf;
00952       static char const yyunexpected[] = "syntax error, unexpected %s";
00953       static char const yyexpecting[] = ", expecting %s";
00954       static char const yyor[] = " or %s";
00955       char yyformat[sizeof yyunexpected
00956                     + sizeof yyexpecting - 1
00957                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
00958                        * (sizeof yyor - 1))];
00959       char const *yyprefix = yyexpecting;
00960 
00961       
00962 
00963       int yyxbegin = yyn < 0 ? -yyn : 0;
00964 
00965       
00966       int yychecklim = YYLAST - yyn + 1;
00967       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
00968       int yycount = 1;
00969 
00970       yyarg[0] = yytname[yytype];
00971       yyfmt = yystpcpy (yyformat, yyunexpected);
00972 
00973       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
00974         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
00975           {
00976             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
00977               {
00978                 yycount = 1;
00979                 yysize = yysize0;
00980                 yyformat[sizeof yyunexpected - 1] = '\0';
00981                 break;
00982               }
00983             yyarg[yycount++] = yytname[yyx];
00984             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
00985             yysize_overflow |= (yysize1 < yysize);
00986             yysize = yysize1;
00987             yyfmt = yystpcpy (yyfmt, yyprefix);
00988             yyprefix = yyor;
00989           }
00990 
00991       yyf = YY_(yyformat);
00992       yysize1 = yysize + yystrlen (yyf);
00993       yysize_overflow |= (yysize1 < yysize);
00994       yysize = yysize1;
00995 
00996       if (yysize_overflow)
00997         return YYSIZE_MAXIMUM;
00998 
00999       if (yyresult)
01000         {
01001           
01002 
01003 
01004           char *yyp = yyresult;
01005           int yyi = 0;
01006           while ((*yyp = *yyf) != '\0')
01007             {
01008               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
01009                 {
01010                   yyp += yytnamerr (yyp, yyarg[yyi++]);
01011                   yyf += 2;
01012                 }
01013               else
01014                 {
01015                   yyp++;
01016                   yyf++;
01017                 }
01018             }
01019         }
01020       return yysize;
01021     }
01022 }
01023 #endif 
01024 
01025 
01026 
01027 
01028 
01029 
01030 
01031 #if (defined __STDC__ || defined __C99__FUNC__ \
01032      || defined __cplusplus || defined _MSC_VER)
01033 static void
01034 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
01035 #else
01036 static void
01037 yydestruct (yymsg, yytype, yyvaluep)
01038     const char *yymsg;
01039     int yytype;
01040     YYSTYPE *yyvaluep;
01041 #endif
01042 {
01043   YYUSE (yyvaluep);
01044 
01045   if (!yymsg)
01046     yymsg = "Deleting";
01047   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
01048 
01049   switch (yytype)
01050     {
01051 
01052       default:
01053         break;
01054     }
01055 }
01056 
01057 
01058 #ifdef YYPARSE_PARAM
01059 #if defined __STDC__ || defined __cplusplus
01060 int yyparse (void *YYPARSE_PARAM);
01061 #else
01062 int yyparse ();
01063 #endif
01064 #else 
01065 #if defined __STDC__ || defined __cplusplus
01066 int yyparse (void);
01067 #else
01068 int yyparse ();
01069 #endif
01070 #endif 
01071 
01072 
01073 
01074 int yychar;
01075 
01076 
01077 YYSTYPE yylval;
01078 
01079 
01080 int yynerrs;
01081 
01082 
01083 
01084 
01085 
01086 
01087 
01088 #ifdef YYPARSE_PARAM
01089 #if (defined __STDC__ || defined __C99__FUNC__ \
01090      || defined __cplusplus || defined _MSC_VER)
01091 int
01092 yyparse (void *YYPARSE_PARAM)
01093 #else
01094 int
01095 yyparse (YYPARSE_PARAM)
01096     void *YYPARSE_PARAM;
01097 #endif
01098 #else 
01099 #if (defined __STDC__ || defined __C99__FUNC__ \
01100      || defined __cplusplus || defined _MSC_VER)
01101 int
01102 yyparse (void)
01103 #else
01104 int
01105 yyparse ()
01106 
01107 #endif
01108 #endif
01109 {
01110 
01111 
01112     int yystate;
01113     
01114     int yyerrstatus;
01115 
01116     
01117 
01118 
01119 
01120 
01121 
01122 
01123     
01124     yytype_int16 yyssa[YYINITDEPTH];
01125     yytype_int16 *yyss;
01126     yytype_int16 *yyssp;
01127 
01128     
01129     YYSTYPE yyvsa[YYINITDEPTH];
01130     YYSTYPE *yyvs;
01131     YYSTYPE *yyvsp;
01132 
01133     YYSIZE_T yystacksize;
01134 
01135   int yyn;
01136   int yyresult;
01137   
01138   int yytoken;
01139   
01140 
01141   YYSTYPE yyval;
01142 
01143 #if YYERROR_VERBOSE
01144   
01145   char yymsgbuf[128];
01146   char *yymsg = yymsgbuf;
01147   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
01148 #endif
01149 
01150 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
01151 
01152   
01153 
01154   int yylen = 0;
01155 
01156   yytoken = 0;
01157   yyss = yyssa;
01158   yyvs = yyvsa;
01159   yystacksize = YYINITDEPTH;
01160 
01161   YYDPRINTF ((stderr, "Starting parse\n"));
01162 
01163   yystate = 0;
01164   yyerrstatus = 0;
01165   yynerrs = 0;
01166   yychar = YYEMPTY; 
01167 
01168   
01169 
01170 
01171 
01172   yyssp = yyss;
01173   yyvsp = yyvs;
01174 
01175   goto yysetstate;
01176 
01177 
01178 
01179 
01180  yynewstate:
01181   
01182 
01183   yyssp++;
01184 
01185  yysetstate:
01186   *yyssp = yystate;
01187 
01188   if (yyss + yystacksize - 1 <= yyssp)
01189     {
01190       
01191       YYSIZE_T yysize = yyssp - yyss + 1;
01192 
01193 #ifdef yyoverflow
01194       {
01195         
01196 
01197 
01198         YYSTYPE *yyvs1 = yyvs;
01199         yytype_int16 *yyss1 = yyss;
01200 
01201         
01202 
01203 
01204 
01205         yyoverflow (YY_("memory exhausted"),
01206                     &yyss1, yysize * sizeof (*yyssp),
01207                     &yyvs1, yysize * sizeof (*yyvsp),
01208                     &yystacksize);
01209 
01210         yyss = yyss1;
01211         yyvs = yyvs1;
01212       }
01213 #else 
01214 # ifndef YYSTACK_RELOCATE
01215       goto yyexhaustedlab;
01216 # else
01217       
01218       if (YYMAXDEPTH <= yystacksize)
01219         goto yyexhaustedlab;
01220       yystacksize *= 2;
01221       if (YYMAXDEPTH < yystacksize)
01222         yystacksize = YYMAXDEPTH;
01223 
01224       {
01225         yytype_int16 *yyss1 = yyss;
01226         union yyalloc *yyptr =
01227           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01228         if (! yyptr)
01229           goto yyexhaustedlab;
01230         YYSTACK_RELOCATE (yyss_alloc, yyss);
01231         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
01232 #  undef YYSTACK_RELOCATE
01233         if (yyss1 != yyssa)
01234           YYSTACK_FREE (yyss1);
01235       }
01236 # endif
01237 #endif 
01238 
01239       yyssp = yyss + yysize - 1;
01240       yyvsp = yyvs + yysize - 1;
01241 
01242       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01243                   (unsigned long int) yystacksize));
01244 
01245       if (yyss + yystacksize - 1 <= yyssp)
01246         YYABORT;
01247     }
01248 
01249   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
01250 
01251   if (yystate == YYFINAL)
01252     YYACCEPT;
01253 
01254   goto yybackup;
01255 
01256 
01257 
01258 
01259 yybackup:
01260 
01261   
01262 
01263 
01264   
01265   yyn = yypact[yystate];
01266   if (yyn == YYPACT_NINF)
01267     goto yydefault;
01268 
01269   
01270 
01271   
01272   if (yychar == YYEMPTY)
01273     {
01274       YYDPRINTF ((stderr, "Reading a token: "));
01275       yychar = YYLEX;
01276     }
01277 
01278   if (yychar <= YYEOF)
01279     {
01280       yychar = yytoken = YYEOF;
01281       YYDPRINTF ((stderr, "Now at end of input.\n"));
01282     }
01283   else
01284     {
01285       yytoken = YYTRANSLATE (yychar);
01286       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
01287     }
01288 
01289   
01290 
01291   yyn += yytoken;
01292   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
01293     goto yydefault;
01294   yyn = yytable[yyn];
01295   if (yyn <= 0)
01296     {
01297       if (yyn == 0 || yyn == YYTABLE_NINF)
01298         goto yyerrlab;
01299       yyn = -yyn;
01300       goto yyreduce;
01301     }
01302 
01303   
01304 
01305   if (yyerrstatus)
01306     yyerrstatus--;
01307 
01308   
01309   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
01310 
01311   
01312   yychar = YYEMPTY;
01313 
01314   yystate = yyn;
01315   *++yyvsp = yylval;
01316 
01317   goto yynewstate;
01318 
01319 
01320 
01321 
01322 
01323 yydefault:
01324   yyn = yydefact[yystate];
01325   if (yyn == 0)
01326     goto yyerrlab;
01327   goto yyreduce;
01328 
01329 
01330 
01331 
01332 
01333 yyreduce:
01334   
01335   yylen = yyr2[yyn];
01336 
01337   
01338 
01339 
01340 
01341 
01342 
01343 
01344 
01345   yyval = yyvsp[1-yylen];
01346 
01347 
01348   YY_REDUCE_PRINT (yyn);
01349   switch (yyn)
01350     {
01351         case 2:
01352 
01353 
01354 #line 34 "data-syntax.y"
01355     {(yyval)=(yyvsp[(1) - (1)]); parse_result = (yyvsp[(1) - (1)]);;}
01356     break;
01357 
01358   case 3:
01359 
01360 
01361 #line 36 "data-syntax.y"
01362     {(yyval)=(yyvsp[(1) - (1)]);;}
01363     break;
01364 
01365   case 4:
01366 
01367 
01368 #line 37 "data-syntax.y"
01369     {(yyval)=(yyvsp[(1) - (1)]);;}
01370     break;
01371 
01372   case 5:
01373 
01374 
01375 #line 38 "data-syntax.y"
01376     {(yyval)=(yyvsp[(1) - (1)]);;}
01377     break;
01378 
01379   case 6:
01380 
01381 
01382 #line 39 "data-syntax.y"
01383     {(yyval)=(yyvsp[(1) - (1)]);;}
01384     break;
01385 
01386   case 7:
01387 
01388 
01389 #line 40 "data-syntax.y"
01390     {(yyval)=(yyvsp[(1) - (1)]);;}
01391     break;
01392 
01393   case 8:
01394 
01395 
01396 #line 41 "data-syntax.y"
01397     {(yyval)=Creator((yyvsp[(1) - (1)])).getContentData();;}
01398     break;
01399 
01400   case 9:
01401 
01402 
01403 #line 44 "data-syntax.y"
01404     {(yyval)=(yyvsp[(2) - (3)]);;}
01405     break;
01406 
01407   case 10:
01408 
01409 
01410 #line 47 "data-syntax.y"
01411     {Token t((yyvsp[(1) - (3)]));
01412                 Symbol s((yyvsp[(2) - (3)]));
01413                 t[s]=(yyvsp[(3) - (3)]); 
01414                 (yyval)=(yyvsp[(1) - (3)]);;}
01415     break;
01416 
01417   case 11:
01418 
01419 
01420 #line 51 "data-syntax.y"
01421     {(yyval)=Token();;}
01422     break;
01423 
01424   case 12:
01425 
01426 
01427 #line 54 "data-syntax.y"
01428     {(yyval)=(yyvsp[(1) - (2)]);;}
01429     break;
01430 
01431   case 13:
01432 
01433 
01434 #line 57 "data-syntax.y"
01435     { (yyval)=Creator((yyvsp[(6) - (6)])).convertTo((yyvsp[(2) - (6)]),(yyvsp[(4) - (6)])); ;}
01436     break;
01437 
01438   case 14:
01439 
01440 
01441 #line 60 "data-syntax.y"
01442     { (yyval)=(yyvsp[(2) - (3)]); ;}
01443     break;
01444 
01445   case 15:
01446 
01447 
01448 #line 63 "data-syntax.y"
01449     { Creator t((yyvsp[(1) - (2)]));
01450         t.append((yyvsp[(2) - (2)]));
01451         (yyval)=t;  ;}
01452     break;
01453 
01454   case 16:
01455 
01456 
01457 #line 66 "data-syntax.y"
01458     {(yyval)=Creator();;}
01459     break;
01460 
01461 
01462 
01463 
01464 #line 1465 "data-syntax.cpp"
01465       default: break;
01466     }
01467   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
01468 
01469   YYPOPSTACK (yylen);
01470   yylen = 0;
01471   YY_STACK_PRINT (yyss, yyssp);
01472 
01473   *++yyvsp = yyval;
01474 
01475   
01476 
01477 
01478 
01479   yyn = yyr1[yyn];
01480 
01481   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
01482   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
01483     yystate = yytable[yystate];
01484   else
01485     yystate = yydefgoto[yyn - YYNTOKENS];
01486 
01487   goto yynewstate;
01488 
01489 
01490 
01491 
01492 
01493 yyerrlab:
01494   
01495   if (!yyerrstatus)
01496     {
01497       ++yynerrs;
01498 #if ! YYERROR_VERBOSE
01499       yyerror (YY_("syntax error"));
01500 #else
01501       {
01502         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
01503         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
01504           {
01505             YYSIZE_T yyalloc = 2 * yysize;
01506             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
01507               yyalloc = YYSTACK_ALLOC_MAXIMUM;
01508             if (yymsg != yymsgbuf)
01509               YYSTACK_FREE (yymsg);
01510             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
01511             if (yymsg)
01512               yymsg_alloc = yyalloc;
01513             else
01514               {
01515                 yymsg = yymsgbuf;
01516                 yymsg_alloc = sizeof yymsgbuf;
01517               }
01518           }
01519 
01520         if (0 < yysize && yysize <= yymsg_alloc)
01521           {
01522             (void) yysyntax_error (yymsg, yystate, yychar);
01523             yyerror (yymsg);
01524           }
01525         else
01526           {
01527             yyerror (YY_("syntax error"));
01528             if (yysize != 0)
01529               goto yyexhaustedlab;
01530           }
01531       }
01532 #endif
01533     }
01534 
01535 
01536 
01537   if (yyerrstatus == 3)
01538     {
01539       
01540 
01541 
01542       if (yychar <= YYEOF)
01543         {
01544           
01545           if (yychar == YYEOF)
01546             YYABORT;
01547         }
01548       else
01549         {
01550           yydestruct ("Error: discarding",
01551                       yytoken, &yylval);
01552           yychar = YYEMPTY;
01553         }
01554     }
01555 
01556   
01557 
01558   goto yyerrlab1;
01559 
01560 
01561 
01562 
01563 
01564 yyerrorlab:
01565 
01566   
01567 
01568 
01569   if ( 0)
01570      goto yyerrorlab;
01571 
01572   
01573 
01574   YYPOPSTACK (yylen);
01575   yylen = 0;
01576   YY_STACK_PRINT (yyss, yyssp);
01577   yystate = *yyssp;
01578   goto yyerrlab1;
01579 
01580 
01581 
01582 
01583 
01584 yyerrlab1:
01585   yyerrstatus = 3;      
01586 
01587   for (;;)
01588     {
01589       yyn = yypact[yystate];
01590       if (yyn != YYPACT_NINF)
01591         {
01592           yyn += YYTERROR;
01593           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
01594             {
01595               yyn = yytable[yyn];
01596               if (0 < yyn)
01597                 break;
01598             }
01599         }
01600 
01601       
01602       if (yyssp == yyss)
01603         YYABORT;
01604 
01605 
01606       yydestruct ("Error: popping",
01607                   yystos[yystate], yyvsp);
01608       YYPOPSTACK (1);
01609       yystate = *yyssp;
01610       YY_STACK_PRINT (yyss, yyssp);
01611     }
01612 
01613   *++yyvsp = yylval;
01614 
01615 
01616   
01617   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
01618 
01619   yystate = yyn;
01620   goto yynewstate;
01621 
01622 
01623 
01624 
01625 
01626 yyacceptlab:
01627   yyresult = 0;
01628   goto yyreturn;
01629 
01630 
01631 
01632 
01633 yyabortlab:
01634   yyresult = 1;
01635   goto yyreturn;
01636 
01637 #if !defined(yyoverflow) || YYERROR_VERBOSE
01638 
01639 
01640 
01641 yyexhaustedlab:
01642   yyerror (YY_("memory exhausted"));
01643   yyresult = 2;
01644   
01645 #endif
01646 
01647 yyreturn:
01648   if (yychar != YYEMPTY)
01649      yydestruct ("Cleanup: discarding lookahead",
01650                  yytoken, &yylval);
01651   
01652 
01653   YYPOPSTACK (yylen);
01654   YY_STACK_PRINT (yyss, yyssp);
01655   while (yyssp != yyss)
01656     {
01657       yydestruct ("Cleanup: popping",
01658                   yystos[*yyssp], yyvsp);
01659       YYPOPSTACK (1);
01660     }
01661 #ifndef yyoverflow
01662   if (yyss != yyssa)
01663     YYSTACK_FREE (yyss);
01664 #endif
01665 #if YYERROR_VERBOSE
01666   if (yymsg != yymsgbuf)
01667     YYSTACK_FREE (yymsg);
01668 #endif
01669   
01670   return YYID (yyresult);
01671 }
01672 
01673 
01674 
01675 
01676 #line 68 "data-syntax.y"
01677 
01678