1 /* A Bison parser, made by GNU Bison 2.5.  */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5       Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
6 
7    This program is free software: you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation, either version 3 of the License, or
10    (at your option) any later version.
11 
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19 
20 /* As a special exception, you may create a larger work that contains
21    part or all of the Bison parser skeleton and distribute that work
22    under terms of your choice, so long as that work isn't itself a
23    parser generator using the skeleton or a modified version thereof
24    as a parser skeleton.  Alternatively, if you modify or redistribute
25    the parser skeleton itself, you may (at your option) remove this
26    special exception, which will cause the skeleton and the resulting
27    Bison output files to be licensed under the GNU General Public
28    License without this special exception.
29 
30    This special exception was added by the Free Software Foundation in
31    version 2.2 of Bison.  */
32 
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34    simplifying the original so-called "semantic" parser.  */
35 
36 /* All symbols defined below should begin with yy or YY, to avoid
37    infringing on user name space.  This should be done even for local
38    variables, as they might otherwise be expanded by user macros.
39    There are some unavoidable exceptions within include files to
40    define necessary library symbols; they are noted "INFRINGES ON
41    USER NAME SPACE" below.  */
42 
43 /* Identify Bison output.  */
44 #define YYBISON 1
45 
46 /* Bison version.  */
47 #define YYBISON_VERSION "2.5"
48 
49 /* Skeleton name.  */
50 #define YYSKELETON_NAME "yacc.c"
51 
52 /* Pure parsers.  */
53 #define YYPURE 1
54 
55 /* Push parsers.  */
56 #define YYPUSH 0
57 
58 /* Pull parsers.  */
59 #define YYPULL 1
60 
61 /* Using locations.  */
62 #define YYLSP_NEEDED 0
63 
64 /* Substitute the variable and function names.  */
65 #define yyparse         cssyyparse
66 #define yylex           cssyylex
67 #define yyerror         cssyyerror
68 #define yylval          cssyylval
69 #define yychar          cssyychar
70 #define yydebug         cssyydebug
71 #define yynerrs         cssyynerrs
72 
73 
74 /* Copy the first part of user declarations.  */
75 
76 /* Line 268 of yacc.c  */
77 #line 1 "../Source/WebCore/css/CSSGrammar.y"
78 
79 
80 /*
81  *  Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org)
82  *  Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
83  *  Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com)
84  *  Copyright (C) 2008 Eric Seidel <eric@webkit.org>
85  *
86  *  This library is free software; you can redistribute it and/or
87  *  modify it under the terms of the GNU Lesser General Public
88  *  License as published by the Free Software Foundation; either
89  *  version 2 of the License, or (at your option) any later version.
90  *
91  *  This library is distributed in the hope that it will be useful,
92  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
93  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
94  *  Lesser General Public License for more details.
95  *
96  *  You should have received a copy of the GNU Lesser General Public
97  *  License along with this library; if not, write to the Free Software
98  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
99  *
100  */
101 
102 #include "config.h"
103 
104 #include "CSSMediaRule.h"
105 #include "CSSParser.h"
106 #include "CSSPrimitiveValue.h"
107 #include "CSSPropertyNames.h"
108 #include "CSSRuleList.h"
109 #include "CSSSelector.h"
110 #include "CSSStyleSheet.h"
111 #include "Document.h"
112 #include "HTMLNames.h"
113 #include "MediaList.h"
114 #include "MediaQueryExp.h"
115 #include "WebKitCSSKeyframeRule.h"
116 #include "WebKitCSSKeyframesRule.h"
117 #include <wtf/FastMalloc.h>
118 #include <stdlib.h>
119 #include <string.h>
120 
121 using namespace WebCore;
122 using namespace HTMLNames;
123 
124 #define YYMALLOC fastMalloc
125 #define YYFREE fastFree
126 
127 #define YYENABLE_NLS 0
128 #define YYLTYPE_IS_TRIVIAL 1
129 #define YYMAXDEPTH 10000
130 #define YYDEBUG 0
131 
132 // FIXME: Replace with %parse-param { CSSParser* parser } once we can depend on bison 2.x
133 #define YYPARSE_PARAM parser
134 #define YYLEX_PARAM parser
135 
136 
137 
138 /* Line 268 of yacc.c  */
139 #line 140 "/Source/WebCore/generated/CSSGrammar.tab.c"
140 
141 /* Enabling traces.  */
142 #ifndef YYDEBUG
143 # define YYDEBUG 0
144 #endif
145 
146 /* Enabling verbose error messages.  */
147 #ifdef YYERROR_VERBOSE
148 # undef YYERROR_VERBOSE
149 # define YYERROR_VERBOSE 1
150 #else
151 # define YYERROR_VERBOSE 0
152 #endif
153 
154 /* Enabling the token table.  */
155 #ifndef YYTOKEN_TABLE
156 # define YYTOKEN_TABLE 0
157 #endif
158 
159 
160 /* Tokens.  */
161 #ifndef YYTOKENTYPE
162 # define YYTOKENTYPE
163    /* Put the tokens into the symbol table, so that GDB and other debuggers
164       know about them.  */
165    enum yytokentype {
166      TOKEN_EOF = 0,
167      LOWEST_PREC = 258,
168      UNIMPORTANT_TOK = 259,
169      WHITESPACE = 260,
170      SGML_CD = 261,
171      INCLUDES = 262,
172      DASHMATCH = 263,
173      BEGINSWITH = 264,
174      ENDSWITH = 265,
175      CONTAINS = 266,
176      STRING = 267,
177      IDENT = 268,
178      NTH = 269,
179      HEX = 270,
180      IDSEL = 271,
181      IMPORT_SYM = 272,
182      PAGE_SYM = 273,
183      MEDIA_SYM = 274,
184      FONT_FACE_SYM = 275,
185      CHARSET_SYM = 276,
186      NAMESPACE_SYM = 277,
187      WEBKIT_RULE_SYM = 278,
188      WEBKIT_DECLS_SYM = 279,
189      WEBKIT_KEYFRAME_RULE_SYM = 280,
190      WEBKIT_KEYFRAMES_SYM = 281,
191      WEBKIT_VALUE_SYM = 282,
192      WEBKIT_MEDIAQUERY_SYM = 283,
193      WEBKIT_SELECTOR_SYM = 284,
194      TOPLEFTCORNER_SYM = 285,
195      TOPLEFT_SYM = 286,
196      TOPCENTER_SYM = 287,
197      TOPRIGHT_SYM = 288,
198      TOPRIGHTCORNER_SYM = 289,
199      BOTTOMLEFTCORNER_SYM = 290,
200      BOTTOMLEFT_SYM = 291,
201      BOTTOMCENTER_SYM = 292,
202      BOTTOMRIGHT_SYM = 293,
203      BOTTOMRIGHTCORNER_SYM = 294,
204      LEFTTOP_SYM = 295,
205      LEFTMIDDLE_SYM = 296,
206      LEFTBOTTOM_SYM = 297,
207      RIGHTTOP_SYM = 298,
208      RIGHTMIDDLE_SYM = 299,
209      RIGHTBOTTOM_SYM = 300,
210      ATKEYWORD = 301,
211      IMPORTANT_SYM = 302,
212      MEDIA_ONLY = 303,
213      MEDIA_NOT = 304,
214      MEDIA_AND = 305,
215      REMS = 306,
216      QEMS = 307,
217      EMS = 308,
218      EXS = 309,
219      PXS = 310,
220      CMS = 311,
221      MMS = 312,
222      INS = 313,
223      PTS = 314,
224      PCS = 315,
225      DEGS = 316,
226      RADS = 317,
227      GRADS = 318,
228      TURNS = 319,
229      MSECS = 320,
230      SECS = 321,
231      HERTZ = 322,
232      KHERTZ = 323,
233      DIMEN = 324,
234      INVALIDDIMEN = 325,
235      PERCENTAGE = 326,
236      FLOATTOKEN = 327,
237      INTEGER = 328,
238      URI = 329,
239      FUNCTION = 330,
240      ANYFUNCTION = 331,
241      NOTFUNCTION = 332,
242      CALCFUNCTION = 333,
243      MINFUNCTION = 334,
244      MAXFUNCTION = 335,
245      UNICODERANGE = 336
246    };
247 #endif
248 
249 
250 
251 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
252 typedef union YYSTYPE
253 {
254 
255 /* Line 293 of yacc.c  */
256 #line 63 "../Source/WebCore/css/CSSGrammar.y"
257 
258     bool boolean;
259     char character;
260     int integer;
261     double number;
262     CSSParserString string;
263 
264     CSSRule* rule;
265     CSSRuleList* ruleList;
266     CSSParserSelector* selector;
267     Vector<OwnPtr<CSSParserSelector> >* selectorList;
268     CSSSelector::MarginBoxType marginBox;
269     CSSSelector::Relation relation;
270     MediaList* mediaList;
271     MediaQuery* mediaQuery;
272     MediaQuery::Restrictor mediaQueryRestrictor;
273     MediaQueryExp* mediaQueryExp;
274     CSSParserValue value;
275     CSSParserValueList* valueList;
276     Vector<OwnPtr<MediaQueryExp> >* mediaQueryExpList;
277     WebKitCSSKeyframeRule* keyframeRule;
278     WebKitCSSKeyframesRule* keyframesRule;
279     float val;
280 
281 
282 
283 /* Line 293 of yacc.c  */
284 #line 285 "/Source/WebCore/generated/CSSGrammar.tab.c"
285 } YYSTYPE;
286 # define YYSTYPE_IS_TRIVIAL 1
287 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
288 # define YYSTYPE_IS_DECLARED 1
289 #endif
290 
291 
292 /* Copy the second part of user declarations.  */
293 
294 /* Line 343 of yacc.c  */
295 #line 88 "../Source/WebCore/css/CSSGrammar.y"
296 
297 
cssyyerror(const char *)298 static inline int cssyyerror(const char*)
299 {
300     return 1;
301 }
302 
cssyylex(YYSTYPE * yylval,void * parser)303 static int cssyylex(YYSTYPE* yylval, void* parser)
304 {
305     return static_cast<CSSParser*>(parser)->lex(yylval);
306 }
307 
308 
309 
310 /* Line 343 of yacc.c  */
311 #line 312 "/Source/WebCore/generated/CSSGrammar.tab.c"
312 
313 #ifdef short
314 # undef short
315 #endif
316 
317 #ifdef YYTYPE_UINT8
318 typedef YYTYPE_UINT8 yytype_uint8;
319 #else
320 typedef unsigned char yytype_uint8;
321 #endif
322 
323 #ifdef YYTYPE_INT8
324 typedef YYTYPE_INT8 yytype_int8;
325 #elif (defined __STDC__ || defined __C99__FUNC__ \
326      || defined __cplusplus || defined _MSC_VER)
327 typedef signed char yytype_int8;
328 #else
329 typedef short int yytype_int8;
330 #endif
331 
332 #ifdef YYTYPE_UINT16
333 typedef YYTYPE_UINT16 yytype_uint16;
334 #else
335 typedef unsigned short int yytype_uint16;
336 #endif
337 
338 #ifdef YYTYPE_INT16
339 typedef YYTYPE_INT16 yytype_int16;
340 #else
341 typedef short int yytype_int16;
342 #endif
343 
344 #ifndef YYSIZE_T
345 # ifdef __SIZE_TYPE__
346 #  define YYSIZE_T __SIZE_TYPE__
347 # elif defined size_t
348 #  define YYSIZE_T size_t
349 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
350      || defined __cplusplus || defined _MSC_VER)
351 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
352 #  define YYSIZE_T size_t
353 # else
354 #  define YYSIZE_T unsigned int
355 # endif
356 #endif
357 
358 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
359 
360 #ifndef YY_
361 # if defined YYENABLE_NLS && YYENABLE_NLS
362 #  if ENABLE_NLS
363 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
364 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
365 #  endif
366 # endif
367 # ifndef YY_
368 #  define YY_(msgid) msgid
369 # endif
370 #endif
371 
372 /* Suppress unused-variable warnings by "using" E.  */
373 #if ! defined lint || defined __GNUC__
374 # define YYUSE(e) ((void) (e))
375 #else
376 # define YYUSE(e) /* empty */
377 #endif
378 
379 /* Identity function, used to suppress warnings about constant conditions.  */
380 #ifndef lint
381 # define YYID(n) (n)
382 #else
383 #if (defined __STDC__ || defined __C99__FUNC__ \
384      || defined __cplusplus || defined _MSC_VER)
385 static int
YYID(int yyi)386 YYID (int yyi)
387 #else
388 static int
389 YYID (yyi)
390     int yyi;
391 #endif
392 {
393   return yyi;
394 }
395 #endif
396 
397 #if ! defined yyoverflow || YYERROR_VERBOSE
398 
399 /* The parser invokes alloca or malloc; define the necessary symbols.  */
400 
401 # ifdef YYSTACK_USE_ALLOCA
402 #  if YYSTACK_USE_ALLOCA
403 #   ifdef __GNUC__
404 #    define YYSTACK_ALLOC __builtin_alloca
405 #   elif defined __BUILTIN_VA_ARG_INCR
406 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
407 #   elif defined _AIX
408 #    define YYSTACK_ALLOC __alloca
409 #   elif defined _MSC_VER
410 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
411 #    define alloca _alloca
412 #   else
413 #    define YYSTACK_ALLOC alloca
414 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
415      || defined __cplusplus || defined _MSC_VER)
416 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
417 #     ifndef EXIT_SUCCESS
418 #      define EXIT_SUCCESS 0
419 #     endif
420 #    endif
421 #   endif
422 #  endif
423 # endif
424 
425 # ifdef YYSTACK_ALLOC
426    /* Pacify GCC's `empty if-body' warning.  */
427 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
428 #  ifndef YYSTACK_ALLOC_MAXIMUM
429     /* The OS might guarantee only one guard page at the bottom of the stack,
430        and a page size can be as small as 4096 bytes.  So we cannot safely
431        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
432        to allow for a few compiler-allocated temporary stack slots.  */
433 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
434 #  endif
435 # else
436 #  define YYSTACK_ALLOC YYMALLOC
437 #  define YYSTACK_FREE YYFREE
438 #  ifndef YYSTACK_ALLOC_MAXIMUM
439 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
440 #  endif
441 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
442        && ! ((defined YYMALLOC || defined malloc) \
443 	     && (defined YYFREE || defined free)))
444 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
445 #   ifndef EXIT_SUCCESS
446 #    define EXIT_SUCCESS 0
447 #   endif
448 #  endif
449 #  ifndef YYMALLOC
450 #   define YYMALLOC malloc
451 #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
452      || defined __cplusplus || defined _MSC_VER)
453 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
454 #   endif
455 #  endif
456 #  ifndef YYFREE
457 #   define YYFREE free
458 #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
459      || defined __cplusplus || defined _MSC_VER)
460 void free (void *); /* INFRINGES ON USER NAME SPACE */
461 #   endif
462 #  endif
463 # endif
464 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
465 
466 
467 #if (! defined yyoverflow \
468      && (! defined __cplusplus \
469 	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
470 
471 /* A type that is properly aligned for any stack member.  */
472 union yyalloc
473 {
474   yytype_int16 yyss_alloc;
475   YYSTYPE yyvs_alloc;
476 };
477 
478 /* The size of the maximum gap between one aligned stack and the next.  */
479 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
480 
481 /* The size of an array large to enough to hold all stacks, each with
482    N elements.  */
483 # define YYSTACK_BYTES(N) \
484      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
485       + YYSTACK_GAP_MAXIMUM)
486 
487 # define YYCOPY_NEEDED 1
488 
489 /* Relocate STACK from its old location to the new one.  The
490    local variables YYSIZE and YYSTACKSIZE give the old and new number of
491    elements in the stack, and YYPTR gives the new location of the
492    stack.  Advance YYPTR to a properly aligned location for the next
493    stack.  */
494 # define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
495     do									\
496       {									\
497 	YYSIZE_T yynewbytes;						\
498 	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
499 	Stack = &yyptr->Stack_alloc;					\
500 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
501 	yyptr += yynewbytes / sizeof (*yyptr);				\
502       }									\
503     while (YYID (0))
504 
505 #endif
506 
507 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
508 /* Copy COUNT objects from FROM to TO.  The source and destination do
509    not overlap.  */
510 # ifndef YYCOPY
511 #  if defined __GNUC__ && 1 < __GNUC__
512 #   define YYCOPY(To, From, Count) \
513       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
514 #  else
515 #   define YYCOPY(To, From, Count)		\
516       do					\
517 	{					\
518 	  YYSIZE_T yyi;				\
519 	  for (yyi = 0; yyi < (Count); yyi++)	\
520 	    (To)[yyi] = (From)[yyi];		\
521 	}					\
522       while (YYID (0))
523 #  endif
524 # endif
525 #endif /* !YYCOPY_NEEDED */
526 
527 /* YYFINAL -- State number of the termination state.  */
528 #define YYFINAL  21
529 /* YYLAST -- Last index in YYTABLE.  */
530 #define YYLAST   1676
531 
532 /* YYNTOKENS -- Number of terminals.  */
533 #define YYNTOKENS  102
534 /* YYNNTS -- Number of nonterminals.  */
535 #define YYNNTS  94
536 /* YYNRULES -- Number of rules.  */
537 #define YYNRULES  290
538 /* YYNRULES -- Number of states.  */
539 #define YYNSTATES  543
540 
541 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
542 #define YYUNDEFTOK  2
543 #define YYMAXUTOK   336
544 
545 #define YYTRANSLATE(YYX)						\
546   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
547 
548 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
549 static const yytype_uint8 yytranslate[] =
550 {
551        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
552        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
553        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
554        2,     2,     2,     2,     2,   100,     2,   101,     2,     2,
555       90,    91,    20,    93,    92,    96,    18,    99,     2,     2,
556        2,     2,     2,     2,     2,     2,     2,     2,    17,    89,
557        2,    98,    95,     2,     2,     2,     2,     2,     2,     2,
558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
559        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
560        2,    19,     2,    97,     2,     2,     2,     2,     2,     2,
561        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
562        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
563        2,     2,     2,    87,    21,    88,    94,     2,     2,     2,
564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
566        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
567        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
568        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
569        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
570        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
571        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
572        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
573        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
574        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
575        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
576        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
577        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
578       15,    16,    22,    23,    24,    25,    26,    27,    28,    29,
579       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
580       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
581       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
582       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
583       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
584       80,    81,    82,    83,    84,    85,    86
585 };
586 
587 #if YYDEBUG
588 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
589    YYRHS.  */
590 static const yytype_uint16 yyprhs[] =
591 {
592        0,     0,     3,     8,    11,    14,    17,    20,    23,    26,
593       33,    40,    46,    52,    58,    64,    65,    68,    69,    72,
594       75,    76,    78,    80,    82,    88,    92,    96,   102,   103,
595      107,   110,   112,   114,   116,   118,   120,   122,   124,   126,
596      128,   130,   131,   135,   137,   139,   141,   143,   145,   147,
597      149,   151,   153,   155,   162,   169,   173,   177,   184,   191,
598      195,   199,   200,   203,   205,   207,   210,   211,   216,   224,
599      226,   232,   233,   237,   238,   240,   242,   244,   249,   250,
600      252,   254,   259,   262,   270,   277,   280,   289,   291,   293,
601      294,   298,   305,   307,   313,   315,   317,   326,   330,   334,
602      336,   339,   341,   342,   344,   349,   350,   358,   360,   362,
603      364,   366,   368,   370,   372,   374,   376,   378,   380,   382,
604      384,   386,   388,   390,   398,   402,   406,   409,   412,   415,
605      417,   418,   420,   422,   424,   425,   426,   433,   435,   440,
606      443,   446,   448,   450,   453,   457,   460,   462,   465,   468,
607      470,   473,   475,   478,   482,   485,   487,   493,   496,   498,
608      500,   502,   505,   508,   510,   512,   514,   516,   518,   521,
609      524,   529,   538,   544,   554,   556,   558,   560,   562,   564,
610      566,   568,   570,   573,   576,   580,   587,   594,   602,   609,
611      616,   618,   621,   623,   627,   629,   632,   635,   639,   643,
612      648,   652,   658,   663,   668,   675,   681,   684,   691,   698,
613      701,   705,   710,   713,   716,   719,   720,   722,   726,   729,
614      733,   736,   739,   742,   743,   745,   748,   751,   754,   757,
615      761,   764,   767,   770,   773,   775,   777,   779,   782,   785,
616      788,   791,   794,   797,   800,   803,   806,   809,   812,   815,
617      818,   821,   824,   827,   830,   833,   836,   839,   842,   845,
618      851,   855,   857,   860,   863,   866,   869,   872,   875,   882,
619      885,   889,   893,   895,   898,   900,   905,   911,   915,   917,
620      919,   925,   929,   931,   934,   938,   942,   945,   951,   955,
621      957
622 };
623 
624 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
625 static const yytype_int16 yyrhs[] =
626 {
627      103,     0,    -1,   110,   112,   111,   116,    -1,   104,   110,
628       -1,   106,   110,    -1,   107,   110,    -1,   108,   110,    -1,
629      109,   110,    -1,   105,   110,    -1,    28,    87,   110,   117,
630      110,    88,    -1,    30,    87,   110,   140,   110,    88,    -1,
631       29,    87,   153,   173,    88,    -1,    32,    87,   110,   178,
632       88,    -1,    33,     5,   110,   132,    88,    -1,    34,    87,
633      110,   157,    88,    -1,    -1,   110,     5,    -1,    -1,   111,
634        6,    -1,   111,     5,    -1,    -1,   114,    -1,    88,    -1,
635        0,    -1,    26,   110,    12,   110,    89,    -1,    26,     1,
636      194,    -1,    26,     1,    89,    -1,    26,   110,    12,   110,
637       89,    -1,    -1,   116,   118,   111,    -1,   154,   156,    -1,
638      135,    -1,   143,    -1,   149,    -1,   137,    -1,   123,    -1,
639      122,    -1,   117,    -1,   115,    -1,   193,    -1,   192,    -1,
640       -1,   119,   121,   111,    -1,   156,    -1,   143,    -1,   149,
641       -1,   137,    -1,   120,    -1,   193,    -1,   192,    -1,   123,
642       -1,   122,    -1,   135,    -1,    22,   110,   125,   110,   133,
643       89,    -1,    22,   110,   125,   110,   133,   194,    -1,    22,
644        1,    89,    -1,    22,     1,   194,    -1,    27,   110,   124,
645      125,   110,    89,    -1,    27,   110,   124,   125,   110,   194,
646       -1,    27,     1,   194,    -1,    27,     1,    89,    -1,    -1,
647       13,   110,    -1,    12,    -1,    79,    -1,    13,   110,    -1,
648       -1,    17,   110,   178,   110,    -1,    90,   110,   126,   110,
649      127,    91,   110,    -1,   128,    -1,   129,   110,    55,   110,
650      128,    -1,    -1,    55,   110,   129,    -1,    -1,    53,    -1,
651       54,    -1,   129,    -1,   131,   110,   136,   130,    -1,    -1,
652      134,    -1,   132,    -1,   134,    92,   110,   132,    -1,   134,
653        1,    -1,    24,   110,   134,    87,   110,   119,   191,    -1,
654       24,   110,    87,   110,   119,   191,    -1,    13,   110,    -1,
655       31,   110,   138,   110,    87,   110,   139,    88,    -1,    13,
656       -1,    12,    -1,    -1,   139,   140,   110,    -1,   141,   110,
657       87,   110,   173,    88,    -1,   142,    -1,   141,   110,    92,
658      110,   142,    -1,    76,    -1,    13,    -1,    23,   110,   144,
659      110,    87,   110,   145,   113,    -1,    23,     1,   194,    -1,
660       23,     1,    89,    -1,    13,    -1,    13,   171,    -1,   171,
661       -1,    -1,   173,    -1,   145,   146,   110,   173,    -1,    -1,
662      148,   147,   110,    87,   110,   173,   113,    -1,    35,    -1,
663       36,    -1,    37,    -1,    38,    -1,    39,    -1,    40,    -1,
664       41,    -1,    42,    -1,    43,    -1,    44,    -1,    45,    -1,
665       46,    -1,    47,    -1,    48,    -1,    49,    -1,    50,    -1,
666       25,   110,    87,   110,   173,    88,   110,    -1,    25,     1,
667      194,    -1,    25,     1,    89,    -1,    93,   110,    -1,    94,
668      110,    -1,    95,   110,    -1,   152,    -1,    -1,    96,    -1,
669       93,    -1,   110,    -1,    -1,    -1,   157,   155,    87,   153,
670      173,   113,    -1,   159,    -1,   157,    92,   110,   159,    -1,
671      157,     1,    -1,   159,     5,    -1,   161,    -1,   158,    -1,
672      158,   161,    -1,   159,   150,   161,    -1,   159,     1,    -1,
673       21,    -1,    20,    21,    -1,    13,    21,    -1,   163,    -1,
674      163,   164,    -1,   164,    -1,   160,   163,    -1,   160,   163,
675      164,    -1,   160,   164,    -1,   161,    -1,   162,   110,    92,
676      110,   161,    -1,   162,     1,    -1,    13,    -1,    20,    -1,
677      165,    -1,   164,   165,    -1,   164,     1,    -1,    16,    -1,
678       15,    -1,   166,    -1,   168,    -1,   172,    -1,    18,    13,
679       -1,    13,   110,    -1,    19,   110,   167,    97,    -1,    19,
680      110,   167,   169,   110,   170,   110,    97,    -1,    19,   110,
681      160,   167,    97,    -1,    19,   110,   160,   167,   169,   110,
682      170,   110,    97,    -1,    98,    -1,     7,    -1,     8,    -1,
683        9,    -1,    10,    -1,    11,    -1,    13,    -1,    12,    -1,
684       17,    13,    -1,    17,    13,    -1,    17,    17,    13,    -1,
685       17,    81,   110,   162,   110,    91,    -1,    17,    80,   110,
686       14,   110,    91,    -1,    17,    80,   110,   151,    78,   110,
687       91,    -1,    17,    80,   110,    13,   110,    91,    -1,    17,
688       82,   110,   161,   110,    91,    -1,   175,    -1,   174,   175,
689       -1,   174,    -1,     1,   195,     1,    -1,     1,    -1,   174,
690        1,    -1,   174,   195,    -1,   175,    89,   110,    -1,   175,
691      195,   110,    -1,   175,   195,    89,   110,    -1,     1,    89,
692      110,    -1,     1,   195,     1,    89,   110,    -1,   174,   175,
693       89,   110,    -1,   174,     1,    89,   110,    -1,   174,     1,
694      195,     1,    89,   110,    -1,   176,    17,   110,   178,   177,
695       -1,   176,     1,    -1,   176,    17,   110,     1,   178,   177,
696       -1,   176,    17,   110,   178,   177,     1,    -1,    52,   110,
697       -1,   176,    17,   110,    -1,   176,    17,   110,     1,    -1,
698      176,   194,    -1,    13,   110,    -1,    52,   110,    -1,    -1,
699      180,    -1,   178,   179,   180,    -1,   178,   195,    -1,   178,
700      195,     1,    -1,   178,     1,    -1,    99,   110,    -1,    92,
701      110,    -1,    -1,   181,    -1,   152,   181,    -1,    12,   110,
702       -1,    13,   110,    -1,    74,   110,    -1,   152,    74,   110,
703       -1,    79,   110,    -1,    86,   110,    -1,    15,   110,    -1,
704      100,   110,    -1,   182,    -1,   188,    -1,   190,    -1,   101,
705      110,    -1,    78,   110,    -1,    77,   110,    -1,    76,   110,
706       -1,    60,   110,    -1,    61,   110,    -1,    62,   110,    -1,
707       63,   110,    -1,    64,   110,    -1,    65,   110,    -1,    66,
708      110,    -1,    67,   110,    -1,    68,   110,    -1,    69,   110,
709       -1,    70,   110,    -1,    71,   110,    -1,    72,   110,    -1,
710       73,   110,    -1,    58,   110,    -1,    57,   110,    -1,    59,
711      110,    -1,    56,   110,    -1,    80,   110,   178,    91,   110,
712       -1,    80,   110,     1,    -1,   181,    -1,   152,   181,    -1,
713       93,     5,    -1,    96,     5,    -1,    20,   110,    -1,    99,
714      110,    -1,    13,   110,    -1,    90,   110,   186,   110,    91,
715      110,    -1,   183,   110,    -1,   186,   184,   183,    -1,   186,
716      184,   185,    -1,   185,    -1,   186,     1,    -1,   186,    -1,
717      187,    92,   110,   186,    -1,    83,   110,   186,    91,   110,
718       -1,    83,   110,     1,    -1,    84,    -1,    85,    -1,   189,
719      110,   187,    91,   110,    -1,   189,   110,     1,    -1,   113,
720       -1,     1,   113,    -1,    51,     1,   194,    -1,    51,     1,
721       89,    -1,     1,   194,    -1,    87,     1,   195,     1,   113,
722       -1,    87,     1,   113,    -1,   194,    -1,   195,     1,   194,
723       -1
724 };
725 
726 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
727 static const yytype_uint16 yyrline[] =
728 {
729        0,   293,   293,   294,   295,   296,   297,   298,   299,   303,
730      309,   315,   321,   335,   342,   352,   353,   356,   358,   359,
731      362,   364,   369,   370,   374,   380,   382,   387,   393,   395,
732      403,   406,   407,   408,   409,   410,   411,   415,   418,   419,
733      420,   424,   425,   436,   437,   438,   439,   443,   444,   445,
734      446,   447,   448,   453,   456,   459,   462,   468,   472,   475,
735      478,   484,   485,   489,   490,   494,   500,   503,   509,   516,
736      521,   528,   531,   537,   540,   543,   549,   554,   562,   565,
737      569,   574,   579,   585,   588,   594,   600,   607,   608,   612,
738      613,   621,   627,   632,   641,   642,   655,   667,   670,   676,
739      682,   690,   695,   703,   704,   708,   708,   716,   719,   722,
740      725,   728,   731,   734,   737,   740,   743,   746,   749,   752,
741      755,   758,   761,   767,   771,   774,   780,   781,   782,   786,
742      787,   791,   792,   796,   803,   810,   817,   824,   833,   842,
743      848,   854,   857,   861,   875,   888,   894,   895,   896,   900,
744      905,   910,   915,   925,   930,   938,   946,   954,   960,   968,
745      976,   979,   985,   991,   999,  1011,  1012,  1013,  1017,  1028,
746     1039,  1044,  1050,  1058,  1070,  1073,  1076,  1079,  1082,  1085,
747     1091,  1092,  1096,  1107,  1116,  1129,  1144,  1155,  1166,  1185,
748     1204,  1207,  1212,  1215,  1218,  1221,  1224,  1230,  1235,  1238,
749     1241,  1246,  1249,  1256,  1261,  1269,  1287,  1291,  1300,  1307,
750     1312,  1319,  1326,  1333,  1339,  1340,  1344,  1349,  1363,  1366,
751     1369,  1375,  1378,  1381,  1387,  1388,  1389,  1390,  1396,  1397,
752     1398,  1399,  1400,  1401,  1403,  1406,  1409,  1412,  1418,  1419,
753     1420,  1421,  1422,  1423,  1424,  1425,  1426,  1427,  1428,  1429,
754     1430,  1431,  1432,  1433,  1434,  1435,  1436,  1437,  1438,  1449,
755     1458,  1470,  1471,  1475,  1478,  1481,  1484,  1487,  1496,  1511,
756     1516,  1530,  1542,  1543,  1549,  1552,  1567,  1576,  1583,  1586,
757     1592,  1601,  1609,  1612,  1618,  1621,  1627,  1645,  1648,  1654,
758     1655
759 };
760 #endif
761 
762 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
763 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
764    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
765 static const char *const yytname[] =
766 {
767   "TOKEN_EOF", "error", "$undefined", "LOWEST_PREC", "UNIMPORTANT_TOK",
768   "WHITESPACE", "SGML_CD", "INCLUDES", "DASHMATCH", "BEGINSWITH",
769   "ENDSWITH", "CONTAINS", "STRING", "IDENT", "NTH", "HEX", "IDSEL", "':'",
770   "'.'", "'['", "'*'", "'|'", "IMPORT_SYM", "PAGE_SYM", "MEDIA_SYM",
771   "FONT_FACE_SYM", "CHARSET_SYM", "NAMESPACE_SYM", "WEBKIT_RULE_SYM",
772   "WEBKIT_DECLS_SYM", "WEBKIT_KEYFRAME_RULE_SYM", "WEBKIT_KEYFRAMES_SYM",
773   "WEBKIT_VALUE_SYM", "WEBKIT_MEDIAQUERY_SYM", "WEBKIT_SELECTOR_SYM",
774   "TOPLEFTCORNER_SYM", "TOPLEFT_SYM", "TOPCENTER_SYM", "TOPRIGHT_SYM",
775   "TOPRIGHTCORNER_SYM", "BOTTOMLEFTCORNER_SYM", "BOTTOMLEFT_SYM",
776   "BOTTOMCENTER_SYM", "BOTTOMRIGHT_SYM", "BOTTOMRIGHTCORNER_SYM",
777   "LEFTTOP_SYM", "LEFTMIDDLE_SYM", "LEFTBOTTOM_SYM", "RIGHTTOP_SYM",
778   "RIGHTMIDDLE_SYM", "RIGHTBOTTOM_SYM", "ATKEYWORD", "IMPORTANT_SYM",
779   "MEDIA_ONLY", "MEDIA_NOT", "MEDIA_AND", "REMS", "QEMS", "EMS", "EXS",
780   "PXS", "CMS", "MMS", "INS", "PTS", "PCS", "DEGS", "RADS", "GRADS",
781   "TURNS", "MSECS", "SECS", "HERTZ", "KHERTZ", "DIMEN", "INVALIDDIMEN",
782   "PERCENTAGE", "FLOATTOKEN", "INTEGER", "URI", "FUNCTION", "ANYFUNCTION",
783   "NOTFUNCTION", "CALCFUNCTION", "MINFUNCTION", "MAXFUNCTION",
784   "UNICODERANGE", "'{'", "'}'", "';'", "'('", "')'", "','", "'+'", "'~'",
785   "'>'", "'-'", "']'", "'='", "'/'", "'#'", "'%'", "$accept", "stylesheet",
786   "webkit_rule", "webkit_keyframe_rule", "webkit_decls", "webkit_value",
787   "webkit_mediaquery", "webkit_selector", "maybe_space", "maybe_sgml",
788   "maybe_charset", "closing_brace", "charset", "ignored_charset",
789   "rule_list", "valid_rule", "rule", "block_rule_list", "block_valid_rule",
790   "block_rule", "import", "namespace", "maybe_ns_prefix", "string_or_uri",
791   "media_feature", "maybe_media_value", "media_query_exp",
792   "media_query_exp_list", "maybe_and_media_query_exp_list",
793   "maybe_media_restrictor", "media_query", "maybe_media_list",
794   "media_list", "media", "medium", "keyframes", "keyframe_name",
795   "keyframes_rule", "keyframe_rule", "key_list", "key", "page",
796   "page_selector", "declarations_and_margins", "margin_box", "$@1",
797   "margin_sym", "font_face", "combinator", "maybe_unary_operator",
798   "unary_operator", "maybe_space_before_declaration", "before_ruleset",
799   "before_rule_opening_brace", "ruleset", "selector_list",
800   "selector_with_trailing_whitespace", "selector", "namespace_selector",
801   "simple_selector", "simple_selector_list", "element_name",
802   "specifier_list", "specifier", "class", "attr_name", "attrib", "match",
803   "ident_or_string", "pseudo_page", "pseudo", "declaration_list",
804   "decl_list", "declaration", "property", "prio", "expr", "operator",
805   "term", "unary_term", "function", "calc_func_term", "calc_func_operator",
806   "calc_func_paren_expr", "calc_func_expr", "calc_func_expr_list",
807   "calc_function", "min_or_max", "min_or_max_function", "save_block",
808   "invalid_at", "invalid_rule", "invalid_block", "invalid_block_list", 0
809 };
810 #endif
811 
812 # ifdef YYPRINT
813 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
814    token YYLEX-NUM.  */
815 static const yytype_uint16 yytoknum[] =
816 {
817        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
818      265,   266,   267,   268,   269,   270,   271,    58,    46,    91,
819       42,   124,   272,   273,   274,   275,   276,   277,   278,   279,
820      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
821      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
822      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
823      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
824      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
825      330,   331,   332,   333,   334,   335,   336,   123,   125,    59,
826       40,    41,    44,    43,   126,    62,    45,    93,    61,    47,
827       35,    37
828 };
829 # endif
830 
831 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
832 static const yytype_uint8 yyr1[] =
833 {
834        0,   102,   103,   103,   103,   103,   103,   103,   103,   104,
835      105,   106,   107,   108,   109,   110,   110,   111,   111,   111,
836      112,   112,   113,   113,   114,   114,   114,   115,   116,   116,
837      117,   117,   117,   117,   117,   117,   117,   118,   118,   118,
838      118,   119,   119,   120,   120,   120,   120,   121,   121,   121,
839      121,   121,   121,   122,   122,   122,   122,   123,   123,   123,
840      123,   124,   124,   125,   125,   126,   127,   127,   128,   129,
841      129,   130,   130,   131,   131,   131,   132,   132,   133,   133,
842      134,   134,   134,   135,   135,   136,   137,   138,   138,   139,
843      139,   140,   141,   141,   142,   142,   143,   143,   143,   144,
844      144,   144,   144,   145,   145,   147,   146,   148,   148,   148,
845      148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
846      148,   148,   148,   149,   149,   149,   150,   150,   150,   151,
847      151,   152,   152,   153,   154,   155,   156,   157,   157,   157,
848      158,   159,   159,   159,   159,   159,   160,   160,   160,   161,
849      161,   161,   161,   161,   161,   162,   162,   162,   163,   163,
850      164,   164,   164,   165,   165,   165,   165,   165,   166,   167,
851      168,   168,   168,   168,   169,   169,   169,   169,   169,   169,
852      170,   170,   171,   172,   172,   172,   172,   172,   172,   172,
853      173,   173,   173,   173,   173,   173,   173,   174,   174,   174,
854      174,   174,   174,   174,   174,   175,   175,   175,   175,   175,
855      175,   175,   175,   176,   177,   177,   178,   178,   178,   178,
856      178,   179,   179,   179,   180,   180,   180,   180,   180,   180,
857      180,   180,   180,   180,   180,   180,   180,   180,   181,   181,
858      181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
859      181,   181,   181,   181,   181,   181,   181,   181,   181,   182,
860      182,   183,   183,   184,   184,   184,   184,   184,   185,   186,
861      186,   186,   186,   186,   187,   187,   188,   188,   189,   189,
862      190,   190,   191,   191,   192,   192,   193,   194,   194,   195,
863      195
864 };
865 
866 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
867 static const yytype_uint8 yyr2[] =
868 {
869        0,     2,     4,     2,     2,     2,     2,     2,     2,     6,
870        6,     5,     5,     5,     5,     0,     2,     0,     2,     2,
871        0,     1,     1,     1,     5,     3,     3,     5,     0,     3,
872        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
873        1,     0,     3,     1,     1,     1,     1,     1,     1,     1,
874        1,     1,     1,     6,     6,     3,     3,     6,     6,     3,
875        3,     0,     2,     1,     1,     2,     0,     4,     7,     1,
876        5,     0,     3,     0,     1,     1,     1,     4,     0,     1,
877        1,     4,     2,     7,     6,     2,     8,     1,     1,     0,
878        3,     6,     1,     5,     1,     1,     8,     3,     3,     1,
879        2,     1,     0,     1,     4,     0,     7,     1,     1,     1,
880        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
881        1,     1,     1,     7,     3,     3,     2,     2,     2,     1,
882        0,     1,     1,     1,     0,     0,     6,     1,     4,     2,
883        2,     1,     1,     2,     3,     2,     1,     2,     2,     1,
884        2,     1,     2,     3,     2,     1,     5,     2,     1,     1,
885        1,     2,     2,     1,     1,     1,     1,     1,     2,     2,
886        4,     8,     5,     9,     1,     1,     1,     1,     1,     1,
887        1,     1,     2,     2,     3,     6,     6,     7,     6,     6,
888        1,     2,     1,     3,     1,     2,     2,     3,     3,     4,
889        3,     5,     4,     4,     6,     5,     2,     6,     6,     2,
890        3,     4,     2,     2,     2,     0,     1,     3,     2,     3,
891        2,     2,     2,     0,     1,     2,     2,     2,     2,     3,
892        2,     2,     2,     2,     1,     1,     1,     2,     2,     2,
893        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
894        2,     2,     2,     2,     2,     2,     2,     2,     2,     5,
895        3,     1,     2,     2,     2,     2,     2,     2,     6,     2,
896        3,     3,     1,     2,     1,     4,     5,     3,     1,     1,
897        5,     3,     1,     2,     3,     3,     2,     5,     3,     1,
898        3
899 };
900 
901 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
902    Performed when YYTABLE doesn't specify something else to do.  Zero
903    means the default is an error.  */
904 static const yytype_uint16 yydefact[] =
905 {
906       15,     0,     0,     0,     0,     0,     0,     0,    15,    15,
907       15,    15,    15,    15,    20,    15,    15,    15,    15,    15,
908       15,     1,     3,     8,     4,     5,     6,     7,    16,     0,
909       17,    21,   134,   133,     0,     0,     0,    73,     0,     0,
910        0,    28,     0,     0,    15,     0,     0,    15,    15,    36,
911       35,    31,    34,    32,    33,     0,   194,    15,    15,     0,
912        0,   190,     0,    95,    94,    15,    15,    92,    15,    15,
913       15,    15,    15,    15,    15,    15,    15,    15,    15,    15,
914       15,    15,    15,    15,    15,    15,    15,    15,    15,    15,
915       15,    15,    15,    15,    15,    15,   278,   279,    15,   132,
916      131,    15,    15,     0,     0,   216,   224,   234,   235,    15,
917      236,    74,    75,    15,    69,    76,    15,     0,   158,   164,
918      163,     0,     0,    15,   159,   146,     0,   142,     0,     0,
919      141,   149,     0,   160,   165,   166,   167,     0,    26,    25,
920       15,    19,    18,     0,     0,     0,     0,   102,    73,     0,
921        0,     0,    61,     0,     0,    30,     0,    15,   289,     0,
922      213,   209,    11,   195,   191,     0,    15,     0,   206,    15,
923      212,     0,     0,   226,   227,   232,   258,   256,   255,   257,
924      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
925      251,   252,   253,   254,   228,   240,   239,   238,   230,     0,
926        0,   231,   233,   237,    15,   225,   220,    12,    15,    15,
927        0,     0,     0,     0,     0,     0,    13,   148,   183,     0,
928       15,    15,    15,   168,     0,   147,   139,    14,    15,   143,
929      145,   140,    15,    15,    15,     0,   158,   159,   152,     0,
930        0,   162,   161,     0,     0,     0,    15,     0,    38,    37,
931       17,    40,    39,    55,    56,    63,    64,    15,    98,    97,
932       99,     0,    15,   101,    15,    80,     0,   125,   124,    15,
933       60,    59,    15,     0,    88,    87,    15,     9,     0,   200,
934      193,    15,     0,    15,     0,   197,    15,   198,     0,    10,
935       15,    15,   260,     0,   277,    15,     0,   261,    15,   272,
936        0,   229,   222,   221,   217,   219,   281,     0,     0,    15,
937       15,    15,    15,    71,   184,   130,     0,     0,    15,     0,
938        0,     0,     0,   126,   127,   128,   144,     0,    23,    22,
939      288,     0,    24,   286,     0,     0,    29,    78,   100,   182,
940        0,    41,    82,    15,    15,     0,    62,    15,     0,    15,
941       15,   290,   203,     0,   202,   199,   211,     0,     0,     0,
942       15,     0,   262,   269,   273,    15,    15,    15,     0,     0,
943       15,     0,    15,    15,    65,    66,     0,    85,    15,    77,
944       15,    15,     0,   129,   155,     0,    15,   169,    15,     0,
945      175,   176,   177,   178,   179,   170,   174,    15,     0,     0,
946       15,   285,   284,     0,     0,    15,     0,    41,    73,     0,
947        0,    15,     0,   201,    15,     0,    15,     0,     0,    93,
948      259,     0,   267,   265,   276,   263,   264,   266,   270,   271,
949      280,     0,    15,     0,    70,     0,     0,     0,    15,   157,
950        0,     0,   172,    15,     0,   287,     0,    53,    54,     0,
951        0,   282,    47,    17,    51,    50,    52,    46,    44,    45,
952       43,    84,    49,    48,     0,    81,    15,    57,    58,    89,
953        0,   204,   207,   214,   208,    91,     0,     0,     0,    15,
954       72,   188,   186,     0,   185,    15,   189,     0,   181,   180,
955       15,    27,     0,   103,   283,    42,    83,   123,     0,   136,
956       15,     0,    68,   187,     0,    15,     0,   107,   108,   109,
957      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
958      120,   121,   122,    96,    15,   105,    86,    15,   268,    67,
959      156,     0,   171,     0,    15,    90,   173,   104,     0,    15,
960        0,     0,   106
961 };
962 
963 /* YYDEFGOTO[NTERM-NUM].  */
964 static const yytype_int16 yydefgoto[] =
965 {
966       -1,     7,     8,     9,    10,    11,    12,    13,    33,    41,
967       30,   451,    31,   248,   143,    48,   250,   406,   452,   453,
968       49,    50,   273,   257,   310,   433,   114,   115,   379,   116,
969      265,   403,   266,    51,   313,    52,   276,   498,    65,    66,
970       67,    53,   262,   492,   524,   534,   525,    54,   235,   382,
971      103,    34,    55,   278,   460,   156,   127,   128,   129,   130,
972      385,   131,   132,   133,   134,   321,   135,   397,   490,   263,
973      136,    59,    60,    61,    62,   417,   104,   210,   105,   106,
974      107,   298,   371,   299,   300,   308,   108,   109,   110,   461,
975      462,   463,   158,   211
976 };
977 
978 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
979    STATE-NUM.  */
980 #define YYPACT_NINF -305
981 static const yytype_int16 yypact[] =
982 {
983      454,   -86,    19,    76,    89,   236,   210,   303,  -305,  -305,
984     -305,  -305,  -305,  -305,   322,  -305,  -305,  -305,  -305,  -305,
985     -305,  -305,   308,   308,   308,   308,   308,   308,  -305,   435,
986     -305,  -305,   445,   308,   409,    21,  1132,   263,   476,   148,
987       26,   387,   340,   151,  -305,    99,   370,  -305,  -305,  -305,
988     -305,  -305,  -305,  -305,  -305,   691,   350,  -305,  -305,   248,
989     1489,   355,   158,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
990     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
991     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
992     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
993     -305,  -305,  -305,  1301,   873,  -305,  -305,  -305,  -305,  -305,
994     -305,  -305,  -305,  -305,  -305,     1,  -305,   269,   302,  -305,
995     -305,   374,   313,  -305,   368,  -305,    54,   691,   212,   513,
996     -305,   698,    34,  -305,  -305,  -305,  -305,   375,  -305,  -305,
997     -305,  -305,  -305,   603,   359,   372,   384,   418,   309,   388,
998       91,   421,   157,   415,   156,  -305,    98,  -305,  -305,   423,
999      308,   308,  -305,   425,   352,  1507,  -305,  1416,  -305,  -305,
1000     -305,   194,   115,   308,   308,   308,   308,   308,   308,   308,
1001      308,   308,   308,   308,   308,   308,   308,   308,   308,   308,
1002      308,   308,   308,   308,   308,   308,   308,   308,   308,  1056,
1003     1178,   308,   308,   308,  -305,  -305,  -305,  -305,  -305,  -305,
1004     1327,   506,  1219,   346,   160,   390,  -305,  -305,  -305,   440,
1005     -305,  -305,  -305,  -305,   413,  -305,  -305,  -305,  -305,  -305,
1006     -305,  -305,  -305,  -305,  -305,   691,  -305,  -305,   698,   802,
1007      811,  -305,  -305,    24,   184,   371,  -305,   456,  -305,  -305,
1008     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
1009      457,   452,  -305,  -305,  -305,  -305,   106,  -305,  -305,  -305,
1010     -305,  -305,  -305,   289,  -305,  -305,  -305,  -305,   391,   308,
1011      428,  -305,   461,  -305,   371,   308,  -305,   308,   690,  -305,
1012     -305,  -305,  -305,   963,  -305,  -305,  1598,  -305,  -305,  -305,
1013      265,   308,   308,   308,  -305,   371,  -305,   104,   338,  -305,
1014     -305,  -305,  -305,   443,  -305,   130,   476,   476,   302,   368,
1015      486,    53,   476,   308,   308,   308,  -305,   906,  -305,  -305,
1016     -305,   501,  -305,  -305,    28,   436,   387,   279,  -305,  -305,
1017      129,   308,  -305,  -305,  -305,   412,   308,  -305,   168,  -305,
1018     -305,  -305,   308,   448,   308,   308,  1327,   600,   412,    21,
1019     -305,  1260,  -305,   308,  -305,  -305,  -305,  -305,   498,   499,
1020     -305,  1557,  -305,  -305,   308,   131,   128,   308,  -305,  -305,
1021     -305,  -305,   438,  -305,  -305,   247,  -305,   308,  -305,   173,
1022     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,   314,    24,
1023     -305,  -305,  -305,   449,    66,  -305,  1080,   308,   263,   434,
1024      207,  -305,   409,   308,  -305,   600,  -305,  1434,   469,  -305,
1025      308,   238,   308,   308,   308,  -305,  -305,   308,  -305,  -305,
1026      308,  1260,  -305,   468,  -305,   128,   136,   169,  -305,  -305,
1027      183,   174,  -305,  -305,   447,  -305,   235,  -305,  -305,   412,
1028       24,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
1029     -305,  -305,  -305,  -305,  1080,  -305,  -305,  -305,  -305,   308,
1030       59,   308,  -305,   308,  -305,  -305,   189,   229,  1132,  -305,
1031        1,  -305,  -305,   196,  -305,  -305,  -305,   447,  -305,  -305,
1032     -305,  -305,  1561,  -305,  -305,   387,  -305,   308,   254,  -305,
1033     -305,   780,   308,  -305,   476,  -305,    17,  -305,  -305,  -305,
1034     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,
1035     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,   308,   308,
1036     -305,    22,  -305,   412,  -305,   308,  -305,  -305,   201,  -305,
1037      412,    59,  -305
1038 };
1039 
1040 /* YYPGOTO[NTERM-NUM].  */
1041 static const yytype_int16 yypgoto[] =
1042 {
1043     -305,  -305,  -305,  -305,  -305,  -305,  -305,  -305,     0,  -243,
1044     -305,  -239,  -305,  -305,  -305,   397,  -305,   154,  -305,  -305,
1045     -201,  -156,  -305,   315,  -305,  -305,   205,   152,  -305,  -305,
1046      -34,  -305,   259,  -129,  -305,   -66,  -305,  -305,   111,  -305,
1047      249,   -60,  -305,  -305,  -305,  -305,  -305,   -52,  -305,  -305,
1048     -184,   261,  -305,  -305,   556,   576,  -305,   295,   407,  -125,
1049     -305,   503,  -106,  -102,  -305,   331,  -305,   244,   166,   395,
1050     -305,  -304,  -305,   615,  -305,   266,  -185,  -305,   472,   -82,
1051     -305,   323,  -305,   326,  -207,  -305,  -305,  -305,  -305,   234,
1052      575,   577,   110,   -24
1053 };
1054 
1055 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1056    positive, shift that token.  If negative, reduce the rule which
1057    number is the opposite.  If YYTABLE_NINF, syntax error.  */
1058 #define YYTABLE_NINF -276
1059 static const yytype_int16 yytable[] =
1060 {
1061       14,    15,   229,   117,   330,   307,   -15,   336,    22,    23,
1062       24,    25,    26,    27,   293,    32,   296,    35,    36,    37,
1063       38,   205,    28,   239,   328,   240,    28,    28,   296,    40,
1064      242,    28,   159,    28,    63,   241,   165,   167,   140,  -151,
1065      400,   409,   145,   147,   148,   150,   152,   153,   154,   119,
1066      120,   121,   122,   123,   418,   226,   -15,   160,   161,   328,
1067      390,   391,   392,   393,   394,   171,   172,   342,   173,   174,
1068      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1069      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1070      195,   196,   197,   198,   199,   200,    28,    64,   201,   226,
1071      149,   202,   203,   357,   -15,   364,    16,   342,   470,   212,
1072      326,   137,   329,   213,   532,   214,   215,   365,   297,   536,
1073       28,  -151,  -151,   224,   366,  -151,  -151,  -151,  -151,  -151,
1074      297,   383,   327,    28,    28,    28,    28,   242,   242,   282,
1075      244,    28,   227,   380,   381,   493,   228,   329,   432,   139,
1076      395,   396,   146,   -79,   421,   -79,   -15,   279,   344,   168,
1077      445,    28,    28,    17,   -15,    28,   285,   287,   -15,   288,
1078      272,   415,   170,    28,    28,   169,    18,   296,   269,    28,
1079      390,   391,   392,   393,   394,  -135,   -15,   296,    28,    28,
1080      228,   384,   386,   343,    28,  -274,  -274,   368,   344,    28,
1081      369,    28,   290,   370,   301,   454,    28,   291,   302,   303,
1082      495,   494,    28,   230,   362,   311,   405,   231,   113,   331,
1083      315,   316,   317,    99,   477,   242,   100,   481,   322,   537,
1084      364,   499,   323,   324,   325,   137,   541,   138,   -15,   364,
1085       28,    19,   365,   -15,   277,   137,   334,   296,   439,   366,
1086      455,   365,   -15,   523,   254,   411,   259,   337,   366,   268,
1087      482,   271,   340,   454,   341,   486,   364,    63,    28,   345,
1088      442,   396,   346,   332,   484,   485,   348,   456,   365,   297,
1089      500,   352,   289,   354,    28,   366,   355,   503,   539,   297,
1090      358,   359,   -73,   501,   137,   361,   467,    20,   363,  -137,
1091     -137,   255,   542,    21,  -137,   232,   233,   234,   455,   374,
1092      375,   376,   377,    28,    28,   230,   111,   112,   387,   231,
1093     -275,  -275,   368,   217,   491,   369,   223,    28,   370,   -15,
1094       64,   368,   111,   112,   369,   456,   162,   370,   -15,   -15,
1095      457,   144,   526,   407,   408,   -15,   458,   410,    29,   297,
1096      413,    28,   -15,   113,   459,   333,   367,   216,   368,   309,
1097      420,   369,   111,   112,   370,   422,   423,   424,   256,   113,
1098      427,   151,   430,   431,   465,   -15,   243,    28,   435,   530,
1099      436,   437,   -15,   -15,   255,   440,   441,   218,   387,   225,
1100      351,   219,   141,   142,   351,    28,   264,   444,   457,   113,
1101      446,  -138,  -138,   312,   458,   449,  -138,   232,   233,   234,
1102       56,   469,   459,    56,   471,   351,   473,    28,    28,   -15,
1103       28,   476,    57,    28,   280,    57,   318,   274,   275,   372,
1104      373,   260,   478,   319,   125,   261,    39,   137,   483,   157,
1105      -15,   283,   137,   487,   166,   402,   137,   -15,   253,   -15,
1106       28,   256,    28,   314,   220,   221,   222,   335,   137,   488,
1107      489,    58,   353,   351,    58,   339,   497,    42,    43,    44,
1108       45,   137,    46,   258,   261,   137,    47,   267,   349,   502,
1109      214,    28,     1,     2,     3,   504,     4,     5,     6,   118,
1110      506,   119,   120,   121,   122,   123,   124,   125,   378,   388,
1111      528,   529,   399,   425,   426,   531,  -218,   305,   137,   351,
1112      270,  -218,   137,   448,   281,   137,   438,   350,  -218,  -218,
1113      468,  -218,   466,   137,   533,   401,   236,   535,   119,   120,
1114      121,   122,   123,   237,   538,   137,   137,   414,   447,   540,
1115      249,  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,
1116     -218,  -218,  -218,  -218,  -218,  -218,  -218,   475,  -218,   479,
1117      333,   464,  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,
1118     -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,
1119     -218,   434,  -218,  -218,  -218,  -218,  -218,   480,   347,  -218,
1120     -218,  -218,  -218,  -218,  -218,  -218,   404,  -218,  -218,  -218,
1121     -215,   206,  -218,    -2,   245,  -218,  -218,  -218,   419,   527,
1122      412,   155,  -223,  -223,   126,  -223,  -134,   398,  -134,  -134,
1123     -134,  -134,  -134,  -134,  -134,    42,    43,    44,    45,   246,
1124       46,   320,   238,   443,    47,  -215,  -215,  -215,  -215,  -215,
1125     -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
1126     -215,   389,   416,   505,   247,   338,  -223,  -223,  -223,  -223,
1127     -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,
1128     -223,  -223,  -223,  -223,  -223,   164,  -223,  -223,  -223,  -223,
1129     -223,   472,   304,  -223,  -223,  -223,  -223,   137,  -215,  -215,
1130     -210,   356,   208,  -223,   428,    28,  -223,   429,   496,   209,
1131     -223,  -223,    68,    69,   118,    70,   119,   120,   121,   122,
1132      123,   124,   125,   119,   120,   121,   122,   123,   251,     0,
1133      252,     0,     0,     0,     0,  -210,  -210,  -210,  -210,  -210,
1134     -210,  -210,  -210,  -210,  -210,  -210,  -210,  -210,  -210,  -210,
1135     -210,     0,     0,     0,     0,     0,    71,    72,    73,    74,
1136       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1137       85,    86,    87,    88,    89,     0,    90,    91,    92,    93,
1138       94,     0,     0,    95,    96,    97,    98,  -210,  -210,  -210,
1139        0,   206,     0,    99,     0,   -15,   100,     0,     0,     0,
1140      101,   102,  -223,  -223,     0,  -223,     0,     0,     0,     0,
1141        0,     0,     0,   241,     0,     0,     0,  -154,     0,     0,
1142        0,     0,   241,     0,     0,     0,  -150,   119,   120,   121,
1143      122,   123,     0,     0,     0,     0,   119,   120,   121,   122,
1144      123,     0,     0,     0,     0,     0,  -223,  -223,  -223,  -223,
1145     -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,
1146     -223,  -223,  -223,  -223,  -223,     0,  -223,  -223,  -223,  -223,
1147     -223,     0,     0,  -223,  -223,  -223,  -223,   137,     0,     0,
1148        0,   -15,   208,  -223,   206,     0,  -223,     0,     0,   209,
1149     -223,  -223,     0,     0,     0,  -223,  -223,     0,  -223,  -154,
1150     -154,     0,     0,  -154,  -154,  -154,  -154,  -154,  -150,  -150,
1151        0,     0,  -150,  -150,  -150,  -150,  -150,   241,     0,     0,
1152        0,  -153,     0,     0,     0,     0,     0,     0,     0,     0,
1153        0,   119,   120,   121,   122,   123,     0,     0,     0,  -223,
1154     -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,
1155     -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,     0,  -223,
1156     -223,  -223,  -223,  -223,     0,     0,  -223,  -223,  -223,  -223,
1157      137,   207,     0,     0,   206,   208,  -223,     0,     0,  -223,
1158        0,     0,   209,  -223,  -223,  -223,  -223,     0,  -223,     0,
1159        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1160        0,     0,     0,  -153,  -153,     0,     0,  -153,  -153,  -153,
1161     -153,  -153,     0,     0,     0,     0,     0,     0,     0,     0,
1162        0,     0,     0,     0,     0,     0,     0,     0,     0,  -223,
1163     -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,
1164     -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,     0,  -223,
1165     -223,  -223,  -223,  -223,     0,     0,  -223,  -223,  -223,  -223,
1166      137,     0,     0,     0,   360,   208,  -223,   292,     0,  -223,
1167        0,    28,   209,  -223,  -223,     0,     0,     0,    68,    69,
1168        0,    70,     0,     0,     0,     0,     0,     0,     0,     0,
1169      328,   450,     0,     0,     0,     0,     0,     0,     0,     0,
1170        0,     0,     0,   118,     0,   119,   120,   121,   122,   123,
1171      124,   125,    42,    43,    44,    45,     0,    46,     0,     0,
1172        0,    47,    71,    72,    73,    74,    75,    76,    77,    78,
1173       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1174       89,   247,    90,    91,    92,    93,    94,    28,     0,    95,
1175       96,    97,    98,     0,    68,    69,     0,    70,     0,    99,
1176        0,     0,   100,     0,     0,     0,   101,   102,     0,     0,
1177        0,     0,     0,     0,     0,     0,     0,     0,   329,     0,
1178        0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
1179        0,     0,     0,    28,     0,     0,     0,     0,    71,    72,
1180       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1181       83,    84,    85,    86,    87,    88,    89,     0,    90,    91,
1182       92,    93,    94,     0,     0,    95,    96,    97,    98,     0,
1183      306,     0,     0,     0,    28,    99,     0,     0,   100,     0,
1184        0,     0,   101,   102,    71,    72,    73,    74,    75,    76,
1185       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1186       87,    88,     0,     0,    90,    91,    92,     0,     0,     0,
1187        0,     0,     0,     0,     0,    28,     0,     0,   295,     0,
1188        0,    99,     0,     0,   100,    71,    72,    73,    74,    75,
1189       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1190       86,    87,    88,     0,     0,    90,    91,    92,     0,     0,
1191        0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
1192        0,     0,    99,     0,     0,   100,    71,    72,    73,    74,
1193       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1194       85,    86,    87,    88,     0,     0,    90,    91,    92,    68,
1195       69,     0,    70,     0,     0,     0,     0,     0,     0,     0,
1196      295,     0,     0,    99,     0,     0,   100,    71,    72,    73,
1197       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1198       84,    85,    86,    87,    88,   204,     0,    90,    91,    92,
1199        0,     0,     0,    71,    72,    73,    74,    75,    76,    77,
1200       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1201       88,    89,     0,    90,    91,    92,    93,    94,     0,     0,
1202       95,    96,    97,    98,     0,     0,   -15,   284,     0,     0,
1203       99,   -15,     0,   100,     0,     0,     0,   101,   102,   -15,
1204        0,     0,     0,     0,  -205,   474,     0,     0,     0,     0,
1205        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1206        0,   -15,   -15,   -15,   -15,   -15,   -15,   -15,   -15,   -15,
1207      -15,   -15,   -15,   -15,   -15,   -15,   -15,     0,   -15,  -205,
1208     -205,  -205,  -205,  -205,  -205,  -205,  -205,  -205,  -205,  -205,
1209     -205,  -205,  -205,  -205,  -205,     0,     0,     0,     0,  -192,
1210      163,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1211        0,     0,    57,   -15,   -15,   286,     0,  -196,   284,     0,
1212        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1213        0,  -205,  -205,  -205,  -192,  -192,  -192,  -192,  -192,  -192,
1214     -192,  -192,  -192,  -192,  -192,  -192,  -192,  -192,  -192,  -192,
1215        0,    58,  -196,  -196,  -196,  -196,  -196,  -196,  -196,  -196,
1216     -196,  -196,  -196,  -196,  -196,  -196,  -196,  -196,     0,     0,
1217        0,   328,     0,     0,     0,     0,     0,     0,     0,     0,
1218        0,     0,     0,     0,     0,     0,   137,  -192,     0,     0,
1219        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1220        0,     0,     0,     0,     0,  -196,   507,   508,   509,   510,
1221      511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
1222      521,   522,     0,    71,    72,    73,    74,    75,    76,    77,
1223       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1224       88,     0,     0,    90,    91,    92,     0,     0,     0,     0,
1225        0,     0,     0,     0,     0,     0,     0,   295,     0,   329,
1226       99,     0,     0,   100,    71,    72,    73,    74,    75,    76,
1227       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1228       87,    88,     0,     0,    90,    91,    92
1229 };
1230 
1231 #define yypact_value_is_default(yystate) \
1232   ((yystate) == (-305))
1233 
1234 #define yytable_value_is_error(yytable_value) \
1235   YYID (0)
1236 
1237 static const yytype_int16 yycheck[] =
1238 {
1239        0,    87,   127,    37,   243,   212,     5,   250,     8,     9,
1240       10,    11,    12,    13,   199,    15,   200,    17,    18,    19,
1241       20,   103,     5,   129,     0,   131,     5,     5,   212,    29,
1242      132,     5,    56,     5,    13,     1,    60,    61,    12,     5,
1243       12,   345,    42,    43,    44,    45,    46,    47,    48,    15,
1244       16,    17,    18,    19,   358,     1,    55,    57,    58,     0,
1245        7,     8,     9,    10,    11,    65,    66,     1,    68,    69,
1246       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1247       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1248       90,    91,    92,    93,    94,    95,     5,    76,    98,     1,
1249        1,   101,   102,   288,     5,     1,    87,     1,   412,   109,
1250      235,    87,    88,   113,    97,   115,   116,    13,   200,    97,
1251        5,    87,    88,   123,    20,    91,    92,    93,    94,    95,
1252      212,   315,   238,     5,     5,     5,     5,   239,   240,   163,
1253      140,     5,    88,    13,    14,   449,    92,    88,    17,    39,
1254       97,    98,     1,    87,   361,    89,     5,   157,    92,     1,
1255      399,     5,     5,    87,    13,     5,   166,   167,    17,   169,
1256       13,   356,    62,     5,     5,    17,    87,   361,    87,     5,
1257        7,     8,     9,    10,    11,    87,    87,   371,     5,     5,
1258       92,   316,   317,    87,     5,    91,    92,    93,    92,     5,
1259       96,     5,    87,    99,   204,   406,     5,    92,   208,   209,
1260      453,   450,     5,     1,   296,    55,    87,     5,    90,   243,
1261      220,   221,   222,    93,   431,   327,    96,    91,   228,   533,
1262        1,   470,   232,   233,   234,    87,   540,    89,    87,     1,
1263        5,     5,    13,     5,    88,    87,   246,   431,     1,    20,
1264      406,    13,     5,   492,   144,    87,   146,   257,    20,   149,
1265       91,   151,   262,   464,   264,    91,     1,    13,     5,   269,
1266       97,    98,   272,    89,    91,    92,   276,   406,    13,   361,
1267       91,   281,    88,   283,     5,    20,   286,    91,    87,   371,
1268      290,   291,    13,   478,    87,   295,    89,    87,   298,    87,
1269       88,    12,   541,     0,    92,    93,    94,    95,   464,   309,
1270      310,   311,   312,     5,     5,     1,    53,    54,   318,     5,
1271       91,    92,    93,    21,    89,    96,    13,     5,    99,    91,
1272       76,    93,    53,    54,    96,   464,    88,    99,    91,    92,
1273      406,     1,    88,   343,   344,     5,   406,   347,    26,   431,
1274      350,     5,    12,    90,   406,   245,    91,    88,    93,    13,
1275      360,    96,    53,    54,    99,   365,   366,   367,    79,    90,
1276      370,     1,   372,   373,   408,     5,     1,     5,   378,   504,
1277      380,   381,    12,    13,    12,   385,   386,    13,   388,    21,
1278      280,    17,     5,     6,   284,     5,    87,   397,   464,    90,
1279      400,    87,    88,    13,   464,   405,    92,    93,    94,    95,
1280        1,   411,   464,     1,   414,   305,   416,     5,     5,    79,
1281        5,   421,    13,     5,     1,    13,    13,    12,    13,    91,
1282       92,    13,   432,    20,    21,    17,     1,    87,   438,    89,
1283        5,    89,    87,   443,    89,   335,    87,    12,    89,    79,
1284        5,    79,     5,    13,    80,    81,    82,     1,    87,    12,
1285       13,    52,     1,   353,    52,    13,   466,    22,    23,    24,
1286       25,    87,    27,    89,    17,    87,    31,    89,    87,   479,
1287      480,     5,    28,    29,    30,   485,    32,    33,    34,    13,
1288      490,    15,    16,    17,    18,    19,    20,    21,    55,    13,
1289      500,   501,     1,     5,     5,   505,     0,     1,    87,   399,
1290       89,     5,    87,   403,    89,    87,    78,    89,    12,    13,
1291      410,    15,    88,    87,   524,    89,    13,   527,    15,    16,
1292       17,    18,    19,    20,   534,    87,    87,    89,    89,   539,
1293      143,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1294       44,    45,    46,    47,    48,    49,    50,    88,    52,    91,
1295      450,   407,    56,    57,    58,    59,    60,    61,    62,    63,
1296       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1297       74,   376,    76,    77,    78,    79,    80,   435,   273,    83,
1298       84,    85,    86,    87,    88,    89,   337,    91,    92,    93,
1299        0,     1,    96,     0,     1,    99,   100,   101,   359,   498,
1300      349,    55,    12,    13,    38,    15,    13,   322,    15,    16,
1301       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1302       27,   224,   129,   389,    31,    35,    36,    37,    38,    39,
1303       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1304       50,   320,    52,   487,    51,   260,    56,    57,    58,    59,
1305       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1306       70,    71,    72,    73,    74,    60,    76,    77,    78,    79,
1307       80,   415,   210,    83,    84,    85,    86,    87,    88,    89,
1308        0,     1,    92,    93,   371,     5,    96,   371,   464,    99,
1309      100,   101,    12,    13,    13,    15,    15,    16,    17,    18,
1310       19,    20,    21,    15,    16,    17,    18,    19,   143,    -1,
1311      143,    -1,    -1,    -1,    -1,    35,    36,    37,    38,    39,
1312       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1313       50,    -1,    -1,    -1,    -1,    -1,    56,    57,    58,    59,
1314       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1315       70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
1316       80,    -1,    -1,    83,    84,    85,    86,    87,    88,    89,
1317       -1,     1,    -1,    93,    -1,     5,    96,    -1,    -1,    -1,
1318      100,   101,    12,    13,    -1,    15,    -1,    -1,    -1,    -1,
1319       -1,    -1,    -1,     1,    -1,    -1,    -1,     5,    -1,    -1,
1320       -1,    -1,     1,    -1,    -1,    -1,     5,    15,    16,    17,
1321       18,    19,    -1,    -1,    -1,    -1,    15,    16,    17,    18,
1322       19,    -1,    -1,    -1,    -1,    -1,    56,    57,    58,    59,
1323       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1324       70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
1325       80,    -1,    -1,    83,    84,    85,    86,    87,    -1,    -1,
1326       -1,    91,    92,    93,     1,    -1,    96,    -1,    -1,    99,
1327      100,   101,    -1,    -1,    -1,    12,    13,    -1,    15,    87,
1328       88,    -1,    -1,    91,    92,    93,    94,    95,    87,    88,
1329       -1,    -1,    91,    92,    93,    94,    95,     1,    -1,    -1,
1330       -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1331       -1,    15,    16,    17,    18,    19,    -1,    -1,    -1,    56,
1332       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1333       67,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
1334       77,    78,    79,    80,    -1,    -1,    83,    84,    85,    86,
1335       87,    88,    -1,    -1,     1,    92,    93,    -1,    -1,    96,
1336       -1,    -1,    99,   100,   101,    12,    13,    -1,    15,    -1,
1337       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1338       -1,    -1,    -1,    87,    88,    -1,    -1,    91,    92,    93,
1339       94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1340       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    56,
1341       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1342       67,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
1343       77,    78,    79,    80,    -1,    -1,    83,    84,    85,    86,
1344       87,    -1,    -1,    -1,    91,    92,    93,     1,    -1,    96,
1345       -1,     5,    99,   100,   101,    -1,    -1,    -1,    12,    13,
1346       -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1347        0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1348       -1,    -1,    -1,    13,    -1,    15,    16,    17,    18,    19,
1349       20,    21,    22,    23,    24,    25,    -1,    27,    -1,    -1,
1350       -1,    31,    56,    57,    58,    59,    60,    61,    62,    63,
1351       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1352       74,    51,    76,    77,    78,    79,    80,     5,    -1,    83,
1353       84,    85,    86,    -1,    12,    13,    -1,    15,    -1,    93,
1354       -1,    -1,    96,    -1,    -1,    -1,   100,   101,    -1,    -1,
1355       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,
1356       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,
1357       -1,    -1,    -1,     5,    -1,    -1,    -1,    -1,    56,    57,
1358       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1359       68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
1360       78,    79,    80,    -1,    -1,    83,    84,    85,    86,    -1,
1361        1,    -1,    -1,    -1,     5,    93,    -1,    -1,    96,    -1,
1362       -1,    -1,   100,   101,    56,    57,    58,    59,    60,    61,
1363       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1364       72,    73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1,
1365       -1,    -1,    -1,    -1,    -1,     5,    -1,    -1,    90,    -1,
1366       -1,    93,    -1,    -1,    96,    56,    57,    58,    59,    60,
1367       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1368       71,    72,    73,    -1,    -1,    76,    77,    78,    -1,    -1,
1369       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
1370       -1,    -1,    93,    -1,    -1,    96,    56,    57,    58,    59,
1371       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1372       70,    71,    72,    73,    -1,    -1,    76,    77,    78,    12,
1373       13,    -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1374       90,    -1,    -1,    93,    -1,    -1,    96,    56,    57,    58,
1375       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1376       69,    70,    71,    72,    73,    74,    -1,    76,    77,    78,
1377       -1,    -1,    -1,    56,    57,    58,    59,    60,    61,    62,
1378       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1379       73,    74,    -1,    76,    77,    78,    79,    80,    -1,    -1,
1380       83,    84,    85,    86,    -1,    -1,     0,     1,    -1,    -1,
1381       93,     5,    -1,    96,    -1,    -1,    -1,   100,   101,    13,
1382       -1,    -1,    -1,    -1,     0,     1,    -1,    -1,    -1,    -1,
1383       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1384       -1,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1385       44,    45,    46,    47,    48,    49,    50,    -1,    52,    35,
1386       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1387       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,     0,
1388        1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1389       -1,    -1,    13,    87,    88,    89,    -1,     0,     1,    -1,
1390       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1391       -1,    87,    88,    89,    35,    36,    37,    38,    39,    40,
1392       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1393       -1,    52,    35,    36,    37,    38,    39,    40,    41,    42,
1394       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
1395       -1,     0,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1396       -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    -1,    -1,
1397       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1398       -1,    -1,    -1,    -1,    -1,    88,    35,    36,    37,    38,
1399       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1400       49,    50,    -1,    56,    57,    58,    59,    60,    61,    62,
1401       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1402       73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1,
1403       -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    88,
1404       93,    -1,    -1,    96,    56,    57,    58,    59,    60,    61,
1405       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1406       72,    73,    -1,    -1,    76,    77,    78
1407 };
1408 
1409 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1410    symbol of state STATE-NUM.  */
1411 static const yytype_uint8 yystos[] =
1412 {
1413        0,    28,    29,    30,    32,    33,    34,   103,   104,   105,
1414      106,   107,   108,   109,   110,    87,    87,    87,    87,     5,
1415       87,     0,   110,   110,   110,   110,   110,   110,     5,    26,
1416      112,   114,   110,   110,   153,   110,   110,   110,   110,     1,
1417      110,   111,    22,    23,    24,    25,    27,    31,   117,   122,
1418      123,   135,   137,   143,   149,   154,     1,    13,    52,   173,
1419      174,   175,   176,    13,    76,   140,   141,   142,    12,    13,
1420       15,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1421       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1422       76,    77,    78,    79,    80,    83,    84,    85,    86,    93,
1423       96,   100,   101,   152,   178,   180,   181,   182,   188,   189,
1424      190,    53,    54,    90,   128,   129,   131,   132,    13,    15,
1425       16,    17,    18,    19,    20,    21,   157,   158,   159,   160,
1426      161,   163,   164,   165,   166,   168,   172,    87,    89,   194,
1427       12,     5,     6,   116,     1,   110,     1,   110,   110,     1,
1428      110,     1,   110,   110,   110,   156,   157,    89,   194,   195,
1429      110,   110,    88,     1,   175,   195,    89,   195,     1,    17,
1430      194,   110,   110,   110,   110,   110,   110,   110,   110,   110,
1431      110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
1432      110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
1433      110,   110,   110,   110,    74,   181,     1,    88,    92,    99,
1434      179,   195,   110,   110,   110,   110,    88,    21,    13,    17,
1435       80,    81,    82,    13,   110,    21,     1,    88,    92,   161,
1436        1,     5,    93,    94,    95,   150,    13,    20,   163,   164,
1437      164,     1,   165,     1,   110,     1,    26,    51,   115,   117,
1438      118,   192,   193,    89,   194,    12,    79,   125,    89,   194,
1439       13,    17,   144,   171,    87,   132,   134,    89,   194,    87,
1440       89,   194,    13,   124,    12,    13,   138,    88,   155,   110,
1441        1,    89,   195,    89,     1,   110,    89,   110,   110,    88,
1442       87,    92,     1,   178,     1,    90,   152,   181,   183,   185,
1443      186,   110,   110,   110,   180,     1,     1,   186,   187,    13,
1444      126,    55,    13,   136,    13,   110,   110,   110,    13,    20,
1445      160,   167,   110,   110,   110,   110,   161,   164,     0,    88,
1446      113,   195,    89,   194,   110,     1,   111,   110,   171,    13,
1447      110,   110,     1,    87,    92,   110,   110,   125,   110,    87,
1448       89,   194,   110,     1,   110,   110,     1,   178,   110,   110,
1449       91,   110,   181,   110,     1,    13,    20,    91,    93,    96,
1450       99,   184,    91,    92,   110,   110,   110,   110,    55,   130,
1451       13,    14,   151,   152,   161,   162,   161,   110,    13,   167,
1452        7,     8,     9,    10,    11,    97,    98,   169,   159,     1,
1453       12,    89,   194,   133,   134,    87,   119,   110,   110,   173,
1454      110,    87,   153,   110,    89,   178,    52,   177,   173,   142,
1455      110,   186,   110,   110,   110,     5,     5,   110,   183,   185,
1456      110,   110,    17,   127,   128,   110,   110,   110,    78,     1,
1457      110,   110,    97,   169,   110,   113,   110,    89,   194,   110,
1458        1,   113,   120,   121,   122,   123,   135,   137,   143,   149,
1459      156,   191,   192,   193,   119,   132,    88,    89,   194,   110,
1460      173,   110,   177,   110,     1,    88,   110,   186,   110,    91,
1461      129,    91,    91,   110,    91,    92,    91,   110,    12,    13,
1462      170,    89,   145,   173,   113,   111,   191,   110,   139,   113,
1463       91,   178,   110,    91,   110,   170,   110,    35,    36,    37,
1464       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1465       48,    49,    50,   113,   146,   148,    88,   140,   110,   110,
1466      161,   110,    97,   110,   147,   110,    97,   173,   110,    87,
1467      110,   173,   113
1468 };
1469 
1470 #define yyerrok		(yyerrstatus = 0)
1471 #define yyclearin	(yychar = YYEMPTY)
1472 #define YYEMPTY		(-2)
1473 #define YYEOF		0
1474 
1475 #define YYACCEPT	goto yyacceptlab
1476 #define YYABORT		goto yyabortlab
1477 #define YYERROR		goto yyerrorlab
1478 
1479 
1480 /* Like YYERROR except do call yyerror.  This remains here temporarily
1481    to ease the transition to the new meaning of YYERROR, for GCC.
1482    Once GCC version 2 has supplanted version 1, this can go.  However,
1483    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
1484    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
1485    discussed.  */
1486 
1487 #define YYFAIL		goto yyerrlab
1488 #if defined YYFAIL
1489   /* This is here to suppress warnings from the GCC cpp's
1490      -Wunused-macros.  Normally we don't worry about that warning, but
1491      some users do, and we want to make it easy for users to remove
1492      YYFAIL uses, which will produce warnings from Bison 2.5.  */
1493 #endif
1494 
1495 #define YYRECOVERING()  (!!yyerrstatus)
1496 
1497 #define YYBACKUP(Token, Value)					\
1498 do								\
1499   if (yychar == YYEMPTY && yylen == 1)				\
1500     {								\
1501       yychar = (Token);						\
1502       yylval = (Value);						\
1503       YYPOPSTACK (1);						\
1504       goto yybackup;						\
1505     }								\
1506   else								\
1507     {								\
1508       yyerror (YY_("syntax error: cannot back up")); \
1509       YYERROR;							\
1510     }								\
1511 while (YYID (0))
1512 
1513 
1514 #define YYTERROR	1
1515 #define YYERRCODE	256
1516 
1517 
1518 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1519    If N is 0, then set CURRENT to the empty location which ends
1520    the previous symbol: RHS[0] (always defined).  */
1521 
1522 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1523 #ifndef YYLLOC_DEFAULT
1524 # define YYLLOC_DEFAULT(Current, Rhs, N)				\
1525     do									\
1526       if (YYID (N))                                                    \
1527 	{								\
1528 	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
1529 	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
1530 	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
1531 	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
1532 	}								\
1533       else								\
1534 	{								\
1535 	  (Current).first_line   = (Current).last_line   =		\
1536 	    YYRHSLOC (Rhs, 0).last_line;				\
1537 	  (Current).first_column = (Current).last_column =		\
1538 	    YYRHSLOC (Rhs, 0).last_column;				\
1539 	}								\
1540     while (YYID (0))
1541 #endif
1542 
1543 
1544 /* This macro is provided for backward compatibility. */
1545 
1546 #ifndef YY_LOCATION_PRINT
1547 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1548 #endif
1549 
1550 
1551 /* YYLEX -- calling `yylex' with the right arguments.  */
1552 
1553 #ifdef YYLEX_PARAM
1554 # define YYLEX yylex (&yylval, YYLEX_PARAM)
1555 #else
1556 # define YYLEX yylex (&yylval)
1557 #endif
1558 
1559 /* Enable debugging if requested.  */
1560 #if YYDEBUG
1561 
1562 # ifndef YYFPRINTF
1563 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1564 #  define YYFPRINTF fprintf
1565 # endif
1566 
1567 # define YYDPRINTF(Args)			\
1568 do {						\
1569   if (yydebug)					\
1570     YYFPRINTF Args;				\
1571 } while (YYID (0))
1572 
1573 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
1574 do {									  \
1575   if (yydebug)								  \
1576     {									  \
1577       YYFPRINTF (stderr, "%s ", Title);					  \
1578       yy_symbol_print (stderr,						  \
1579 		  Type, Value); \
1580       YYFPRINTF (stderr, "\n");						  \
1581     }									  \
1582 } while (YYID (0))
1583 
1584 
1585 /*--------------------------------.
1586 | Print this symbol on YYOUTPUT.  |
1587 `--------------------------------*/
1588 
1589 /*ARGSUSED*/
1590 #if (defined __STDC__ || defined __C99__FUNC__ \
1591      || defined __cplusplus || defined _MSC_VER)
1592 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep)1593 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1594 #else
1595 static void
1596 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
1597     FILE *yyoutput;
1598     int yytype;
1599     YYSTYPE const * const yyvaluep;
1600 #endif
1601 {
1602   if (!yyvaluep)
1603     return;
1604 # ifdef YYPRINT
1605   if (yytype < YYNTOKENS)
1606     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1607 # else
1608   YYUSE (yyoutput);
1609 # endif
1610   switch (yytype)
1611     {
1612       default:
1613 	break;
1614     }
1615 }
1616 
1617 
1618 /*--------------------------------.
1619 | Print this symbol on YYOUTPUT.  |
1620 `--------------------------------*/
1621 
1622 #if (defined __STDC__ || defined __C99__FUNC__ \
1623      || defined __cplusplus || defined _MSC_VER)
1624 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep)1625 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1626 #else
1627 static void
1628 yy_symbol_print (yyoutput, yytype, yyvaluep)
1629     FILE *yyoutput;
1630     int yytype;
1631     YYSTYPE const * const yyvaluep;
1632 #endif
1633 {
1634   if (yytype < YYNTOKENS)
1635     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1636   else
1637     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1638 
1639   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1640   YYFPRINTF (yyoutput, ")");
1641 }
1642 
1643 /*------------------------------------------------------------------.
1644 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1645 | TOP (included).                                                   |
1646 `------------------------------------------------------------------*/
1647 
1648 #if (defined __STDC__ || defined __C99__FUNC__ \
1649      || defined __cplusplus || defined _MSC_VER)
1650 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)1651 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1652 #else
1653 static void
1654 yy_stack_print (yybottom, yytop)
1655     yytype_int16 *yybottom;
1656     yytype_int16 *yytop;
1657 #endif
1658 {
1659   YYFPRINTF (stderr, "Stack now");
1660   for (; yybottom <= yytop; yybottom++)
1661     {
1662       int yybot = *yybottom;
1663       YYFPRINTF (stderr, " %d", yybot);
1664     }
1665   YYFPRINTF (stderr, "\n");
1666 }
1667 
1668 # define YY_STACK_PRINT(Bottom, Top)				\
1669 do {								\
1670   if (yydebug)							\
1671     yy_stack_print ((Bottom), (Top));				\
1672 } while (YYID (0))
1673 
1674 
1675 /*------------------------------------------------.
1676 | Report that the YYRULE is going to be reduced.  |
1677 `------------------------------------------------*/
1678 
1679 #if (defined __STDC__ || defined __C99__FUNC__ \
1680      || defined __cplusplus || defined _MSC_VER)
1681 static void
yy_reduce_print(YYSTYPE * yyvsp,int yyrule)1682 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1683 #else
1684 static void
1685 yy_reduce_print (yyvsp, yyrule)
1686     YYSTYPE *yyvsp;
1687     int yyrule;
1688 #endif
1689 {
1690   int yynrhs = yyr2[yyrule];
1691   int yyi;
1692   unsigned long int yylno = yyrline[yyrule];
1693   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1694 	     yyrule - 1, yylno);
1695   /* The symbols being reduced.  */
1696   for (yyi = 0; yyi < yynrhs; yyi++)
1697     {
1698       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1699       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1700 		       &(yyvsp[(yyi + 1) - (yynrhs)])
1701 		       		       );
1702       YYFPRINTF (stderr, "\n");
1703     }
1704 }
1705 
1706 # define YY_REDUCE_PRINT(Rule)		\
1707 do {					\
1708   if (yydebug)				\
1709     yy_reduce_print (yyvsp, Rule); \
1710 } while (YYID (0))
1711 
1712 /* Nonzero means print parse trace.  It is left uninitialized so that
1713    multiple parsers can coexist.  */
1714 int yydebug;
1715 #else /* !YYDEBUG */
1716 # define YYDPRINTF(Args)
1717 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1718 # define YY_STACK_PRINT(Bottom, Top)
1719 # define YY_REDUCE_PRINT(Rule)
1720 #endif /* !YYDEBUG */
1721 
1722 
1723 /* YYINITDEPTH -- initial size of the parser's stacks.  */
1724 #ifndef	YYINITDEPTH
1725 # define YYINITDEPTH 200
1726 #endif
1727 
1728 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1729    if the built-in stack extension method is used).
1730 
1731    Do not make this value too large; the results are undefined if
1732    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1733    evaluated with infinite-precision integer arithmetic.  */
1734 
1735 #ifndef YYMAXDEPTH
1736 # define YYMAXDEPTH 10000
1737 #endif
1738 
1739 
1740 #if YYERROR_VERBOSE
1741 
1742 # ifndef yystrlen
1743 #  if defined __GLIBC__ && defined _STRING_H
1744 #   define yystrlen strlen
1745 #  else
1746 /* Return the length of YYSTR.  */
1747 #if (defined __STDC__ || defined __C99__FUNC__ \
1748      || defined __cplusplus || defined _MSC_VER)
1749 static YYSIZE_T
yystrlen(const char * yystr)1750 yystrlen (const char *yystr)
1751 #else
1752 static YYSIZE_T
1753 yystrlen (yystr)
1754     const char *yystr;
1755 #endif
1756 {
1757   YYSIZE_T yylen;
1758   for (yylen = 0; yystr[yylen]; yylen++)
1759     continue;
1760   return yylen;
1761 }
1762 #  endif
1763 # endif
1764 
1765 # ifndef yystpcpy
1766 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1767 #   define yystpcpy stpcpy
1768 #  else
1769 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1770    YYDEST.  */
1771 #if (defined __STDC__ || defined __C99__FUNC__ \
1772      || defined __cplusplus || defined _MSC_VER)
1773 static char *
yystpcpy(char * yydest,const char * yysrc)1774 yystpcpy (char *yydest, const char *yysrc)
1775 #else
1776 static char *
1777 yystpcpy (yydest, yysrc)
1778     char *yydest;
1779     const char *yysrc;
1780 #endif
1781 {
1782   char *yyd = yydest;
1783   const char *yys = yysrc;
1784 
1785   while ((*yyd++ = *yys++) != '\0')
1786     continue;
1787 
1788   return yyd - 1;
1789 }
1790 #  endif
1791 # endif
1792 
1793 # ifndef yytnamerr
1794 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1795    quotes and backslashes, so that it's suitable for yyerror.  The
1796    heuristic is that double-quoting is unnecessary unless the string
1797    contains an apostrophe, a comma, or backslash (other than
1798    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1799    null, do not copy; instead, return the length of what the result
1800    would have been.  */
1801 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)1802 yytnamerr (char *yyres, const char *yystr)
1803 {
1804   if (*yystr == '"')
1805     {
1806       YYSIZE_T yyn = 0;
1807       char const *yyp = yystr;
1808 
1809       for (;;)
1810 	switch (*++yyp)
1811 	  {
1812 	  case '\'':
1813 	  case ',':
1814 	    goto do_not_strip_quotes;
1815 
1816 	  case '\\':
1817 	    if (*++yyp != '\\')
1818 	      goto do_not_strip_quotes;
1819 	    /* Fall through.  */
1820 	  default:
1821 	    if (yyres)
1822 	      yyres[yyn] = *yyp;
1823 	    yyn++;
1824 	    break;
1825 
1826 	  case '"':
1827 	    if (yyres)
1828 	      yyres[yyn] = '\0';
1829 	    return yyn;
1830 	  }
1831     do_not_strip_quotes: ;
1832     }
1833 
1834   if (! yyres)
1835     return yystrlen (yystr);
1836 
1837   return yystpcpy (yyres, yystr) - yyres;
1838 }
1839 # endif
1840 
1841 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1842    about the unexpected token YYTOKEN for the state stack whose top is
1843    YYSSP.
1844 
1845    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
1846    not large enough to hold the message.  In that case, also set
1847    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
1848    required number of bytes is too large to store.  */
1849 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)1850 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1851                 yytype_int16 *yyssp, int yytoken)
1852 {
1853   YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
1854   YYSIZE_T yysize = yysize0;
1855   YYSIZE_T yysize1;
1856   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1857   /* Internationalized format string. */
1858   const char *yyformat = 0;
1859   /* Arguments of yyformat. */
1860   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1861   /* Number of reported tokens (one for the "unexpected", one per
1862      "expected"). */
1863   int yycount = 0;
1864 
1865   /* There are many possibilities here to consider:
1866      - Assume YYFAIL is not used.  It's too flawed to consider.  See
1867        <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1868        for details.  YYERROR is fine as it does not invoke this
1869        function.
1870      - If this state is a consistent state with a default action, then
1871        the only way this function was invoked is if the default action
1872        is an error action.  In that case, don't check for expected
1873        tokens because there are none.
1874      - The only way there can be no lookahead present (in yychar) is if
1875        this state is a consistent state with a default action.  Thus,
1876        detecting the absence of a lookahead is sufficient to determine
1877        that there is no unexpected or expected token to report.  In that
1878        case, just report a simple "syntax error".
1879      - Don't assume there isn't a lookahead just because this state is a
1880        consistent state with a default action.  There might have been a
1881        previous inconsistent state, consistent state with a non-default
1882        action, or user semantic action that manipulated yychar.
1883      - Of course, the expected token list depends on states to have
1884        correct lookahead information, and it depends on the parser not
1885        to perform extra reductions after fetching a lookahead from the
1886        scanner and before detecting a syntax error.  Thus, state merging
1887        (from LALR or IELR) and default reductions corrupt the expected
1888        token list.  However, the list is correct for canonical LR with
1889        one exception: it will still contain any token that will not be
1890        accepted due to an error action in a later state.
1891   */
1892   if (yytoken != YYEMPTY)
1893     {
1894       int yyn = yypact[*yyssp];
1895       yyarg[yycount++] = yytname[yytoken];
1896       if (!yypact_value_is_default (yyn))
1897         {
1898           /* Start YYX at -YYN if negative to avoid negative indexes in
1899              YYCHECK.  In other words, skip the first -YYN actions for
1900              this state because they are default actions.  */
1901           int yyxbegin = yyn < 0 ? -yyn : 0;
1902           /* Stay within bounds of both yycheck and yytname.  */
1903           int yychecklim = YYLAST - yyn + 1;
1904           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1905           int yyx;
1906 
1907           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1908             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1909                 && !yytable_value_is_error (yytable[yyx + yyn]))
1910               {
1911                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1912                   {
1913                     yycount = 1;
1914                     yysize = yysize0;
1915                     break;
1916                   }
1917                 yyarg[yycount++] = yytname[yyx];
1918                 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1919                 if (! (yysize <= yysize1
1920                        && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1921                   return 2;
1922                 yysize = yysize1;
1923               }
1924         }
1925     }
1926 
1927   switch (yycount)
1928     {
1929 # define YYCASE_(N, S)                      \
1930       case N:                               \
1931         yyformat = S;                       \
1932       break
1933       YYCASE_(0, YY_("syntax error"));
1934       YYCASE_(1, YY_("syntax error, unexpected %s"));
1935       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1936       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1937       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1938       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1939 # undef YYCASE_
1940     }
1941 
1942   yysize1 = yysize + yystrlen (yyformat);
1943   if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1944     return 2;
1945   yysize = yysize1;
1946 
1947   if (*yymsg_alloc < yysize)
1948     {
1949       *yymsg_alloc = 2 * yysize;
1950       if (! (yysize <= *yymsg_alloc
1951              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1952         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1953       return 1;
1954     }
1955 
1956   /* Avoid sprintf, as that infringes on the user's name space.
1957      Don't have undefined behavior even if the translation
1958      produced a string with the wrong number of "%s"s.  */
1959   {
1960     char *yyp = *yymsg;
1961     int yyi = 0;
1962     while ((*yyp = *yyformat) != '\0')
1963       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1964         {
1965           yyp += yytnamerr (yyp, yyarg[yyi++]);
1966           yyformat += 2;
1967         }
1968       else
1969         {
1970           yyp++;
1971           yyformat++;
1972         }
1973   }
1974   return 0;
1975 }
1976 #endif /* YYERROR_VERBOSE */
1977 
1978 /*-----------------------------------------------.
1979 | Release the memory associated to this symbol.  |
1980 `-----------------------------------------------*/
1981 
1982 /*ARGSUSED*/
1983 #if (defined __STDC__ || defined __C99__FUNC__ \
1984      || defined __cplusplus || defined _MSC_VER)
1985 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep)1986 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1987 #else
1988 static void
1989 yydestruct (yymsg, yytype, yyvaluep)
1990     const char *yymsg;
1991     int yytype;
1992     YYSTYPE *yyvaluep;
1993 #endif
1994 {
1995   YYUSE (yyvaluep);
1996 
1997   if (!yymsg)
1998     yymsg = "Deleting";
1999   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2000 
2001   switch (yytype)
2002     {
2003 
2004       default:
2005 	break;
2006     }
2007 }
2008 
2009 
2010 /* Prevent warnings from -Wmissing-prototypes.  */
2011 #ifdef YYPARSE_PARAM
2012 #if defined __STDC__ || defined __cplusplus
2013 int yyparse (void *YYPARSE_PARAM);
2014 #else
2015 int yyparse ();
2016 #endif
2017 #else /* ! YYPARSE_PARAM */
2018 #if defined __STDC__ || defined __cplusplus
2019 int yyparse (void);
2020 #else
2021 int yyparse ();
2022 #endif
2023 #endif /* ! YYPARSE_PARAM */
2024 
2025 
2026 /*----------.
2027 | yyparse.  |
2028 `----------*/
2029 
2030 #ifdef YYPARSE_PARAM
2031 #if (defined __STDC__ || defined __C99__FUNC__ \
2032      || defined __cplusplus || defined _MSC_VER)
2033 int
yyparse(void * YYPARSE_PARAM)2034 yyparse (void *YYPARSE_PARAM)
2035 #else
2036 int
2037 yyparse (YYPARSE_PARAM)
2038     void *YYPARSE_PARAM;
2039 #endif
2040 #else /* ! YYPARSE_PARAM */
2041 #if (defined __STDC__ || defined __C99__FUNC__ \
2042      || defined __cplusplus || defined _MSC_VER)
2043 int
2044 yyparse (void)
2045 #else
2046 int
2047 yyparse ()
2048 
2049 #endif
2050 #endif
2051 {
2052 /* The lookahead symbol.  */
2053 int yychar;
2054 
2055 /* The semantic value of the lookahead symbol.  */
2056 YYSTYPE yylval;
2057 
2058     /* Number of syntax errors so far.  */
2059     int yynerrs;
2060 
2061     int yystate;
2062     /* Number of tokens to shift before error messages enabled.  */
2063     int yyerrstatus;
2064 
2065     /* The stacks and their tools:
2066        `yyss': related to states.
2067        `yyvs': related to semantic values.
2068 
2069        Refer to the stacks thru separate pointers, to allow yyoverflow
2070        to reallocate them elsewhere.  */
2071 
2072     /* The state stack.  */
2073     yytype_int16 yyssa[YYINITDEPTH];
2074     yytype_int16 *yyss;
2075     yytype_int16 *yyssp;
2076 
2077     /* The semantic value stack.  */
2078     YYSTYPE yyvsa[YYINITDEPTH];
2079     YYSTYPE *yyvs;
2080     YYSTYPE *yyvsp;
2081 
2082     YYSIZE_T yystacksize;
2083 
2084   int yyn;
2085   int yyresult;
2086   /* Lookahead token as an internal (translated) token number.  */
2087   int yytoken;
2088   /* The variables used to return semantic value and location from the
2089      action routines.  */
2090   YYSTYPE yyval;
2091 
2092 #if YYERROR_VERBOSE
2093   /* Buffer for error messages, and its allocated size.  */
2094   char yymsgbuf[128];
2095   char *yymsg = yymsgbuf;
2096   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2097 #endif
2098 
2099 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
2100 
2101   /* The number of symbols on the RHS of the reduced rule.
2102      Keep to zero when no symbol should be popped.  */
2103   int yylen = 0;
2104 
2105   yytoken = 0;
2106   yyss = yyssa;
2107   yyvs = yyvsa;
2108   yystacksize = YYINITDEPTH;
2109 
2110   YYDPRINTF ((stderr, "Starting parse\n"));
2111 
2112   yystate = 0;
2113   yyerrstatus = 0;
2114   yynerrs = 0;
2115   yychar = YYEMPTY; /* Cause a token to be read.  */
2116 
2117   /* Initialize stack pointers.
2118      Waste one element of value and location stack
2119      so that they stay on the same level as the state stack.
2120      The wasted elements are never initialized.  */
2121   yyssp = yyss;
2122   yyvsp = yyvs;
2123 
2124   goto yysetstate;
2125 
2126 /*------------------------------------------------------------.
2127 | yynewstate -- Push a new state, which is found in yystate.  |
2128 `------------------------------------------------------------*/
2129  yynewstate:
2130   /* In all cases, when you get here, the value and location stacks
2131      have just been pushed.  So pushing a state here evens the stacks.  */
2132   yyssp++;
2133 
2134  yysetstate:
2135   *yyssp = yystate;
2136 
2137   if (yyss + yystacksize - 1 <= yyssp)
2138     {
2139       /* Get the current used size of the three stacks, in elements.  */
2140       YYSIZE_T yysize = yyssp - yyss + 1;
2141 
2142 #ifdef yyoverflow
2143       {
2144 	/* Give user a chance to reallocate the stack.  Use copies of
2145 	   these so that the &'s don't force the real ones into
2146 	   memory.  */
2147 	YYSTYPE *yyvs1 = yyvs;
2148 	yytype_int16 *yyss1 = yyss;
2149 
2150 	/* Each stack pointer address is followed by the size of the
2151 	   data in use in that stack, in bytes.  This used to be a
2152 	   conditional around just the two extra args, but that might
2153 	   be undefined if yyoverflow is a macro.  */
2154 	yyoverflow (YY_("memory exhausted"),
2155 		    &yyss1, yysize * sizeof (*yyssp),
2156 		    &yyvs1, yysize * sizeof (*yyvsp),
2157 		    &yystacksize);
2158 
2159 	yyss = yyss1;
2160 	yyvs = yyvs1;
2161       }
2162 #else /* no yyoverflow */
2163 # ifndef YYSTACK_RELOCATE
2164       goto yyexhaustedlab;
2165 # else
2166       /* Extend the stack our own way.  */
2167       if (YYMAXDEPTH <= yystacksize)
2168 	goto yyexhaustedlab;
2169       yystacksize *= 2;
2170       if (YYMAXDEPTH < yystacksize)
2171 	yystacksize = YYMAXDEPTH;
2172 
2173       {
2174 	yytype_int16 *yyss1 = yyss;
2175 	union yyalloc *yyptr =
2176 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2177 	if (! yyptr)
2178 	  goto yyexhaustedlab;
2179 	YYSTACK_RELOCATE (yyss_alloc, yyss);
2180 	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2181 #  undef YYSTACK_RELOCATE
2182 	if (yyss1 != yyssa)
2183 	  YYSTACK_FREE (yyss1);
2184       }
2185 # endif
2186 #endif /* no yyoverflow */
2187 
2188       yyssp = yyss + yysize - 1;
2189       yyvsp = yyvs + yysize - 1;
2190 
2191       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2192 		  (unsigned long int) yystacksize));
2193 
2194       if (yyss + yystacksize - 1 <= yyssp)
2195 	YYABORT;
2196     }
2197 
2198   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2199 
2200   if (yystate == YYFINAL)
2201     YYACCEPT;
2202 
2203   goto yybackup;
2204 
2205 /*-----------.
2206 | yybackup.  |
2207 `-----------*/
2208 yybackup:
2209 
2210   /* Do appropriate processing given the current state.  Read a
2211      lookahead token if we need one and don't already have one.  */
2212 
2213   /* First try to decide what to do without reference to lookahead token.  */
2214   yyn = yypact[yystate];
2215   if (yypact_value_is_default (yyn))
2216     goto yydefault;
2217 
2218   /* Not known => get a lookahead token if don't already have one.  */
2219 
2220   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2221   if (yychar == YYEMPTY)
2222     {
2223       YYDPRINTF ((stderr, "Reading a token: "));
2224       yychar = YYLEX;
2225     }
2226 
2227   if (yychar <= YYEOF)
2228     {
2229       yychar = yytoken = YYEOF;
2230       YYDPRINTF ((stderr, "Now at end of input.\n"));
2231     }
2232   else
2233     {
2234       yytoken = YYTRANSLATE (yychar);
2235       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2236     }
2237 
2238   /* If the proper action on seeing token YYTOKEN is to reduce or to
2239      detect an error, take that action.  */
2240   yyn += yytoken;
2241   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2242     goto yydefault;
2243   yyn = yytable[yyn];
2244   if (yyn <= 0)
2245     {
2246       if (yytable_value_is_error (yyn))
2247         goto yyerrlab;
2248       yyn = -yyn;
2249       goto yyreduce;
2250     }
2251 
2252   /* Count tokens shifted since error; after three, turn off error
2253      status.  */
2254   if (yyerrstatus)
2255     yyerrstatus--;
2256 
2257   /* Shift the lookahead token.  */
2258   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2259 
2260   /* Discard the shifted token.  */
2261   yychar = YYEMPTY;
2262 
2263   yystate = yyn;
2264   *++yyvsp = yylval;
2265 
2266   goto yynewstate;
2267 
2268 
2269 /*-----------------------------------------------------------.
2270 | yydefault -- do the default action for the current state.  |
2271 `-----------------------------------------------------------*/
2272 yydefault:
2273   yyn = yydefact[yystate];
2274   if (yyn == 0)
2275     goto yyerrlab;
2276   goto yyreduce;
2277 
2278 
2279 /*-----------------------------.
2280 | yyreduce -- Do a reduction.  |
2281 `-----------------------------*/
2282 yyreduce:
2283   /* yyn is the number of a rule to reduce with.  */
2284   yylen = yyr2[yyn];
2285 
2286   /* If YYLEN is nonzero, implement the default value of the action:
2287      `$$ = $1'.
2288 
2289      Otherwise, the following line sets YYVAL to garbage.
2290      This behavior is undocumented and Bison
2291      users should not rely upon it.  Assigning to YYVAL
2292      unconditionally makes the parser a bit smaller, and it avoids a
2293      GCC warning that YYVAL may be used uninitialized.  */
2294   yyval = yyvsp[1-yylen];
2295 
2296 
2297   YY_REDUCE_PRINT (yyn);
2298   switch (yyn)
2299     {
2300         case 9:
2301 
2302 /* Line 1806 of yacc.c  */
2303 #line 303 "../Source/WebCore/css/CSSGrammar.y"
2304     {
2305         static_cast<CSSParser*>(parser)->m_rule = (yyvsp[(4) - (6)].rule);
2306     }
2307     break;
2308 
2309   case 10:
2310 
2311 /* Line 1806 of yacc.c  */
2312 #line 309 "../Source/WebCore/css/CSSGrammar.y"
2313     {
2314         static_cast<CSSParser*>(parser)->m_keyframe = (yyvsp[(4) - (6)].keyframeRule);
2315     }
2316     break;
2317 
2318   case 11:
2319 
2320 /* Line 1806 of yacc.c  */
2321 #line 315 "../Source/WebCore/css/CSSGrammar.y"
2322     {
2323         /* can be empty */
2324     }
2325     break;
2326 
2327   case 12:
2328 
2329 /* Line 1806 of yacc.c  */
2330 #line 321 "../Source/WebCore/css/CSSGrammar.y"
2331     {
2332         CSSParser* p = static_cast<CSSParser*>(parser);
2333         if ((yyvsp[(4) - (5)].valueList)) {
2334             p->m_valueList = p->sinkFloatingValueList((yyvsp[(4) - (5)].valueList));
2335             int oldParsedProperties = p->m_numParsedProperties;
2336             if (!p->parseValue(p->m_id, p->m_important))
2337                 p->rollbackLastProperties(p->m_numParsedProperties - oldParsedProperties);
2338             delete p->m_valueList;
2339             p->m_valueList = 0;
2340         }
2341     }
2342     break;
2343 
2344   case 13:
2345 
2346 /* Line 1806 of yacc.c  */
2347 #line 335 "../Source/WebCore/css/CSSGrammar.y"
2348     {
2349          CSSParser* p = static_cast<CSSParser*>(parser);
2350          p->m_mediaQuery = p->sinkFloatingMediaQuery((yyvsp[(4) - (5)].mediaQuery));
2351      }
2352     break;
2353 
2354   case 14:
2355 
2356 /* Line 1806 of yacc.c  */
2357 #line 342 "../Source/WebCore/css/CSSGrammar.y"
2358     {
2359         if ((yyvsp[(4) - (5)].selectorList)) {
2360             CSSParser* p = static_cast<CSSParser*>(parser);
2361             if (p->m_selectorListForParseSelector)
2362                 p->m_selectorListForParseSelector->adoptSelectorVector(*(yyvsp[(4) - (5)].selectorList));
2363         }
2364     }
2365     break;
2366 
2367   case 21:
2368 
2369 /* Line 1806 of yacc.c  */
2370 #line 364 "../Source/WebCore/css/CSSGrammar.y"
2371     {
2372   }
2373     break;
2374 
2375   case 24:
2376 
2377 /* Line 1806 of yacc.c  */
2378 #line 374 "../Source/WebCore/css/CSSGrammar.y"
2379     {
2380      CSSParser* p = static_cast<CSSParser*>(parser);
2381      (yyval.rule) = static_cast<CSSParser*>(parser)->createCharsetRule((yyvsp[(3) - (5)].string));
2382      if ((yyval.rule) && p->m_styleSheet)
2383          p->m_styleSheet->append((yyval.rule));
2384   }
2385     break;
2386 
2387   case 25:
2388 
2389 /* Line 1806 of yacc.c  */
2390 #line 380 "../Source/WebCore/css/CSSGrammar.y"
2391     {
2392   }
2393     break;
2394 
2395   case 26:
2396 
2397 /* Line 1806 of yacc.c  */
2398 #line 382 "../Source/WebCore/css/CSSGrammar.y"
2399     {
2400   }
2401     break;
2402 
2403   case 27:
2404 
2405 /* Line 1806 of yacc.c  */
2406 #line 387 "../Source/WebCore/css/CSSGrammar.y"
2407     {
2408         // Ignore any @charset rule not at the beginning of the style sheet.
2409         (yyval.rule) = 0;
2410     }
2411     break;
2412 
2413   case 29:
2414 
2415 /* Line 1806 of yacc.c  */
2416 #line 395 "../Source/WebCore/css/CSSGrammar.y"
2417     {
2418      CSSParser* p = static_cast<CSSParser*>(parser);
2419      if ((yyvsp[(2) - (3)].rule) && p->m_styleSheet)
2420          p->m_styleSheet->append((yyvsp[(2) - (3)].rule));
2421  }
2422     break;
2423 
2424   case 30:
2425 
2426 /* Line 1806 of yacc.c  */
2427 #line 403 "../Source/WebCore/css/CSSGrammar.y"
2428     {
2429         (yyval.rule) = (yyvsp[(2) - (2)].rule);
2430     }
2431     break;
2432 
2433   case 37:
2434 
2435 /* Line 1806 of yacc.c  */
2436 #line 415 "../Source/WebCore/css/CSSGrammar.y"
2437     {
2438         static_cast<CSSParser*>(parser)->m_hadSyntacticallyValidCSSRule = true;
2439     }
2440     break;
2441 
2442   case 41:
2443 
2444 /* Line 1806 of yacc.c  */
2445 #line 424 "../Source/WebCore/css/CSSGrammar.y"
2446     { (yyval.ruleList) = 0; }
2447     break;
2448 
2449   case 42:
2450 
2451 /* Line 1806 of yacc.c  */
2452 #line 425 "../Source/WebCore/css/CSSGrammar.y"
2453     {
2454       (yyval.ruleList) = (yyvsp[(1) - (3)].ruleList);
2455       if ((yyvsp[(2) - (3)].rule)) {
2456           if (!(yyval.ruleList))
2457               (yyval.ruleList) = static_cast<CSSParser*>(parser)->createRuleList();
2458           (yyval.ruleList)->append((yyvsp[(2) - (3)].rule));
2459       }
2460   }
2461     break;
2462 
2463   case 53:
2464 
2465 /* Line 1806 of yacc.c  */
2466 #line 453 "../Source/WebCore/css/CSSGrammar.y"
2467     {
2468         (yyval.rule) = static_cast<CSSParser*>(parser)->createImportRule((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].mediaList));
2469     }
2470     break;
2471 
2472   case 54:
2473 
2474 /* Line 1806 of yacc.c  */
2475 #line 456 "../Source/WebCore/css/CSSGrammar.y"
2476     {
2477         (yyval.rule) = 0;
2478     }
2479     break;
2480 
2481   case 55:
2482 
2483 /* Line 1806 of yacc.c  */
2484 #line 459 "../Source/WebCore/css/CSSGrammar.y"
2485     {
2486         (yyval.rule) = 0;
2487     }
2488     break;
2489 
2490   case 56:
2491 
2492 /* Line 1806 of yacc.c  */
2493 #line 462 "../Source/WebCore/css/CSSGrammar.y"
2494     {
2495         (yyval.rule) = 0;
2496     }
2497     break;
2498 
2499   case 57:
2500 
2501 /* Line 1806 of yacc.c  */
2502 #line 468 "../Source/WebCore/css/CSSGrammar.y"
2503     {
2504     static_cast<CSSParser*>(parser)->addNamespace((yyvsp[(3) - (6)].string), (yyvsp[(4) - (6)].string));
2505     (yyval.rule) = 0;
2506 }
2507     break;
2508 
2509   case 58:
2510 
2511 /* Line 1806 of yacc.c  */
2512 #line 472 "../Source/WebCore/css/CSSGrammar.y"
2513     {
2514     (yyval.rule) = 0;
2515 }
2516     break;
2517 
2518   case 59:
2519 
2520 /* Line 1806 of yacc.c  */
2521 #line 475 "../Source/WebCore/css/CSSGrammar.y"
2522     {
2523     (yyval.rule) = 0;
2524 }
2525     break;
2526 
2527   case 60:
2528 
2529 /* Line 1806 of yacc.c  */
2530 #line 478 "../Source/WebCore/css/CSSGrammar.y"
2531     {
2532     (yyval.rule) = 0;
2533 }
2534     break;
2535 
2536   case 61:
2537 
2538 /* Line 1806 of yacc.c  */
2539 #line 484 "../Source/WebCore/css/CSSGrammar.y"
2540     { (yyval.string).characters = 0; }
2541     break;
2542 
2543   case 62:
2544 
2545 /* Line 1806 of yacc.c  */
2546 #line 485 "../Source/WebCore/css/CSSGrammar.y"
2547     { (yyval.string) = (yyvsp[(1) - (2)].string); }
2548     break;
2549 
2550   case 65:
2551 
2552 /* Line 1806 of yacc.c  */
2553 #line 494 "../Source/WebCore/css/CSSGrammar.y"
2554     {
2555         (yyval.string) = (yyvsp[(1) - (2)].string);
2556     }
2557     break;
2558 
2559   case 66:
2560 
2561 /* Line 1806 of yacc.c  */
2562 #line 500 "../Source/WebCore/css/CSSGrammar.y"
2563     {
2564         (yyval.valueList) = 0;
2565     }
2566     break;
2567 
2568   case 67:
2569 
2570 /* Line 1806 of yacc.c  */
2571 #line 503 "../Source/WebCore/css/CSSGrammar.y"
2572     {
2573         (yyval.valueList) = (yyvsp[(3) - (4)].valueList);
2574     }
2575     break;
2576 
2577   case 68:
2578 
2579 /* Line 1806 of yacc.c  */
2580 #line 509 "../Source/WebCore/css/CSSGrammar.y"
2581     {
2582         (yyvsp[(3) - (7)].string).lower();
2583         (yyval.mediaQueryExp) = static_cast<CSSParser*>(parser)->createFloatingMediaQueryExp((yyvsp[(3) - (7)].string), (yyvsp[(5) - (7)].valueList));
2584     }
2585     break;
2586 
2587   case 69:
2588 
2589 /* Line 1806 of yacc.c  */
2590 #line 516 "../Source/WebCore/css/CSSGrammar.y"
2591     {
2592         CSSParser* p = static_cast<CSSParser*>(parser);
2593         (yyval.mediaQueryExpList) = p->createFloatingMediaQueryExpList();
2594         (yyval.mediaQueryExpList)->append(p->sinkFloatingMediaQueryExp((yyvsp[(1) - (1)].mediaQueryExp)));
2595     }
2596     break;
2597 
2598   case 70:
2599 
2600 /* Line 1806 of yacc.c  */
2601 #line 521 "../Source/WebCore/css/CSSGrammar.y"
2602     {
2603         (yyval.mediaQueryExpList) = (yyvsp[(1) - (5)].mediaQueryExpList);
2604         (yyval.mediaQueryExpList)->append(static_cast<CSSParser*>(parser)->sinkFloatingMediaQueryExp((yyvsp[(5) - (5)].mediaQueryExp)));
2605     }
2606     break;
2607 
2608   case 71:
2609 
2610 /* Line 1806 of yacc.c  */
2611 #line 528 "../Source/WebCore/css/CSSGrammar.y"
2612     {
2613         (yyval.mediaQueryExpList) = static_cast<CSSParser*>(parser)->createFloatingMediaQueryExpList();
2614     }
2615     break;
2616 
2617   case 72:
2618 
2619 /* Line 1806 of yacc.c  */
2620 #line 531 "../Source/WebCore/css/CSSGrammar.y"
2621     {
2622         (yyval.mediaQueryExpList) = (yyvsp[(3) - (3)].mediaQueryExpList);
2623     }
2624     break;
2625 
2626   case 73:
2627 
2628 /* Line 1806 of yacc.c  */
2629 #line 537 "../Source/WebCore/css/CSSGrammar.y"
2630     {
2631         (yyval.mediaQueryRestrictor) = MediaQuery::None;
2632     }
2633     break;
2634 
2635   case 74:
2636 
2637 /* Line 1806 of yacc.c  */
2638 #line 540 "../Source/WebCore/css/CSSGrammar.y"
2639     {
2640         (yyval.mediaQueryRestrictor) = MediaQuery::Only;
2641     }
2642     break;
2643 
2644   case 75:
2645 
2646 /* Line 1806 of yacc.c  */
2647 #line 543 "../Source/WebCore/css/CSSGrammar.y"
2648     {
2649         (yyval.mediaQueryRestrictor) = MediaQuery::Not;
2650     }
2651     break;
2652 
2653   case 76:
2654 
2655 /* Line 1806 of yacc.c  */
2656 #line 549 "../Source/WebCore/css/CSSGrammar.y"
2657     {
2658         CSSParser* p = static_cast<CSSParser*>(parser);
2659         (yyval.mediaQuery) = p->createFloatingMediaQuery(p->sinkFloatingMediaQueryExpList((yyvsp[(1) - (1)].mediaQueryExpList)));
2660     }
2661     break;
2662 
2663   case 77:
2664 
2665 /* Line 1806 of yacc.c  */
2666 #line 554 "../Source/WebCore/css/CSSGrammar.y"
2667     {
2668         CSSParser* p = static_cast<CSSParser*>(parser);
2669         (yyvsp[(3) - (4)].string).lower();
2670         (yyval.mediaQuery) = p->createFloatingMediaQuery((yyvsp[(1) - (4)].mediaQueryRestrictor), (yyvsp[(3) - (4)].string), p->sinkFloatingMediaQueryExpList((yyvsp[(4) - (4)].mediaQueryExpList)));
2671     }
2672     break;
2673 
2674   case 78:
2675 
2676 /* Line 1806 of yacc.c  */
2677 #line 562 "../Source/WebCore/css/CSSGrammar.y"
2678     {
2679         (yyval.mediaList) = static_cast<CSSParser*>(parser)->createMediaList();
2680      }
2681     break;
2682 
2683   case 80:
2684 
2685 /* Line 1806 of yacc.c  */
2686 #line 569 "../Source/WebCore/css/CSSGrammar.y"
2687     {
2688         CSSParser* p = static_cast<CSSParser*>(parser);
2689         (yyval.mediaList) = p->createMediaList();
2690         (yyval.mediaList)->appendMediaQuery(p->sinkFloatingMediaQuery((yyvsp[(1) - (1)].mediaQuery)));
2691     }
2692     break;
2693 
2694   case 81:
2695 
2696 /* Line 1806 of yacc.c  */
2697 #line 574 "../Source/WebCore/css/CSSGrammar.y"
2698     {
2699         (yyval.mediaList) = (yyvsp[(1) - (4)].mediaList);
2700         if ((yyval.mediaList))
2701             (yyval.mediaList)->appendMediaQuery(static_cast<CSSParser*>(parser)->sinkFloatingMediaQuery((yyvsp[(4) - (4)].mediaQuery)));
2702     }
2703     break;
2704 
2705   case 82:
2706 
2707 /* Line 1806 of yacc.c  */
2708 #line 579 "../Source/WebCore/css/CSSGrammar.y"
2709     {
2710         (yyval.mediaList) = 0;
2711     }
2712     break;
2713 
2714   case 83:
2715 
2716 /* Line 1806 of yacc.c  */
2717 #line 585 "../Source/WebCore/css/CSSGrammar.y"
2718     {
2719         (yyval.rule) = static_cast<CSSParser*>(parser)->createMediaRule((yyvsp[(3) - (7)].mediaList), (yyvsp[(6) - (7)].ruleList));
2720     }
2721     break;
2722 
2723   case 84:
2724 
2725 /* Line 1806 of yacc.c  */
2726 #line 588 "../Source/WebCore/css/CSSGrammar.y"
2727     {
2728         (yyval.rule) = static_cast<CSSParser*>(parser)->createMediaRule(0, (yyvsp[(5) - (6)].ruleList));
2729     }
2730     break;
2731 
2732   case 85:
2733 
2734 /* Line 1806 of yacc.c  */
2735 #line 594 "../Source/WebCore/css/CSSGrammar.y"
2736     {
2737       (yyval.string) = (yyvsp[(1) - (2)].string);
2738   }
2739     break;
2740 
2741   case 86:
2742 
2743 /* Line 1806 of yacc.c  */
2744 #line 600 "../Source/WebCore/css/CSSGrammar.y"
2745     {
2746         (yyval.rule) = (yyvsp[(7) - (8)].keyframesRule);
2747         (yyvsp[(7) - (8)].keyframesRule)->setNameInternal((yyvsp[(3) - (8)].string));
2748     }
2749     break;
2750 
2751   case 89:
2752 
2753 /* Line 1806 of yacc.c  */
2754 #line 612 "../Source/WebCore/css/CSSGrammar.y"
2755     { (yyval.keyframesRule) = static_cast<CSSParser*>(parser)->createKeyframesRule(); }
2756     break;
2757 
2758   case 90:
2759 
2760 /* Line 1806 of yacc.c  */
2761 #line 613 "../Source/WebCore/css/CSSGrammar.y"
2762     {
2763         (yyval.keyframesRule) = (yyvsp[(1) - (3)].keyframesRule);
2764         if ((yyvsp[(2) - (3)].keyframeRule))
2765             (yyval.keyframesRule)->append((yyvsp[(2) - (3)].keyframeRule));
2766     }
2767     break;
2768 
2769   case 91:
2770 
2771 /* Line 1806 of yacc.c  */
2772 #line 621 "../Source/WebCore/css/CSSGrammar.y"
2773     {
2774         (yyval.keyframeRule) = static_cast<CSSParser*>(parser)->createKeyframeRule((yyvsp[(1) - (6)].valueList));
2775     }
2776     break;
2777 
2778   case 92:
2779 
2780 /* Line 1806 of yacc.c  */
2781 #line 627 "../Source/WebCore/css/CSSGrammar.y"
2782     {
2783         CSSParser* p = static_cast<CSSParser*>(parser);
2784         (yyval.valueList) = p->createFloatingValueList();
2785         (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(1) - (1)].value)));
2786     }
2787     break;
2788 
2789   case 93:
2790 
2791 /* Line 1806 of yacc.c  */
2792 #line 632 "../Source/WebCore/css/CSSGrammar.y"
2793     {
2794         CSSParser* p = static_cast<CSSParser*>(parser);
2795         (yyval.valueList) = (yyvsp[(1) - (5)].valueList);
2796         if ((yyval.valueList))
2797             (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(5) - (5)].value)));
2798     }
2799     break;
2800 
2801   case 94:
2802 
2803 /* Line 1806 of yacc.c  */
2804 #line 641 "../Source/WebCore/css/CSSGrammar.y"
2805     { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (1)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; }
2806     break;
2807 
2808   case 95:
2809 
2810 /* Line 1806 of yacc.c  */
2811 #line 642 "../Source/WebCore/css/CSSGrammar.y"
2812     {
2813         (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER;
2814         CSSParserString& str = (yyvsp[(1) - (1)].string);
2815         if (equalIgnoringCase("from", str.characters, str.length))
2816             (yyval.value).fValue = 0;
2817         else if (equalIgnoringCase("to", str.characters, str.length))
2818             (yyval.value).fValue = 100;
2819         else
2820             YYERROR;
2821     }
2822     break;
2823 
2824   case 96:
2825 
2826 /* Line 1806 of yacc.c  */
2827 #line 656 "../Source/WebCore/css/CSSGrammar.y"
2828     {
2829         CSSParser* p = static_cast<CSSParser*>(parser);
2830         if ((yyvsp[(3) - (8)].selector))
2831             (yyval.rule) = p->createPageRule(p->sinkFloatingSelector((yyvsp[(3) - (8)].selector)));
2832         else {
2833             // Clear properties in the invalid @page rule.
2834             p->clearProperties();
2835             // Also clear margin at-rules here once we fully implement margin at-rules parsing.
2836             (yyval.rule) = 0;
2837         }
2838     }
2839     break;
2840 
2841   case 97:
2842 
2843 /* Line 1806 of yacc.c  */
2844 #line 667 "../Source/WebCore/css/CSSGrammar.y"
2845     {
2846       (yyval.rule) = 0;
2847     }
2848     break;
2849 
2850   case 98:
2851 
2852 /* Line 1806 of yacc.c  */
2853 #line 670 "../Source/WebCore/css/CSSGrammar.y"
2854     {
2855       (yyval.rule) = 0;
2856     }
2857     break;
2858 
2859   case 99:
2860 
2861 /* Line 1806 of yacc.c  */
2862 #line 676 "../Source/WebCore/css/CSSGrammar.y"
2863     {
2864         CSSParser* p = static_cast<CSSParser*>(parser);
2865         (yyval.selector) = p->createFloatingSelector();
2866         (yyval.selector)->setTag(QualifiedName(nullAtom, (yyvsp[(1) - (1)].string), p->m_defaultNamespace));
2867         (yyval.selector)->setForPage();
2868     }
2869     break;
2870 
2871   case 100:
2872 
2873 /* Line 1806 of yacc.c  */
2874 #line 682 "../Source/WebCore/css/CSSGrammar.y"
2875     {
2876         CSSParser* p = static_cast<CSSParser*>(parser);
2877         (yyval.selector) = (yyvsp[(2) - (2)].selector);
2878         if ((yyval.selector)) {
2879             (yyval.selector)->setTag(QualifiedName(nullAtom, (yyvsp[(1) - (2)].string), p->m_defaultNamespace));
2880             (yyval.selector)->setForPage();
2881         }
2882     }
2883     break;
2884 
2885   case 101:
2886 
2887 /* Line 1806 of yacc.c  */
2888 #line 690 "../Source/WebCore/css/CSSGrammar.y"
2889     {
2890         (yyval.selector) = (yyvsp[(1) - (1)].selector);
2891         if ((yyval.selector))
2892             (yyval.selector)->setForPage();
2893     }
2894     break;
2895 
2896   case 102:
2897 
2898 /* Line 1806 of yacc.c  */
2899 #line 695 "../Source/WebCore/css/CSSGrammar.y"
2900     {
2901         CSSParser* p = static_cast<CSSParser*>(parser);
2902         (yyval.selector) = p->createFloatingSelector();
2903         (yyval.selector)->setForPage();
2904     }
2905     break;
2906 
2907   case 105:
2908 
2909 /* Line 1806 of yacc.c  */
2910 #line 708 "../Source/WebCore/css/CSSGrammar.y"
2911     {
2912         static_cast<CSSParser*>(parser)->startDeclarationsForMarginBox();
2913     }
2914     break;
2915 
2916   case 106:
2917 
2918 /* Line 1806 of yacc.c  */
2919 #line 710 "../Source/WebCore/css/CSSGrammar.y"
2920     {
2921         (yyval.rule) = static_cast<CSSParser*>(parser)->createMarginAtRule((yyvsp[(1) - (7)].marginBox));
2922     }
2923     break;
2924 
2925   case 107:
2926 
2927 /* Line 1806 of yacc.c  */
2928 #line 716 "../Source/WebCore/css/CSSGrammar.y"
2929     {
2930         (yyval.marginBox) = CSSSelector::TopLeftCornerMarginBox;
2931     }
2932     break;
2933 
2934   case 108:
2935 
2936 /* Line 1806 of yacc.c  */
2937 #line 719 "../Source/WebCore/css/CSSGrammar.y"
2938     {
2939         (yyval.marginBox) = CSSSelector::TopLeftMarginBox;
2940     }
2941     break;
2942 
2943   case 109:
2944 
2945 /* Line 1806 of yacc.c  */
2946 #line 722 "../Source/WebCore/css/CSSGrammar.y"
2947     {
2948         (yyval.marginBox) = CSSSelector::TopCenterMarginBox;
2949     }
2950     break;
2951 
2952   case 110:
2953 
2954 /* Line 1806 of yacc.c  */
2955 #line 725 "../Source/WebCore/css/CSSGrammar.y"
2956     {
2957         (yyval.marginBox) = CSSSelector::TopRightMarginBox;
2958     }
2959     break;
2960 
2961   case 111:
2962 
2963 /* Line 1806 of yacc.c  */
2964 #line 728 "../Source/WebCore/css/CSSGrammar.y"
2965     {
2966         (yyval.marginBox) = CSSSelector::TopRightCornerMarginBox;
2967     }
2968     break;
2969 
2970   case 112:
2971 
2972 /* Line 1806 of yacc.c  */
2973 #line 731 "../Source/WebCore/css/CSSGrammar.y"
2974     {
2975         (yyval.marginBox) = CSSSelector::BottomLeftCornerMarginBox;
2976     }
2977     break;
2978 
2979   case 113:
2980 
2981 /* Line 1806 of yacc.c  */
2982 #line 734 "../Source/WebCore/css/CSSGrammar.y"
2983     {
2984         (yyval.marginBox) = CSSSelector::BottomLeftMarginBox;
2985     }
2986     break;
2987 
2988   case 114:
2989 
2990 /* Line 1806 of yacc.c  */
2991 #line 737 "../Source/WebCore/css/CSSGrammar.y"
2992     {
2993         (yyval.marginBox) = CSSSelector::BottomCenterMarginBox;
2994     }
2995     break;
2996 
2997   case 115:
2998 
2999 /* Line 1806 of yacc.c  */
3000 #line 740 "../Source/WebCore/css/CSSGrammar.y"
3001     {
3002         (yyval.marginBox) = CSSSelector::BottomRightMarginBox;
3003     }
3004     break;
3005 
3006   case 116:
3007 
3008 /* Line 1806 of yacc.c  */
3009 #line 743 "../Source/WebCore/css/CSSGrammar.y"
3010     {
3011         (yyval.marginBox) = CSSSelector::BottomRightCornerMarginBox;
3012     }
3013     break;
3014 
3015   case 117:
3016 
3017 /* Line 1806 of yacc.c  */
3018 #line 746 "../Source/WebCore/css/CSSGrammar.y"
3019     {
3020         (yyval.marginBox) = CSSSelector::LeftTopMarginBox;
3021     }
3022     break;
3023 
3024   case 118:
3025 
3026 /* Line 1806 of yacc.c  */
3027 #line 749 "../Source/WebCore/css/CSSGrammar.y"
3028     {
3029         (yyval.marginBox) = CSSSelector::LeftMiddleMarginBox;
3030     }
3031     break;
3032 
3033   case 119:
3034 
3035 /* Line 1806 of yacc.c  */
3036 #line 752 "../Source/WebCore/css/CSSGrammar.y"
3037     {
3038         (yyval.marginBox) = CSSSelector::LeftBottomMarginBox;
3039     }
3040     break;
3041 
3042   case 120:
3043 
3044 /* Line 1806 of yacc.c  */
3045 #line 755 "../Source/WebCore/css/CSSGrammar.y"
3046     {
3047         (yyval.marginBox) = CSSSelector::RightTopMarginBox;
3048     }
3049     break;
3050 
3051   case 121:
3052 
3053 /* Line 1806 of yacc.c  */
3054 #line 758 "../Source/WebCore/css/CSSGrammar.y"
3055     {
3056         (yyval.marginBox) = CSSSelector::RightMiddleMarginBox;
3057     }
3058     break;
3059 
3060   case 122:
3061 
3062 /* Line 1806 of yacc.c  */
3063 #line 761 "../Source/WebCore/css/CSSGrammar.y"
3064     {
3065         (yyval.marginBox) = CSSSelector::RightBottomMarginBox;
3066     }
3067     break;
3068 
3069   case 123:
3070 
3071 /* Line 1806 of yacc.c  */
3072 #line 768 "../Source/WebCore/css/CSSGrammar.y"
3073     {
3074         (yyval.rule) = static_cast<CSSParser*>(parser)->createFontFaceRule();
3075     }
3076     break;
3077 
3078   case 124:
3079 
3080 /* Line 1806 of yacc.c  */
3081 #line 771 "../Source/WebCore/css/CSSGrammar.y"
3082     {
3083       (yyval.rule) = 0;
3084     }
3085     break;
3086 
3087   case 125:
3088 
3089 /* Line 1806 of yacc.c  */
3090 #line 774 "../Source/WebCore/css/CSSGrammar.y"
3091     {
3092       (yyval.rule) = 0;
3093     }
3094     break;
3095 
3096   case 126:
3097 
3098 /* Line 1806 of yacc.c  */
3099 #line 780 "../Source/WebCore/css/CSSGrammar.y"
3100     { (yyval.relation) = CSSSelector::DirectAdjacent; }
3101     break;
3102 
3103   case 127:
3104 
3105 /* Line 1806 of yacc.c  */
3106 #line 781 "../Source/WebCore/css/CSSGrammar.y"
3107     { (yyval.relation) = CSSSelector::IndirectAdjacent; }
3108     break;
3109 
3110   case 128:
3111 
3112 /* Line 1806 of yacc.c  */
3113 #line 782 "../Source/WebCore/css/CSSGrammar.y"
3114     { (yyval.relation) = CSSSelector::Child; }
3115     break;
3116 
3117   case 129:
3118 
3119 /* Line 1806 of yacc.c  */
3120 #line 786 "../Source/WebCore/css/CSSGrammar.y"
3121     { (yyval.integer) = (yyvsp[(1) - (1)].integer); }
3122     break;
3123 
3124   case 130:
3125 
3126 /* Line 1806 of yacc.c  */
3127 #line 787 "../Source/WebCore/css/CSSGrammar.y"
3128     { (yyval.integer) = 1; }
3129     break;
3130 
3131   case 131:
3132 
3133 /* Line 1806 of yacc.c  */
3134 #line 791 "../Source/WebCore/css/CSSGrammar.y"
3135     { (yyval.integer) = -1; }
3136     break;
3137 
3138   case 132:
3139 
3140 /* Line 1806 of yacc.c  */
3141 #line 792 "../Source/WebCore/css/CSSGrammar.y"
3142     { (yyval.integer) = 1; }
3143     break;
3144 
3145   case 133:
3146 
3147 /* Line 1806 of yacc.c  */
3148 #line 796 "../Source/WebCore/css/CSSGrammar.y"
3149     {
3150         CSSParser* p = static_cast<CSSParser*>(parser);
3151         p->markPropertyStart();
3152     }
3153     break;
3154 
3155   case 134:
3156 
3157 /* Line 1806 of yacc.c  */
3158 #line 803 "../Source/WebCore/css/CSSGrammar.y"
3159     {
3160         CSSParser* p = static_cast<CSSParser*>(parser);
3161         p->markSelectorListStart();
3162     }
3163     break;
3164 
3165   case 135:
3166 
3167 /* Line 1806 of yacc.c  */
3168 #line 810 "../Source/WebCore/css/CSSGrammar.y"
3169     {
3170         CSSParser* p = static_cast<CSSParser*>(parser);
3171         p->markSelectorListEnd();
3172     }
3173     break;
3174 
3175   case 136:
3176 
3177 /* Line 1806 of yacc.c  */
3178 #line 817 "../Source/WebCore/css/CSSGrammar.y"
3179     {
3180         CSSParser* p = static_cast<CSSParser*>(parser);
3181         (yyval.rule) = p->createStyleRule((yyvsp[(1) - (6)].selectorList));
3182     }
3183     break;
3184 
3185   case 137:
3186 
3187 /* Line 1806 of yacc.c  */
3188 #line 824 "../Source/WebCore/css/CSSGrammar.y"
3189     {
3190         if ((yyvsp[(1) - (1)].selector)) {
3191             CSSParser* p = static_cast<CSSParser*>(parser);
3192             (yyval.selectorList) = p->reusableSelectorVector();
3193             (yyval.selectorList)->shrink(0);
3194             (yyval.selectorList)->append(p->sinkFloatingSelector((yyvsp[(1) - (1)].selector)));
3195             p->updateLastSelectorLineAndPosition();
3196         }
3197     }
3198     break;
3199 
3200   case 138:
3201 
3202 /* Line 1806 of yacc.c  */
3203 #line 833 "../Source/WebCore/css/CSSGrammar.y"
3204     {
3205         if ((yyvsp[(1) - (4)].selectorList) && (yyvsp[(4) - (4)].selector)) {
3206             CSSParser* p = static_cast<CSSParser*>(parser);
3207             (yyval.selectorList) = (yyvsp[(1) - (4)].selectorList);
3208             (yyval.selectorList)->append(p->sinkFloatingSelector((yyvsp[(4) - (4)].selector)));
3209             p->updateLastSelectorLineAndPosition();
3210         } else
3211             (yyval.selectorList) = 0;
3212     }
3213     break;
3214 
3215   case 139:
3216 
3217 /* Line 1806 of yacc.c  */
3218 #line 842 "../Source/WebCore/css/CSSGrammar.y"
3219     {
3220         (yyval.selectorList) = 0;
3221     }
3222     break;
3223 
3224   case 140:
3225 
3226 /* Line 1806 of yacc.c  */
3227 #line 848 "../Source/WebCore/css/CSSGrammar.y"
3228     {
3229         (yyval.selector) = (yyvsp[(1) - (2)].selector);
3230     }
3231     break;
3232 
3233   case 141:
3234 
3235 /* Line 1806 of yacc.c  */
3236 #line 854 "../Source/WebCore/css/CSSGrammar.y"
3237     {
3238         (yyval.selector) = (yyvsp[(1) - (1)].selector);
3239     }
3240     break;
3241 
3242   case 142:
3243 
3244 /* Line 1806 of yacc.c  */
3245 #line 858 "../Source/WebCore/css/CSSGrammar.y"
3246     {
3247         (yyval.selector) = (yyvsp[(1) - (1)].selector);
3248     }
3249     break;
3250 
3251   case 143:
3252 
3253 /* Line 1806 of yacc.c  */
3254 #line 862 "../Source/WebCore/css/CSSGrammar.y"
3255     {
3256         (yyval.selector) = (yyvsp[(2) - (2)].selector);
3257         if (!(yyvsp[(1) - (2)].selector))
3258             (yyval.selector) = 0;
3259         else if ((yyval.selector)) {
3260             CSSParser* p = static_cast<CSSParser*>(parser);
3261             CSSParserSelector* end = (yyval.selector);
3262             while (end->tagHistory())
3263                 end = end->tagHistory();
3264             end->setRelation(CSSSelector::Descendant);
3265             end->setTagHistory(p->sinkFloatingSelector((yyvsp[(1) - (2)].selector)));
3266         }
3267     }
3268     break;
3269 
3270   case 144:
3271 
3272 /* Line 1806 of yacc.c  */
3273 #line 875 "../Source/WebCore/css/CSSGrammar.y"
3274     {
3275         (yyval.selector) = (yyvsp[(3) - (3)].selector);
3276         if (!(yyvsp[(1) - (3)].selector))
3277             (yyval.selector) = 0;
3278         else if ((yyval.selector)) {
3279             CSSParser* p = static_cast<CSSParser*>(parser);
3280             CSSParserSelector* end = (yyval.selector);
3281             while (end->tagHistory())
3282                 end = end->tagHistory();
3283             end->setRelation((yyvsp[(2) - (3)].relation));
3284             end->setTagHistory(p->sinkFloatingSelector((yyvsp[(1) - (3)].selector)));
3285         }
3286     }
3287     break;
3288 
3289   case 145:
3290 
3291 /* Line 1806 of yacc.c  */
3292 #line 888 "../Source/WebCore/css/CSSGrammar.y"
3293     {
3294         (yyval.selector) = 0;
3295     }
3296     break;
3297 
3298   case 146:
3299 
3300 /* Line 1806 of yacc.c  */
3301 #line 894 "../Source/WebCore/css/CSSGrammar.y"
3302     { (yyval.string).characters = 0; (yyval.string).length = 0; }
3303     break;
3304 
3305   case 147:
3306 
3307 /* Line 1806 of yacc.c  */
3308 #line 895 "../Source/WebCore/css/CSSGrammar.y"
3309     { static UChar star = '*'; (yyval.string).characters = &star; (yyval.string).length = 1; }
3310     break;
3311 
3312   case 148:
3313 
3314 /* Line 1806 of yacc.c  */
3315 #line 896 "../Source/WebCore/css/CSSGrammar.y"
3316     { (yyval.string) = (yyvsp[(1) - (2)].string); }
3317     break;
3318 
3319   case 149:
3320 
3321 /* Line 1806 of yacc.c  */
3322 #line 900 "../Source/WebCore/css/CSSGrammar.y"
3323     {
3324         CSSParser* p = static_cast<CSSParser*>(parser);
3325         (yyval.selector) = p->createFloatingSelector();
3326         (yyval.selector)->setTag(QualifiedName(nullAtom, (yyvsp[(1) - (1)].string), p->m_defaultNamespace));
3327     }
3328     break;
3329 
3330   case 150:
3331 
3332 /* Line 1806 of yacc.c  */
3333 #line 905 "../Source/WebCore/css/CSSGrammar.y"
3334     {
3335         (yyval.selector) = (yyvsp[(2) - (2)].selector);
3336         if ((yyval.selector))
3337             static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName(nullAtom, (yyvsp[(1) - (2)].string), (yyval.selector));
3338     }
3339     break;
3340 
3341   case 151:
3342 
3343 /* Line 1806 of yacc.c  */
3344 #line 910 "../Source/WebCore/css/CSSGrammar.y"
3345     {
3346         (yyval.selector) = (yyvsp[(1) - (1)].selector);
3347         if ((yyval.selector))
3348             static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName(nullAtom, starAtom, (yyval.selector));
3349     }
3350     break;
3351 
3352   case 152:
3353 
3354 /* Line 1806 of yacc.c  */
3355 #line 915 "../Source/WebCore/css/CSSGrammar.y"
3356     {
3357         AtomicString namespacePrefix = (yyvsp[(1) - (2)].string);
3358         CSSParser* p = static_cast<CSSParser*>(parser);
3359         (yyval.selector) = p->createFloatingSelector();
3360         if (p->m_styleSheet)
3361             (yyval.selector)->setTag(QualifiedName(namespacePrefix, (yyvsp[(2) - (2)].string),
3362                                       p->m_styleSheet->determineNamespace(namespacePrefix)));
3363         else // FIXME: Shouldn't this case be an error?
3364             (yyval.selector)->setTag(QualifiedName(nullAtom, (yyvsp[(2) - (2)].string), p->m_defaultNamespace));
3365     }
3366     break;
3367 
3368   case 153:
3369 
3370 /* Line 1806 of yacc.c  */
3371 #line 925 "../Source/WebCore/css/CSSGrammar.y"
3372     {
3373         (yyval.selector) = (yyvsp[(3) - (3)].selector);
3374         if ((yyval.selector))
3375             static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName((yyvsp[(1) - (3)].string), (yyvsp[(2) - (3)].string), (yyval.selector));
3376     }
3377     break;
3378 
3379   case 154:
3380 
3381 /* Line 1806 of yacc.c  */
3382 #line 930 "../Source/WebCore/css/CSSGrammar.y"
3383     {
3384         (yyval.selector) = (yyvsp[(2) - (2)].selector);
3385         if ((yyval.selector))
3386             static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName((yyvsp[(1) - (2)].string), starAtom, (yyval.selector));
3387     }
3388     break;
3389 
3390   case 155:
3391 
3392 /* Line 1806 of yacc.c  */
3393 #line 938 "../Source/WebCore/css/CSSGrammar.y"
3394     {
3395         if ((yyvsp[(1) - (1)].selector)) {
3396             CSSParser* p = static_cast<CSSParser*>(parser);
3397             (yyval.selectorList) = p->createFloatingSelectorVector();
3398             (yyval.selectorList)->append(p->sinkFloatingSelector((yyvsp[(1) - (1)].selector)));
3399         } else
3400             (yyval.selectorList) = 0
3401     ;}
3402     break;
3403 
3404   case 156:
3405 
3406 /* Line 1806 of yacc.c  */
3407 #line 946 "../Source/WebCore/css/CSSGrammar.y"
3408     {
3409         if ((yyvsp[(1) - (5)].selectorList) && (yyvsp[(5) - (5)].selector)) {
3410             CSSParser* p = static_cast<CSSParser*>(parser);
3411             (yyval.selectorList) = (yyvsp[(1) - (5)].selectorList);
3412             (yyval.selectorList)->append(p->sinkFloatingSelector((yyvsp[(5) - (5)].selector)));
3413         } else
3414             (yyval.selectorList) = 0;
3415     }
3416     break;
3417 
3418   case 157:
3419 
3420 /* Line 1806 of yacc.c  */
3421 #line 954 "../Source/WebCore/css/CSSGrammar.y"
3422     {
3423         (yyval.selectorList) = 0;
3424     }
3425     break;
3426 
3427   case 158:
3428 
3429 /* Line 1806 of yacc.c  */
3430 #line 960 "../Source/WebCore/css/CSSGrammar.y"
3431     {
3432         CSSParserString& str = (yyvsp[(1) - (1)].string);
3433         CSSParser* p = static_cast<CSSParser*>(parser);
3434         Document* doc = p->document();
3435         if (doc && doc->isHTMLDocument())
3436             str.lower();
3437         (yyval.string) = str;
3438     }
3439     break;
3440 
3441   case 159:
3442 
3443 /* Line 1806 of yacc.c  */
3444 #line 968 "../Source/WebCore/css/CSSGrammar.y"
3445     {
3446         static UChar star = '*';
3447         (yyval.string).characters = &star;
3448         (yyval.string).length = 1;
3449     }
3450     break;
3451 
3452   case 160:
3453 
3454 /* Line 1806 of yacc.c  */
3455 #line 976 "../Source/WebCore/css/CSSGrammar.y"
3456     {
3457         (yyval.selector) = (yyvsp[(1) - (1)].selector);
3458     }
3459     break;
3460 
3461   case 161:
3462 
3463 /* Line 1806 of yacc.c  */
3464 #line 979 "../Source/WebCore/css/CSSGrammar.y"
3465     {
3466         if (!(yyvsp[(2) - (2)].selector))
3467             (yyval.selector) = 0;
3468         else if ((yyvsp[(1) - (2)].selector))
3469             (yyval.selector) = static_cast<CSSParser*>(parser)->updateSpecifiers((yyvsp[(1) - (2)].selector), (yyvsp[(2) - (2)].selector));
3470     }
3471     break;
3472 
3473   case 162:
3474 
3475 /* Line 1806 of yacc.c  */
3476 #line 985 "../Source/WebCore/css/CSSGrammar.y"
3477     {
3478         (yyval.selector) = 0;
3479     }
3480     break;
3481 
3482   case 163:
3483 
3484 /* Line 1806 of yacc.c  */
3485 #line 991 "../Source/WebCore/css/CSSGrammar.y"
3486     {
3487         CSSParser* p = static_cast<CSSParser*>(parser);
3488         (yyval.selector) = p->createFloatingSelector();
3489         (yyval.selector)->setMatch(CSSSelector::Id);
3490         if (!p->m_strict)
3491             (yyvsp[(1) - (1)].string).lower();
3492         (yyval.selector)->setValue((yyvsp[(1) - (1)].string));
3493     }
3494     break;
3495 
3496   case 164:
3497 
3498 /* Line 1806 of yacc.c  */
3499 #line 999 "../Source/WebCore/css/CSSGrammar.y"
3500     {
3501         if ((yyvsp[(1) - (1)].string).characters[0] >= '0' && (yyvsp[(1) - (1)].string).characters[0] <= '9') {
3502             (yyval.selector) = 0;
3503         } else {
3504             CSSParser* p = static_cast<CSSParser*>(parser);
3505             (yyval.selector) = p->createFloatingSelector();
3506             (yyval.selector)->setMatch(CSSSelector::Id);
3507             if (!p->m_strict)
3508                 (yyvsp[(1) - (1)].string).lower();
3509             (yyval.selector)->setValue((yyvsp[(1) - (1)].string));
3510         }
3511     }
3512     break;
3513 
3514   case 168:
3515 
3516 /* Line 1806 of yacc.c  */
3517 #line 1017 "../Source/WebCore/css/CSSGrammar.y"
3518     {
3519         CSSParser* p = static_cast<CSSParser*>(parser);
3520         (yyval.selector) = p->createFloatingSelector();
3521         (yyval.selector)->setMatch(CSSSelector::Class);
3522         if (!p->m_strict)
3523             (yyvsp[(2) - (2)].string).lower();
3524         (yyval.selector)->setValue((yyvsp[(2) - (2)].string));
3525     }
3526     break;
3527 
3528   case 169:
3529 
3530 /* Line 1806 of yacc.c  */
3531 #line 1028 "../Source/WebCore/css/CSSGrammar.y"
3532     {
3533         CSSParserString& str = (yyvsp[(1) - (2)].string);
3534         CSSParser* p = static_cast<CSSParser*>(parser);
3535         Document* doc = p->document();
3536         if (doc && doc->isHTMLDocument())
3537             str.lower();
3538         (yyval.string) = str;
3539     }
3540     break;
3541 
3542   case 170:
3543 
3544 /* Line 1806 of yacc.c  */
3545 #line 1039 "../Source/WebCore/css/CSSGrammar.y"
3546     {
3547         (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector();
3548         (yyval.selector)->setAttribute(QualifiedName(nullAtom, (yyvsp[(3) - (4)].string), nullAtom));
3549         (yyval.selector)->setMatch(CSSSelector::Set);
3550     }
3551     break;
3552 
3553   case 171:
3554 
3555 /* Line 1806 of yacc.c  */
3556 #line 1044 "../Source/WebCore/css/CSSGrammar.y"
3557     {
3558         (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector();
3559         (yyval.selector)->setAttribute(QualifiedName(nullAtom, (yyvsp[(3) - (8)].string), nullAtom));
3560         (yyval.selector)->setMatch((CSSSelector::Match)(yyvsp[(4) - (8)].integer));
3561         (yyval.selector)->setValue((yyvsp[(6) - (8)].string));
3562     }
3563     break;
3564 
3565   case 172:
3566 
3567 /* Line 1806 of yacc.c  */
3568 #line 1050 "../Source/WebCore/css/CSSGrammar.y"
3569     {
3570         AtomicString namespacePrefix = (yyvsp[(3) - (5)].string);
3571         CSSParser* p = static_cast<CSSParser*>(parser);
3572         (yyval.selector) = p->createFloatingSelector();
3573         (yyval.selector)->setAttribute(QualifiedName(namespacePrefix, (yyvsp[(4) - (5)].string),
3574                                    p->m_styleSheet->determineNamespace(namespacePrefix)));
3575         (yyval.selector)->setMatch(CSSSelector::Set);
3576     }
3577     break;
3578 
3579   case 173:
3580 
3581 /* Line 1806 of yacc.c  */
3582 #line 1058 "../Source/WebCore/css/CSSGrammar.y"
3583     {
3584         AtomicString namespacePrefix = (yyvsp[(3) - (9)].string);
3585         CSSParser* p = static_cast<CSSParser*>(parser);
3586         (yyval.selector) = p->createFloatingSelector();
3587         (yyval.selector)->setAttribute(QualifiedName(namespacePrefix, (yyvsp[(4) - (9)].string),
3588                                    p->m_styleSheet->determineNamespace(namespacePrefix)));
3589         (yyval.selector)->setMatch((CSSSelector::Match)(yyvsp[(5) - (9)].integer));
3590         (yyval.selector)->setValue((yyvsp[(7) - (9)].string));
3591     }
3592     break;
3593 
3594   case 174:
3595 
3596 /* Line 1806 of yacc.c  */
3597 #line 1070 "../Source/WebCore/css/CSSGrammar.y"
3598     {
3599         (yyval.integer) = CSSSelector::Exact;
3600     }
3601     break;
3602 
3603   case 175:
3604 
3605 /* Line 1806 of yacc.c  */
3606 #line 1073 "../Source/WebCore/css/CSSGrammar.y"
3607     {
3608         (yyval.integer) = CSSSelector::List;
3609     }
3610     break;
3611 
3612   case 176:
3613 
3614 /* Line 1806 of yacc.c  */
3615 #line 1076 "../Source/WebCore/css/CSSGrammar.y"
3616     {
3617         (yyval.integer) = CSSSelector::Hyphen;
3618     }
3619     break;
3620 
3621   case 177:
3622 
3623 /* Line 1806 of yacc.c  */
3624 #line 1079 "../Source/WebCore/css/CSSGrammar.y"
3625     {
3626         (yyval.integer) = CSSSelector::Begin;
3627     }
3628     break;
3629 
3630   case 178:
3631 
3632 /* Line 1806 of yacc.c  */
3633 #line 1082 "../Source/WebCore/css/CSSGrammar.y"
3634     {
3635         (yyval.integer) = CSSSelector::End;
3636     }
3637     break;
3638 
3639   case 179:
3640 
3641 /* Line 1806 of yacc.c  */
3642 #line 1085 "../Source/WebCore/css/CSSGrammar.y"
3643     {
3644         (yyval.integer) = CSSSelector::Contain;
3645     }
3646     break;
3647 
3648   case 182:
3649 
3650 /* Line 1806 of yacc.c  */
3651 #line 1096 "../Source/WebCore/css/CSSGrammar.y"
3652     {
3653         (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector();
3654         (yyval.selector)->setMatch(CSSSelector::PagePseudoClass);
3655         (yyvsp[(2) - (2)].string).lower();
3656         (yyval.selector)->setValue((yyvsp[(2) - (2)].string));
3657         CSSSelector::PseudoType type = (yyval.selector)->pseudoType();
3658         if (type == CSSSelector::PseudoUnknown)
3659             (yyval.selector) = 0;
3660     }
3661     break;
3662 
3663   case 183:
3664 
3665 /* Line 1806 of yacc.c  */
3666 #line 1107 "../Source/WebCore/css/CSSGrammar.y"
3667     {
3668         (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector();
3669         (yyval.selector)->setMatch(CSSSelector::PseudoClass);
3670         (yyvsp[(2) - (2)].string).lower();
3671         (yyval.selector)->setValue((yyvsp[(2) - (2)].string));
3672         CSSSelector::PseudoType type = (yyval.selector)->pseudoType();
3673         if (type == CSSSelector::PseudoUnknown)
3674             (yyval.selector) = 0;
3675     }
3676     break;
3677 
3678   case 184:
3679 
3680 /* Line 1806 of yacc.c  */
3681 #line 1116 "../Source/WebCore/css/CSSGrammar.y"
3682     {
3683         (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector();
3684         (yyval.selector)->setMatch(CSSSelector::PseudoElement);
3685         (yyvsp[(3) - (3)].string).lower();
3686         (yyval.selector)->setValue((yyvsp[(3) - (3)].string));
3687         // FIXME: This call is needed to force selector to compute the pseudoType early enough.
3688         (yyval.selector)->pseudoType();
3689     }
3690     break;
3691 
3692   case 185:
3693 
3694 /* Line 1806 of yacc.c  */
3695 #line 1129 "../Source/WebCore/css/CSSGrammar.y"
3696     {
3697         if ((yyvsp[(4) - (6)].selectorList)) {
3698             CSSParser *p = static_cast<CSSParser*>(parser);
3699             (yyval.selector) = p->createFloatingSelector();
3700             (yyval.selector)->setMatch(CSSSelector::PseudoClass);
3701             (yyval.selector)->adoptSelectorVector(*p->sinkFloatingSelectorVector((yyvsp[(4) - (6)].selectorList)));
3702             (yyvsp[(2) - (6)].string).lower();
3703             (yyval.selector)->setValue((yyvsp[(2) - (6)].string));
3704             CSSSelector::PseudoType type = (yyval.selector)->pseudoType();
3705             if (type != CSSSelector::PseudoAny)
3706                 (yyval.selector) = 0;
3707         } else
3708             (yyval.selector) = 0;
3709     }
3710     break;
3711 
3712   case 186:
3713 
3714 /* Line 1806 of yacc.c  */
3715 #line 1144 "../Source/WebCore/css/CSSGrammar.y"
3716     {
3717         CSSParser *p = static_cast<CSSParser*>(parser);
3718         (yyval.selector) = p->createFloatingSelector();
3719         (yyval.selector)->setMatch(CSSSelector::PseudoClass);
3720         (yyval.selector)->setArgument((yyvsp[(4) - (6)].string));
3721         (yyval.selector)->setValue((yyvsp[(2) - (6)].string));
3722         CSSSelector::PseudoType type = (yyval.selector)->pseudoType();
3723         if (type == CSSSelector::PseudoUnknown)
3724             (yyval.selector) = 0;
3725     }
3726     break;
3727 
3728   case 187:
3729 
3730 /* Line 1806 of yacc.c  */
3731 #line 1155 "../Source/WebCore/css/CSSGrammar.y"
3732     {
3733         CSSParser *p = static_cast<CSSParser*>(parser);
3734         (yyval.selector) = p->createFloatingSelector();
3735         (yyval.selector)->setMatch(CSSSelector::PseudoClass);
3736         (yyval.selector)->setArgument(String::number((yyvsp[(4) - (7)].integer) * (yyvsp[(5) - (7)].number)));
3737         (yyval.selector)->setValue((yyvsp[(2) - (7)].string));
3738         CSSSelector::PseudoType type = (yyval.selector)->pseudoType();
3739         if (type == CSSSelector::PseudoUnknown)
3740             (yyval.selector) = 0;
3741     }
3742     break;
3743 
3744   case 188:
3745 
3746 /* Line 1806 of yacc.c  */
3747 #line 1166 "../Source/WebCore/css/CSSGrammar.y"
3748     {
3749         CSSParser *p = static_cast<CSSParser*>(parser);
3750         (yyval.selector) = p->createFloatingSelector();
3751         (yyval.selector)->setMatch(CSSSelector::PseudoClass);
3752         (yyval.selector)->setArgument((yyvsp[(4) - (6)].string));
3753         (yyvsp[(2) - (6)].string).lower();
3754         (yyval.selector)->setValue((yyvsp[(2) - (6)].string));
3755         CSSSelector::PseudoType type = (yyval.selector)->pseudoType();
3756         if (type == CSSSelector::PseudoUnknown)
3757             (yyval.selector) = 0;
3758         else if (type == CSSSelector::PseudoNthChild ||
3759                  type == CSSSelector::PseudoNthOfType ||
3760                  type == CSSSelector::PseudoNthLastChild ||
3761                  type == CSSSelector::PseudoNthLastOfType) {
3762             if (!isValidNthToken((yyvsp[(4) - (6)].string)))
3763                 (yyval.selector) = 0;
3764         }
3765     }
3766     break;
3767 
3768   case 189:
3769 
3770 /* Line 1806 of yacc.c  */
3771 #line 1185 "../Source/WebCore/css/CSSGrammar.y"
3772     {
3773         if (!(yyvsp[(4) - (6)].selector) || !(yyvsp[(4) - (6)].selector)->isSimple())
3774             (yyval.selector) = 0;
3775         else {
3776             CSSParser* p = static_cast<CSSParser*>(parser);
3777             (yyval.selector) = p->createFloatingSelector();
3778             (yyval.selector)->setMatch(CSSSelector::PseudoClass);
3779 
3780             Vector<OwnPtr<CSSParserSelector> > selectorVector;
3781             selectorVector.append(p->sinkFloatingSelector((yyvsp[(4) - (6)].selector)));
3782             (yyval.selector)->adoptSelectorVector(selectorVector);
3783 
3784             (yyvsp[(2) - (6)].string).lower();
3785             (yyval.selector)->setValue((yyvsp[(2) - (6)].string));
3786         }
3787     }
3788     break;
3789 
3790   case 190:
3791 
3792 /* Line 1806 of yacc.c  */
3793 #line 1204 "../Source/WebCore/css/CSSGrammar.y"
3794     {
3795         (yyval.boolean) = (yyvsp[(1) - (1)].boolean);
3796     }
3797     break;
3798 
3799   case 191:
3800 
3801 /* Line 1806 of yacc.c  */
3802 #line 1207 "../Source/WebCore/css/CSSGrammar.y"
3803     {
3804         (yyval.boolean) = (yyvsp[(1) - (2)].boolean);
3805         if ( (yyvsp[(2) - (2)].boolean) )
3806             (yyval.boolean) = (yyvsp[(2) - (2)].boolean);
3807     }
3808     break;
3809 
3810   case 192:
3811 
3812 /* Line 1806 of yacc.c  */
3813 #line 1212 "../Source/WebCore/css/CSSGrammar.y"
3814     {
3815         (yyval.boolean) = (yyvsp[(1) - (1)].boolean);
3816     }
3817     break;
3818 
3819   case 193:
3820 
3821 /* Line 1806 of yacc.c  */
3822 #line 1215 "../Source/WebCore/css/CSSGrammar.y"
3823     {
3824         (yyval.boolean) = false;
3825     }
3826     break;
3827 
3828   case 194:
3829 
3830 /* Line 1806 of yacc.c  */
3831 #line 1218 "../Source/WebCore/css/CSSGrammar.y"
3832     {
3833         (yyval.boolean) = false;
3834     }
3835     break;
3836 
3837   case 195:
3838 
3839 /* Line 1806 of yacc.c  */
3840 #line 1221 "../Source/WebCore/css/CSSGrammar.y"
3841     {
3842         (yyval.boolean) = (yyvsp[(1) - (2)].boolean);
3843     }
3844     break;
3845 
3846   case 196:
3847 
3848 /* Line 1806 of yacc.c  */
3849 #line 1224 "../Source/WebCore/css/CSSGrammar.y"
3850     {
3851         (yyval.boolean) = (yyvsp[(1) - (2)].boolean);
3852     }
3853     break;
3854 
3855   case 197:
3856 
3857 /* Line 1806 of yacc.c  */
3858 #line 1230 "../Source/WebCore/css/CSSGrammar.y"
3859     {
3860         CSSParser* p = static_cast<CSSParser*>(parser);
3861         p->markPropertyStart();
3862         (yyval.boolean) = (yyvsp[(1) - (3)].boolean);
3863     }
3864     break;
3865 
3866   case 198:
3867 
3868 /* Line 1806 of yacc.c  */
3869 #line 1235 "../Source/WebCore/css/CSSGrammar.y"
3870     {
3871         (yyval.boolean) = false;
3872     }
3873     break;
3874 
3875   case 199:
3876 
3877 /* Line 1806 of yacc.c  */
3878 #line 1238 "../Source/WebCore/css/CSSGrammar.y"
3879     {
3880         (yyval.boolean) = false;
3881     }
3882     break;
3883 
3884   case 200:
3885 
3886 /* Line 1806 of yacc.c  */
3887 #line 1241 "../Source/WebCore/css/CSSGrammar.y"
3888     {
3889         CSSParser* p = static_cast<CSSParser*>(parser);
3890         p->markPropertyStart();
3891         (yyval.boolean) = false;
3892     }
3893     break;
3894 
3895   case 201:
3896 
3897 /* Line 1806 of yacc.c  */
3898 #line 1246 "../Source/WebCore/css/CSSGrammar.y"
3899     {
3900         (yyval.boolean) = false;
3901     }
3902     break;
3903 
3904   case 202:
3905 
3906 /* Line 1806 of yacc.c  */
3907 #line 1249 "../Source/WebCore/css/CSSGrammar.y"
3908     {
3909         CSSParser* p = static_cast<CSSParser*>(parser);
3910         p->markPropertyStart();
3911         (yyval.boolean) = (yyvsp[(1) - (4)].boolean);
3912         if ((yyvsp[(2) - (4)].boolean))
3913             (yyval.boolean) = (yyvsp[(2) - (4)].boolean);
3914     }
3915     break;
3916 
3917   case 203:
3918 
3919 /* Line 1806 of yacc.c  */
3920 #line 1256 "../Source/WebCore/css/CSSGrammar.y"
3921     {
3922         CSSParser* p = static_cast<CSSParser*>(parser);
3923         p->markPropertyStart();
3924         (yyval.boolean) = (yyvsp[(1) - (4)].boolean);
3925     }
3926     break;
3927 
3928   case 204:
3929 
3930 /* Line 1806 of yacc.c  */
3931 #line 1261 "../Source/WebCore/css/CSSGrammar.y"
3932     {
3933         CSSParser* p = static_cast<CSSParser*>(parser);
3934         p->markPropertyStart();
3935         (yyval.boolean) = (yyvsp[(1) - (6)].boolean);
3936     }
3937     break;
3938 
3939   case 205:
3940 
3941 /* Line 1806 of yacc.c  */
3942 #line 1269 "../Source/WebCore/css/CSSGrammar.y"
3943     {
3944         (yyval.boolean) = false;
3945         CSSParser* p = static_cast<CSSParser*>(parser);
3946         bool isPropertyParsed = false;
3947         if ((yyvsp[(1) - (5)].integer) && (yyvsp[(4) - (5)].valueList)) {
3948             p->m_valueList = p->sinkFloatingValueList((yyvsp[(4) - (5)].valueList));
3949             int oldParsedProperties = p->m_numParsedProperties;
3950             (yyval.boolean) = p->parseValue((yyvsp[(1) - (5)].integer), (yyvsp[(5) - (5)].boolean));
3951             if (!(yyval.boolean))
3952                 p->rollbackLastProperties(p->m_numParsedProperties - oldParsedProperties);
3953             else
3954                 isPropertyParsed = true;
3955             delete p->m_valueList;
3956             p->m_valueList = 0;
3957         }
3958         p->markPropertyEnd((yyvsp[(5) - (5)].boolean), isPropertyParsed);
3959     }
3960     break;
3961 
3962   case 206:
3963 
3964 /* Line 1806 of yacc.c  */
3965 #line 1287 "../Source/WebCore/css/CSSGrammar.y"
3966     {
3967         (yyval.boolean) = false;
3968     }
3969     break;
3970 
3971   case 207:
3972 
3973 /* Line 1806 of yacc.c  */
3974 #line 1291 "../Source/WebCore/css/CSSGrammar.y"
3975     {
3976         /* The default movable type template has letter-spacing: .none;  Handle this by looking for
3977         error tokens at the start of an expr, recover the expr and then treat as an error, cleaning
3978         up and deleting the shifted expr.  */
3979         CSSParser* p = static_cast<CSSParser*>(parser);
3980         p->markPropertyEnd(false, false);
3981         (yyval.boolean) = false;
3982     }
3983     break;
3984 
3985   case 208:
3986 
3987 /* Line 1806 of yacc.c  */
3988 #line 1300 "../Source/WebCore/css/CSSGrammar.y"
3989     {
3990         /* When we encounter something like p {color: red !important fail;} we should drop the declaration */
3991         CSSParser* p = static_cast<CSSParser*>(parser);
3992         p->markPropertyEnd(false, false);
3993         (yyval.boolean) = false;
3994     }
3995     break;
3996 
3997   case 209:
3998 
3999 /* Line 1806 of yacc.c  */
4000 #line 1307 "../Source/WebCore/css/CSSGrammar.y"
4001     {
4002         /* Handle this case: div { text-align: center; !important } Just reduce away the stray !important. */
4003         (yyval.boolean) = false;
4004     }
4005     break;
4006 
4007   case 210:
4008 
4009 /* Line 1806 of yacc.c  */
4010 #line 1312 "../Source/WebCore/css/CSSGrammar.y"
4011     {
4012         /* div { font-family: } Just reduce away this property with no value. */
4013         CSSParser* p = static_cast<CSSParser*>(parser);
4014         p->markPropertyEnd(false, false);
4015         (yyval.boolean) = false;
4016     }
4017     break;
4018 
4019   case 211:
4020 
4021 /* Line 1806 of yacc.c  */
4022 #line 1319 "../Source/WebCore/css/CSSGrammar.y"
4023     {
4024         /* if we come across rules with invalid values like this case: p { weight: *; }, just discard the rule */
4025         CSSParser* p = static_cast<CSSParser*>(parser);
4026         p->markPropertyEnd(false, false);
4027         (yyval.boolean) = false;
4028     }
4029     break;
4030 
4031   case 212:
4032 
4033 /* Line 1806 of yacc.c  */
4034 #line 1326 "../Source/WebCore/css/CSSGrammar.y"
4035     {
4036         /* if we come across: div { color{;color:maroon} }, ignore everything within curly brackets */
4037         (yyval.boolean) = false;
4038     }
4039     break;
4040 
4041   case 213:
4042 
4043 /* Line 1806 of yacc.c  */
4044 #line 1333 "../Source/WebCore/css/CSSGrammar.y"
4045     {
4046         (yyval.integer) = cssPropertyID((yyvsp[(1) - (2)].string));
4047     }
4048     break;
4049 
4050   case 214:
4051 
4052 /* Line 1806 of yacc.c  */
4053 #line 1339 "../Source/WebCore/css/CSSGrammar.y"
4054     { (yyval.boolean) = true; }
4055     break;
4056 
4057   case 215:
4058 
4059 /* Line 1806 of yacc.c  */
4060 #line 1340 "../Source/WebCore/css/CSSGrammar.y"
4061     { (yyval.boolean) = false; }
4062     break;
4063 
4064   case 216:
4065 
4066 /* Line 1806 of yacc.c  */
4067 #line 1344 "../Source/WebCore/css/CSSGrammar.y"
4068     {
4069         CSSParser* p = static_cast<CSSParser*>(parser);
4070         (yyval.valueList) = p->createFloatingValueList();
4071         (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(1) - (1)].value)));
4072     }
4073     break;
4074 
4075   case 217:
4076 
4077 /* Line 1806 of yacc.c  */
4078 #line 1349 "../Source/WebCore/css/CSSGrammar.y"
4079     {
4080         CSSParser* p = static_cast<CSSParser*>(parser);
4081         (yyval.valueList) = (yyvsp[(1) - (3)].valueList);
4082         if ((yyval.valueList)) {
4083             if ((yyvsp[(2) - (3)].character)) {
4084                 CSSParserValue v;
4085                 v.id = 0;
4086                 v.unit = CSSParserValue::Operator;
4087                 v.iValue = (yyvsp[(2) - (3)].character);
4088                 (yyval.valueList)->addValue(v);
4089             }
4090             (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(3) - (3)].value)));
4091         }
4092     }
4093     break;
4094 
4095   case 218:
4096 
4097 /* Line 1806 of yacc.c  */
4098 #line 1363 "../Source/WebCore/css/CSSGrammar.y"
4099     {
4100         (yyval.valueList) = 0;
4101     }
4102     break;
4103 
4104   case 219:
4105 
4106 /* Line 1806 of yacc.c  */
4107 #line 1366 "../Source/WebCore/css/CSSGrammar.y"
4108     {
4109         (yyval.valueList) = 0;
4110     }
4111     break;
4112 
4113   case 220:
4114 
4115 /* Line 1806 of yacc.c  */
4116 #line 1369 "../Source/WebCore/css/CSSGrammar.y"
4117     {
4118         (yyval.valueList) = 0;
4119     }
4120     break;
4121 
4122   case 221:
4123 
4124 /* Line 1806 of yacc.c  */
4125 #line 1375 "../Source/WebCore/css/CSSGrammar.y"
4126     {
4127         (yyval.character) = '/';
4128     }
4129     break;
4130 
4131   case 222:
4132 
4133 /* Line 1806 of yacc.c  */
4134 #line 1378 "../Source/WebCore/css/CSSGrammar.y"
4135     {
4136         (yyval.character) = ',';
4137     }
4138     break;
4139 
4140   case 223:
4141 
4142 /* Line 1806 of yacc.c  */
4143 #line 1381 "../Source/WebCore/css/CSSGrammar.y"
4144     {
4145         (yyval.character) = 0;
4146   }
4147     break;
4148 
4149   case 224:
4150 
4151 /* Line 1806 of yacc.c  */
4152 #line 1387 "../Source/WebCore/css/CSSGrammar.y"
4153     { (yyval.value) = (yyvsp[(1) - (1)].value); }
4154     break;
4155 
4156   case 225:
4157 
4158 /* Line 1806 of yacc.c  */
4159 #line 1388 "../Source/WebCore/css/CSSGrammar.y"
4160     { (yyval.value) = (yyvsp[(2) - (2)].value); (yyval.value).fValue *= (yyvsp[(1) - (2)].integer); }
4161     break;
4162 
4163   case 226:
4164 
4165 /* Line 1806 of yacc.c  */
4166 #line 1389 "../Source/WebCore/css/CSSGrammar.y"
4167     { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_STRING; }
4168     break;
4169 
4170   case 227:
4171 
4172 /* Line 1806 of yacc.c  */
4173 #line 1390 "../Source/WebCore/css/CSSGrammar.y"
4174     {
4175       (yyval.value).id = cssValueKeywordID((yyvsp[(1) - (2)].string));
4176       (yyval.value).unit = CSSPrimitiveValue::CSS_IDENT;
4177       (yyval.value).string = (yyvsp[(1) - (2)].string);
4178   }
4179     break;
4180 
4181   case 228:
4182 
4183 /* Line 1806 of yacc.c  */
4184 #line 1396 "../Source/WebCore/css/CSSGrammar.y"
4185     { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; }
4186     break;
4187 
4188   case 229:
4189 
4190 /* Line 1806 of yacc.c  */
4191 #line 1397 "../Source/WebCore/css/CSSGrammar.y"
4192     { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(2) - (3)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; }
4193     break;
4194 
4195   case 230:
4196 
4197 /* Line 1806 of yacc.c  */
4198 #line 1398 "../Source/WebCore/css/CSSGrammar.y"
4199     { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_URI; }
4200     break;
4201 
4202   case 231:
4203 
4204 /* Line 1806 of yacc.c  */
4205 #line 1399 "../Source/WebCore/css/CSSGrammar.y"
4206     { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; }
4207     break;
4208 
4209   case 232:
4210 
4211 /* Line 1806 of yacc.c  */
4212 #line 1400 "../Source/WebCore/css/CSSGrammar.y"
4213     { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; }
4214     break;
4215 
4216   case 233:
4217 
4218 /* Line 1806 of yacc.c  */
4219 #line 1401 "../Source/WebCore/css/CSSGrammar.y"
4220     { (yyval.value).id = 0; (yyval.value).string = CSSParserString(); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; }
4221     break;
4222 
4223   case 234:
4224 
4225 /* Line 1806 of yacc.c  */
4226 #line 1403 "../Source/WebCore/css/CSSGrammar.y"
4227     {
4228       (yyval.value) = (yyvsp[(1) - (1)].value);
4229   }
4230     break;
4231 
4232   case 235:
4233 
4234 /* Line 1806 of yacc.c  */
4235 #line 1406 "../Source/WebCore/css/CSSGrammar.y"
4236     {
4237       (yyval.value) = (yyvsp[(1) - (1)].value);
4238   }
4239     break;
4240 
4241   case 236:
4242 
4243 /* Line 1806 of yacc.c  */
4244 #line 1409 "../Source/WebCore/css/CSSGrammar.y"
4245     {
4246       (yyval.value) = (yyvsp[(1) - (1)].value);
4247   }
4248     break;
4249 
4250   case 237:
4251 
4252 /* Line 1806 of yacc.c  */
4253 #line 1412 "../Source/WebCore/css/CSSGrammar.y"
4254     { /* Handle width: %; */
4255       (yyval.value).id = 0; (yyval.value).unit = 0;
4256   }
4257     break;
4258 
4259   case 238:
4260 
4261 /* Line 1806 of yacc.c  */
4262 #line 1418 "../Source/WebCore/css/CSSGrammar.y"
4263     { (yyval.value).id = 0; (yyval.value).isInt = true; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; }
4264     break;
4265 
4266   case 239:
4267 
4268 /* Line 1806 of yacc.c  */
4269 #line 1419 "../Source/WebCore/css/CSSGrammar.y"
4270     { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; }
4271     break;
4272 
4273   case 240:
4274 
4275 /* Line 1806 of yacc.c  */
4276 #line 1420 "../Source/WebCore/css/CSSGrammar.y"
4277     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PERCENTAGE; }
4278     break;
4279 
4280   case 241:
4281 
4282 /* Line 1806 of yacc.c  */
4283 #line 1421 "../Source/WebCore/css/CSSGrammar.y"
4284     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PX; }
4285     break;
4286 
4287   case 242:
4288 
4289 /* Line 1806 of yacc.c  */
4290 #line 1422 "../Source/WebCore/css/CSSGrammar.y"
4291     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_CM; }
4292     break;
4293 
4294   case 243:
4295 
4296 /* Line 1806 of yacc.c  */
4297 #line 1423 "../Source/WebCore/css/CSSGrammar.y"
4298     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MM; }
4299     break;
4300 
4301   case 244:
4302 
4303 /* Line 1806 of yacc.c  */
4304 #line 1424 "../Source/WebCore/css/CSSGrammar.y"
4305     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_IN; }
4306     break;
4307 
4308   case 245:
4309 
4310 /* Line 1806 of yacc.c  */
4311 #line 1425 "../Source/WebCore/css/CSSGrammar.y"
4312     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PT; }
4313     break;
4314 
4315   case 246:
4316 
4317 /* Line 1806 of yacc.c  */
4318 #line 1426 "../Source/WebCore/css/CSSGrammar.y"
4319     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PC; }
4320     break;
4321 
4322   case 247:
4323 
4324 /* Line 1806 of yacc.c  */
4325 #line 1427 "../Source/WebCore/css/CSSGrammar.y"
4326     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_DEG; }
4327     break;
4328 
4329   case 248:
4330 
4331 /* Line 1806 of yacc.c  */
4332 #line 1428 "../Source/WebCore/css/CSSGrammar.y"
4333     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_RAD; }
4334     break;
4335 
4336   case 249:
4337 
4338 /* Line 1806 of yacc.c  */
4339 #line 1429 "../Source/WebCore/css/CSSGrammar.y"
4340     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_GRAD; }
4341     break;
4342 
4343   case 250:
4344 
4345 /* Line 1806 of yacc.c  */
4346 #line 1430 "../Source/WebCore/css/CSSGrammar.y"
4347     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_TURN; }
4348     break;
4349 
4350   case 251:
4351 
4352 /* Line 1806 of yacc.c  */
4353 #line 1431 "../Source/WebCore/css/CSSGrammar.y"
4354     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MS; }
4355     break;
4356 
4357   case 252:
4358 
4359 /* Line 1806 of yacc.c  */
4360 #line 1432 "../Source/WebCore/css/CSSGrammar.y"
4361     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_S; }
4362     break;
4363 
4364   case 253:
4365 
4366 /* Line 1806 of yacc.c  */
4367 #line 1433 "../Source/WebCore/css/CSSGrammar.y"
4368     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_HZ; }
4369     break;
4370 
4371   case 254:
4372 
4373 /* Line 1806 of yacc.c  */
4374 #line 1434 "../Source/WebCore/css/CSSGrammar.y"
4375     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_KHZ; }
4376     break;
4377 
4378   case 255:
4379 
4380 /* Line 1806 of yacc.c  */
4381 #line 1435 "../Source/WebCore/css/CSSGrammar.y"
4382     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EMS; }
4383     break;
4384 
4385   case 256:
4386 
4387 /* Line 1806 of yacc.c  */
4388 #line 1436 "../Source/WebCore/css/CSSGrammar.y"
4389     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSParserValue::Q_EMS; }
4390     break;
4391 
4392   case 257:
4393 
4394 /* Line 1806 of yacc.c  */
4395 #line 1437 "../Source/WebCore/css/CSSGrammar.y"
4396     { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EXS; }
4397     break;
4398 
4399   case 258:
4400 
4401 /* Line 1806 of yacc.c  */
4402 #line 1438 "../Source/WebCore/css/CSSGrammar.y"
4403     {
4404       (yyval.value).id = 0;
4405       (yyval.value).fValue = (yyvsp[(1) - (2)].number);
4406       (yyval.value).unit = CSSPrimitiveValue::CSS_REMS;
4407       CSSParser* p = static_cast<CSSParser*>(parser);
4408       if (Document* doc = p->document())
4409           doc->setUsesRemUnits(true);
4410   }
4411     break;
4412 
4413   case 259:
4414 
4415 /* Line 1806 of yacc.c  */
4416 #line 1449 "../Source/WebCore/css/CSSGrammar.y"
4417     {
4418         CSSParser* p = static_cast<CSSParser*>(parser);
4419         CSSParserFunction* f = p->createFloatingFunction();
4420         f->name = (yyvsp[(1) - (5)].string);
4421         f->args = adoptPtr(p->sinkFloatingValueList((yyvsp[(3) - (5)].valueList)));
4422         (yyval.value).id = 0;
4423         (yyval.value).unit = CSSParserValue::Function;
4424         (yyval.value).function = f;
4425     }
4426     break;
4427 
4428   case 260:
4429 
4430 /* Line 1806 of yacc.c  */
4431 #line 1458 "../Source/WebCore/css/CSSGrammar.y"
4432     {
4433         CSSParser* p = static_cast<CSSParser*>(parser);
4434         CSSParserFunction* f = p->createFloatingFunction();
4435         f->name = (yyvsp[(1) - (3)].string);
4436         f->args = nullptr;
4437         (yyval.value).id = 0;
4438         (yyval.value).unit = CSSParserValue::Function;
4439         (yyval.value).function = f;
4440   }
4441     break;
4442 
4443   case 261:
4444 
4445 /* Line 1806 of yacc.c  */
4446 #line 1470 "../Source/WebCore/css/CSSGrammar.y"
4447     { (yyval.value) = (yyvsp[(1) - (1)].value); }
4448     break;
4449 
4450   case 262:
4451 
4452 /* Line 1806 of yacc.c  */
4453 #line 1471 "../Source/WebCore/css/CSSGrammar.y"
4454     { (yyval.value) = (yyvsp[(2) - (2)].value); (yyval.value).fValue *= (yyvsp[(1) - (2)].integer); }
4455     break;
4456 
4457   case 263:
4458 
4459 /* Line 1806 of yacc.c  */
4460 #line 1475 "../Source/WebCore/css/CSSGrammar.y"
4461     {
4462         (yyval.character) = '+';
4463     }
4464     break;
4465 
4466   case 264:
4467 
4468 /* Line 1806 of yacc.c  */
4469 #line 1478 "../Source/WebCore/css/CSSGrammar.y"
4470     {
4471         (yyval.character) = '-';
4472     }
4473     break;
4474 
4475   case 265:
4476 
4477 /* Line 1806 of yacc.c  */
4478 #line 1481 "../Source/WebCore/css/CSSGrammar.y"
4479     {
4480         (yyval.character) = '*';
4481     }
4482     break;
4483 
4484   case 266:
4485 
4486 /* Line 1806 of yacc.c  */
4487 #line 1484 "../Source/WebCore/css/CSSGrammar.y"
4488     {
4489         (yyval.character) = '/';
4490     }
4491     break;
4492 
4493   case 267:
4494 
4495 /* Line 1806 of yacc.c  */
4496 #line 1487 "../Source/WebCore/css/CSSGrammar.y"
4497     {
4498         if (equalIgnoringCase("mod", (yyvsp[(1) - (2)].string).characters, (yyvsp[(1) - (2)].string).length))
4499             (yyval.character) = '%';
4500         else
4501             (yyval.character) = 0;
4502     }
4503     break;
4504 
4505   case 268:
4506 
4507 /* Line 1806 of yacc.c  */
4508 #line 1496 "../Source/WebCore/css/CSSGrammar.y"
4509     {
4510         if ((yyvsp[(3) - (6)].valueList)) {
4511             (yyval.valueList) = (yyvsp[(3) - (6)].valueList);
4512             CSSParserValue v;
4513             v.id = 0;
4514             v.unit = CSSParserValue::Operator;
4515             v.iValue = '(';
4516             (yyval.valueList)->insertValueAt(0, v);
4517             v.iValue = ')';
4518             (yyval.valueList)->addValue(v);
4519         } else
4520             (yyval.valueList) = 0;
4521     }
4522     break;
4523 
4524   case 269:
4525 
4526 /* Line 1806 of yacc.c  */
4527 #line 1511 "../Source/WebCore/css/CSSGrammar.y"
4528     {
4529         CSSParser* p = static_cast<CSSParser*>(parser);
4530         (yyval.valueList) = p->createFloatingValueList();
4531         (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(1) - (2)].value)));
4532     }
4533     break;
4534 
4535   case 270:
4536 
4537 /* Line 1806 of yacc.c  */
4538 #line 1516 "../Source/WebCore/css/CSSGrammar.y"
4539     {
4540         CSSParser* p = static_cast<CSSParser*>(parser);
4541         if ((yyvsp[(1) - (3)].valueList) && (yyvsp[(2) - (3)].character)) {
4542             (yyval.valueList) = (yyvsp[(1) - (3)].valueList);
4543             CSSParserValue v;
4544             v.id = 0;
4545             v.unit = CSSParserValue::Operator;
4546             v.iValue = (yyvsp[(2) - (3)].character);
4547             (yyval.valueList)->addValue(v);
4548             (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(3) - (3)].value)));
4549         } else
4550             (yyval.valueList) = 0;
4551 
4552     }
4553     break;
4554 
4555   case 271:
4556 
4557 /* Line 1806 of yacc.c  */
4558 #line 1530 "../Source/WebCore/css/CSSGrammar.y"
4559     {
4560         if ((yyvsp[(1) - (3)].valueList) && (yyvsp[(2) - (3)].character) && (yyvsp[(3) - (3)].valueList)) {
4561             (yyval.valueList) = (yyvsp[(1) - (3)].valueList);
4562             CSSParserValue v;
4563             v.id = 0;
4564             v.unit = CSSParserValue::Operator;
4565             v.iValue = (yyvsp[(2) - (3)].character);
4566             (yyval.valueList)->addValue(v);
4567             (yyval.valueList)->extend(*((yyvsp[(3) - (3)].valueList)));
4568         } else
4569             (yyval.valueList) = 0;
4570     }
4571     break;
4572 
4573   case 273:
4574 
4575 /* Line 1806 of yacc.c  */
4576 #line 1543 "../Source/WebCore/css/CSSGrammar.y"
4577     {
4578         (yyval.valueList) = 0;
4579     }
4580     break;
4581 
4582   case 274:
4583 
4584 /* Line 1806 of yacc.c  */
4585 #line 1549 "../Source/WebCore/css/CSSGrammar.y"
4586     {
4587         (yyval.valueList) = (yyvsp[(1) - (1)].valueList);
4588     }
4589     break;
4590 
4591   case 275:
4592 
4593 /* Line 1806 of yacc.c  */
4594 #line 1552 "../Source/WebCore/css/CSSGrammar.y"
4595     {
4596         if ((yyvsp[(1) - (4)].valueList) && (yyvsp[(4) - (4)].valueList)) {
4597             (yyval.valueList) = (yyvsp[(1) - (4)].valueList);
4598             CSSParserValue v;
4599             v.id = 0;
4600             v.unit = CSSParserValue::Operator;
4601             v.iValue = ',';
4602             (yyval.valueList)->addValue(v);
4603             (yyval.valueList)->extend(*((yyvsp[(4) - (4)].valueList)));
4604         } else
4605             (yyval.valueList) = 0;
4606     }
4607     break;
4608 
4609   case 276:
4610 
4611 /* Line 1806 of yacc.c  */
4612 #line 1567 "../Source/WebCore/css/CSSGrammar.y"
4613     {
4614         CSSParser* p = static_cast<CSSParser*>(parser);
4615         CSSParserFunction* f = p->createFloatingFunction();
4616         f->name = (yyvsp[(1) - (5)].string);
4617         f->args = adoptPtr(p->sinkFloatingValueList((yyvsp[(3) - (5)].valueList)));
4618         (yyval.value).id = 0;
4619         (yyval.value).unit = CSSParserValue::Function;
4620         (yyval.value).function = f;
4621     }
4622     break;
4623 
4624   case 277:
4625 
4626 /* Line 1806 of yacc.c  */
4627 #line 1576 "../Source/WebCore/css/CSSGrammar.y"
4628     {
4629         YYERROR;
4630     }
4631     break;
4632 
4633   case 278:
4634 
4635 /* Line 1806 of yacc.c  */
4636 #line 1583 "../Source/WebCore/css/CSSGrammar.y"
4637     {
4638         (yyval.string) = (yyvsp[(1) - (1)].string);
4639     }
4640     break;
4641 
4642   case 279:
4643 
4644 /* Line 1806 of yacc.c  */
4645 #line 1586 "../Source/WebCore/css/CSSGrammar.y"
4646     {
4647         (yyval.string) = (yyvsp[(1) - (1)].string);
4648     }
4649     break;
4650 
4651   case 280:
4652 
4653 /* Line 1806 of yacc.c  */
4654 #line 1592 "../Source/WebCore/css/CSSGrammar.y"
4655     {
4656         CSSParser* p = static_cast<CSSParser*>(parser);
4657         CSSParserFunction* f = p->createFloatingFunction();
4658         f->name = (yyvsp[(1) - (5)].string);
4659         f->args = adoptPtr(p->sinkFloatingValueList((yyvsp[(3) - (5)].valueList)));
4660         (yyval.value).id = 0;
4661         (yyval.value).unit = CSSParserValue::Function;
4662         (yyval.value).function = f;
4663     }
4664     break;
4665 
4666   case 281:
4667 
4668 /* Line 1806 of yacc.c  */
4669 #line 1601 "../Source/WebCore/css/CSSGrammar.y"
4670     {
4671         YYERROR;
4672     }
4673     break;
4674 
4675   case 282:
4676 
4677 /* Line 1806 of yacc.c  */
4678 #line 1609 "../Source/WebCore/css/CSSGrammar.y"
4679     {
4680         (yyval.rule) = 0;
4681     }
4682     break;
4683 
4684   case 283:
4685 
4686 /* Line 1806 of yacc.c  */
4687 #line 1612 "../Source/WebCore/css/CSSGrammar.y"
4688     {
4689         (yyval.rule) = 0;
4690     }
4691     break;
4692 
4693   case 284:
4694 
4695 /* Line 1806 of yacc.c  */
4696 #line 1618 "../Source/WebCore/css/CSSGrammar.y"
4697     {
4698         (yyval.rule) = 0;
4699     }
4700     break;
4701 
4702   case 285:
4703 
4704 /* Line 1806 of yacc.c  */
4705 #line 1621 "../Source/WebCore/css/CSSGrammar.y"
4706     {
4707         (yyval.rule) = 0;
4708     }
4709     break;
4710 
4711   case 286:
4712 
4713 /* Line 1806 of yacc.c  */
4714 #line 1627 "../Source/WebCore/css/CSSGrammar.y"
4715     {
4716         (yyval.rule) = 0;
4717     }
4718     break;
4719 
4720   case 287:
4721 
4722 /* Line 1806 of yacc.c  */
4723 #line 1645 "../Source/WebCore/css/CSSGrammar.y"
4724     {
4725         static_cast<CSSParser*>(parser)->invalidBlockHit();
4726     }
4727     break;
4728 
4729   case 288:
4730 
4731 /* Line 1806 of yacc.c  */
4732 #line 1648 "../Source/WebCore/css/CSSGrammar.y"
4733     {
4734         static_cast<CSSParser*>(parser)->invalidBlockHit();
4735     }
4736     break;
4737 
4738 
4739 
4740 /* Line 1806 of yacc.c  */
4741 #line 4742 "/Source/WebCore/generated/CSSGrammar.tab.c"
4742       default: break;
4743     }
4744   /* User semantic actions sometimes alter yychar, and that requires
4745      that yytoken be updated with the new translation.  We take the
4746      approach of translating immediately before every use of yytoken.
4747      One alternative is translating here after every semantic action,
4748      but that translation would be missed if the semantic action invokes
4749      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
4750      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
4751      incorrect destructor might then be invoked immediately.  In the
4752      case of YYERROR or YYBACKUP, subsequent parser actions might lead
4753      to an incorrect destructor call or verbose syntax error message
4754      before the lookahead is translated.  */
4755   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4756 
4757   YYPOPSTACK (yylen);
4758   yylen = 0;
4759   YY_STACK_PRINT (yyss, yyssp);
4760 
4761   *++yyvsp = yyval;
4762 
4763   /* Now `shift' the result of the reduction.  Determine what state
4764      that goes to, based on the state we popped back to and the rule
4765      number reduced by.  */
4766 
4767   yyn = yyr1[yyn];
4768 
4769   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4770   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4771     yystate = yytable[yystate];
4772   else
4773     yystate = yydefgoto[yyn - YYNTOKENS];
4774 
4775   goto yynewstate;
4776 
4777 
4778 /*------------------------------------.
4779 | yyerrlab -- here on detecting error |
4780 `------------------------------------*/
4781 yyerrlab:
4782   /* Make sure we have latest lookahead translation.  See comments at
4783      user semantic actions for why this is necessary.  */
4784   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
4785 
4786   /* If not already recovering from an error, report this error.  */
4787   if (!yyerrstatus)
4788     {
4789       ++yynerrs;
4790 #if ! YYERROR_VERBOSE
4791       yyerror (YY_("syntax error"));
4792 #else
4793 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
4794                                         yyssp, yytoken)
4795       {
4796         char const *yymsgp = YY_("syntax error");
4797         int yysyntax_error_status;
4798         yysyntax_error_status = YYSYNTAX_ERROR;
4799         if (yysyntax_error_status == 0)
4800           yymsgp = yymsg;
4801         else if (yysyntax_error_status == 1)
4802           {
4803             if (yymsg != yymsgbuf)
4804               YYSTACK_FREE (yymsg);
4805             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
4806             if (!yymsg)
4807               {
4808                 yymsg = yymsgbuf;
4809                 yymsg_alloc = sizeof yymsgbuf;
4810                 yysyntax_error_status = 2;
4811               }
4812             else
4813               {
4814                 yysyntax_error_status = YYSYNTAX_ERROR;
4815                 yymsgp = yymsg;
4816               }
4817           }
4818         yyerror (yymsgp);
4819         if (yysyntax_error_status == 2)
4820           goto yyexhaustedlab;
4821       }
4822 # undef YYSYNTAX_ERROR
4823 #endif
4824     }
4825 
4826 
4827 
4828   if (yyerrstatus == 3)
4829     {
4830       /* If just tried and failed to reuse lookahead token after an
4831 	 error, discard it.  */
4832 
4833       if (yychar <= YYEOF)
4834 	{
4835 	  /* Return failure if at end of input.  */
4836 	  if (yychar == YYEOF)
4837 	    YYABORT;
4838 	}
4839       else
4840 	{
4841 	  yydestruct ("Error: discarding",
4842 		      yytoken, &yylval);
4843 	  yychar = YYEMPTY;
4844 	}
4845     }
4846 
4847   /* Else will try to reuse lookahead token after shifting the error
4848      token.  */
4849   goto yyerrlab1;
4850 
4851 
4852 /*---------------------------------------------------.
4853 | yyerrorlab -- error raised explicitly by YYERROR.  |
4854 `---------------------------------------------------*/
4855 yyerrorlab:
4856 
4857   /* Pacify compilers like GCC when the user code never invokes
4858      YYERROR and the label yyerrorlab therefore never appears in user
4859      code.  */
4860   if (/*CONSTCOND*/ 0)
4861      goto yyerrorlab;
4862 
4863   /* Do not reclaim the symbols of the rule which action triggered
4864      this YYERROR.  */
4865   YYPOPSTACK (yylen);
4866   yylen = 0;
4867   YY_STACK_PRINT (yyss, yyssp);
4868   yystate = *yyssp;
4869   goto yyerrlab1;
4870 
4871 
4872 /*-------------------------------------------------------------.
4873 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
4874 `-------------------------------------------------------------*/
4875 yyerrlab1:
4876   yyerrstatus = 3;	/* Each real token shifted decrements this.  */
4877 
4878   for (;;)
4879     {
4880       yyn = yypact[yystate];
4881       if (!yypact_value_is_default (yyn))
4882 	{
4883 	  yyn += YYTERROR;
4884 	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4885 	    {
4886 	      yyn = yytable[yyn];
4887 	      if (0 < yyn)
4888 		break;
4889 	    }
4890 	}
4891 
4892       /* Pop the current state because it cannot handle the error token.  */
4893       if (yyssp == yyss)
4894 	YYABORT;
4895 
4896 
4897       yydestruct ("Error: popping",
4898 		  yystos[yystate], yyvsp);
4899       YYPOPSTACK (1);
4900       yystate = *yyssp;
4901       YY_STACK_PRINT (yyss, yyssp);
4902     }
4903 
4904   *++yyvsp = yylval;
4905 
4906 
4907   /* Shift the error token.  */
4908   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
4909 
4910   yystate = yyn;
4911   goto yynewstate;
4912 
4913 
4914 /*-------------------------------------.
4915 | yyacceptlab -- YYACCEPT comes here.  |
4916 `-------------------------------------*/
4917 yyacceptlab:
4918   yyresult = 0;
4919   goto yyreturn;
4920 
4921 /*-----------------------------------.
4922 | yyabortlab -- YYABORT comes here.  |
4923 `-----------------------------------*/
4924 yyabortlab:
4925   yyresult = 1;
4926   goto yyreturn;
4927 
4928 #if !defined(yyoverflow) || YYERROR_VERBOSE
4929 /*-------------------------------------------------.
4930 | yyexhaustedlab -- memory exhaustion comes here.  |
4931 `-------------------------------------------------*/
4932 yyexhaustedlab:
4933   yyerror (YY_("memory exhausted"));
4934   yyresult = 2;
4935   /* Fall through.  */
4936 #endif
4937 
4938 yyreturn:
4939   if (yychar != YYEMPTY)
4940     {
4941       /* Make sure we have latest lookahead translation.  See comments at
4942          user semantic actions for why this is necessary.  */
4943       yytoken = YYTRANSLATE (yychar);
4944       yydestruct ("Cleanup: discarding lookahead",
4945                   yytoken, &yylval);
4946     }
4947   /* Do not reclaim the symbols of the rule which action triggered
4948      this YYABORT or YYACCEPT.  */
4949   YYPOPSTACK (yylen);
4950   YY_STACK_PRINT (yyss, yyssp);
4951   while (yyssp != yyss)
4952     {
4953       yydestruct ("Cleanup: popping",
4954 		  yystos[*yyssp], yyvsp);
4955       YYPOPSTACK (1);
4956     }
4957 #ifndef yyoverflow
4958   if (yyss != yyssa)
4959     YYSTACK_FREE (yyss);
4960 #endif
4961 #if YYERROR_VERBOSE
4962   if (yymsg != yymsgbuf)
4963     YYSTACK_FREE (yymsg);
4964 #endif
4965   /* Make sure YYID is used.  */
4966   return YYID (yyresult);
4967 }
4968 
4969 
4970 
4971 /* Line 2067 of yacc.c  */
4972 #line 1658 "../Source/WebCore/css/CSSGrammar.y"
4973 
4974 
4975