FreeCAD
1/* A Bison parser, made by GNU Bison 2.4.2. */
2
3/* Skeleton implementation for Bison's Yacc-like parsers in C
4
5Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
6Foundation, Inc.
7
8This program is free software: you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation, either version 3 of the License, or
11(at your option) any later version.
12
13This program is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along 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
22part or all of the Bison parser skeleton and distribute that work
23under terms of your choice, so long as that work isn't itself a
24parser generator using the skeleton or a modified version thereof
25as a parser skeleton. Alternatively, if you modify or redistribute
26the parser skeleton itself, you may (at your option) remove this
27special exception, which will cause the skeleton and the resulting
28Bison output files to be licensed under the GNU General Public
29License without this special exception.
30
31This special exception was added by the Free Software Foundation in
32version 2.2 of Bison. */
33
34/* C LALR(1) parser skeleton written by Richard Stallman, by
35simplifying the original so-called "semantic" parser. */
36
37/* All symbols defined below should begin with yy or YY, to avoid
38infringing on user name space. This should be done even for local
39variables, as they might otherwise be expanded by user macros.
40There are some unavoidable exceptions within include files to
41define necessary library symbols; they are noted "INFRINGES ON
42USER NAME SPACE" below. */
43
44/* Identify Bison output. */
45#define YYBISON 146
47/* Bison version. */
48#define YYBISON_VERSION "2.4.2"49
50/* Skeleton name. */
51#define YYSKELETON_NAME "yacc.c"52
53/* Pure parsers. */
54#define YYPURE 055
56/* Push parsers. */
57#define YYPUSH 058
59/* Pull parsers. */
60#define YYPULL 161
62/* Using locations. */
63#define YYLSP_NEEDED 064
65
66
67/* Copy the first part of user declarations. */
68
69
70/* Line 189 of yacc.c */
71#line 72 "SelectionFilter.tab.c"72
73/* Enabling traces. */
74#ifndef YYDEBUG75# define YYDEBUG 076#endif77
78/* Enabling verbose error messages. */
79#ifdef YYERROR_VERBOSE80# undef YYERROR_VERBOSE81# define YYERROR_VERBOSE 182#else83# define YYERROR_VERBOSE 084#endif85
86/* Enabling the token table. */
87#ifndef YYTOKEN_TABLE88# define YYTOKEN_TABLE 089#endif90
91
92/* Tokens. */
93#ifndef YYTOKENTYPE94# define YYTOKENTYPE95/* Put the tokens into the symbol table, so that GDB and other debuggers96know about them. */
97enum yytokentype {98TIDENTIFIER = 258,99TSUB = 259,100TSELECT = 260,101TCOUNT = 261,102TSLICE = 262,103TNAMESPACE = 263,104TNUMBER = 264105};106#endif107
108
109
110#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED111typedef union YYSTYPE112{
113
114/* Line 214 of yacc.c */
115#line 8 "SelectionFilter.y"116
117std::string *string;118Node_Object *object;119Node_Slice *slice;120Node_Block *block;121int token;122int number;123
124
125
126/* Line 214 of yacc.c */
127#line 128 "SelectionFilter.tab.c"128} YYSTYPE;129# define YYSTYPE_IS_TRIVIAL 1130# define yystype YYSTYPE /* obsolescent; will be withdrawn */131# define YYSTYPE_IS_DECLARED 1132#endif133
134
135/* Copy the second part of user declarations. */
136
137
138/* Line 264 of yacc.c */
139#line 140 "SelectionFilter.tab.c"140
141#ifdef short142# undef short143#endif144
145#ifdef YYTYPE_UINT8146typedef YYTYPE_UINT8 yytype_uint8;147#else148typedef unsigned char yytype_uint8;149#endif150
151#ifdef YYTYPE_INT8152typedef YYTYPE_INT8 yytype_int8;153#elif (defined __STDC__ || defined __C99__FUNC__ \154|| defined __cplusplus || defined _MSC_VER)155typedef signed char yytype_int8;156#else157typedef short int yytype_int8;158#endif159
160#ifdef YYTYPE_UINT16161typedef YYTYPE_UINT16 yytype_uint16;162#else163typedef unsigned short int yytype_uint16;164#endif165
166#ifdef YYTYPE_INT16167typedef YYTYPE_INT16 yytype_int16;168#else169typedef short int yytype_int16;170#endif171
172#ifndef YYSIZE_T173# ifdef __SIZE_TYPE__174# define YYSIZE_T __SIZE_TYPE__175# elif defined size_t176# define YYSIZE_T size_t177# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \178|| defined __cplusplus || defined _MSC_VER)179# include <stddef.h> /* INFRINGES ON USER NAME SPACE */180# define YYSIZE_T size_t181# else182# define YYSIZE_T unsigned int183# endif184#endif185
186#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)187
188#ifndef YY_189# if defined YYENABLE_NLS && YYENABLE_NLS190# if ENABLE_NLS191# include <libintl.h> /* INFRINGES ON USER NAME SPACE */192# define YY_(msgid) dgettext ("bison-runtime", msgid)193# endif194# endif195# ifndef YY_196# define YY_(msgid) msgid197# endif198#endif199
200/* Suppress unused-variable warnings by "using" E. */
201#if ! defined lint || defined __GNUC__202# define YYUSE(e) ((void) (e))203#else204# define YYUSE(e) /* empty */205#endif206
207/* Identity function, used to suppress warnings about constant conditions. */
208#ifndef lint209# define YYID(n) (n)210#else211#if (defined __STDC__ || defined __C99__FUNC__ \212|| defined __cplusplus || defined _MSC_VER)213static int214YYID (int yyi)215#else216static int217YYID (yyi)218int yyi;219#endif220{
221return yyi;222}
223#endif224
225#if ! defined yyoverflow || YYERROR_VERBOSE226
227/* The parser invokes alloca or malloc; define the necessary symbols. */
228
229# ifdef YYSTACK_USE_ALLOCA230# if YYSTACK_USE_ALLOCA231# ifdef __GNUC__232# define YYSTACK_ALLOC __builtin_alloca233# elif defined __BUILTIN_VA_ARG_INCR234# include <alloca.h> /* INFRINGES ON USER NAME SPACE */235# elif defined _AIX236# define YYSTACK_ALLOC __alloca237# elif defined _MSC_VER238# include <malloc.h> /* INFRINGES ON USER NAME SPACE */239# define alloca _alloca240# else241# define YYSTACK_ALLOC alloca242# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \243|| defined __cplusplus || defined _MSC_VER)244# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */245# ifndef _STDLIB_H246# define _STDLIB_H 1247# endif248# endif249# endif250# endif251# endif252
253# ifdef YYSTACK_ALLOC254/* Pacify GCC's `empty if-body' warning. */255# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))256# ifndef YYSTACK_ALLOC_MAXIMUM257/* The OS might guarantee only one guard page at the bottom of the stack,258and a page size can be as small as 4096 bytes. So we cannot safely
259invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
260to allow for a few compiler-allocated temporary stack slots. */
261# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */262# endif263# else264# define YYSTACK_ALLOC YYMALLOC265# define YYSTACK_FREE YYFREE266# ifndef YYSTACK_ALLOC_MAXIMUM267# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM268# endif269# if (defined __cplusplus && ! defined _STDLIB_H \270&& ! ((defined YYMALLOC || defined malloc) \271&& (defined YYFREE || defined free)))272# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */273# ifndef _STDLIB_H274# define _STDLIB_H 1275# endif276# endif277# ifndef YYMALLOC278# define YYMALLOC malloc279# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \280|| defined __cplusplus || defined _MSC_VER)281void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */282# endif283# endif284# ifndef YYFREE285# define YYFREE free286# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \287|| defined __cplusplus || defined _MSC_VER)288void free (void *); /* INFRINGES ON USER NAME SPACE */289# endif290# endif291# endif292#endif /* ! defined yyoverflow || YYERROR_VERBOSE */293
294
295#if (! defined yyoverflow \296&& (! defined __cplusplus \297|| (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))298
299/* A type that is properly aligned for any stack member. */
300union yyalloc301{
302yytype_int16 yyss_alloc;303YYSTYPE yyvs_alloc;304};305
306/* The size of the maximum gap between one aligned stack and the next. */
307# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)308
309/* The size of an array large to enough to hold all stacks, each with
310N elements. */
311# define YYSTACK_BYTES(N) \312((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \313+ YYSTACK_GAP_MAXIMUM)314
315/* Copy COUNT objects from FROM to TO. The source and destination do
316not overlap. */
317# ifndef YYCOPY318# if defined __GNUC__ && 1 < __GNUC__319# define YYCOPY(To, From, Count) \320__builtin_memcpy (To, From, (Count) * sizeof (*(From)))321# else322# define YYCOPY(To, From, Count) \323do \324{ \325YYSIZE_T yyi; \326for (yyi = 0; yyi < (Count); yyi++) \327(To)[yyi] = (From)[yyi]; \328} \329while (YYID (0))330# endif331# endif332
333/* Relocate STACK from its old location to the new one. The
334local variables YYSIZE and YYSTACKSIZE give the old and new number of
335elements in the stack, and YYPTR gives the new location of the
336stack. Advance YYPTR to a properly aligned location for the next
337stack. */
338# define YYSTACK_RELOCATE(Stack_alloc, Stack) \339do \340{ \341YYSIZE_T yynewbytes; \342YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \343Stack = &yyptr->Stack_alloc; \344yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \345yyptr += yynewbytes / sizeof (*yyptr); \346} \347while (YYID (0))348
349#endif350
351/* YYFINAL -- State number of the termination state. */
352#define YYFINAL 11353/* YYLAST -- Last index in YYTABLE. */
354#define YYLAST 15355
356/* YYNTOKENS -- Number of terminals. */
357#define YYNTOKENS 10358/* YYNNTS -- Number of nonterminals. */
359#define YYNNTS 8360/* YYNRULES -- Number of rules. */
361#define YYNRULES 14362/* YYNRULES -- Number of states. */
363#define YYNSTATES 20364
365/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
366#define YYUNDEFTOK 2367#define YYMAXUTOK 264368
369#define YYTRANSLATE(YYX) \370((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)371
372/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
373static const yytype_uint8 yytranslate[] =374{
3750, 2, 2, 2, 2, 2, 2, 2, 2, 2,3762, 2, 2, 2, 2, 2, 2, 2, 2, 2,3772, 2, 2, 2, 2, 2, 2, 2, 2, 2,3782, 2, 2, 2, 2, 2, 2, 2, 2, 2,3792, 2, 2, 2, 2, 2, 2, 2, 2, 2,3802, 2, 2, 2, 2, 2, 2, 2, 2, 2,3812, 2, 2, 2, 2, 2, 2, 2, 2, 2,3822, 2, 2, 2, 2, 2, 2, 2, 2, 2,3832, 2, 2, 2, 2, 2, 2, 2, 2, 2,3842, 2, 2, 2, 2, 2, 2, 2, 2, 2,3852, 2, 2, 2, 2, 2, 2, 2, 2, 2,3862, 2, 2, 2, 2, 2, 2, 2, 2, 2,3872, 2, 2, 2, 2, 2, 2, 2, 2, 2,3882, 2, 2, 2, 2, 2, 2, 2, 2, 2,3892, 2, 2, 2, 2, 2, 2, 2, 2, 2,3902, 2, 2, 2, 2, 2, 2, 2, 2, 2,3912, 2, 2, 2, 2, 2, 2, 2, 2, 2,3922, 2, 2, 2, 2, 2, 2, 2, 2, 2,3932, 2, 2, 2, 2, 2, 2, 2, 2, 2,3942, 2, 2, 2, 2, 2, 2, 2, 2, 2,3952, 2, 2, 2, 2, 2, 2, 2, 2, 2,3962, 2, 2, 2, 2, 2, 2, 2, 2, 2,3972, 2, 2, 2, 2, 2, 2, 2, 2, 2,3982, 2, 2, 2, 2, 2, 2, 2, 2, 2,3992, 2, 2, 2, 2, 2, 2, 2, 2, 2,4002, 2, 2, 2, 2, 2, 1, 2, 3, 4,4015, 6, 7, 8, 9402};403
404#if YYDEBUG405/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
406YYRHS. */
407static const yytype_uint8 yyprhs[] =408{
4090, 0, 3, 6, 11, 12, 15, 16, 21, 25,41028, 32, 34, 37, 39411};412
413/* YYRHS -- A `-1'-separated list of the rules' RHS. */
414static const yytype_int8 yyrhs[] =415{
41617, 0, -1, 5, 3, -1, 5, 3, 8, 3,417-1, -1, 4, 3, -1, -1, 6, 9, 7, 9,418-1, 6, 9, 7, -1, 6, 9, -1, 11, 12,41913, -1, 14, -1, 15, 14, -1, 15, -1, 16,420-1421};422
423/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
424static const yytype_uint8 yyrline[] =425{
4260, 39, 39, 40, 42, 43, 45, 46, 47, 48,42750, 52, 53, 55, 57428};429#endif430
431#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE432/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
433First, the terminals, then, starting at YYNTOKENS, nonterminals. */
434static const char *const yytname[] =435{
436"$end", "error", "$undefined", "TIDENTIFIER", "TSUB", "TSELECT",437"TCOUNT", "TSLICE", "TNAMESPACE", "TNUMBER", "$accept", "type",438"subname", "count", "matchline", "matchlines", "block", "filter", 0439};440#endif441
442# ifdef YYPRINT443/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
444token YYLEX-NUM. */
445static const yytype_uint16 yytoknum[] =446{
4470, 256, 257, 258, 259, 260, 261, 262, 263, 264448};449# endif450
451/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
452static const yytype_uint8 yyr1[] =453{
4540, 10, 11, 11, 12, 12, 13, 13, 13, 13,45514, 15, 15, 16, 17456};457
458/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
459static const yytype_uint8 yyr2[] =460{
4610, 2, 2, 4, 0, 2, 0, 4, 3, 2,4623, 1, 2, 1, 1463};464
465/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
466STATE-NUM when YYTABLE doesn't specify something else to do. Zero
467means the default is an error. */
468static const yytype_uint8 yydefact[] =469{
4700, 0, 4, 11, 13, 14, 0, 2, 0, 6,47112, 1, 0, 5, 0, 10, 3, 9, 8, 7472};473
474/* YYDEFGOTO[NTERM-NUM]. */
475static const yytype_int8 yydefgoto[] =476{
477-1, 2, 9, 15, 3, 4, 5, 6478};479
480/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
481STATE-NUM. */
482#define YYPACT_NINF -6483static const yytype_int8 yypact[] =484{
485-5, -2, -1, -6, -5, -6, 2, -4, 3, 1,486-6, -6, 5, -6, 0, -6, -6, 4, 6, -6487};488
489/* YYPGOTO[NTERM-NUM]. */
490static const yytype_int8 yypgoto[] =491{
492-6, -6, -6, -6, 8, -6, -6, -6493};494
495/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
496positive, shift that token. If negative, reduce the rule which
497number is the opposite. If zero, do what YYDEFACT says.
498If YYTABLE_NINF, syntax error. */
499#define YYTABLE_NINF -1500static const yytype_uint8 yytable[] =501{
5021, 7, 11, 8, 12, 0, 13, 14, 16, 17,5030, 18, 10, 0, 0, 19504};505
506static const yytype_int8 yycheck[] =507{
5085, 3, 0, 4, 8, -1, 3, 6, 3, 9,509-1, 7, 4, -1, -1, 9510};511
512/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
513symbol of state STATE-NUM. */
514static const yytype_uint8 yystos[] =515{
5160, 5, 11, 14, 15, 16, 17, 3, 4, 12,51714, 0, 8, 3, 6, 13, 3, 9, 7, 9518};519
520#define yyerrok (yyerrstatus = 0)521#define yyclearin (yychar = YYEMPTY)522#define YYEMPTY (-2)523#define YYEOF 0524
525#define YYACCEPT goto yyacceptlab526#define YYABORT goto yyabortlab527#define YYERROR goto yyerrorlab528
529
530/* Like YYERROR except do call yyerror. This remains here temporarily
531to ease the transition to the new meaning of YYERROR, for GCC.
532Once GCC version 2 has supplanted version 1, this can go. However,
533YYFAIL appears to be in use. Nevertheless, it is formally deprecated
534in Bison 2.4.2's NEWS entry, where a plan to phase it out is
535discussed. */
536
537#define YYFAIL goto yyerrlab538#if defined YYFAIL539/* This is here to suppress warnings from the GCC cpp's540-Wunused-macros. Normally we don't worry about that warning, but
541some users do, and we want to make it easy for users to remove
542YYFAIL uses, which will produce warnings from Bison 2.5. */
543#endif544
545#define YYRECOVERING() (!!yyerrstatus)546
547#define YYBACKUP(Token, Value) \548do \549if (yychar == YYEMPTY && yylen == 1) \550{ \551yychar = (Token); \552yylval = (Value); \553yytoken = YYTRANSLATE (yychar); \554YYPOPSTACK (1); \555goto yybackup; \556} \557else \558{ \559yyerror (YY_("syntax error: cannot back up")); \560YYERROR; \561} \562while (YYID (0))563
564
565#define YYTERROR 1566#define YYERRCODE 256567
568
569/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
570If N is 0, then set CURRENT to the empty location which ends
571the previous symbol: RHS[0] (always defined). */
572
573#define YYRHSLOC(Rhs, K) ((Rhs)[K])574#ifndef YYLLOC_DEFAULT575# define YYLLOC_DEFAULT(Current, Rhs, N) \576do \577if (YYID (N)) \578{ \579(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \580(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \581(Current).last_line = YYRHSLOC (Rhs, N).last_line; \582(Current).last_column = YYRHSLOC (Rhs, N).last_column; \583} \584else \585{ \586(Current).first_line = (Current).last_line = \587YYRHSLOC (Rhs, 0).last_line; \588(Current).first_column = (Current).last_column = \589YYRHSLOC (Rhs, 0).last_column; \590} \591while (YYID (0))592#endif593
594
595/* YY_LOCATION_PRINT -- Print the location on the stream.
596This macro was not mandated originally: define only if we know
597we won't break user code: when these are the locations we know. */
598
599#ifndef YY_LOCATION_PRINT600# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL601# define YY_LOCATION_PRINT(File, Loc) \602fprintf (File, "%d.%d-%d.%d", \603(Loc).first_line, (Loc).first_column, \604(Loc).last_line, (Loc).last_column)605# else606# define YY_LOCATION_PRINT(File, Loc) ((void) 0)607# endif608#endif609
610
611/* YYLEX -- calling `yylex' with the right arguments. */
612
613#ifdef YYLEX_PARAM614# define YYLEX yylex (YYLEX_PARAM)615#else616# define YYLEX yylex ()617#endif618
619/* Enable debugging if requested. */
620#if YYDEBUG621
622# ifndef YYFPRINTF623# include <stdio.h> /* INFRINGES ON USER NAME SPACE */624# define YYFPRINTF fprintf625# endif626
627# define YYDPRINTF(Args) \628do { \629if (yydebug) \630YYFPRINTF Args; \631} while (YYID (0))632
633# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \634do { \635if (yydebug) \636{ \637YYFPRINTF (stderr, "%s ", Title); \638yy_symbol_print (stderr, \639Type, Value); \640YYFPRINTF (stderr, "\n"); \641} \642} while (YYID (0))643
644
645/*--------------------------------.
646| Print this symbol on YYOUTPUT. |
647`--------------------------------*/
648
649/*ARGSUSED*/
650#if (defined __STDC__ || defined __C99__FUNC__ \651|| defined __cplusplus || defined _MSC_VER)652static void653yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)654#else655static void656yy_symbol_value_print (yyoutput, yytype, yyvaluep)657FILE *yyoutput;658int yytype;659YYSTYPE const * const yyvaluep;660#endif661{
662if (!yyvaluep)663return;664# ifdef YYPRINT665if (yytype < YYNTOKENS)666YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);667# else668YYUSE (yyoutput);669# endif670switch (yytype)671{672default:673break;674}675}
676
677
678/*--------------------------------.
679| Print this symbol on YYOUTPUT. |
680`--------------------------------*/
681
682#if (defined __STDC__ || defined __C99__FUNC__ \683|| defined __cplusplus || defined _MSC_VER)684static void685yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)686#else687static void688yy_symbol_print (yyoutput, yytype, yyvaluep)689FILE *yyoutput;690int yytype;691YYSTYPE const * const yyvaluep;692#endif693{
694if (yytype < YYNTOKENS)695YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);696else697YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);698
699yy_symbol_value_print (yyoutput, yytype, yyvaluep);700YYFPRINTF (yyoutput, ")");701}
702
703/*------------------------------------------------------------------.
704| yy_stack_print -- Print the state stack from its BOTTOM up to its |
705| TOP (included). |
706`------------------------------------------------------------------*/
707
708#if (defined __STDC__ || defined __C99__FUNC__ \709|| defined __cplusplus || defined _MSC_VER)710static void711yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)712#else713static void714yy_stack_print (yybottom, yytop)715yytype_int16 *yybottom;716yytype_int16 *yytop;717#endif718{
719YYFPRINTF (stderr, "Stack now");720for (; yybottom <= yytop; yybottom++)721{722int yybot = *yybottom;723YYFPRINTF (stderr, " %d", yybot);724}725YYFPRINTF (stderr, "\n");726}
727
728# define YY_STACK_PRINT(Bottom, Top) \729do { \730if (yydebug) \731yy_stack_print ((Bottom), (Top)); \732} while (YYID (0))733
734
735/*------------------------------------------------.
736| Report that the YYRULE is going to be reduced. |
737`------------------------------------------------*/
738
739#if (defined __STDC__ || defined __C99__FUNC__ \740|| defined __cplusplus || defined _MSC_VER)741static void742yy_reduce_print (YYSTYPE *yyvsp, int yyrule)743#else744static void745yy_reduce_print (yyvsp, yyrule)746YYSTYPE *yyvsp;747int yyrule;748#endif749{
750int yynrhs = yyr2[yyrule];751int yyi;752unsigned long int yylno = yyrline[yyrule];753YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",754yyrule - 1, yylno);755/* The symbols being reduced. */756for (yyi = 0; yyi < yynrhs; yyi++)757{758YYFPRINTF (stderr, " $%d = ", yyi + 1);759yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],760&(yyvsp[(yyi + 1) - (yynrhs)])761);762YYFPRINTF (stderr, "\n");763}764}
765
766# define YY_REDUCE_PRINT(Rule) \767do { \768if (yydebug) \769yy_reduce_print (yyvsp, Rule); \770} while (YYID (0))771
772/* Nonzero means print parse trace. It is left uninitialized so that
773multiple parsers can coexist. */
774int yydebug;775#else /* !YYDEBUG */776# define YYDPRINTF(Args)777# define YY_SYMBOL_PRINT(Title, Type, Value, Location)778# define YY_STACK_PRINT(Bottom, Top)779# define YY_REDUCE_PRINT(Rule)780#endif /* !YYDEBUG */781
782
783/* YYINITDEPTH -- initial size of the parser's stacks. */
784#ifndef YYINITDEPTH785# define YYINITDEPTH 200786#endif787
788/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
789if the built-in stack extension method is used).
790
791Do not make this value too large; the results are undefined if
792YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
793evaluated with infinite-precision integer arithmetic. */
794
795#ifndef YYMAXDEPTH796# define YYMAXDEPTH 10000797#endif798
799800
801#if YYERROR_VERBOSE802
803# ifndef yystrlen804# if defined __GLIBC__ && defined _STRING_H805# define yystrlen strlen806# else807/* Return the length of YYSTR. */
808#if (defined __STDC__ || defined __C99__FUNC__ \809|| defined __cplusplus || defined _MSC_VER)810static YYSIZE_T811yystrlen (const char *yystr)812#else813static YYSIZE_T814yystrlen (yystr)815const char *yystr;816#endif817{
818YYSIZE_T yylen;819for (yylen = 0; yystr[yylen]; yylen++)820continue;821return yylen;822}
823# endif824# endif825
826# ifndef yystpcpy827# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE828# define yystpcpy stpcpy829# else830/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
831YYDEST. */
832#if (defined __STDC__ || defined __C99__FUNC__ \833|| defined __cplusplus || defined _MSC_VER)834static char *835yystpcpy (char *yydest, const char *yysrc)836#else837static char *838yystpcpy (yydest, yysrc)839char *yydest;840const char *yysrc;841#endif842{
843char *yyd = yydest;844const char *yys = yysrc;845
846while ((*yyd++ = *yys++) != '\0')847continue;848
849return yyd - 1;850}
851# endif852# endif853
854# ifndef yytnamerr855/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
856quotes and backslashes, so that it's suitable for yyerror. The
857heuristic is that double-quoting is unnecessary unless the string
858contains an apostrophe, a comma, or backslash (other than
859backslash-backslash). YYSTR is taken from yytname. If YYRES is
860null, do not copy; instead, return the length of what the result
861would have been. */
862static YYSIZE_T863yytnamerr (char *yyres, const char *yystr)864{
865if (*yystr == '"')866{867YYSIZE_T yyn = 0;868char const *yyp = yystr;869
870for (;;)871switch (*++yyp)872{873case '\'':874case ',':875goto do_not_strip_quotes;876
877case '\\':878if (*++yyp != '\\')879goto do_not_strip_quotes;880/* Fall through. */881default:882if (yyres)883yyres[yyn] = *yyp;884yyn++;885break;886
887case '"':888if (yyres)889yyres[yyn] = '\0';890return yyn;891}892do_not_strip_quotes: ;893}894
895if (! yyres)896return yystrlen (yystr);897
898return yystpcpy (yyres, yystr) - yyres;899}
900# endif901
902/* Copy into YYRESULT an error message about the unexpected token
903YYCHAR while in state YYSTATE. Return the number of bytes copied,
904including the terminating null byte. If YYRESULT is null, do not
905copy anything; just return the number of bytes that would be
906copied. As a special case, return 0 if an ordinary "syntax error"
907message will do. Return YYSIZE_MAXIMUM if overflow occurs during
908size calculation. */
909static YYSIZE_T910yysyntax_error (char *yyresult, int yystate, int yychar)911{
912int yyn = yypact[yystate];913
914if (! (YYPACT_NINF < yyn && yyn <= YYLAST))915return 0;916else917{918int yytype = YYTRANSLATE (yychar);919YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);920YYSIZE_T yysize = yysize0;921YYSIZE_T yysize1;922int yysize_overflow = 0;923enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };924char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];925int yyx;926
927# if 0928/* This is so xgettext sees the translatable formats that are929constructed on the fly. */
930YY_("syntax error, unexpected %s");931YY_("syntax error, unexpected %s, expecting %s");932YY_("syntax error, unexpected %s, expecting %s or %s");933YY_("syntax error, unexpected %s, expecting %s or %s or %s");934YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");935# endif936char *yyfmt;937char const *yyf;938static char const yyunexpected[] = "syntax error, unexpected %s";939static char const yyexpecting[] = ", expecting %s";940static char const yyor[] = " or %s";941char yyformat[sizeof yyunexpected942+ sizeof yyexpecting - 1943+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)944* (sizeof yyor - 1))];945char const *yyprefix = yyexpecting;946
947/* Start YYX at -YYN if negative to avoid negative indexes in948YYCHECK. */
949int yyxbegin = yyn < 0 ? -yyn : 0;950
951/* Stay within bounds of both yycheck and yytname. */952int yychecklim = YYLAST - yyn + 1;953int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;954int yycount = 1;955
956yyarg[0] = yytname[yytype];957yyfmt = yystpcpy (yyformat, yyunexpected);958
959for (yyx = yyxbegin; yyx < yyxend; ++yyx)960if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)961{962if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)963{964yycount = 1;965yysize = yysize0;966yyformat[sizeof yyunexpected - 1] = '\0';967break;968}969yyarg[yycount++] = yytname[yyx];970yysize1 = yysize + yytnamerr (0, yytname[yyx]);971yysize_overflow |= (yysize1 < yysize);972yysize = yysize1;973yyfmt = yystpcpy (yyfmt, yyprefix);974yyprefix = yyor;975}976
977yyf = YY_(yyformat);978yysize1 = yysize + yystrlen (yyf);979yysize_overflow |= (yysize1 < yysize);980yysize = yysize1;981
982if (yysize_overflow)983return YYSIZE_MAXIMUM;984
985if (yyresult)986{987/* Avoid sprintf, as that infringes on the user's name space.988Don't have undefined behavior even if the translation
989produced a string with the wrong number of "%s"s. */
990char *yyp = yyresult;991int yyi = 0;992while ((*yyp = *yyf) != '\0')993{994if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)995{996yyp += yytnamerr (yyp, yyarg[yyi++]);997yyf += 2;998}999else1000{1001yyp++;1002yyf++;1003}1004}1005}1006return yysize;1007}1008}
1009#endif /* YYERROR_VERBOSE */10101011
1012/*-----------------------------------------------.
1013| Release the memory associated to this symbol. |
1014`-----------------------------------------------*/
1015
1016/*ARGSUSED*/
1017#if (defined __STDC__ || defined __C99__FUNC__ \1018|| defined __cplusplus || defined _MSC_VER)1019static void1020yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)1021#else1022static void1023yydestruct (yymsg, yytype, yyvaluep)1024const char *yymsg;1025int yytype;1026YYSTYPE *yyvaluep;1027#endif1028{
1029YYUSE (yyvaluep);1030
1031if (!yymsg)1032yymsg = "Deleting";1033YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);1034
1035switch (yytype)1036{1037
1038default:1039break;1040}1041}
1042
1043/* Prevent warnings from -Wmissing-prototypes. */
1044#ifdef YYPARSE_PARAM1045#if defined __STDC__ || defined __cplusplus1046int yyparse (void *YYPARSE_PARAM);1047#else1048int yyparse ();1049#endif1050#else /* ! YYPARSE_PARAM */1051#if defined __STDC__ || defined __cplusplus1052int yyparse (void);1053#else1054int yyparse ();1055#endif1056#endif /* ! YYPARSE_PARAM */1057
1058
1059/* The lookahead symbol. */
1060int yychar;1061
1062/* The semantic value of the lookahead symbol. */
1063YYSTYPE yylval;1064
1065/* Number of syntax errors so far. */
1066int yynerrs;1067
1068
1069
1070/*-------------------------.
1071| yyparse or yypush_parse. |
1072`-------------------------*/
1073
1074#ifdef YYPARSE_PARAM1075#if (defined __STDC__ || defined __C99__FUNC__ \1076|| defined __cplusplus || defined _MSC_VER)1077int
1078yyparse (void *YYPARSE_PARAM)1079#else1080int
1081yyparse (YYPARSE_PARAM)1082void *YYPARSE_PARAM;1083#endif1084#else /* ! YYPARSE_PARAM */1085#if (defined __STDC__ || defined __C99__FUNC__ \1086|| defined __cplusplus || defined _MSC_VER)1087int
1088yyparse (void)1089#else1090int
1091yyparse ()1092
1093#endif1094#endif1095{
1096
1097
1098int yystate;1099/* Number of tokens to shift before error messages enabled. */1100int yyerrstatus;1101
1102/* The stacks and their tools:1103`yyss': related to states.
1104`yyvs': related to semantic values.
1105
1106Refer to the stacks through separate pointers, to allow yyoverflow
1107to reallocate them elsewhere. */
1108
1109/* The state stack. */1110yytype_int16 yyssa[YYINITDEPTH];1111yytype_int16 *yyss;1112yytype_int16 *yyssp;1113
1114/* The semantic value stack. */1115YYSTYPE yyvsa[YYINITDEPTH];1116YYSTYPE *yyvs;1117YYSTYPE *yyvsp;1118
1119YYSIZE_T yystacksize;1120
1121int yyn;1122int yyresult;1123/* Lookahead token as an internal (translated) token number. */1124int yytoken;1125/* The variables used to return semantic value and location from the1126action routines. */
1127YYSTYPE yyval;1128
1129#if YYERROR_VERBOSE1130/* Buffer for error messages, and its allocated size. */1131char yymsgbuf[128];1132char *yymsg = yymsgbuf;1133YYSIZE_T yymsg_alloc = sizeof yymsgbuf;1134#endif1135
1136#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))1137
1138/* The number of symbols on the RHS of the reduced rule.1139Keep to zero when no symbol should be popped. */
1140int yylen = 0;1141
1142yytoken = 0;1143yyss = yyssa;1144yyvs = yyvsa;1145yystacksize = YYINITDEPTH;1146
1147YYDPRINTF ((stderr, "Starting parse\n"));1148
1149yystate = 0;1150yyerrstatus = 0;1151yynerrs = 0;1152yychar = YYEMPTY; /* Cause a token to be read. */1153
1154/* Initialize stack pointers.1155Waste one element of value and location stack
1156so that they stay on the same level as the state stack.
1157The wasted elements are never initialized. */
1158yyssp = yyss;1159yyvsp = yyvs;1160
1161goto yysetstate;1162
1163/*------------------------------------------------------------.
1164| yynewstate -- Push a new state, which is found in yystate. |
1165`------------------------------------------------------------*/
1166yynewstate:1167/* In all cases, when you get here, the value and location stacks1168have just been pushed. So pushing a state here evens the stacks. */
1169yyssp++;1170
1171yysetstate:1172*yyssp = yystate;1173
1174if (yyss + yystacksize - 1 <= yyssp)1175{1176/* Get the current used size of the three stacks, in elements. */1177YYSIZE_T yysize = yyssp - yyss + 1;1178
1179#ifdef yyoverflow1180{1181/* Give user a chance to reallocate the stack. Use copies of1182these so that the &'s don't force the real ones into
1183memory. */
1184YYSTYPE *yyvs1 = yyvs;1185yytype_int16 *yyss1 = yyss;1186
1187/* Each stack pointer address is followed by the size of the1188data in use in that stack, in bytes. This used to be a
1189conditional around just the two extra args, but that might
1190be undefined if yyoverflow is a macro. */
1191yyoverflow (YY_("memory exhausted"),1192&yyss1, yysize * sizeof (*yyssp),1193&yyvs1, yysize * sizeof (*yyvsp),1194&yystacksize);1195
1196yyss = yyss1;1197yyvs = yyvs1;1198}1199#else /* no yyoverflow */1200# ifndef YYSTACK_RELOCATE1201goto yyexhaustedlab;1202# else1203/* Extend the stack our own way. */1204if (YYMAXDEPTH <= yystacksize)1205goto yyexhaustedlab;1206yystacksize *= 2;1207if (YYMAXDEPTH < yystacksize)1208yystacksize = YYMAXDEPTH;1209
1210{1211yytype_int16 *yyss1 = yyss;1212union yyalloc *yyptr =1213(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));1214if (! yyptr)1215goto yyexhaustedlab;1216YYSTACK_RELOCATE (yyss_alloc, yyss);1217YYSTACK_RELOCATE (yyvs_alloc, yyvs);1218# undef YYSTACK_RELOCATE1219if (yyss1 != yyssa)1220YYSTACK_FREE (yyss1);1221}1222# endif1223#endif /* no yyoverflow */1224
1225yyssp = yyss + yysize - 1;1226yyvsp = yyvs + yysize - 1;1227
1228YYDPRINTF ((stderr, "Stack size increased to %lu\n",1229(unsigned long int) yystacksize));1230
1231if (yyss + yystacksize - 1 <= yyssp)1232YYABORT;1233}1234
1235YYDPRINTF ((stderr, "Entering state %d\n", yystate));1236
1237if (yystate == YYFINAL)1238YYACCEPT;1239
1240goto yybackup;1241
1242/*-----------.
1243| yybackup. |
1244`-----------*/
1245yybackup:1246
1247/* Do appropriate processing given the current state. Read a1248lookahead token if we need one and don't already have one. */
1249
1250/* First try to decide what to do without reference to lookahead token. */1251yyn = yypact[yystate];1252if (yyn == YYPACT_NINF)1253goto yydefault;1254
1255/* Not known => get a lookahead token if don't already have one. */1256
1257/* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */1258if (yychar == YYEMPTY)1259{1260YYDPRINTF ((stderr, "Reading a token: "));1261yychar = YYLEX;1262}1263
1264if (yychar <= YYEOF)1265{1266yychar = yytoken = YYEOF;1267YYDPRINTF ((stderr, "Now at end of input.\n"));1268}1269else1270{1271yytoken = YYTRANSLATE (yychar);1272YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);1273}1274
1275/* If the proper action on seeing token YYTOKEN is to reduce or to1276detect an error, take that action. */
1277yyn += yytoken;1278if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)1279goto yydefault;1280yyn = yytable[yyn];1281if (yyn <= 0)1282{1283if (yyn == 0 || yyn == YYTABLE_NINF)1284goto yyerrlab;1285yyn = -yyn;1286goto yyreduce;1287}1288
1289/* Count tokens shifted since error; after three, turn off error1290status. */
1291if (yyerrstatus)1292yyerrstatus--;1293
1294/* Shift the lookahead token. */1295YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);1296
1297/* Discard the shifted token. */1298yychar = YYEMPTY;1299
1300yystate = yyn;1301*++yyvsp = yylval;1302
1303goto yynewstate;1304
1305
1306/*-----------------------------------------------------------.
1307| yydefault -- do the default action for the current state. |
1308`-----------------------------------------------------------*/
1309yydefault:1310yyn = yydefact[yystate];1311if (yyn == 0)1312goto yyerrlab;1313goto yyreduce;1314
1315
1316/*-----------------------------.
1317| yyreduce -- Do a reduction. |
1318`-----------------------------*/
1319yyreduce:1320/* yyn is the number of a rule to reduce with. */1321yylen = yyr2[yyn];1322
1323/* If YYLEN is nonzero, implement the default value of the action:1324`$$ = $1'.
1325
1326Otherwise, the following line sets YYVAL to garbage.
1327This behavior is undocumented and Bison
1328users should not rely upon it. Assigning to YYVAL
1329unconditionally makes the parser a bit smaller, and it avoids a
1330GCC warning that YYVAL may be used uninitialized. */
1331yyval = yyvsp[1-yylen];1332
1333
1334YY_REDUCE_PRINT (yyn);1335switch (yyn)1336{1337case 2:1338
1339/* Line 1464 of yacc.c */
1340#line 39 "SelectionFilter.y"1341{ (yyval.string) = (yyvsp[(2) - (2)].string) ;}1342break;1343
1344case 3:1345
1346/* Line 1464 of yacc.c */
1347#line 40 "SelectionFilter.y"1348{ (yyval.string) = StringFactory::New(*(yyvsp[(2) - (4)].string) + "::" + *(yyvsp[(4) - (4)].string)) ;}1349break;1350
1351case 4:1352
1353/* Line 1464 of yacc.c */
1354#line 42 "SelectionFilter.y"1355{ (yyval.string) = 0 ;}1356break;1357
1358case 5:1359
1360/* Line 1464 of yacc.c */
1361#line 43 "SelectionFilter.y"1362{ (yyval.string) = (yyvsp[(2) - (2)].string) ;}1363break;1364
1365case 6:1366
1367/* Line 1464 of yacc.c */
1368#line 45 "SelectionFilter.y"1369{ (yyval.slice) = 0 ;}1370break;1371
1372case 7:1373
1374/* Line 1464 of yacc.c */
1375#line 46 "SelectionFilter.y"1376{ (yyval.slice) = new Node_Slice((yyvsp[(2) - (4)].number),(yyvsp[(4) - (4)].number)) ;}1377break;1378
1379case 8:1380
1381/* Line 1464 of yacc.c */
1382#line 47 "SelectionFilter.y"1383{ (yyval.slice) = new Node_Slice((yyvsp[(2) - (3)].number)) ;}1384break;1385
1386case 9:1387
1388/* Line 1464 of yacc.c */
1389#line 48 "SelectionFilter.y"1390{ (yyval.slice) = new Node_Slice((yyvsp[(2) - (2)].number),(yyvsp[(2) - (2)].number)) ;}1391break;1392
1393case 10:1394
1395/* Line 1464 of yacc.c */
1396#line 50 "SelectionFilter.y"1397{ (yyval.object) = new Node_Object((yyvsp[(1) - (3)].string),(yyvsp[(2) - (3)].string),(yyvsp[(3) - (3)].slice)) ;}1398break;1399
1400case 11:1401
1402/* Line 1464 of yacc.c */
1403#line 52 "SelectionFilter.y"1404{ (yyval.block) = new Node_Block((yyvsp[(1) - (1)].object)); ;}1405break;1406
1407case 12:1408
1409/* Line 1464 of yacc.c */
1410#line 53 "SelectionFilter.y"1411{ (yyval.block) = (yyvsp[(1) - (2)].block) ; (yyval.block)->Objects.emplace_back((yyvsp[(2) - (2)].object)); ;}1412break;1413
1414case 13:1415
1416/* Line 1464 of yacc.c */
1417#line 55 "SelectionFilter.y"1418{ (yyval.block) = (yyvsp[(1) - (1)].block) ;}1419break;1420
1421case 14:1422
1423/* Line 1464 of yacc.c */
1424#line 57 "SelectionFilter.y"1425{ TopBlock = (yyvsp[(1) - (1)].block) ;}1426break;1427
1428
1429
1430/* Line 1464 of yacc.c */
1431#line 1432 "SelectionFilter.tab.c"1432default: break;1433}1434YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);1435
1436YYPOPSTACK (yylen);1437yylen = 0;1438YY_STACK_PRINT (yyss, yyssp);1439
1440*++yyvsp = yyval;1441
1442/* Now `shift' the result of the reduction. Determine what state1443that goes to, based on the state we popped back to and the rule
1444number reduced by. */
1445
1446yyn = yyr1[yyn];1447
1448yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;1449if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)1450yystate = yytable[yystate];1451else1452yystate = yydefgoto[yyn - YYNTOKENS];1453
1454goto yynewstate;1455
1456
1457/*------------------------------------.
1458| yyerrlab -- here on detecting error |
1459`------------------------------------*/
1460yyerrlab:1461/* If not already recovering from an error, report this error. */1462if (!yyerrstatus)1463{1464++yynerrs;1465#if ! YYERROR_VERBOSE1466yyerror (YY_("syntax error"));1467#else1468{1469YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);1470if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)1471{1472YYSIZE_T yyalloc = 2 * yysize;1473if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))1474yyalloc = YYSTACK_ALLOC_MAXIMUM;1475if (yymsg != yymsgbuf)1476YYSTACK_FREE (yymsg);1477yymsg = (char *) YYSTACK_ALLOC (yyalloc);1478if (yymsg)1479yymsg_alloc = yyalloc;1480else1481{1482yymsg = yymsgbuf;1483yymsg_alloc = sizeof yymsgbuf;1484}1485}1486
1487if (0 < yysize && yysize <= yymsg_alloc)1488{1489(void) yysyntax_error (yymsg, yystate, yychar);1490yyerror (yymsg);1491}1492else1493{1494yyerror (YY_("syntax error"));1495if (yysize != 0)1496goto yyexhaustedlab;1497}1498}1499#endif1500}1501
1502
1503
1504if (yyerrstatus == 3)1505{1506/* If just tried and failed to reuse lookahead token after an1507error, discard it. */
1508
1509if (yychar <= YYEOF)1510{1511/* Return failure if at end of input. */1512if (yychar == YYEOF)1513YYABORT;1514}1515else1516{1517yydestruct ("Error: discarding",1518yytoken, &yylval);1519yychar = YYEMPTY;1520}1521}1522
1523/* Else will try to reuse lookahead token after shifting the error1524token. */
1525goto yyerrlab1;1526
1527
1528/*---------------------------------------------------.
1529| yyerrorlab -- error raised explicitly by YYERROR. |
1530`---------------------------------------------------*/
1531yyerrorlab:1532
1533/* Pacify compilers like GCC when the user code never invokes1534YYERROR and the label yyerrorlab therefore never appears in user
1535code. */
1536if (/*CONSTCOND*/ 0)1537goto yyerrorlab;1538
1539/* Do not reclaim the symbols of the rule which action triggered1540this YYERROR. */
1541YYPOPSTACK (yylen);1542yylen = 0;1543YY_STACK_PRINT (yyss, yyssp);1544yystate = *yyssp;1545goto yyerrlab1;1546
1547
1548/*-------------------------------------------------------------.
1549| yyerrlab1 -- common code for both syntax error and YYERROR. |
1550`-------------------------------------------------------------*/
1551yyerrlab1:1552yyerrstatus = 3; /* Each real token shifted decrements this. */1553
1554for (;;)1555{1556yyn = yypact[yystate];1557if (yyn != YYPACT_NINF)1558{1559yyn += YYTERROR;1560if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)1561{1562yyn = yytable[yyn];1563if (0 < yyn)1564break;1565}1566}1567
1568/* Pop the current state because it cannot handle the error token. */1569if (yyssp == yyss)1570YYABORT;1571
1572
1573yydestruct ("Error: popping",1574yystos[yystate], yyvsp);1575YYPOPSTACK (1);1576yystate = *yyssp;1577YY_STACK_PRINT (yyss, yyssp);1578}1579
1580*++yyvsp = yylval;1581
1582
1583/* Shift the error token. */1584YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);1585
1586yystate = yyn;1587goto yynewstate;1588
1589
1590/*-------------------------------------.
1591| yyacceptlab -- YYACCEPT comes here. |
1592`-------------------------------------*/
1593yyacceptlab:1594yyresult = 0;1595goto yyreturn;1596
1597/*-----------------------------------.
1598| yyabortlab -- YYABORT comes here. |
1599`-----------------------------------*/
1600yyabortlab:1601yyresult = 1;1602goto yyreturn;1603
1604#if !defined(yyoverflow) || YYERROR_VERBOSE1605/*-------------------------------------------------.
1606| yyexhaustedlab -- memory exhaustion comes here. |
1607`-------------------------------------------------*/
1608yyexhaustedlab:1609yyerror (YY_("memory exhausted"));1610yyresult = 2;1611/* Fall through. */1612#endif1613
1614yyreturn:1615if (yychar != YYEMPTY)1616yydestruct ("Cleanup: discarding lookahead",1617yytoken, &yylval);1618/* Do not reclaim the symbols of the rule which action triggered1619this YYABORT or YYACCEPT. */
1620YYPOPSTACK (yylen);1621YY_STACK_PRINT (yyss, yyssp);1622while (yyssp != yyss)1623{1624yydestruct ("Cleanup: popping",1625yystos[*yyssp], yyvsp);1626YYPOPSTACK (1);1627}1628#ifndef yyoverflow1629if (yyss != yyssa)1630YYSTACK_FREE (yyss);1631#endif1632#if YYERROR_VERBOSE1633if (yymsg != yymsgbuf)1634YYSTACK_FREE (yymsg);1635#endif1636/* Make sure YYID is used. */1637return YYID (yyresult);1638}
1639
1640
1641
1642/* Line 1684 of yacc.c */
1643#line 61 "SelectionFilter.y"1644
1645
1646