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 = ☆ (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 = ☆
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