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