habaki 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/ext/katana/extconf.rb +20 -0
  4. data/ext/katana/rb_katana.c +280 -0
  5. data/ext/katana/rb_katana.h +102 -0
  6. data/ext/katana/rb_katana_array.c +144 -0
  7. data/ext/katana/rb_katana_declaration.c +389 -0
  8. data/ext/katana/rb_katana_rule.c +461 -0
  9. data/ext/katana/rb_katana_selector.c +559 -0
  10. data/ext/katana/src/foundation.c +237 -0
  11. data/ext/katana/src/foundation.h +120 -0
  12. data/ext/katana/src/katana.h +590 -0
  13. data/ext/katana/src/katana.lex.c +4104 -0
  14. data/ext/katana/src/katana.lex.h +592 -0
  15. data/ext/katana/src/katana.tab.c +4422 -0
  16. data/ext/katana/src/katana.tab.h +262 -0
  17. data/ext/katana/src/parser.c +1563 -0
  18. data/ext/katana/src/parser.h +237 -0
  19. data/ext/katana/src/selector.c +659 -0
  20. data/ext/katana/src/selector.h +54 -0
  21. data/ext/katana/src/tokenizer.c +300 -0
  22. data/ext/katana/src/tokenizer.h +41 -0
  23. data/lib/habaki/charset_rule.rb +25 -0
  24. data/lib/habaki/declaration.rb +53 -0
  25. data/lib/habaki/declarations.rb +346 -0
  26. data/lib/habaki/error.rb +43 -0
  27. data/lib/habaki/font_face_rule.rb +24 -0
  28. data/lib/habaki/formal_syntax.rb +464 -0
  29. data/lib/habaki/formatter.rb +99 -0
  30. data/lib/habaki/import_rule.rb +34 -0
  31. data/lib/habaki/media_rule.rb +173 -0
  32. data/lib/habaki/namespace_rule.rb +31 -0
  33. data/lib/habaki/node.rb +52 -0
  34. data/lib/habaki/page_rule.rb +24 -0
  35. data/lib/habaki/qualified_name.rb +29 -0
  36. data/lib/habaki/rule.rb +48 -0
  37. data/lib/habaki/rules.rb +225 -0
  38. data/lib/habaki/selector.rb +98 -0
  39. data/lib/habaki/selectors.rb +49 -0
  40. data/lib/habaki/style_rule.rb +35 -0
  41. data/lib/habaki/stylesheet.rb +158 -0
  42. data/lib/habaki/sub_selector.rb +234 -0
  43. data/lib/habaki/sub_selectors.rb +42 -0
  44. data/lib/habaki/supports_rule.rb +65 -0
  45. data/lib/habaki/value.rb +321 -0
  46. data/lib/habaki/values.rb +86 -0
  47. data/lib/habaki/visitor/element.rb +50 -0
  48. data/lib/habaki/visitor/media.rb +22 -0
  49. data/lib/habaki/visitor/nokogiri_element.rb +56 -0
  50. data/lib/habaki.rb +39 -0
  51. metadata +190 -0
@@ -0,0 +1,4422 @@
1
+ /* A Bison parser, made by GNU Bison 3.5.1. */
2
+
3
+ /* Bison implementation for Yacc-like parsers in C
4
+
5
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
6
+ Inc.
7
+
8
+ This program is free software: you can redistribute it and/or modify
9
+ it under the terms of the GNU General Public License as published by
10
+ the Free Software Foundation, either version 3 of the License, or
11
+ (at your option) any later version.
12
+
13
+ This program is distributed in the hope that it will be useful,
14
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ GNU General Public License for more details.
17
+
18
+ You should have received a copy of the GNU General Public License
19
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
20
+
21
+ /* As a special exception, you may create a larger work that contains
22
+ part or all of the Bison parser skeleton and distribute that work
23
+ under terms of your choice, so long as that work isn't itself a
24
+ parser generator using the skeleton or a modified version thereof
25
+ as a parser skeleton. Alternatively, if you modify or redistribute
26
+ the parser skeleton itself, you may (at your option) remove this
27
+ special exception, which will cause the skeleton and the resulting
28
+ Bison output files to be licensed under the GNU General Public
29
+ License without this special exception.
30
+
31
+ This special exception was added by the Free Software Foundation in
32
+ version 2.2 of Bison. */
33
+
34
+ /* C LALR(1) parser skeleton written by Richard Stallman, by
35
+ simplifying the original so-called "semantic" parser. */
36
+
37
+ /* All symbols defined below should begin with yy or YY, to avoid
38
+ infringing on user name space. This should be done even for local
39
+ variables, as they might otherwise be expanded by user macros.
40
+ There are some unavoidable exceptions within include files to
41
+ define necessary library symbols; they are noted "INFRINGES ON
42
+ USER NAME SPACE" below. */
43
+
44
+ /* Undocumented macros, especially those whose name start with YY_,
45
+ are private implementation details. Do not rely on them. */
46
+
47
+ /* Identify Bison output. */
48
+ #define YYBISON 1
49
+
50
+ /* Bison version. */
51
+ #define YYBISON_VERSION "3.5.1"
52
+
53
+ /* Skeleton name. */
54
+ #define YYSKELETON_NAME "yacc.c"
55
+
56
+ /* Pure parsers. */
57
+ #define YYPURE 2
58
+
59
+ /* Push parsers. */
60
+ #define YYPUSH 0
61
+
62
+ /* Pull parsers. */
63
+ #define YYPULL 1
64
+
65
+ /* Substitute the type names. */
66
+ #define YYSTYPE KATANASTYPE
67
+ #define YYLTYPE KATANALTYPE
68
+ /* Substitute the variable and function names. */
69
+ #define yyparse katanaparse
70
+ #define yylex katanalex
71
+ #define yyerror katanaerror
72
+ #define yydebug katanadebug
73
+ #define yynerrs katananerrs
74
+
75
+ /* First part of user prologue. */
76
+
77
+ #include "tokenizer.h"
78
+
79
+
80
+ # ifndef YY_CAST
81
+ # ifdef __cplusplus
82
+ # define YY_CAST(Type, Val) static_cast<Type> (Val)
83
+ # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
84
+ # else
85
+ # define YY_CAST(Type, Val) ((Type) (Val))
86
+ # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
87
+ # endif
88
+ # endif
89
+ # ifndef YY_NULLPTR
90
+ # if defined __cplusplus
91
+ # if 201103L <= __cplusplus
92
+ # define YY_NULLPTR nullptr
93
+ # else
94
+ # define YY_NULLPTR 0
95
+ # endif
96
+ # else
97
+ # define YY_NULLPTR ((void*)0)
98
+ # endif
99
+ # endif
100
+
101
+ /* Enabling verbose error messages. */
102
+ #ifdef YYERROR_VERBOSE
103
+ # undef YYERROR_VERBOSE
104
+ # define YYERROR_VERBOSE 1
105
+ #else
106
+ # define YYERROR_VERBOSE 0
107
+ #endif
108
+
109
+ /* Use api.header.include to #include this header
110
+ instead of duplicating it here. */
111
+ #ifndef YY_KATANA_SRC_KATANA_TAB_H_INCLUDED
112
+ # define YY_KATANA_SRC_KATANA_TAB_H_INCLUDED
113
+ /* Debug traces. */
114
+ #ifndef KATANADEBUG
115
+ # if defined YYDEBUG
116
+ #if YYDEBUG
117
+ # define KATANADEBUG 1
118
+ # else
119
+ # define KATANADEBUG 0
120
+ # endif
121
+ # else /* ! defined YYDEBUG */
122
+ # define KATANADEBUG 0
123
+ # endif /* ! defined YYDEBUG */
124
+ #endif /* ! defined KATANADEBUG */
125
+ #if KATANADEBUG
126
+ extern int katanadebug;
127
+ #endif
128
+ /* "%code requires" blocks. */
129
+
130
+
131
+ /*
132
+ * Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org)
133
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
134
+ * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com)
135
+ * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
136
+ * Copyright (C) 2012 Intel Corporation. All rights reserved.
137
+ *
138
+ * This library is free software; you can redistribute it and/or
139
+ * modify it under the terms of the GNU Lesser General Public
140
+ * License as published by the Free Software Foundation; either
141
+ * version 2 of the License, or (at your option) any later version.
142
+ *
143
+ * This library is distributed in the hope that it will be useful,
144
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
145
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
146
+ * Lesser General Public License for more details.
147
+ *
148
+ * You should have received a copy of the GNU Lesser General Public
149
+ * License along with this library; if not, write to the Free Software
150
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
151
+ *
152
+ */
153
+
154
+ #include "foundation.h"
155
+ #include "katana.h"
156
+ #include <string.h>
157
+
158
+ #define YYENABLE_NLS 0
159
+ #define YYLTYPE_IS_TRIVIAL 1
160
+ #define YYMAXDEPTH 10000
161
+ #define YYDEBUG 0
162
+
163
+
164
+
165
+ /* Token type. */
166
+ #ifndef KATANATOKENTYPE
167
+ # define KATANATOKENTYPE
168
+ enum katanatokentype
169
+ {
170
+ TOKEN_EOF = 0,
171
+ LOWEST_PREC = 258,
172
+ UNIMPORTANT_TOK = 259,
173
+ KATANA_CSS_WHITESPACE = 260,
174
+ KATANA_CSS_SGML_CD = 261,
175
+ KATANA_CSS_INCLUDES = 262,
176
+ KATANA_CSS_DASHMATCH = 263,
177
+ KATANA_CSS_BEGINSWITH = 264,
178
+ KATANA_CSS_ENDSWITH = 265,
179
+ KATANA_CSS_CONTAINS = 266,
180
+ KATANA_CSS_STRING = 267,
181
+ KATANA_CSS_IDENT = 268,
182
+ KATANA_CSS_NTH = 269,
183
+ KATANA_CSS_HEX = 270,
184
+ KATANA_CSS_IDSEL = 271,
185
+ KATANA_CSS_IMPORT_SYM = 272,
186
+ KATANA_CSS_PAGE_SYM = 273,
187
+ KATANA_CSS_MEDIA_SYM = 274,
188
+ KATANA_CSS_SUPPORTS_SYM = 275,
189
+ KATANA_CSS_FONT_FACE_SYM = 276,
190
+ KATANA_CSS_CHARSET_SYM = 277,
191
+ KATANA_CSS_NAMESPACE_SYM = 278,
192
+ KATANA_CSS_VIEWPORT_RULE_SYM = 279,
193
+ KATANA_INTERNAL_DECLS_SYM = 280,
194
+ KATANA_INTERNAL_MEDIALIST_SYM = 281,
195
+ KATANA_INTERNAL_RULE_SYM = 282,
196
+ KATANA_INTERNAL_SELECTOR_SYM = 283,
197
+ KATANA_INTERNAL_VALUE_SYM = 284,
198
+ KATANA_INTERNAL_KEYFRAME_RULE_SYM = 285,
199
+ KATANA_INTERNAL_KEYFRAME_KEY_LIST_SYM = 286,
200
+ KATANA_INTERNAL_SUPPORTS_CONDITION_SYM = 287,
201
+ KATANA_CSS_KEYFRAMES_SYM = 288,
202
+ KATANA_CSS_WEBKIT_KATANA_CSS_KEYFRAMES_SYM = 289,
203
+ TOPLEFTCORNER_SYM = 290,
204
+ TOPLEFT_SYM = 291,
205
+ TOPCENTER_SYM = 292,
206
+ TOPRIGHT_SYM = 293,
207
+ TOPRIGHTCORNER_SYM = 294,
208
+ BOTTOMLEFTCORNER_SYM = 295,
209
+ BOTTOMLEFT_SYM = 296,
210
+ BOTTOMCENTER_SYM = 297,
211
+ BOTTOMRIGHT_SYM = 298,
212
+ BOTTOMRIGHTCORNER_SYM = 299,
213
+ LEFTTOP_SYM = 300,
214
+ LEFTMIDDLE_SYM = 301,
215
+ LEFTBOTTOM_SYM = 302,
216
+ RIGHTTOP_SYM = 303,
217
+ RIGHTMIDDLE_SYM = 304,
218
+ RIGHTBOTTOM_SYM = 305,
219
+ KATANA_CSS_ATKEYWORD = 306,
220
+ KATANA_CSS_IMPORTANT_SYM = 307,
221
+ KATANA_CSS_MEDIA_ONLY = 308,
222
+ KATANA_CSS_MEDIA_NOT = 309,
223
+ KATANA_CSS_MEDIA_AND = 310,
224
+ KATANA_CSS_MEDIA_OR = 311,
225
+ KATANA_CSS_SUPPORTS_NOT = 312,
226
+ KATANA_CSS_SUPPORTS_AND = 313,
227
+ KATANA_CSS_SUPPORTS_OR = 314,
228
+ KATANA_CSS_REMS = 315,
229
+ KATANA_CSS_CHS = 316,
230
+ KATANA_CSS_QEMS = 317,
231
+ KATANA_CSS_EMS = 318,
232
+ KATANA_CSS_EXS = 319,
233
+ KATANA_CSS_PXS = 320,
234
+ KATANA_CSS_CMS = 321,
235
+ KATANA_CSS_MMS = 322,
236
+ KATANA_CSS_INS = 323,
237
+ KATANA_CSS_PTS = 324,
238
+ KATANA_CSS_PCS = 325,
239
+ KATANA_CSS_DEGS = 326,
240
+ KATANA_CSS_RADS = 327,
241
+ KATANA_CSS_GRADS = 328,
242
+ KATANA_CSS_TURNS = 329,
243
+ KATANA_CSS_MSECS = 330,
244
+ KATANA_CSS_SECS = 331,
245
+ KATANA_CSS_HERTZ = 332,
246
+ KATANA_CSS_KHERTZ = 333,
247
+ KATANA_CSS_DIMEN = 334,
248
+ KATANA_CSS_INVALIDDIMEN = 335,
249
+ KATANA_CSS_PERCENTAGE = 336,
250
+ KATANA_CSS_FLOATTOKEN = 337,
251
+ KATANA_CSS_INTEGER = 338,
252
+ KATANA_CSS_VW = 339,
253
+ KATANA_CSS_VH = 340,
254
+ KATANA_CSS_VMIN = 341,
255
+ KATANA_CSS_VMAX = 342,
256
+ KATANA_CSS_DPPX = 343,
257
+ KATANA_CSS_DPI = 344,
258
+ KATANA_CSS_DPCM = 345,
259
+ KATANA_CSS_FR = 346,
260
+ KATANA_CSS_URI = 347,
261
+ KATANA_CSS_FUNCTION = 348,
262
+ KATANA_CSS_ANYFUNCTION = 349,
263
+ KATANA_CSS_CUEFUNCTION = 350,
264
+ KATANA_CSS_NOTFUNCTION = 351,
265
+ KATANA_CSS_DISTRIBUTEDFUNCTION = 352,
266
+ KATANA_CSS_CALCFUNCTION = 353,
267
+ KATANA_CSS_MINFUNCTION = 354,
268
+ KATANA_CSS_MAXFUNCTION = 355,
269
+ KATANA_CSS_HOSTFUNCTION = 356,
270
+ KATANA_CSS_HOSTCONTEXTFUNCTION = 357,
271
+ KATANA_CSS_UNICODERANGE = 358
272
+ };
273
+ #endif
274
+
275
+ /* Value type. */
276
+ #if ! defined KATANASTYPE && ! defined KATANASTYPE_IS_DECLARED
277
+ union KATANASTYPE
278
+ {
279
+
280
+
281
+ bool boolean;
282
+ char character;
283
+ int integer;
284
+ KatanaParserNumber number;
285
+ KatanaParserString string;
286
+
287
+ KatanaRule* rule;
288
+ // The content of the three below HeapVectors are guaranteed to be kept alive by
289
+ // the corresponding parsedRules, floatingMediaQueryExpList, and parsedKeyFrames
290
+ // lists
291
+ KatanaArray* ruleList;
292
+ KatanaArray* mediaQueryExpList;
293
+ KatanaArray* keyframeRuleList;
294
+
295
+ KatanaSelector* selector;
296
+ KatanaArray* selectorList;
297
+ // CSSSelector::MarginBoxType marginBox;
298
+ KatanaSelectorRelation relation;
299
+ KatanaAttributeMatchType attributeMatchType;
300
+ KatanaArray* mediaList;
301
+ KatanaMediaQuery* mediaQuery;
302
+ KatanaMediaQueryRestrictor mediaQueryRestrictor;
303
+ KatanaMediaQueryExp* mediaQueryExp;
304
+ KatanaValue* value;
305
+ KatanaArray* valueList;
306
+ KatanaKeyframe* keyframe;
307
+ KatanaSourcePosition* location;
308
+
309
+ KatanaSupportsExp* supportsExp;
310
+
311
+
312
+ };
313
+ typedef union KATANASTYPE KATANASTYPE;
314
+ # define KATANASTYPE_IS_TRIVIAL 1
315
+ # define KATANASTYPE_IS_DECLARED 1
316
+ #endif
317
+
318
+ /* Location type. */
319
+ #if ! defined KATANALTYPE && ! defined KATANALTYPE_IS_DECLARED
320
+ typedef struct KATANALTYPE KATANALTYPE;
321
+ struct KATANALTYPE
322
+ {
323
+ int first_line;
324
+ int first_column;
325
+ int last_line;
326
+ int last_column;
327
+ };
328
+ # define KATANALTYPE_IS_DECLARED 1
329
+ # define KATANALTYPE_IS_TRIVIAL 1
330
+ #endif
331
+
332
+
333
+
334
+ int katanaparse (void* scanner, struct KatanaInternalParser * parser);
335
+
336
+ #endif /* !YY_KATANA_SRC_KATANA_TAB_H_INCLUDED */
337
+
338
+ /* Second part of user prologue. */
339
+
340
+
341
+
342
+
343
+
344
+ #ifdef short
345
+ # undef short
346
+ #endif
347
+
348
+ /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
349
+ <limits.h> and (if available) <stdint.h> are included
350
+ so that the code can choose integer types of a good width. */
351
+
352
+ #ifndef __PTRDIFF_MAX__
353
+ # include <limits.h> /* INFRINGES ON USER NAME SPACE */
354
+ # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
355
+ # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
356
+ # define YY_STDINT_H
357
+ # endif
358
+ #endif
359
+
360
+ /* Narrow types that promote to a signed type and that can represent a
361
+ signed or unsigned integer of at least N bits. In tables they can
362
+ save space and decrease cache pressure. Promoting to a signed type
363
+ helps avoid bugs in integer arithmetic. */
364
+
365
+ #ifdef __INT_LEAST8_MAX__
366
+ typedef __INT_LEAST8_TYPE__ yytype_int8;
367
+ #elif defined YY_STDINT_H
368
+ typedef int_least8_t yytype_int8;
369
+ #else
370
+ typedef signed char yytype_int8;
371
+ #endif
372
+
373
+ #ifdef __INT_LEAST16_MAX__
374
+ typedef __INT_LEAST16_TYPE__ yytype_int16;
375
+ #elif defined YY_STDINT_H
376
+ typedef int_least16_t yytype_int16;
377
+ #else
378
+ typedef short yytype_int16;
379
+ #endif
380
+
381
+ #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
382
+ typedef __UINT_LEAST8_TYPE__ yytype_uint8;
383
+ #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
384
+ && UINT_LEAST8_MAX <= INT_MAX)
385
+ typedef uint_least8_t yytype_uint8;
386
+ #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
387
+ typedef unsigned char yytype_uint8;
388
+ #else
389
+ typedef short yytype_uint8;
390
+ #endif
391
+
392
+ #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
393
+ typedef __UINT_LEAST16_TYPE__ yytype_uint16;
394
+ #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
395
+ && UINT_LEAST16_MAX <= INT_MAX)
396
+ typedef uint_least16_t yytype_uint16;
397
+ #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
398
+ typedef unsigned short yytype_uint16;
399
+ #else
400
+ typedef int yytype_uint16;
401
+ #endif
402
+
403
+ #ifndef YYPTRDIFF_T
404
+ # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
405
+ # define YYPTRDIFF_T __PTRDIFF_TYPE__
406
+ # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
407
+ # elif defined PTRDIFF_MAX
408
+ # ifndef ptrdiff_t
409
+ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
410
+ # endif
411
+ # define YYPTRDIFF_T ptrdiff_t
412
+ # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
413
+ # else
414
+ # define YYPTRDIFF_T long
415
+ # define YYPTRDIFF_MAXIMUM LONG_MAX
416
+ # endif
417
+ #endif
418
+
419
+ #ifndef YYSIZE_T
420
+ # ifdef __SIZE_TYPE__
421
+ # define YYSIZE_T __SIZE_TYPE__
422
+ # elif defined size_t
423
+ # define YYSIZE_T size_t
424
+ # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
425
+ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
426
+ # define YYSIZE_T size_t
427
+ # else
428
+ # define YYSIZE_T unsigned
429
+ # endif
430
+ #endif
431
+
432
+ #define YYSIZE_MAXIMUM \
433
+ YY_CAST (YYPTRDIFF_T, \
434
+ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
435
+ ? YYPTRDIFF_MAXIMUM \
436
+ : YY_CAST (YYSIZE_T, -1)))
437
+
438
+ #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
439
+
440
+ /* Stored state numbers (used for stacks). */
441
+ typedef yytype_int16 yy_state_t;
442
+
443
+ /* State numbers in computations. */
444
+ typedef int yy_state_fast_t;
445
+
446
+ #ifndef YY_
447
+ # if defined YYENABLE_NLS && YYENABLE_NLS
448
+ # if ENABLE_NLS
449
+ # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
450
+ # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
451
+ # endif
452
+ # endif
453
+ # ifndef YY_
454
+ # define YY_(Msgid) Msgid
455
+ # endif
456
+ #endif
457
+
458
+ #ifndef YY_ATTRIBUTE_PURE
459
+ # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
460
+ # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
461
+ # else
462
+ # define YY_ATTRIBUTE_PURE
463
+ # endif
464
+ #endif
465
+
466
+ #ifndef YY_ATTRIBUTE_UNUSED
467
+ # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
468
+ # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
469
+ # else
470
+ # define YY_ATTRIBUTE_UNUSED
471
+ # endif
472
+ #endif
473
+
474
+ /* Suppress unused-variable warnings by "using" E. */
475
+ #if ! defined lint || defined __GNUC__
476
+ # define YYUSE(E) ((void) (E))
477
+ #else
478
+ # define YYUSE(E) /* empty */
479
+ #endif
480
+
481
+ #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
482
+ /* Suppress an incorrect diagnostic about yylval being uninitialized. */
483
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
484
+ _Pragma ("GCC diagnostic push") \
485
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
486
+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
487
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
488
+ _Pragma ("GCC diagnostic pop")
489
+ #else
490
+ # define YY_INITIAL_VALUE(Value) Value
491
+ #endif
492
+ #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
493
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
494
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_END
495
+ #endif
496
+ #ifndef YY_INITIAL_VALUE
497
+ # define YY_INITIAL_VALUE(Value) /* Nothing. */
498
+ #endif
499
+
500
+ #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
501
+ # define YY_IGNORE_USELESS_CAST_BEGIN \
502
+ _Pragma ("GCC diagnostic push") \
503
+ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
504
+ # define YY_IGNORE_USELESS_CAST_END \
505
+ _Pragma ("GCC diagnostic pop")
506
+ #endif
507
+ #ifndef YY_IGNORE_USELESS_CAST_BEGIN
508
+ # define YY_IGNORE_USELESS_CAST_BEGIN
509
+ # define YY_IGNORE_USELESS_CAST_END
510
+ #endif
511
+
512
+
513
+ #define YY_ASSERT(E) ((void) (0 && (E)))
514
+
515
+ #if ! defined yyoverflow || YYERROR_VERBOSE
516
+
517
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
518
+
519
+ # ifdef YYSTACK_USE_ALLOCA
520
+ # if YYSTACK_USE_ALLOCA
521
+ # ifdef __GNUC__
522
+ # define YYSTACK_ALLOC __builtin_alloca
523
+ # elif defined __BUILTIN_VA_ARG_INCR
524
+ # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
525
+ # elif defined _AIX
526
+ # define YYSTACK_ALLOC __alloca
527
+ # elif defined _MSC_VER
528
+ # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
529
+ # define alloca _alloca
530
+ # else
531
+ # define YYSTACK_ALLOC alloca
532
+ # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
533
+ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
534
+ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
535
+ # ifndef EXIT_SUCCESS
536
+ # define EXIT_SUCCESS 0
537
+ # endif
538
+ # endif
539
+ # endif
540
+ # endif
541
+ # endif
542
+
543
+ # ifdef YYSTACK_ALLOC
544
+ /* Pacify GCC's 'empty if-body' warning. */
545
+ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
546
+ # ifndef YYSTACK_ALLOC_MAXIMUM
547
+ /* The OS might guarantee only one guard page at the bottom of the stack,
548
+ and a page size can be as small as 4096 bytes. So we cannot safely
549
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
550
+ to allow for a few compiler-allocated temporary stack slots. */
551
+ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
552
+ # endif
553
+ # else
554
+ # define YYSTACK_ALLOC YYMALLOC
555
+ # define YYSTACK_FREE YYFREE
556
+ # ifndef YYSTACK_ALLOC_MAXIMUM
557
+ # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
558
+ # endif
559
+ # if (defined __cplusplus && ! defined EXIT_SUCCESS \
560
+ && ! ((defined YYMALLOC || defined malloc) \
561
+ && (defined YYFREE || defined free)))
562
+ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
563
+ # ifndef EXIT_SUCCESS
564
+ # define EXIT_SUCCESS 0
565
+ # endif
566
+ # endif
567
+ # ifndef YYMALLOC
568
+ # define YYMALLOC malloc
569
+ # if ! defined malloc && ! defined EXIT_SUCCESS
570
+ void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
571
+ # endif
572
+ # endif
573
+ # ifndef YYFREE
574
+ # define YYFREE free
575
+ # if ! defined free && ! defined EXIT_SUCCESS
576
+ void free (void *); /* INFRINGES ON USER NAME SPACE */
577
+ # endif
578
+ # endif
579
+ # endif
580
+ #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
581
+
582
+
583
+ #if (! defined yyoverflow \
584
+ && (! defined __cplusplus \
585
+ || (defined KATANALTYPE_IS_TRIVIAL && KATANALTYPE_IS_TRIVIAL \
586
+ && defined KATANASTYPE_IS_TRIVIAL && KATANASTYPE_IS_TRIVIAL)))
587
+
588
+ /* A type that is properly aligned for any stack member. */
589
+ union yyalloc
590
+ {
591
+ yy_state_t yyss_alloc;
592
+ YYSTYPE yyvs_alloc;
593
+ YYLTYPE yyls_alloc;
594
+ };
595
+
596
+ /* The size of the maximum gap between one aligned stack and the next. */
597
+ # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
598
+
599
+ /* The size of an array large to enough to hold all stacks, each with
600
+ N elements. */
601
+ # define YYSTACK_BYTES(N) \
602
+ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
603
+ + YYSIZEOF (YYLTYPE)) \
604
+ + 2 * YYSTACK_GAP_MAXIMUM)
605
+
606
+ # define YYCOPY_NEEDED 1
607
+
608
+ /* Relocate STACK from its old location to the new one. The
609
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
610
+ elements in the stack, and YYPTR gives the new location of the
611
+ stack. Advance YYPTR to a properly aligned location for the next
612
+ stack. */
613
+ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
614
+ do \
615
+ { \
616
+ YYPTRDIFF_T yynewbytes; \
617
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
618
+ Stack = &yyptr->Stack_alloc; \
619
+ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
620
+ yyptr += yynewbytes / YYSIZEOF (*yyptr); \
621
+ } \
622
+ while (0)
623
+
624
+ #endif
625
+
626
+ #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
627
+ /* Copy COUNT objects from SRC to DST. The source and destination do
628
+ not overlap. */
629
+ # ifndef YYCOPY
630
+ # if defined __GNUC__ && 1 < __GNUC__
631
+ # define YYCOPY(Dst, Src, Count) \
632
+ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
633
+ # else
634
+ # define YYCOPY(Dst, Src, Count) \
635
+ do \
636
+ { \
637
+ YYPTRDIFF_T yyi; \
638
+ for (yyi = 0; yyi < (Count); yyi++) \
639
+ (Dst)[yyi] = (Src)[yyi]; \
640
+ } \
641
+ while (0)
642
+ # endif
643
+ # endif
644
+ #endif /* !YYCOPY_NEEDED */
645
+
646
+ /* YYFINAL -- State number of the termination state. */
647
+ #define YYFINAL 32
648
+ /* YYLAST -- Last index in YYTABLE. */
649
+ #define YYLAST 2239
650
+
651
+ /* YYNTOKENS -- Number of terminals. */
652
+ #define YYNTOKENS 124
653
+ /* YYNNTS -- Number of nonterminals. */
654
+ #define YYNNTS 142
655
+ /* YYNRULES -- Number of rules. */
656
+ #define YYNRULES 377
657
+ /* YYNSTATES -- Number of states. */
658
+ #define YYNSTATES 722
659
+
660
+ #define YYUNDEFTOK 2
661
+ #define YYMAXUTOK 358
662
+
663
+
664
+ /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
665
+ as returned by yylex, with out-of-bounds checking. */
666
+ #define YYTRANSLATE(YYX) \
667
+ (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
668
+
669
+ /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
670
+ as returned by yylex. */
671
+ static const yytype_int8 yytranslate[] =
672
+ {
673
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
674
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
675
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
676
+ 2, 2, 2, 2, 2, 122, 2, 123, 2, 2,
677
+ 113, 110, 20, 116, 114, 120, 18, 119, 2, 2,
678
+ 2, 2, 2, 2, 2, 2, 2, 2, 17, 112,
679
+ 2, 121, 118, 2, 2, 2, 2, 2, 2, 2,
680
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
681
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
682
+ 2, 19, 2, 111, 2, 2, 2, 2, 2, 2,
683
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
684
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
685
+ 2, 2, 2, 115, 21, 109, 117, 2, 2, 2,
686
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
687
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
688
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
689
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
690
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
691
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
692
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
693
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
694
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
695
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
696
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
697
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
698
+ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
699
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
700
+ 15, 16, 22, 23, 24, 25, 26, 27, 28, 29,
701
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
702
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
703
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
704
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
705
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
706
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
707
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
708
+ 100, 101, 102, 103, 104, 105, 106, 107, 108
709
+ };
710
+
711
+ #if KATANADEBUG
712
+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
713
+ static const yytype_int16 yyrline[] =
714
+ {
715
+ 0, 316, 316, 317, 318, 319, 320, 321, 322, 323,
716
+ 328, 334, 340, 346, 353, 359, 366, 380, 381, 385,
717
+ 386, 389, 391, 392, 396, 397, 401, 402, 406, 407,
718
+ 411, 412, 415, 417, 422, 425, 427, 434, 435, 436,
719
+ 437, 438, 439, 440, 441, 442, 446, 452, 456, 463,
720
+ 464, 468, 469, 475, 481, 482, 483, 484, 485, 486,
721
+ 487, 488, 492, 496, 503, 509, 516, 519, 525, 531,
722
+ 532, 536, 537, 541, 544, 550, 556, 562, 566, 573,
723
+ 576, 582, 585, 588, 594, 597, 604, 605, 609, 616,
724
+ 619, 623, 627, 631, 638, 642, 649, 655, 661, 667,
725
+ 670, 676, 680, 686, 692, 698, 699, 700, 701, 705,
726
+ 713, 719, 728, 734, 743, 748, 749, 755, 759, 765,
727
+ 771, 778, 782, 786, 793, 794, 801, 802, 808, 812,
728
+ 816, 824, 830, 834, 841, 844, 864, 873, 879, 886,
729
+ 891, 896, 900, 907, 908, 912, 912, 920, 923, 926,
730
+ 929, 932, 935, 938, 941, 944, 947, 950, 953, 956,
731
+ 959, 962, 965, 971, 977, 984, 991, 999, 1000, 1001,
732
+ 1002, 1011, 1012, 1016, 1017, 1021, 1027, 1034, 1040, 1046,
733
+ 1052, 1057, 1062, 1069, 1070, 1071, 1082, 1095, 1099, 1103,
734
+ 1112, 1117, 1122, 1127, 1132, 1138, 1147, 1151, 1158, 1161,
735
+ 1167, 1168, 1174, 1179, 1188, 1189, 1190, 1194, 1202, 1208,
736
+ 1217, 1218, 1222, 1228, 1235, 1241, 1248, 1254, 1257, 1260,
737
+ 1263, 1266, 1269, 1275, 1276, 1280, 1293, 1303, 1313, 1323,
738
+ 1331, 1341, 1345, 1353, 1361, 1370, 1374, 1391, 1394, 1397,
739
+ 1401, 1404, 1410, 1413, 1414, 1415, 1418, 1422, 1426, 1433,
740
+ 1445, 1452, 1458, 1464, 1471, 1478, 1479, 1483, 1488, 1495,
741
+ 1498, 1501, 1507, 1511, 1516, 1520, 1529, 1535, 1541, 1542,
742
+ 1548, 1549, 1555, 1556, 1558, 1559, 1560, 1561, 1562, 1563,
743
+ 1569, 1570, 1571, 1575, 1579, 1580, 1581, 1582, 1583, 1584,
744
+ 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594,
745
+ 1595, 1596, 1597, 1598, 1599, 1602, 1603, 1604, 1605, 1606,
746
+ 1607, 1608, 1609, 1610, 1614, 1617, 1620, 1626, 1627, 1631,
747
+ 1634, 1637, 1640, 1645, 1647, 1651, 1657, 1663, 1667, 1672,
748
+ 1677, 1681, 1684, 1691, 1692, 1696, 1700, 1706, 1707, 1711,
749
+ 1712, 1713, 1714, 1715, 1719, 1722, 1723, 1724, 1731, 1734,
750
+ 1735, 1736, 1740, 1743, 1744, 1748, 1754, 1760, 1764, 1767,
751
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1770, 1775, 1780,
752
+ 1782, 1783, 1784, 1785, 1788, 1790, 1791, 1792
753
+ };
754
+ #endif
755
+
756
+ #if KATANADEBUG || YYERROR_VERBOSE || 0
757
+ /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
758
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
759
+ static const char *const yytname[] =
760
+ {
761
+ "TOKEN_EOF", "error", "$undefined", "LOWEST_PREC", "UNIMPORTANT_TOK",
762
+ "KATANA_CSS_WHITESPACE", "KATANA_CSS_SGML_CD", "KATANA_CSS_INCLUDES",
763
+ "KATANA_CSS_DASHMATCH", "KATANA_CSS_BEGINSWITH", "KATANA_CSS_ENDSWITH",
764
+ "KATANA_CSS_CONTAINS", "KATANA_CSS_STRING", "KATANA_CSS_IDENT",
765
+ "KATANA_CSS_NTH", "KATANA_CSS_HEX", "KATANA_CSS_IDSEL", "':'", "'.'",
766
+ "'['", "'*'", "'|'", "KATANA_CSS_IMPORT_SYM", "KATANA_CSS_PAGE_SYM",
767
+ "KATANA_CSS_MEDIA_SYM", "KATANA_CSS_SUPPORTS_SYM",
768
+ "KATANA_CSS_FONT_FACE_SYM", "KATANA_CSS_CHARSET_SYM",
769
+ "KATANA_CSS_NAMESPACE_SYM", "KATANA_CSS_VIEWPORT_RULE_SYM",
770
+ "KATANA_INTERNAL_DECLS_SYM", "KATANA_INTERNAL_MEDIALIST_SYM",
771
+ "KATANA_INTERNAL_RULE_SYM", "KATANA_INTERNAL_SELECTOR_SYM",
772
+ "KATANA_INTERNAL_VALUE_SYM", "KATANA_INTERNAL_KEYFRAME_RULE_SYM",
773
+ "KATANA_INTERNAL_KEYFRAME_KEY_LIST_SYM",
774
+ "KATANA_INTERNAL_SUPPORTS_CONDITION_SYM", "KATANA_CSS_KEYFRAMES_SYM",
775
+ "KATANA_CSS_WEBKIT_KATANA_CSS_KEYFRAMES_SYM", "TOPLEFTCORNER_SYM",
776
+ "TOPLEFT_SYM", "TOPCENTER_SYM", "TOPRIGHT_SYM", "TOPRIGHTCORNER_SYM",
777
+ "BOTTOMLEFTCORNER_SYM", "BOTTOMLEFT_SYM", "BOTTOMCENTER_SYM",
778
+ "BOTTOMRIGHT_SYM", "BOTTOMRIGHTCORNER_SYM", "LEFTTOP_SYM",
779
+ "LEFTMIDDLE_SYM", "LEFTBOTTOM_SYM", "RIGHTTOP_SYM", "RIGHTMIDDLE_SYM",
780
+ "RIGHTBOTTOM_SYM", "KATANA_CSS_ATKEYWORD", "KATANA_CSS_IMPORTANT_SYM",
781
+ "KATANA_CSS_MEDIA_ONLY", "KATANA_CSS_MEDIA_NOT", "KATANA_CSS_MEDIA_AND",
782
+ "KATANA_CSS_MEDIA_OR", "KATANA_CSS_SUPPORTS_NOT",
783
+ "KATANA_CSS_SUPPORTS_AND", "KATANA_CSS_SUPPORTS_OR", "KATANA_CSS_REMS",
784
+ "KATANA_CSS_CHS", "KATANA_CSS_QEMS", "KATANA_CSS_EMS", "KATANA_CSS_EXS",
785
+ "KATANA_CSS_PXS", "KATANA_CSS_CMS", "KATANA_CSS_MMS", "KATANA_CSS_INS",
786
+ "KATANA_CSS_PTS", "KATANA_CSS_PCS", "KATANA_CSS_DEGS", "KATANA_CSS_RADS",
787
+ "KATANA_CSS_GRADS", "KATANA_CSS_TURNS", "KATANA_CSS_MSECS",
788
+ "KATANA_CSS_SECS", "KATANA_CSS_HERTZ", "KATANA_CSS_KHERTZ",
789
+ "KATANA_CSS_DIMEN", "KATANA_CSS_INVALIDDIMEN", "KATANA_CSS_PERCENTAGE",
790
+ "KATANA_CSS_FLOATTOKEN", "KATANA_CSS_INTEGER", "KATANA_CSS_VW",
791
+ "KATANA_CSS_VH", "KATANA_CSS_VMIN", "KATANA_CSS_VMAX", "KATANA_CSS_DPPX",
792
+ "KATANA_CSS_DPI", "KATANA_CSS_DPCM", "KATANA_CSS_FR", "KATANA_CSS_URI",
793
+ "KATANA_CSS_FUNCTION", "KATANA_CSS_ANYFUNCTION",
794
+ "KATANA_CSS_CUEFUNCTION", "KATANA_CSS_NOTFUNCTION",
795
+ "KATANA_CSS_DISTRIBUTEDFUNCTION", "KATANA_CSS_CALCFUNCTION",
796
+ "KATANA_CSS_MINFUNCTION", "KATANA_CSS_MAXFUNCTION",
797
+ "KATANA_CSS_HOSTFUNCTION", "KATANA_CSS_HOSTCONTEXTFUNCTION",
798
+ "KATANA_CSS_UNICODERANGE", "'}'", "')'", "']'", "';'", "'('", "','",
799
+ "'{'", "'+'", "'~'", "'>'", "'/'", "'-'", "'='", "'#'", "'%'", "$accept",
800
+ "stylesheet", "internal_rule", "internal_keyframe_rule",
801
+ "internal_keyframe_key_list", "internal_decls", "internal_value",
802
+ "internal_selector", "internal_medialist", "space", "maybe_space",
803
+ "maybe_sgml", "closing_brace", "closing_parenthesis",
804
+ "closing_square_bracket", "semi_or_eof", "maybe_charset", "rule_list",
805
+ "valid_rule", "before_rule", "rule", "block_rule_body",
806
+ "block_rule_list", "block_rule_recovery", "block_valid_rule",
807
+ "block_rule", "before_import_rule", "import_rule_start", "import",
808
+ "namespace", "maybe_ns_prefix", "string_or_uri", "maybe_media_value",
809
+ "media_query_exp", "media_query_exp_list",
810
+ "maybe_and_media_query_exp_list", "maybe_media_restrictor",
811
+ "valid_media_query", "media_query", "maybe_media_list", "media_list",
812
+ "mq_list", "at_rule_body_start", "before_media_rule",
813
+ "at_rule_header_end_maybe_space", "media_rule_start", "media", "medium",
814
+ "supports", "before_supports_rule", "at_supports_rule_header_end",
815
+ "supports_condition", "supports_negation", "supports_conjunction",
816
+ "supports_disjunction", "supports_condition_in_parens",
817
+ "supports_declaration_condition", "before_keyframes_rule",
818
+ "keyframes_rule_start", "webkit_keyframes_rule_start", "keyframes",
819
+ "webkit_keyframe_name", "keyframes_rule", "keyframe_rule_list",
820
+ "keyframe_rule", "key_list", "key", "keyframes_error_recovery",
821
+ "before_page_rule", "page", "page_selector", "declarations_and_margins",
822
+ "margin_box", "$@1", "margin_sym", "before_font_face_rule", "font_face",
823
+ "before_viewport_rule", "viewport", "combinator", "maybe_unary_operator",
824
+ "unary_operator", "maybe_space_before_declaration",
825
+ "before_selector_list", "at_rule_header_end", "at_selector_end",
826
+ "ruleset", "before_selector_group_item", "selector_list", "selector",
827
+ "namespace_selector", "simple_selector", "simple_selector_list",
828
+ "element_name", "specifier_list", "specifier", "class", "attr_name",
829
+ "attr_match_type", "maybe_attr_match_type", "attrib", "match",
830
+ "ident_or_string", "pseudo_page", "pseudo", "selector_recovery",
831
+ "declaration_list", "decl_list", "declaration", "property", "prio",
832
+ "ident_list", "track_names_list", "expr", "expr_recovery",
833
+ "slash_operator", "operator", "term", "unary_term", "function",
834
+ "calc_func_term", "calc_func_operator", "calc_maybe_space",
835
+ "calc_func_paren_expr", "calc_func_expr", "calc_function", "invalid_at",
836
+ "at_rule_recovery", "at_rule_header_recovery", "at_rule_end",
837
+ "regular_invalid_at_rule_header", "invalid_rule", "invalid_rule_header",
838
+ "at_invalid_rule_header_end", "invalid_block",
839
+ "invalid_square_brackets_block", "invalid_parentheses_block",
840
+ "opening_parenthesis", "error_location", "location_label",
841
+ "error_recovery", "rule_error_recovery", YY_NULLPTR
842
+ };
843
+ #endif
844
+
845
+ # ifdef YYPRINT
846
+ /* YYTOKNUM[NUM] -- (External) token number corresponding to the
847
+ (internal) symbol number NUM (which must be that of a token). */
848
+ static const yytype_int16 yytoknum[] =
849
+ {
850
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
851
+ 265, 266, 267, 268, 269, 270, 271, 58, 46, 91,
852
+ 42, 124, 272, 273, 274, 275, 276, 277, 278, 279,
853
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
854
+ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
855
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
856
+ 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
857
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
858
+ 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
859
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
860
+ 350, 351, 352, 353, 354, 355, 356, 357, 358, 125,
861
+ 41, 93, 59, 40, 44, 123, 43, 126, 62, 47,
862
+ 45, 61, 35, 37
863
+ };
864
+ # endif
865
+
866
+ #define YYPACT_NINF (-373)
867
+
868
+ #define yypact_value_is_default(Yyn) \
869
+ ((Yyn) == YYPACT_NINF)
870
+
871
+ #define YYTABLE_NINF (-368)
872
+
873
+ #define yytable_value_is_error(Yyn) \
874
+ 0
875
+
876
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
877
+ STATE-NUM. */
878
+ static const yytype_int16 yypact[] =
879
+ {
880
+ 813, 317, 69, 69, 69, 69, 69, 69, 69, 61,
881
+ -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
882
+ 97, 113, -373, -373, -373, 324, -373, 735, 934, 1845,
883
+ 155, 155, -373, 330, -373, -373, 69, -373, -373, 128,
884
+ 1944, 31, 63, 55, 251, 69, 69, 69, 153, 43,
885
+ -373, -373, 230, -373, -373, 157, 311, 195, 360, -373,
886
+ 227, -373, 237, -373, 240, -373, 934, -373, 263, -373,
887
+ -373, 431, 292, 438, 300, -373, 333, 105, 583, -373,
888
+ 456, 456, -373, -373, -373, -373, 69, 69, 69, -373,
889
+ -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
890
+ -373, -373, -373, -373, -373, -373, -373, -373, 69, -373,
891
+ -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
892
+ 69, 69, 69, 69, 69, -373, -373, 69, 69, 1955,
893
+ 69, 904, -373, 69, 69, 69, -373, 69, 264, 69,
894
+ 225, -373, 56, -373, -373, 352, 385, 41, -373, 32,
895
+ -373, -373, 242, 69, -373, 69, 69, -373, 69, 69,
896
+ 327, -373, 69, 314, 104, 245, 356, -373, 523, -373,
897
+ 348, 366, 69, -373, -373, 69, 253, 69, 69, 69,
898
+ 69, -373, -373, 69, 69, 69, 69, -373, -373, 295,
899
+ 68, 816, 816, 816, 816, 394, -373, -373, 409, 62,
900
+ -373, -373, 302, 934, 69, 69, 69, 411, 934, -373,
901
+ -373, 456, 456, 456, -373, -373, -373, -373, -373, -373,
902
+ 1021, 659, -373, 76, -373, -373, 69, 69, -373, -373,
903
+ 69, 69, 306, 1845, -373, -373, -373, -373, 426, 69,
904
+ 69, -373, -373, -373, 2039, -373, -373, -373, -373, -373,
905
+ -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
906
+ -373, -373, -373, -373, -373, 1318, 69, -373, -373, -373,
907
+ -373, -373, -373, -373, -373, 424, 380, -373, 69, -373,
908
+ 69, -373, 328, -373, 69, 43, -373, -373, -373, -373,
909
+ 5, -373, -373, -373, 331, 332, 132, 334, 337, 302,
910
+ 816, 440, 280, 70, 934, 70, 934, 70, 934, 70,
911
+ 934, 70, -373, -373, 215, 300, 442, 106, -373, -373,
912
+ -373, 69, -373, -373, -373, -373, 338, -373, 456, -373,
913
+ -373, -373, -373, 792, 70, 69, 2143, 70, -373, -373,
914
+ -373, 451, 69, -373, 260, 70, -373, -373, -373, -373,
915
+ 1845, -373, -373, 155, 248, -373, 396, -373, 100, 50,
916
+ 436, 267, 289, 439, 441, 437, -373, -373, 1459, 330,
917
+ 1049, 1153, 1497, -373, -373, -373, -373, -373, 1355, 1120,
918
+ 682, 1153, 69, 69, 405, -373, -373, -373, 69, -373,
919
+ 69, 556, -373, 69, 318, -373, -373, 413, 416, 335,
920
+ -373, -373, -373, 290, 468, -373, 69, -373, -373, 367,
921
+ 934, 70, -373, 69, 69, 401, -373, -373, 69, -373,
922
+ 69, -373, 69, -373, 69, -373, 564, -373, 69, 106,
923
+ -373, -373, -373, -373, -373, -373, -373, 69, -373, 69,
924
+ -373, -373, -373, 659, -373, -373, 94, 137, 2087, 27,
925
+ -373, 69, -373, -373, -373, 69, 90, -373, -373, -373,
926
+ -12, 134, -373, -373, 291, 52, 52, 185, -373, -373,
927
+ -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
928
+ -373, -373, -373, -373, -373, -373, 489, -373, -373, -373,
929
+ -373, -373, -373, 1671, -373, 475, 382, 69, 822, -373,
930
+ -373, 41, 32, 69, 400, -373, 35, 412, 69, 69,
931
+ 69, 69, 69, 69, -373, 69, -373, 418, -373, 69,
932
+ 69, -373, 69, -373, 70, 70, 69, 160, 70, 160,
933
+ 160, -373, 69, 398, 934, -373, 1535, 70, 451, 69,
934
+ 69, -373, -373, 69, 69, -373, -373, -373, -373, 1620,
935
+ -373, -373, -373, -373, -373, -373, -373, -373, 1440, 69,
936
+ 1030, 69, 70, -373, 382, -373, -373, -373, -373, -373,
937
+ -373, -373, 69, 70, -373, 400, 400, 400, 400, -373,
938
+ -373, -373, -373, 248, 248, 69, 160, -373, -373, 70,
939
+ 69, -373, -373, -373, -373, 398, -373, -373, 69, 105,
940
+ -373, 27, 97, 97, -373, -373, 419, -373, -373, -373,
941
+ 1845, -373, 69, 90, 98, 1153, 498, 69, 69, -373,
942
+ -373, -373, -373, -373, -373, 69, 90, 90, 248, -373,
943
+ -373, 934, 69, 507, -373, -373, 939, 1477, 1758, 380,
944
+ -373, 2095, -373, -373, 69, 69, -373, -373, 90, 78,
945
+ 90, 1962, -373, -373, 90, -373, 507, 69, -373, 62,
946
+ -373, -373, 489, -373, 591, -373, -373, -373, -373, -373,
947
+ -373, -373, -373, -373, -373, 330, -373, 1219, 90, -373,
948
+ -373, 69, 419, -373, 1336, -373, -373, 62, -373, -373,
949
+ -373, -12, 185, -373, 1671, -373, 1562, -373, 69, -373,
950
+ 69, -373, -373, 1601, 1153, 70, -373, -373, 1962, 69,
951
+ 419, 69, 69, -373, -373, 420, -373, -373, 69, 248,
952
+ 90, -373
953
+ };
954
+
955
+ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
956
+ Performed when YYTABLE does not specify something else to do. Zero
957
+ means the default is an error. */
958
+ static const yytype_int16 yydefact[] =
959
+ {
960
+ 32, 0, 19, 19, 19, 19, 19, 19, 19, 0,
961
+ 4, 8, 9, 3, 7, 5, 6, 21, 367, 17,
962
+ 20, 0, 34, 355, 175, 0, 368, 176, 0, 0,
963
+ 172, 172, 1, 35, 374, 18, 19, 355, 367, 0,
964
+ 0, 244, 0, 0, 0, 19, 19, 19, 0, 0,
965
+ 43, 42, 0, 38, 44, 0, 0, 0, 0, 41,
966
+ 0, 39, 0, 40, 0, 45, 0, 37, 198, 203,
967
+ 202, 367, 0, 0, 199, 187, 178, 181, 0, 183,
968
+ 190, 192, 200, 204, 205, 206, 19, 19, 19, 304,
969
+ 305, 302, 301, 303, 287, 288, 289, 290, 291, 292,
970
+ 293, 294, 295, 296, 297, 298, 299, 300, 19, 286,
971
+ 285, 284, 306, 307, 308, 309, 310, 311, 312, 313,
972
+ 19, 19, 19, 19, 19, 174, 173, 19, 19, 0,
973
+ 19, 0, 262, 19, 19, 19, 135, 19, 0, 19,
974
+ 0, 171, 0, 23, 22, 46, 0, 0, 335, 0,
975
+ 369, 13, 245, 19, 367, 19, 19, 367, 19, 19,
976
+ 0, 77, 19, 0, 0, 91, 0, 90, 0, 97,
977
+ 69, 0, 19, 71, 72, 19, 0, 19, 19, 19,
978
+ 19, 125, 124, 19, 19, 19, 19, 178, 189, 367,
979
+ 0, 0, 0, 0, 0, 0, 207, 367, 0, 0,
980
+ 188, 15, 0, 184, 19, 19, 19, 0, 0, 198,
981
+ 199, 193, 195, 191, 201, 272, 273, 278, 274, 276,
982
+ 0, 0, 277, 0, 279, 282, 19, 19, 283, 14,
983
+ 19, 19, 268, 0, 264, 270, 280, 281, 0, 19,
984
+ 19, 132, 134, 12, 0, 21, 375, 369, 360, 362,
985
+ 364, 363, 365, 361, 366, 359, 376, 377, 369, 31,
986
+ 30, 33, 369, 337, 338, 0, 19, 247, 369, 367,
987
+ 254, 374, 82, 83, 369, 0, 84, 101, 19, 367,
988
+ 19, 16, 92, 99, 19, 0, 10, 65, 368, 177,
989
+ 0, 120, 121, 98, 0, 0, 142, 0, 0, 177,
990
+ 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
991
+ 0, 0, 226, 369, 19, 0, 0, 0, 29, 28,
992
+ 216, 19, 185, 167, 168, 169, 0, 186, 194, 27,
993
+ 367, 26, 315, 0, 0, 19, 0, 0, 317, 327,
994
+ 330, 323, 19, 259, 0, 0, 275, 271, 269, 267,
995
+ 0, 263, 11, 172, 0, 367, 0, 47, 0, 0,
996
+ 0, 0, 0, 0, 0, 0, 355, 48, 0, 36,
997
+ 0, 0, 0, 370, 371, 372, 373, 248, 0, 0,
998
+ 0, 0, 19, 19, 79, 85, 374, 368, 19, 70,
999
+ 19, 0, 96, 19, 0, 104, 106, 107, 108, 105,
1000
+ 115, 96, 96, 19, 0, 177, 19, 96, 96, 0,
1001
+ 0, 0, 227, 19, 19, 0, 235, 196, 19, 231,
1002
+ 19, 237, 19, 239, 19, 241, 0, 208, 19, 0,
1003
+ 218, 219, 220, 221, 222, 217, 212, 19, 180, 19,
1004
+ 369, 314, 316, 0, 318, 332, 324, 0, 0, 0,
1005
+ 257, 19, 260, 261, 265, 19, 0, 374, 346, 345,
1006
+ 0, 0, 339, 340, 0, 0, 0, 0, 147, 148,
1007
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1008
+ 159, 160, 161, 162, 333, 334, 0, 357, 358, 25,
1009
+ 24, 356, 369, 256, 76, 73, 0, 19, 0, 94,
1010
+ 368, 0, 0, 19, 0, 367, 0, 0, 19, 19,
1011
+ 19, 19, 19, 19, 139, 19, 225, 0, 141, 19,
1012
+ 19, 96, 19, 229, 0, 0, 19, 0, 0, 0,
1013
+ 0, 214, 19, 0, 0, 170, 0, 0, 323, 0,
1014
+ 0, 328, 329, 19, 19, 331, 258, 133, 131, 0,
1015
+ 351, 367, 341, 342, 344, 349, 350, 347, 0, 19,
1016
+ 0, 19, 0, 78, 0, 95, 68, 66, 67, 51,
1017
+ 109, 369, 19, 0, 96, 0, 0, 0, 0, 368,
1018
+ 368, 140, 96, 0, 0, 19, 0, 234, 232, 0,
1019
+ 19, 230, 236, 238, 240, 0, 224, 223, 19, 182,
1020
+ 326, 0, 319, 320, 321, 322, 0, 374, 255, 369,
1021
+ 0, 75, 19, 0, 46, 0, 0, 19, 19, 111,
1022
+ 113, 110, 112, 128, 128, 19, 0, 0, 0, 228,
1023
+ 233, 0, 19, 211, 325, 348, 0, 0, 74, 80,
1024
+ 100, 0, 50, 21, 19, 19, 114, 51, 0, 0,
1025
+ 0, 0, 164, 166, 0, 197, 211, 19, 210, 0,
1026
+ 367, 62, 0, 61, 0, 57, 59, 58, 55, 56,
1027
+ 60, 54, 355, 63, 53, 52, 116, 0, 0, 122,
1028
+ 374, 19, 127, 123, 0, 143, 179, 0, 209, 213,
1029
+ 374, 354, 353, 369, 256, 102, 0, 368, 19, 138,
1030
+ 19, 145, 215, 0, 0, 0, 129, 368, 0, 19,
1031
+ 352, 19, 19, 130, 144, 0, 118, 117, 19, 0,
1032
+ 0, 146
1033
+ };
1034
+
1035
+ /* YYPGOTO[NTERM-NUM]. */
1036
+ static const yytype_int16 yypgoto[] =
1037
+ {
1038
+ -373, -373, -373, -373, -373, -373, -373, -373, -373, -305,
1039
+ -1, -228, -372, 241, -299, -125, -373, -373, 296, -75,
1040
+ -373, -106, -373, -373, -373, -373, -373, -223, -373, -94,
1041
+ -373, 266, -373, 53, -11, -373, -373, -373, 386, -44,
1042
+ -373, -373, -342, -373, -152, -221, -82, -373, -79, 539,
1043
+ -373, 64, -373, -373, -373, -72, -373, -373, 540, 549,
1044
+ -64, -373, -45, -373, -69, 559, 234, -373, 566, -47,
1045
+ -373, -373, -373, -373, -78, 578, -34, 581, -32, -373,
1046
+ 308, -15, -234, -373, -224, 432, -28, -373, 552, 87,
1047
+ 427, -8, -66, 548, -26, -62, -373, 312, -373, -29,
1048
+ -373, 200, 38, 236, -373, -98, -325, -373, 590, -373,
1049
+ -57, -373, -373, -207, -181, 408, -373, -122, -90, -373,
1050
+ 193, -373, 108, 194, 204, -373, -373, -373, 13, -373,
1051
+ 7, 10, -373, -27, -137, -135, -108, -373, 12, -263,
1052
+ -225, -245
1053
+ };
1054
+
1055
+ /* YYDEFGOTO[NTERM-NUM]. */
1056
+ static const yytype_int16 yydefgoto[] =
1057
+ {
1058
+ -1, 9, 10, 11, 12, 13, 14, 15, 16, 20,
1059
+ 293, 33, 491, 332, 320, 261, 17, 145, 47, 244,
1060
+ 245, 613, 614, 642, 661, 643, 48, 49, 50, 51,
1061
+ 285, 175, 562, 161, 162, 385, 163, 164, 165, 166,
1062
+ 167, 168, 503, 283, 297, 52, 53, 278, 54, 360,
1063
+ 507, 395, 396, 397, 398, 399, 400, 56, 361, 362,
1064
+ 59, 183, 648, 649, 137, 138, 139, 682, 363, 61,
1065
+ 405, 684, 700, 709, 485, 364, 63, 365, 65, 208,
1066
+ 140, 129, 25, 66, 392, 202, 67, 534, 76, 77,
1067
+ 78, 417, 418, 80, 81, 82, 83, 317, 658, 659,
1068
+ 84, 437, 598, 406, 85, 199, 39, 40, 41, 42,
1069
+ 560, 344, 130, 131, 334, 232, 233, 132, 133, 134,
1070
+ 339, 448, 449, 340, 341, 135, 486, 22, 459, 148,
1071
+ 366, 367, 674, 37, 374, 375, 376, 258, 43, 44,
1072
+ 265, 146
1073
+ };
1074
+
1075
+ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1076
+ positive, shift that token. If negative, reduce the rule whose
1077
+ number is the opposite. If YYTABLE_NINF, syntax error. */
1078
+ static const yytype_int16 yytable[] =
1079
+ {
1080
+ 21, 24, 26, 27, 28, 29, 30, 31, 176, 234,
1081
+ 149, 256, 264, 333, 23, 141, 141, 369, 436, 214,
1082
+ 79, 358, 370, 359, 263, 391, 380, 329, 294, 456,
1083
+ 34, 295, 259, 371, 298, 147, 447, 372, 257, 227,
1084
+ 337, 259, 345, 378, 169, 170, 171, 543, 572, 381,
1085
+ 150, 157, 212, 18, 213, 173, 243, 19, 79, 512,
1086
+ 513, 32, 318, -81, 154, 519, 520, 393, 156, 197,
1087
+ 329, 487, 198, 19, 19, 409, 329, 330, -126, 680,
1088
+ 155, -19, -19, 195, 548, 215, 216, 217, 426, 342,
1089
+ 489, 136, 303, 305, 307, 309, 311, 393, -49, -17,
1090
+ 550, 18, 35, 289, -86, 279, 318, 218, 158, 159,
1091
+ 203, 351, 173, 430, 431, 432, 433, 434, 394, 219,
1092
+ 220, 221, 222, 223, 499, 36, 224, 225, 151, 228,
1093
+ 531, 338, 235, 236, 237, 551, 238, 331, 241, 19,
1094
+ 174, 498, 35, 153, 260, 403, 544, 262, 394, 404,
1095
+ 214, 214, 267, 260, 269, 270, -19, 272, 273, 275,
1096
+ 329, 276, -89, 160, -172, -89, 268, -19, 136, 271,
1097
+ 239, 287, 493, 319, 288, 172, 290, 291, 292, 585,
1098
+ 331, 517, 177, 296, -19, 328, 331, -126, -19, 302,
1099
+ 304, 306, 308, 310, 125, 322, -19, 174, 126, 490,
1100
+ 327, 301, 411, 323, 324, 325, 336, -49, 180, 313,
1101
+ -17, 234, 549, -86, -17, 536, -86, 319, -86, -86,
1102
+ 19, 204, 205, 206, 207, 346, 347, 435, 454, 348,
1103
+ 349, 157, 618, 447, 602, 603, 188, 565, 353, 354,
1104
+ 625, 640, 422, -81, 424, 256, 444, -19, -243, 38,
1105
+ 184, -89, 157, 539, 652, 653, 368, 540, 626, 627,
1106
+ 329, -367, 537, 185, -81, 377, 214, 558, 18, 186,
1107
+ 331, 125, 257, 451, 590, 126, 679, 384, 683, 387,
1108
+ 180, 379, 686, 389, 188, 583, 584, 141, 158, 159,
1109
+ 18, 386, 18, 413, 414, 19, 19, 555, 420, 410,
1110
+ 262, 181, 182, 654, -19, 196, 695, 404, -19, 158,
1111
+ 159, 242, 699, 427, 298, 460, 623, 624, 18, 505,
1112
+ 438, 200, 19, 19, -243, 38, 685, 277, 274, -19,
1113
+ 556, -19, 19, 201, 443, 143, 144, -367, 141, 467,
1114
+ -19, 450, 440, 160, 522, -89, 615, 502, 721, 178,
1115
+ 179, 628, -2, 338, 266, 170, 281, -243, 338, 280,
1116
+ 689, 284, 636, 256, 160, 568, 286, 457, 289, 458,
1117
+ 331, 234, 181, 182, 462, 463, 566, 567, 239, 240,
1118
+ -19, 495, 496, 714, 637, -336, 246, 500, 702, 501,
1119
+ 257, 651, 504, 506, 720, 300, 125, 18, 510, 511,
1120
+ 126, 19, 514, 638, 247, 518, -19, 312, -19, -19,
1121
+ 596, 597, 524, 525, 256, 675, 321, 527, 662, 528,
1122
+ 664, 529, 314, 530, 326, 231, 352, 427, 336, 315,
1123
+ 75, -19, 570, 336, 706, 696, 533, 382, 535, 197,
1124
+ 383, 257, 388, 19, 713, 703, 401, 402, 189, 407,
1125
+ 546, -19, 408, 412, 547, 428, 446, 439, -19, -19,
1126
+ 290, 461, 464, 296, 343, 497, 466, 465, 704, 635,
1127
+ 694, 69, 70, 71, 72, 73, 508, 552, 553, 554,
1128
+ 509, 516, 521, 248, 249, 250, 251, 252, 253, 526,
1129
+ 18, 254, 561, -19, -336, 160, 564, -336, 255, 557,
1130
+ -336, 256, 569, 619, 620, 621, 622, 575, 576, 577,
1131
+ 578, 579, 580, 394, 581, 645, 234, 571, 24, 24,
1132
+ 657, 586, 606, -93, 157, 589, 79, 574, 257, 190,
1133
+ 191, 595, 192, 582, 262, 718, -81, 193, 194, 641,
1134
+ 357, 678, 604, 605, 416, 698, 419, 663, 421, 563,
1135
+ 423, 390, 425, 612, 282, 556, -89, 157, 608, 665,
1136
+ 610, 256, 666, 607, -242, 373, 55, 57, 256, -81,
1137
+ 573, 616, 234, 635, 441, 442, 58, 667, 445, 650,
1138
+ 681, 158, 159, 247, 24, 452, 453, 455, 257, 631,
1139
+ 142, -89, 157, 60, 668, 257, 209, 633, 69, 70,
1140
+ 71, 72, 73, 210, -81, 62, 701, 669, 64, 670,
1141
+ 415, 639, 488, 671, 158, 159, 646, 647, 187, 299,
1142
+ 691, 599, 494, 655, 24, 316, 211, 687, 429, 532,
1143
+ 152, 656, -93, 632, 141, -93, 160, 705, -93, 515,
1144
+ 350, 541, 542, 676, 677, 692, 601, 538, 672, 158,
1145
+ 159, 673, 523, 368, 0, 0, 688, 0, 0, 0,
1146
+ 330, 0, 248, 249, 250, 251, 252, 253, -89, 160,
1147
+ 254, -89, 690, 0, -242, -242, 710, 255, 0, 262,
1148
+ 697, 0, -88, 246, 0, 0, 0, 0, 0, 0,
1149
+ 545, 0, 0, 0, 0, 0, 0, 707, 0, 708,
1150
+ -89, 247, 0, -89, 160, 0, -89, 0, 715, 0,
1151
+ 716, 717, 0, 0, 0, 0, 0, 719, 0, 0,
1152
+ 0, 0, 0, 0, 89, 90, 91, 92, 93, 94,
1153
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1154
+ 105, 106, 107, 0, 0, 109, 110, 111, 112, 113,
1155
+ 114, 115, 116, 117, 118, 119, 0, -64, -137, 45,
1156
+ -103, -163, 0, 46, -165, 587, 588, 0, 591, 592,
1157
+ 593, 594, 335, -119, -119, 125, 0, 0, 600, 126,
1158
+ 248, 249, 250, 251, 252, 253, 0, 0, 254, 0,
1159
+ 0, -88, 329, 0, -88, 255, -88, -88, 0, 0,
1160
+ 0, 0, 0, 611, 86, 87, 0, 88, 0, 0,
1161
+ 0, 0, 0, 0, 617, 0, 0, 197, 0, 0,
1162
+ 0, 19, -87, 246, 0, 0, 0, 629, 0, -19,
1163
+ 630, -19, -19, -19, -19, -19, -19, -19, 0, 0,
1164
+ 1, 247, 634, 2, 3, 4, 5, 6, 7, 8,
1165
+ 0, 0, 0, 0, 0, 0, 644, 89, 90, 91,
1166
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1167
+ 102, 103, 104, 105, 106, 107, 108, 0, 109, 110,
1168
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1169
+ 121, 0, 0, 0, 0, 122, 0, 0, 0, 0,
1170
+ 123, 0, 331, 0, 229, 124, 230, 0, 125, 0,
1171
+ 0, 231, 126, 0, 127, 128, 86, 87, 0, 88,
1172
+ 248, 249, 250, 251, 252, 253, 0, 0, 254, 0,
1173
+ 0, -87, 0, 0, -87, 255, -87, -87, 0, -343,
1174
+ 246, 0, 0, 0, 0, 711, 712, 68, 0, 69,
1175
+ 70, 71, 72, 73, 74, 75, 0, 0, 247, 0,
1176
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
1177
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1178
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 0,
1179
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1180
+ 119, 120, 121, 0, 0, 0, 0, 122, 0, 0,
1181
+ 0, 0, 123, 0, 0, 0, 0, 124, 230, 0,
1182
+ 125, 329, 330, 231, 126, 0, 127, 128, 0, 0,
1183
+ -249, 609, 0, 86, 87, 0, 88, 248, 249, 250,
1184
+ 251, 252, 253, 0, 0, 254, 0, 0, -343, 318,
1185
+ 373, -343, 255, 0, -343, 0, 0, 0, 0, 0,
1186
+ 0, 0, 0, 0, 0, 0, 0, 0, 247, 0,
1187
+ -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
1188
+ -249, -249, -249, -249, -249, -249, 89, 90, 91, 92,
1189
+ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1190
+ 103, 104, 105, 106, 107, 108, 0, 109, 110, 111,
1191
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1192
+ 0, 492, 0, 0, 122, 0, 0, 0, 0, 123,
1193
+ 0, 331, 86, 87, 124, 88, 0, 125, 0, -249,
1194
+ 0, 126, -249, 127, 128, 0, 0, 248, 249, 250,
1195
+ 251, 252, 253, 329, 373, 254, 0, 0, 0, 0,
1196
+ 319, 0, 255, 0, 262, 0, 0, 0, 0, 0,
1197
+ 0, 0, 247, 0, 0, 0, 0, 0, 0, 0,
1198
+ 0, 0, 0, 0, 0, 89, 90, 91, 92, 93,
1199
+ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1200
+ 104, 105, 106, 107, 108, 0, 109, 110, 111, 112,
1201
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 0,
1202
+ 693, 0, 0, 122, 0, 0, 0, 0, 123, 0,
1203
+ 0, 86, 87, 124, 88, 0, 125, 0, 0, 0,
1204
+ 126, 0, 127, 128, 0, 0, 0, 0, 0, 0,
1205
+ 0, 248, 249, 250, 251, 252, 253, 0, 0, 254,
1206
+ 0, 0, 0, 331, 0, 0, 255, 0, 262, 0,
1207
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208
+ 0, 0, 0, 0, 89, 90, 91, 92, 93, 94,
1209
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1210
+ 105, 106, 107, 108, 0, 109, 110, 111, 112, 113,
1211
+ 114, 115, 116, 117, 118, 119, 120, 121, -253, 373,
1212
+ 0, 0, 122, 0, 0, 0, 0, 123, 0, 0,
1213
+ 0, 0, 124, 0, 0, 125, 489, 247, 0, 126,
1214
+ 0, 127, 128, 0, 0, 0, 0, 0, 0, 0,
1215
+ 0, 0, 0, 0, 0, -252, 373, 0, -253, -253,
1216
+ -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1217
+ -253, -253, -253, -253, 247, 0, 468, 469, 470, 471,
1218
+ 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
1219
+ 482, 483, 0, 0, 0, -252, -252, -252, -252, -252,
1220
+ -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
1221
+ -252, 0, 0, 0, 0, 0, 248, 249, 250, 251,
1222
+ 252, 253, 0, 0, 254, 0, 0, -253, 0, 0,
1223
+ -253, 255, 0, 262, 0, 0, 0, 0, 0, 0,
1224
+ -251, 373, 0, 0, 0, 490, 0, 0, 0, 0,
1225
+ 0, 0, 0, 248, 249, 250, 251, 252, 253, 247,
1226
+ 0, 254, 0, 0, -252, 0, 0, -252, 255, 0,
1227
+ 262, 0, 0, 0, 0, 0, 0, -250, 373, 0,
1228
+ -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
1229
+ -251, -251, -251, -251, -251, -251, 247, 489, 373, 468,
1230
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
1231
+ 479, 480, 481, 482, 483, 484, 247, -250, -250, -250,
1232
+ -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
1233
+ -250, -250, -250, 0, 0, -266, 373, 0, 248, 249,
1234
+ 250, 251, 252, 253, 0, 0, 254, 0, 0, -251,
1235
+ 0, 0, -251, 255, 247, 262, 0, 0, 0, 0,
1236
+ 0, 0, -136, 246, 0, 0, 0, 0, 0, 0,
1237
+ 0, 0, 0, 0, 0, 248, 249, 250, 251, 252,
1238
+ 253, 247, 0, 254, 0, 0, -250, 0, 0, -250,
1239
+ 255, 0, 262, 0, 0, 248, 249, 250, 251, 252,
1240
+ 253, -355, 246, 254, 0, 0, 490, 0, 0, 0,
1241
+ 255, 0, 262, 0, 0, 0, 0, 0, 0, 0,
1242
+ 247, 246, 0, 0, 0, 0, 0, 0, 0, 0,
1243
+ 0, 0, 0, 248, 249, 250, 251, 252, 253, 247,
1244
+ 0, 254, 0, 0, 0, -266, 0, 0, 255, 0,
1245
+ 262, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246
+ 248, 249, 250, 251, 252, 253, 0, 0, 254, 0,
1247
+ 0, -136, 0, 0, 0, 255, 0, -136, 0, 0,
1248
+ 0, 0, 0, 86, 87, 0, 88, 0, 0, 0,
1249
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 248,
1250
+ 249, 250, 251, 252, 253, 0, 0, 254, 0, 0,
1251
+ -355, 0, 0, 0, 255, 0, -355, 0, 248, 249,
1252
+ 250, 251, 252, 253, 0, 0, 254, 0, 559, 0,
1253
+ 0, 0, 0, 255, 0, -355, 89, 90, 91, 92,
1254
+ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1255
+ 103, 104, 105, 106, 107, 108, 0, 109, 110, 111,
1256
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1257
+ 86, 87, 0, 88, 122, 0, 0, 0, 0, 123,
1258
+ 0, 0, 0, 0, 124, 230, 0, 125, 0, 0,
1259
+ 231, 126, 0, 127, 128, 0, 0, 0, 0, 0,
1260
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1261
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1262
+ 0, 0, 0, 89, 90, 91, 92, 93, 94, 95,
1263
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1264
+ 106, 107, 108, 0, 109, 110, 111, 112, 113, 114,
1265
+ 115, 116, 117, 118, 119, 120, 121, 86, 87, 0,
1266
+ 88, 122, 0, 0, 0, 0, 123, 0, 0, 0,
1267
+ 0, 124, 230, 0, 125, 0, 0, 231, 126, 0,
1268
+ 127, 128, 0, 0, 0, 0, 0, 0, 0, 0,
1269
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1271
+ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1272
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1273
+ 0, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1274
+ 118, 119, 120, 121, -246, 38, 0, 0, 122, 0,
1275
+ 0, 0, 0, 123, 0, 0, 0, -367, 124, 0,
1276
+ 0, 125, -243, 38, 0, 126, 0, 127, 128, 0,
1277
+ 0, 0, 0, 0, 0, -367, 0, 0, 0, 0,
1278
+ 0, 0, 0, 0, -246, -246, -246, -246, -246, -246,
1279
+ -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
1280
+ 0, 0, -243, -243, -243, -243, -243, -243, -243, -243,
1281
+ -243, -243, -243, -243, -243, -243, -243, -243, 0, 0,
1282
+ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1283
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 226,
1284
+ 355, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1285
+ 118, 119, -176, -246, -176, -176, -176, -176, -176, -176,
1286
+ -176, -64, -137, 45, -103, -163, 0, 356, -165, 0,
1287
+ 0, -243, 0, 0, 0, 0, 0, -119, -119, -367,
1288
+ -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
1289
+ -367, -367, -367, -367, -367, -367, 660, 0, 0, 0,
1290
+ 0, 0, 0, 0, 0, 0, 0, 0, -176, 0,
1291
+ -176, -176, -176, -176, -176, -176, -176, -64, -137, 45,
1292
+ -103, -163, 0, 356, -165, 0, 0, 0, 0, 0,
1293
+ 0, 0, 0, -119, -119, -367, -367, -367, -367, -367,
1294
+ -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
1295
+ -367, -367, 89, 90, 91, 92, 93, 94, 95, 96,
1296
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1297
+ 107, 0, 0, 109, 110, 111, 112, 113, 114, 115,
1298
+ 116, 117, 118, 119, 0, 0, 0, 0, 0, 0,
1299
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1300
+ 335, 0, 0, 125, 0, 0, 0, 126, 89, 90,
1301
+ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1302
+ 101, 102, 103, 104, 105, 106, 107, 0, 0, 109,
1303
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119
1304
+ };
1305
+
1306
+ static const yytype_int16 yycheck[] =
1307
+ {
1308
+ 1, 2, 3, 4, 5, 6, 7, 8, 52, 131,
1309
+ 37, 146, 149, 220, 1, 30, 31, 245, 317, 81,
1310
+ 28, 244, 247, 244, 149, 288, 271, 0, 180, 354,
1311
+ 18, 183, 0, 258, 186, 36, 341, 262, 146, 129,
1312
+ 221, 0, 223, 268, 45, 46, 47, 20, 13, 274,
1313
+ 38, 1, 78, 1, 80, 12, 0, 5, 66, 401,
1314
+ 402, 0, 0, 13, 1, 407, 408, 62, 13, 1,
1315
+ 0, 370, 73, 5, 5, 299, 0, 1, 0, 1,
1316
+ 17, 13, 14, 71, 456, 86, 87, 88, 313, 13,
1317
+ 0, 13, 190, 191, 192, 193, 194, 62, 0, 5,
1318
+ 112, 1, 5, 115, 0, 1, 0, 108, 58, 59,
1319
+ 5, 233, 12, 7, 8, 9, 10, 11, 113, 120,
1320
+ 121, 122, 123, 124, 387, 12, 127, 128, 0, 130,
1321
+ 429, 221, 133, 134, 135, 1, 137, 110, 139, 5,
1322
+ 97, 386, 5, 112, 112, 13, 119, 115, 113, 17,
1323
+ 212, 213, 153, 112, 155, 156, 88, 158, 159, 160,
1324
+ 0, 162, 112, 113, 86, 115, 154, 115, 13, 157,
1325
+ 114, 172, 379, 111, 175, 22, 177, 178, 179, 521,
1326
+ 110, 405, 25, 184, 116, 211, 110, 109, 120, 190,
1327
+ 191, 192, 193, 194, 116, 203, 62, 97, 120, 109,
1328
+ 208, 189, 300, 204, 205, 206, 221, 109, 13, 197,
1329
+ 116, 333, 457, 109, 120, 440, 112, 111, 114, 115,
1330
+ 5, 116, 117, 118, 119, 226, 227, 121, 350, 230,
1331
+ 231, 1, 574, 538, 539, 540, 21, 500, 239, 240,
1332
+ 582, 613, 308, 13, 310, 380, 336, 113, 0, 1,
1333
+ 23, 0, 1, 116, 626, 627, 244, 120, 583, 584,
1334
+ 0, 13, 443, 26, 13, 266, 328, 492, 1, 29,
1335
+ 110, 116, 380, 13, 114, 120, 648, 278, 650, 280,
1336
+ 13, 269, 654, 284, 21, 519, 520, 302, 58, 59,
1337
+ 1, 279, 1, 13, 14, 5, 5, 112, 306, 300,
1338
+ 115, 12, 13, 628, 13, 13, 678, 17, 17, 58,
1339
+ 59, 86, 684, 314, 466, 359, 579, 580, 1, 1,
1340
+ 321, 21, 5, 5, 0, 1, 651, 13, 1, 12,
1341
+ 467, 13, 5, 0, 335, 5, 6, 13, 353, 366,
1342
+ 13, 342, 330, 113, 410, 115, 571, 391, 720, 38,
1343
+ 39, 585, 0, 443, 112, 356, 0, 109, 448, 114,
1344
+ 659, 13, 607, 498, 113, 502, 0, 355, 115, 356,
1345
+ 110, 493, 12, 13, 361, 362, 501, 502, 114, 115,
1346
+ 62, 382, 383, 708, 609, 0, 1, 388, 687, 390,
1347
+ 498, 625, 393, 394, 719, 100, 116, 1, 63, 64,
1348
+ 120, 5, 403, 610, 19, 406, 115, 13, 12, 13,
1349
+ 12, 13, 413, 414, 549, 643, 114, 418, 641, 420,
1350
+ 641, 422, 13, 424, 13, 119, 0, 428, 443, 20,
1351
+ 21, 113, 504, 448, 697, 680, 437, 13, 439, 1,
1352
+ 60, 549, 114, 5, 707, 690, 115, 115, 17, 115,
1353
+ 451, 13, 115, 13, 455, 13, 5, 119, 20, 21,
1354
+ 461, 25, 23, 464, 223, 60, 29, 26, 693, 606,
1355
+ 677, 15, 16, 17, 18, 19, 63, 464, 465, 466,
1356
+ 64, 13, 115, 98, 99, 100, 101, 102, 103, 88,
1357
+ 1, 106, 17, 97, 109, 113, 497, 112, 113, 486,
1358
+ 115, 636, 503, 575, 576, 577, 578, 508, 509, 510,
1359
+ 511, 512, 513, 113, 515, 17, 638, 505, 519, 520,
1360
+ 13, 522, 549, 0, 1, 526, 534, 115, 636, 98,
1361
+ 99, 532, 101, 115, 115, 115, 13, 106, 107, 614,
1362
+ 244, 647, 543, 544, 303, 682, 305, 641, 307, 496,
1363
+ 309, 285, 311, 564, 168, 692, 0, 1, 559, 641,
1364
+ 561, 696, 641, 551, 0, 1, 27, 27, 703, 13,
1365
+ 506, 572, 694, 710, 333, 334, 27, 641, 337, 624,
1366
+ 649, 58, 59, 19, 585, 344, 345, 353, 696, 590,
1367
+ 31, 0, 1, 27, 641, 703, 13, 598, 15, 16,
1368
+ 17, 18, 19, 20, 13, 27, 684, 641, 27, 641,
1369
+ 302, 612, 371, 641, 58, 59, 617, 618, 66, 187,
1370
+ 664, 534, 381, 631, 625, 198, 78, 656, 316, 429,
1371
+ 40, 632, 109, 595, 649, 112, 113, 694, 115, 403,
1372
+ 232, 448, 448, 644, 645, 672, 538, 443, 641, 58,
1373
+ 59, 641, 411, 641, -1, -1, 657, -1, -1, -1,
1374
+ 1, -1, 98, 99, 100, 101, 102, 103, 112, 113,
1375
+ 106, 115, 660, -1, 110, 111, 703, 113, -1, 115,
1376
+ 681, -1, 0, 1, -1, -1, -1, -1, -1, -1,
1377
+ 449, -1, -1, -1, -1, -1, -1, 698, -1, 700,
1378
+ 109, 19, -1, 112, 113, -1, 115, -1, 709, -1,
1379
+ 711, 712, -1, -1, -1, -1, -1, 718, -1, -1,
1380
+ -1, -1, -1, -1, 65, 66, 67, 68, 69, 70,
1381
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1382
+ 81, 82, 83, -1, -1, 86, 87, 88, 89, 90,
1383
+ 91, 92, 93, 94, 95, 96, -1, 22, 23, 24,
1384
+ 25, 26, -1, 28, 29, 524, 525, -1, 527, 528,
1385
+ 529, 530, 113, 38, 39, 116, -1, -1, 537, 120,
1386
+ 98, 99, 100, 101, 102, 103, -1, -1, 106, -1,
1387
+ -1, 109, 0, -1, 112, 113, 114, 115, -1, -1,
1388
+ -1, -1, -1, 562, 12, 13, -1, 15, -1, -1,
1389
+ -1, -1, -1, -1, 573, -1, -1, 1, -1, -1,
1390
+ -1, 5, 0, 1, -1, -1, -1, 586, -1, 13,
1391
+ 589, 15, 16, 17, 18, 19, 20, 21, -1, -1,
1392
+ 27, 19, 601, 30, 31, 32, 33, 34, 35, 36,
1393
+ -1, -1, -1, -1, -1, -1, 615, 65, 66, 67,
1394
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1395
+ 78, 79, 80, 81, 82, 83, 84, -1, 86, 87,
1396
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1397
+ 98, -1, -1, -1, -1, 103, -1, -1, -1, -1,
1398
+ 108, -1, 110, -1, 0, 113, 114, -1, 116, -1,
1399
+ -1, 119, 120, -1, 122, 123, 12, 13, -1, 15,
1400
+ 98, 99, 100, 101, 102, 103, -1, -1, 106, -1,
1401
+ -1, 109, -1, -1, 112, 113, 114, 115, -1, 0,
1402
+ 1, -1, -1, -1, -1, 704, 705, 13, -1, 15,
1403
+ 16, 17, 18, 19, 20, 21, -1, -1, 19, -1,
1404
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 65,
1405
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1406
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
1407
+ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1408
+ 96, 97, 98, -1, -1, -1, -1, 103, -1, -1,
1409
+ -1, -1, 108, -1, -1, -1, -1, 113, 114, -1,
1410
+ 116, 0, 1, 119, 120, -1, 122, 123, -1, -1,
1411
+ 0, 1, -1, 12, 13, -1, 15, 98, 99, 100,
1412
+ 101, 102, 103, -1, -1, 106, -1, -1, 109, 0,
1413
+ 1, 112, 113, -1, 115, -1, -1, -1, -1, -1,
1414
+ -1, -1, -1, -1, -1, -1, -1, -1, 19, -1,
1415
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1416
+ 50, 51, 52, 53, 54, 55, 65, 66, 67, 68,
1417
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1418
+ 79, 80, 81, 82, 83, 84, -1, 86, 87, 88,
1419
+ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1420
+ -1, 1, -1, -1, 103, -1, -1, -1, -1, 108,
1421
+ -1, 110, 12, 13, 113, 15, -1, 116, -1, 109,
1422
+ -1, 120, 112, 122, 123, -1, -1, 98, 99, 100,
1423
+ 101, 102, 103, 0, 1, 106, -1, -1, -1, -1,
1424
+ 111, -1, 113, -1, 115, -1, -1, -1, -1, -1,
1425
+ -1, -1, 19, -1, -1, -1, -1, -1, -1, -1,
1426
+ -1, -1, -1, -1, -1, 65, 66, 67, 68, 69,
1427
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1428
+ 80, 81, 82, 83, 84, -1, 86, 87, 88, 89,
1429
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, -1,
1430
+ 1, -1, -1, 103, -1, -1, -1, -1, 108, -1,
1431
+ -1, 12, 13, 113, 15, -1, 116, -1, -1, -1,
1432
+ 120, -1, 122, 123, -1, -1, -1, -1, -1, -1,
1433
+ -1, 98, 99, 100, 101, 102, 103, -1, -1, 106,
1434
+ -1, -1, -1, 110, -1, -1, 113, -1, 115, -1,
1435
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1436
+ -1, -1, -1, -1, 65, 66, 67, 68, 69, 70,
1437
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1438
+ 81, 82, 83, 84, -1, 86, 87, 88, 89, 90,
1439
+ 91, 92, 93, 94, 95, 96, 97, 98, 0, 1,
1440
+ -1, -1, 103, -1, -1, -1, -1, 108, -1, -1,
1441
+ -1, -1, 113, -1, -1, 116, 0, 19, -1, 120,
1442
+ -1, 122, 123, -1, -1, -1, -1, -1, -1, -1,
1443
+ -1, -1, -1, -1, -1, 0, 1, -1, 40, 41,
1444
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1445
+ 52, 53, 54, 55, 19, -1, 40, 41, 42, 43,
1446
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1447
+ 54, 55, -1, -1, -1, 40, 41, 42, 43, 44,
1448
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1449
+ 55, -1, -1, -1, -1, -1, 98, 99, 100, 101,
1450
+ 102, 103, -1, -1, 106, -1, -1, 109, -1, -1,
1451
+ 112, 113, -1, 115, -1, -1, -1, -1, -1, -1,
1452
+ 0, 1, -1, -1, -1, 109, -1, -1, -1, -1,
1453
+ -1, -1, -1, 98, 99, 100, 101, 102, 103, 19,
1454
+ -1, 106, -1, -1, 109, -1, -1, 112, 113, -1,
1455
+ 115, -1, -1, -1, -1, -1, -1, 0, 1, -1,
1456
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1457
+ 50, 51, 52, 53, 54, 55, 19, 0, 1, 40,
1458
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1459
+ 51, 52, 53, 54, 55, 56, 19, 40, 41, 42,
1460
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1461
+ 53, 54, 55, -1, -1, 0, 1, -1, 98, 99,
1462
+ 100, 101, 102, 103, -1, -1, 106, -1, -1, 109,
1463
+ -1, -1, 112, 113, 19, 115, -1, -1, -1, -1,
1464
+ -1, -1, 0, 1, -1, -1, -1, -1, -1, -1,
1465
+ -1, -1, -1, -1, -1, 98, 99, 100, 101, 102,
1466
+ 103, 19, -1, 106, -1, -1, 109, -1, -1, 112,
1467
+ 113, -1, 115, -1, -1, 98, 99, 100, 101, 102,
1468
+ 103, 0, 1, 106, -1, -1, 109, -1, -1, -1,
1469
+ 113, -1, 115, -1, -1, -1, -1, -1, -1, -1,
1470
+ 19, 1, -1, -1, -1, -1, -1, -1, -1, -1,
1471
+ -1, -1, -1, 98, 99, 100, 101, 102, 103, 19,
1472
+ -1, 106, -1, -1, -1, 110, -1, -1, 113, -1,
1473
+ 115, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1474
+ 98, 99, 100, 101, 102, 103, -1, -1, 106, -1,
1475
+ -1, 109, -1, -1, -1, 113, -1, 115, -1, -1,
1476
+ -1, -1, -1, 12, 13, -1, 15, -1, -1, -1,
1477
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 98,
1478
+ 99, 100, 101, 102, 103, -1, -1, 106, -1, -1,
1479
+ 109, -1, -1, -1, 113, -1, 115, -1, 98, 99,
1480
+ 100, 101, 102, 103, -1, -1, 106, -1, 57, -1,
1481
+ -1, -1, -1, 113, -1, 115, 65, 66, 67, 68,
1482
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1483
+ 79, 80, 81, 82, 83, 84, -1, 86, 87, 88,
1484
+ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1485
+ 12, 13, -1, 15, 103, -1, -1, -1, -1, 108,
1486
+ -1, -1, -1, -1, 113, 114, -1, 116, -1, -1,
1487
+ 119, 120, -1, 122, 123, -1, -1, -1, -1, -1,
1488
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1489
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1490
+ -1, -1, -1, 65, 66, 67, 68, 69, 70, 71,
1491
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1492
+ 82, 83, 84, -1, 86, 87, 88, 89, 90, 91,
1493
+ 92, 93, 94, 95, 96, 97, 98, 12, 13, -1,
1494
+ 15, 103, -1, -1, -1, -1, 108, -1, -1, -1,
1495
+ -1, 113, 114, -1, 116, -1, -1, 119, 120, -1,
1496
+ 122, 123, -1, -1, -1, -1, -1, -1, -1, -1,
1497
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1498
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1499
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1500
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1501
+ -1, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1502
+ 95, 96, 97, 98, 0, 1, -1, -1, 103, -1,
1503
+ -1, -1, -1, 108, -1, -1, -1, 13, 113, -1,
1504
+ -1, 116, 0, 1, -1, 120, -1, 122, 123, -1,
1505
+ -1, -1, -1, -1, -1, 13, -1, -1, -1, -1,
1506
+ -1, -1, -1, -1, 40, 41, 42, 43, 44, 45,
1507
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1508
+ -1, -1, 40, 41, 42, 43, 44, 45, 46, 47,
1509
+ 48, 49, 50, 51, 52, 53, 54, 55, -1, -1,
1510
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1511
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1512
+ 1, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1513
+ 95, 96, 13, 109, 15, 16, 17, 18, 19, 20,
1514
+ 21, 22, 23, 24, 25, 26, -1, 28, 29, -1,
1515
+ -1, 109, -1, -1, -1, -1, -1, 38, 39, 40,
1516
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1517
+ 51, 52, 53, 54, 55, 56, 1, -1, -1, -1,
1518
+ -1, -1, -1, -1, -1, -1, -1, -1, 13, -1,
1519
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1520
+ 25, 26, -1, 28, 29, -1, -1, -1, -1, -1,
1521
+ -1, -1, -1, 38, 39, 40, 41, 42, 43, 44,
1522
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1523
+ 55, 56, 65, 66, 67, 68, 69, 70, 71, 72,
1524
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1525
+ 83, -1, -1, 86, 87, 88, 89, 90, 91, 92,
1526
+ 93, 94, 95, 96, -1, -1, -1, -1, -1, -1,
1527
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1528
+ 113, -1, -1, 116, -1, -1, -1, 120, 65, 66,
1529
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1530
+ 77, 78, 79, 80, 81, 82, 83, -1, -1, 86,
1531
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96
1532
+ };
1533
+
1534
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1535
+ symbol of state STATE-NUM. */
1536
+ static const yytype_int16 yystos[] =
1537
+ {
1538
+ 0, 27, 30, 31, 32, 33, 34, 35, 36, 125,
1539
+ 126, 127, 128, 129, 130, 131, 132, 140, 1, 5,
1540
+ 133, 134, 251, 252, 134, 206, 134, 134, 134, 134,
1541
+ 134, 134, 0, 135, 262, 5, 12, 257, 1, 230,
1542
+ 231, 232, 233, 262, 263, 24, 28, 142, 150, 151,
1543
+ 152, 153, 169, 170, 172, 173, 181, 182, 183, 184,
1544
+ 192, 193, 199, 200, 201, 202, 207, 210, 13, 15,
1545
+ 16, 17, 18, 19, 20, 21, 212, 213, 214, 215,
1546
+ 217, 218, 219, 220, 224, 228, 12, 13, 15, 65,
1547
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1548
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 86,
1549
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1550
+ 97, 98, 103, 108, 113, 116, 120, 122, 123, 205,
1551
+ 236, 237, 241, 242, 243, 249, 13, 188, 189, 190,
1552
+ 204, 205, 189, 5, 6, 141, 265, 134, 253, 257,
1553
+ 262, 0, 232, 112, 1, 17, 13, 1, 58, 59,
1554
+ 113, 157, 158, 160, 161, 162, 163, 164, 165, 134,
1555
+ 134, 134, 22, 12, 97, 155, 163, 25, 38, 39,
1556
+ 13, 12, 13, 185, 23, 26, 29, 212, 21, 17,
1557
+ 98, 99, 101, 106, 107, 262, 13, 1, 134, 229,
1558
+ 21, 0, 209, 5, 116, 117, 118, 119, 203, 13,
1559
+ 20, 217, 218, 218, 219, 134, 134, 134, 134, 134,
1560
+ 134, 134, 134, 134, 134, 134, 84, 242, 134, 0,
1561
+ 114, 119, 239, 240, 241, 134, 134, 134, 134, 114,
1562
+ 115, 134, 86, 0, 143, 144, 1, 19, 98, 99,
1563
+ 100, 101, 102, 103, 106, 113, 259, 260, 261, 0,
1564
+ 112, 139, 115, 139, 258, 264, 112, 134, 262, 134,
1565
+ 134, 262, 134, 134, 1, 134, 134, 13, 171, 1,
1566
+ 114, 0, 162, 167, 13, 154, 0, 134, 134, 115,
1567
+ 134, 134, 134, 134, 168, 168, 134, 168, 168, 209,
1568
+ 100, 262, 134, 229, 134, 229, 134, 229, 134, 229,
1569
+ 134, 229, 13, 262, 13, 20, 214, 221, 0, 111,
1570
+ 138, 114, 215, 134, 134, 134, 13, 215, 218, 0,
1571
+ 1, 110, 137, 237, 238, 113, 205, 238, 242, 244,
1572
+ 247, 248, 13, 137, 235, 238, 134, 134, 134, 134,
1573
+ 239, 241, 0, 134, 134, 1, 28, 142, 151, 169,
1574
+ 173, 182, 183, 192, 199, 201, 254, 255, 262, 135,
1575
+ 264, 264, 264, 1, 258, 259, 260, 134, 264, 262,
1576
+ 265, 264, 13, 60, 134, 159, 262, 134, 114, 134,
1577
+ 155, 263, 208, 62, 113, 175, 176, 177, 178, 179,
1578
+ 180, 115, 115, 13, 17, 194, 227, 115, 115, 208,
1579
+ 134, 229, 13, 13, 14, 204, 137, 215, 216, 137,
1580
+ 215, 137, 216, 137, 216, 137, 264, 134, 13, 221,
1581
+ 7, 8, 9, 10, 11, 121, 138, 225, 134, 119,
1582
+ 262, 137, 137, 134, 242, 137, 5, 133, 245, 246,
1583
+ 134, 13, 137, 137, 241, 190, 230, 262, 252, 252,
1584
+ 163, 25, 252, 252, 23, 26, 29, 257, 40, 41,
1585
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1586
+ 52, 53, 54, 55, 56, 198, 250, 138, 137, 0,
1587
+ 109, 136, 1, 237, 137, 134, 134, 60, 265, 263,
1588
+ 134, 134, 163, 166, 134, 1, 134, 174, 63, 64,
1589
+ 63, 64, 166, 166, 134, 227, 13, 208, 134, 166,
1590
+ 166, 115, 216, 137, 134, 134, 88, 134, 134, 134,
1591
+ 134, 138, 225, 134, 211, 134, 264, 238, 248, 116,
1592
+ 120, 244, 247, 20, 119, 137, 134, 134, 136, 265,
1593
+ 112, 1, 252, 252, 252, 112, 258, 252, 264, 57,
1594
+ 234, 17, 156, 157, 134, 263, 139, 139, 258, 134,
1595
+ 179, 262, 13, 175, 115, 134, 134, 134, 134, 134,
1596
+ 134, 134, 115, 206, 206, 166, 134, 137, 137, 134,
1597
+ 114, 137, 137, 137, 137, 134, 12, 13, 226, 213,
1598
+ 137, 246, 133, 133, 134, 134, 257, 262, 134, 1,
1599
+ 134, 137, 158, 145, 146, 264, 134, 137, 166, 179,
1600
+ 179, 179, 179, 263, 263, 166, 230, 230, 206, 137,
1601
+ 137, 134, 226, 134, 137, 258, 265, 264, 237, 134,
1602
+ 136, 143, 147, 149, 137, 17, 134, 134, 186, 187,
1603
+ 186, 206, 136, 136, 230, 215, 134, 13, 222, 223,
1604
+ 1, 148, 151, 153, 169, 170, 172, 184, 193, 200,
1605
+ 202, 210, 254, 255, 256, 135, 134, 134, 145, 136,
1606
+ 1, 188, 191, 136, 195, 230, 136, 223, 134, 138,
1607
+ 262, 163, 257, 1, 237, 136, 265, 134, 258, 136,
1608
+ 196, 198, 138, 265, 264, 234, 263, 134, 134, 197,
1609
+ 257, 137, 137, 263, 230, 134, 134, 134, 115, 134,
1610
+ 230, 136
1611
+ };
1612
+
1613
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1614
+ static const yytype_int16 yyr1[] =
1615
+ {
1616
+ 0, 124, 125, 125, 125, 125, 125, 125, 125, 125,
1617
+ 126, 127, 128, 129, 130, 131, 132, 133, 133, 134,
1618
+ 134, 135, 135, 135, 136, 136, 137, 137, 138, 138,
1619
+ 139, 139, 140, 140, 140, 141, 141, 142, 142, 142,
1620
+ 142, 142, 142, 142, 142, 142, 143, 144, 144, 145,
1621
+ 145, 146, 146, 147, 148, 148, 148, 148, 148, 148,
1622
+ 148, 148, 149, 149, 150, 151, 152, 152, 153, 154,
1623
+ 154, 155, 155, 156, 156, 157, 157, 158, 158, 159,
1624
+ 159, 160, 160, 160, 161, 161, 162, 162, 162, 163,
1625
+ 163, 164, 164, 164, 165, 165, 166, 167, 168, 169,
1626
+ 170, 171, 172, 173, 174, 175, 175, 175, 175, 176,
1627
+ 177, 177, 178, 178, 179, 179, 179, 180, 180, 181,
1628
+ 182, 183, 184, 184, 185, 185, 186, 186, 187, 187,
1629
+ 187, 188, 189, 189, 190, 190, 191, 192, 193, 194,
1630
+ 194, 194, 194, 195, 195, 197, 196, 198, 198, 198,
1631
+ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
1632
+ 198, 198, 198, 199, 200, 201, 202, 203, 203, 203,
1633
+ 203, 204, 204, 205, 205, 206, 207, 208, 209, 210,
1634
+ 211, 212, 212, 213, 213, 213, 213, 214, 214, 214,
1635
+ 215, 215, 215, 215, 215, 215, 216, 216, 217, 217,
1636
+ 218, 218, 219, 219, 219, 219, 219, 220, 221, 222,
1637
+ 223, 223, 224, 224, 224, 224, 224, 225, 225, 225,
1638
+ 225, 225, 225, 226, 226, 227, 228, 228, 228, 228,
1639
+ 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
1640
+ 228, 228, 229, 230, 230, 230, 230, 231, 231, 232,
1641
+ 232, 232, 232, 232, 233, 234, 234, 235, 235, 236,
1642
+ 236, 236, 237, 237, 237, 237, 238, 239, 240, 240,
1643
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1644
+ 241, 241, 241, 241, 242, 242, 242, 242, 242, 242,
1645
+ 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
1646
+ 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
1647
+ 242, 242, 242, 242, 243, 243, 243, 244, 244, 245,
1648
+ 245, 245, 245, 246, 246, 247, 247, 248, 248, 248,
1649
+ 248, 249, 249, 250, 250, 251, 252, 253, 253, 254,
1650
+ 254, 254, 254, 254, 254, 254, 254, 254, 255, 255,
1651
+ 255, 255, 256, 256, 256, 257, 258, 259, 260, 261,
1652
+ 261, 261, 261, 261, 261, 261, 261, 262, 263, 264,
1653
+ 264, 264, 264, 264, 265, 265, 265, 265
1654
+ };
1655
+
1656
+ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1657
+ static const yytype_int8 yyr2[] =
1658
+ {
1659
+ 0, 2, 3, 1, 1, 1, 1, 1, 1, 1,
1660
+ 5, 5, 4, 4, 4, 4, 5, 1, 2, 0,
1661
+ 1, 0, 2, 2, 1, 1, 1, 1, 1, 1,
1662
+ 1, 1, 0, 5, 2, 0, 3, 1, 1, 1,
1663
+ 1, 1, 1, 1, 1, 1, 0, 2, 2, 1,
1664
+ 2, 0, 3, 2, 1, 1, 1, 1, 1, 1,
1665
+ 1, 1, 2, 2, 0, 3, 6, 6, 6, 0,
1666
+ 2, 1, 1, 0, 3, 6, 4, 1, 5, 1,
1667
+ 5, 0, 2, 2, 2, 3, 1, 4, 3, 0,
1668
+ 1, 1, 2, 1, 4, 5, 0, 0, 1, 3,
1669
+ 8, 1, 10, 0, 0, 1, 1, 1, 1, 3,
1670
+ 4, 4, 4, 4, 5, 1, 6, 10, 10, 0,
1671
+ 3, 3, 9, 9, 1, 1, 1, 2, 0, 4,
1672
+ 5, 5, 2, 5, 2, 1, 2, 0, 10, 2,
1673
+ 3, 2, 0, 1, 4, 0, 7, 1, 1, 1,
1674
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1675
+ 1, 1, 1, 0, 8, 0, 8, 2, 2, 2,
1676
+ 4, 1, 0, 1, 1, 1, 0, 0, 0, 9,
1677
+ 0, 1, 6, 1, 2, 3, 3, 1, 2, 2,
1678
+ 1, 2, 1, 2, 3, 2, 1, 5, 1, 1,
1679
+ 1, 2, 1, 1, 1, 1, 1, 2, 2, 2,
1680
+ 1, 0, 4, 9, 5, 10, 3, 1, 1, 1,
1681
+ 1, 1, 1, 1, 1, 2, 3, 4, 7, 5,
1682
+ 6, 4, 6, 7, 6, 4, 6, 4, 6, 4,
1683
+ 6, 4, 3, 0, 1, 2, 1, 3, 4, 6,
1684
+ 8, 6, 4, 3, 3, 2, 0, 2, 3, 3,
1685
+ 4, 4, 1, 3, 2, 4, 3, 2, 1, 2,
1686
+ 2, 3, 2, 2, 2, 3, 2, 2, 2, 2,
1687
+ 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
1688
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1689
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1690
+ 1, 1, 1, 1, 4, 3, 4, 1, 2, 3,
1691
+ 3, 3, 3, 0, 1, 5, 4, 1, 3, 3,
1692
+ 1, 5, 4, 1, 1, 3, 3, 2, 2, 2,
1693
+ 2, 3, 3, 5, 3, 2, 2, 3, 5, 3,
1694
+ 3, 3, 4, 2, 2, 0, 3, 3, 3, 1,
1695
+ 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
1696
+ 2, 2, 2, 2, 0, 2, 2, 2
1697
+ };
1698
+
1699
+
1700
+ #define yyerrok (yyerrstatus = 0)
1701
+ #define yyclearin (yychar = YYEMPTY)
1702
+ #define YYEMPTY (-2)
1703
+ #define YYEOF 0
1704
+
1705
+ #define YYACCEPT goto yyacceptlab
1706
+ #define YYABORT goto yyabortlab
1707
+ #define YYERROR goto yyerrorlab
1708
+
1709
+
1710
+ #define YYRECOVERING() (!!yyerrstatus)
1711
+
1712
+ #define YYBACKUP(Token, Value) \
1713
+ do \
1714
+ if (yychar == YYEMPTY) \
1715
+ { \
1716
+ yychar = (Token); \
1717
+ yylval = (Value); \
1718
+ YYPOPSTACK (yylen); \
1719
+ yystate = *yyssp; \
1720
+ goto yybackup; \
1721
+ } \
1722
+ else \
1723
+ { \
1724
+ yyerror (&yylloc, scanner, parser, YY_("syntax error: cannot back up")); \
1725
+ YYERROR; \
1726
+ } \
1727
+ while (0)
1728
+
1729
+ /* Error token number */
1730
+ #define YYTERROR 1
1731
+ #define YYERRCODE 256
1732
+
1733
+
1734
+ /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1735
+ If N is 0, then set CURRENT to the empty location which ends
1736
+ the previous symbol: RHS[0] (always defined). */
1737
+
1738
+ #ifndef YYLLOC_DEFAULT
1739
+ # define YYLLOC_DEFAULT(Current, Rhs, N) \
1740
+ do \
1741
+ if (N) \
1742
+ { \
1743
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1744
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1745
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1746
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1747
+ } \
1748
+ else \
1749
+ { \
1750
+ (Current).first_line = (Current).last_line = \
1751
+ YYRHSLOC (Rhs, 0).last_line; \
1752
+ (Current).first_column = (Current).last_column = \
1753
+ YYRHSLOC (Rhs, 0).last_column; \
1754
+ } \
1755
+ while (0)
1756
+ #endif
1757
+
1758
+ #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1759
+
1760
+
1761
+ /* Enable debugging if requested. */
1762
+ #if KATANADEBUG
1763
+
1764
+ # ifndef YYFPRINTF
1765
+ # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1766
+ # define YYFPRINTF fprintf
1767
+ # endif
1768
+
1769
+ # define YYDPRINTF(Args) \
1770
+ do { \
1771
+ if (yydebug) \
1772
+ YYFPRINTF Args; \
1773
+ } while (0)
1774
+
1775
+
1776
+ /* YY_LOCATION_PRINT -- Print the location on the stream.
1777
+ This macro was not mandated originally: define only if we know
1778
+ we won't break user code: when these are the locations we know. */
1779
+
1780
+ #ifndef YY_LOCATION_PRINT
1781
+ # if defined KATANALTYPE_IS_TRIVIAL && KATANALTYPE_IS_TRIVIAL
1782
+
1783
+ /* Print *YYLOCP on YYO. Private, do not rely on its existence. */
1784
+
1785
+ YY_ATTRIBUTE_UNUSED
1786
+ static int
1787
+ yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
1788
+ {
1789
+ int res = 0;
1790
+ int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
1791
+ if (0 <= yylocp->first_line)
1792
+ {
1793
+ res += YYFPRINTF (yyo, "%d", yylocp->first_line);
1794
+ if (0 <= yylocp->first_column)
1795
+ res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
1796
+ }
1797
+ if (0 <= yylocp->last_line)
1798
+ {
1799
+ if (yylocp->first_line < yylocp->last_line)
1800
+ {
1801
+ res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
1802
+ if (0 <= end_col)
1803
+ res += YYFPRINTF (yyo, ".%d", end_col);
1804
+ }
1805
+ else if (0 <= end_col && yylocp->first_column < end_col)
1806
+ res += YYFPRINTF (yyo, "-%d", end_col);
1807
+ }
1808
+ return res;
1809
+ }
1810
+
1811
+ # define YY_LOCATION_PRINT(File, Loc) \
1812
+ yy_location_print_ (File, &(Loc))
1813
+
1814
+ # else
1815
+ # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1816
+ # endif
1817
+ #endif
1818
+
1819
+
1820
+ # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1821
+ do { \
1822
+ if (yydebug) \
1823
+ { \
1824
+ YYFPRINTF (stderr, "%s ", Title); \
1825
+ yy_symbol_print (stderr, \
1826
+ Type, Value, Location, scanner, parser); \
1827
+ YYFPRINTF (stderr, "\n"); \
1828
+ } \
1829
+ } while (0)
1830
+
1831
+
1832
+ /*-----------------------------------.
1833
+ | Print this symbol's value on YYO. |
1834
+ `-----------------------------------*/
1835
+
1836
+ static void
1837
+ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, void* scanner, struct KatanaInternalParser * parser)
1838
+ {
1839
+ FILE *yyoutput = yyo;
1840
+ YYUSE (yyoutput);
1841
+ YYUSE (yylocationp);
1842
+ YYUSE (scanner);
1843
+ YYUSE (parser);
1844
+ if (!yyvaluep)
1845
+ return;
1846
+ # ifdef YYPRINT
1847
+ if (yytype < YYNTOKENS)
1848
+ YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
1849
+ # endif
1850
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1851
+ YYUSE (yytype);
1852
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
1853
+ }
1854
+
1855
+
1856
+ /*---------------------------.
1857
+ | Print this symbol on YYO. |
1858
+ `---------------------------*/
1859
+
1860
+ static void
1861
+ yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, void* scanner, struct KatanaInternalParser * parser)
1862
+ {
1863
+ YYFPRINTF (yyo, "%s %s (",
1864
+ yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1865
+
1866
+ YY_LOCATION_PRINT (yyo, *yylocationp);
1867
+ YYFPRINTF (yyo, ": ");
1868
+ yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, scanner, parser);
1869
+ YYFPRINTF (yyo, ")");
1870
+ }
1871
+
1872
+ /*------------------------------------------------------------------.
1873
+ | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1874
+ | TOP (included). |
1875
+ `------------------------------------------------------------------*/
1876
+
1877
+ static void
1878
+ yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
1879
+ {
1880
+ YYFPRINTF (stderr, "Stack now");
1881
+ for (; yybottom <= yytop; yybottom++)
1882
+ {
1883
+ int yybot = *yybottom;
1884
+ YYFPRINTF (stderr, " %d", yybot);
1885
+ }
1886
+ YYFPRINTF (stderr, "\n");
1887
+ }
1888
+
1889
+ # define YY_STACK_PRINT(Bottom, Top) \
1890
+ do { \
1891
+ if (yydebug) \
1892
+ yy_stack_print ((Bottom), (Top)); \
1893
+ } while (0)
1894
+
1895
+
1896
+ /*------------------------------------------------.
1897
+ | Report that the YYRULE is going to be reduced. |
1898
+ `------------------------------------------------*/
1899
+
1900
+ static void
1901
+ yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, void* scanner, struct KatanaInternalParser * parser)
1902
+ {
1903
+ int yylno = yyrline[yyrule];
1904
+ int yynrhs = yyr2[yyrule];
1905
+ int yyi;
1906
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
1907
+ yyrule - 1, yylno);
1908
+ /* The symbols being reduced. */
1909
+ for (yyi = 0; yyi < yynrhs; yyi++)
1910
+ {
1911
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
1912
+ yy_symbol_print (stderr,
1913
+ yystos[+yyssp[yyi + 1 - yynrhs]],
1914
+ &yyvsp[(yyi + 1) - (yynrhs)]
1915
+ , &(yylsp[(yyi + 1) - (yynrhs)]) , scanner, parser);
1916
+ YYFPRINTF (stderr, "\n");
1917
+ }
1918
+ }
1919
+
1920
+ # define YY_REDUCE_PRINT(Rule) \
1921
+ do { \
1922
+ if (yydebug) \
1923
+ yy_reduce_print (yyssp, yyvsp, yylsp, Rule, scanner, parser); \
1924
+ } while (0)
1925
+
1926
+ /* Nonzero means print parse trace. It is left uninitialized so that
1927
+ multiple parsers can coexist. */
1928
+ int yydebug;
1929
+ #else /* !KATANADEBUG */
1930
+ # define YYDPRINTF(Args)
1931
+ # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1932
+ # define YY_STACK_PRINT(Bottom, Top)
1933
+ # define YY_REDUCE_PRINT(Rule)
1934
+ #endif /* !KATANADEBUG */
1935
+
1936
+
1937
+ /* YYINITDEPTH -- initial size of the parser's stacks. */
1938
+ #ifndef YYINITDEPTH
1939
+ # define YYINITDEPTH 200
1940
+ #endif
1941
+
1942
+ /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1943
+ if the built-in stack extension method is used).
1944
+
1945
+ Do not make this value too large; the results are undefined if
1946
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1947
+ evaluated with infinite-precision integer arithmetic. */
1948
+
1949
+ #ifndef YYMAXDEPTH
1950
+ # define YYMAXDEPTH 10000
1951
+ #endif
1952
+
1953
+
1954
+ #if YYERROR_VERBOSE
1955
+
1956
+ # ifndef yystrlen
1957
+ # if defined __GLIBC__ && defined _STRING_H
1958
+ # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
1959
+ # else
1960
+ /* Return the length of YYSTR. */
1961
+ static YYPTRDIFF_T
1962
+ yystrlen (const char *yystr)
1963
+ {
1964
+ YYPTRDIFF_T yylen;
1965
+ for (yylen = 0; yystr[yylen]; yylen++)
1966
+ continue;
1967
+ return yylen;
1968
+ }
1969
+ # endif
1970
+ # endif
1971
+
1972
+ # ifndef yystpcpy
1973
+ # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1974
+ # define yystpcpy stpcpy
1975
+ # else
1976
+ /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1977
+ YYDEST. */
1978
+ static char *
1979
+ yystpcpy (char *yydest, const char *yysrc)
1980
+ {
1981
+ char *yyd = yydest;
1982
+ const char *yys = yysrc;
1983
+
1984
+ while ((*yyd++ = *yys++) != '\0')
1985
+ continue;
1986
+
1987
+ return yyd - 1;
1988
+ }
1989
+ # endif
1990
+ # endif
1991
+
1992
+ # ifndef yytnamerr
1993
+ /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1994
+ quotes and backslashes, so that it's suitable for yyerror. The
1995
+ heuristic is that double-quoting is unnecessary unless the string
1996
+ contains an apostrophe, a comma, or backslash (other than
1997
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
1998
+ null, do not copy; instead, return the length of what the result
1999
+ would have been. */
2000
+ static YYPTRDIFF_T
2001
+ yytnamerr (char *yyres, const char *yystr)
2002
+ {
2003
+ if (*yystr == '"')
2004
+ {
2005
+ YYPTRDIFF_T yyn = 0;
2006
+ char const *yyp = yystr;
2007
+
2008
+ for (;;)
2009
+ switch (*++yyp)
2010
+ {
2011
+ case '\'':
2012
+ case ',':
2013
+ goto do_not_strip_quotes;
2014
+
2015
+ case '\\':
2016
+ if (*++yyp != '\\')
2017
+ goto do_not_strip_quotes;
2018
+ else
2019
+ goto append;
2020
+
2021
+ append:
2022
+ default:
2023
+ if (yyres)
2024
+ yyres[yyn] = *yyp;
2025
+ yyn++;
2026
+ break;
2027
+
2028
+ case '"':
2029
+ if (yyres)
2030
+ yyres[yyn] = '\0';
2031
+ return yyn;
2032
+ }
2033
+ do_not_strip_quotes: ;
2034
+ }
2035
+
2036
+ if (yyres)
2037
+ return yystpcpy (yyres, yystr) - yyres;
2038
+ else
2039
+ return yystrlen (yystr);
2040
+ }
2041
+ # endif
2042
+
2043
+ /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2044
+ about the unexpected token YYTOKEN for the state stack whose top is
2045
+ YYSSP.
2046
+
2047
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
2048
+ not large enough to hold the message. In that case, also set
2049
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
2050
+ required number of bytes is too large to store. */
2051
+ static int
2052
+ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2053
+ yy_state_t *yyssp, int yytoken)
2054
+ {
2055
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2056
+ /* Internationalized format string. */
2057
+ const char *yyformat = YY_NULLPTR;
2058
+ /* Arguments of yyformat: reported tokens (one for the "unexpected",
2059
+ one per "expected"). */
2060
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2061
+ /* Actual size of YYARG. */
2062
+ int yycount = 0;
2063
+ /* Cumulated lengths of YYARG. */
2064
+ YYPTRDIFF_T yysize = 0;
2065
+
2066
+ /* There are many possibilities here to consider:
2067
+ - If this state is a consistent state with a default action, then
2068
+ the only way this function was invoked is if the default action
2069
+ is an error action. In that case, don't check for expected
2070
+ tokens because there are none.
2071
+ - The only way there can be no lookahead present (in yychar) is if
2072
+ this state is a consistent state with a default action. Thus,
2073
+ detecting the absence of a lookahead is sufficient to determine
2074
+ that there is no unexpected or expected token to report. In that
2075
+ case, just report a simple "syntax error".
2076
+ - Don't assume there isn't a lookahead just because this state is a
2077
+ consistent state with a default action. There might have been a
2078
+ previous inconsistent state, consistent state with a non-default
2079
+ action, or user semantic action that manipulated yychar.
2080
+ - Of course, the expected token list depends on states to have
2081
+ correct lookahead information, and it depends on the parser not
2082
+ to perform extra reductions after fetching a lookahead from the
2083
+ scanner and before detecting a syntax error. Thus, state merging
2084
+ (from LALR or IELR) and default reductions corrupt the expected
2085
+ token list. However, the list is correct for canonical LR with
2086
+ one exception: it will still contain any token that will not be
2087
+ accepted due to an error action in a later state.
2088
+ */
2089
+ if (yytoken != YYEMPTY)
2090
+ {
2091
+ int yyn = yypact[+*yyssp];
2092
+ YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2093
+ yysize = yysize0;
2094
+ yyarg[yycount++] = yytname[yytoken];
2095
+ if (!yypact_value_is_default (yyn))
2096
+ {
2097
+ /* Start YYX at -YYN if negative to avoid negative indexes in
2098
+ YYCHECK. In other words, skip the first -YYN actions for
2099
+ this state because they are default actions. */
2100
+ int yyxbegin = yyn < 0 ? -yyn : 0;
2101
+ /* Stay within bounds of both yycheck and yytname. */
2102
+ int yychecklim = YYLAST - yyn + 1;
2103
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2104
+ int yyx;
2105
+
2106
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2107
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2108
+ && !yytable_value_is_error (yytable[yyx + yyn]))
2109
+ {
2110
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2111
+ {
2112
+ yycount = 1;
2113
+ yysize = yysize0;
2114
+ break;
2115
+ }
2116
+ yyarg[yycount++] = yytname[yyx];
2117
+ {
2118
+ YYPTRDIFF_T yysize1
2119
+ = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2120
+ if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2121
+ yysize = yysize1;
2122
+ else
2123
+ return 2;
2124
+ }
2125
+ }
2126
+ }
2127
+ }
2128
+
2129
+ switch (yycount)
2130
+ {
2131
+ # define YYCASE_(N, S) \
2132
+ case N: \
2133
+ yyformat = S; \
2134
+ break
2135
+ default: /* Avoid compiler warnings. */
2136
+ YYCASE_(0, YY_("syntax error"));
2137
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
2138
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2139
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2140
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2141
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2142
+ # undef YYCASE_
2143
+ }
2144
+
2145
+ {
2146
+ /* Don't count the "%s"s in the final size, but reserve room for
2147
+ the terminator. */
2148
+ YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
2149
+ if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2150
+ yysize = yysize1;
2151
+ else
2152
+ return 2;
2153
+ }
2154
+
2155
+ if (*yymsg_alloc < yysize)
2156
+ {
2157
+ *yymsg_alloc = 2 * yysize;
2158
+ if (! (yysize <= *yymsg_alloc
2159
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2160
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2161
+ return 1;
2162
+ }
2163
+
2164
+ /* Avoid sprintf, as that infringes on the user's name space.
2165
+ Don't have undefined behavior even if the translation
2166
+ produced a string with the wrong number of "%s"s. */
2167
+ {
2168
+ char *yyp = *yymsg;
2169
+ int yyi = 0;
2170
+ while ((*yyp = *yyformat) != '\0')
2171
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2172
+ {
2173
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
2174
+ yyformat += 2;
2175
+ }
2176
+ else
2177
+ {
2178
+ ++yyp;
2179
+ ++yyformat;
2180
+ }
2181
+ }
2182
+ return 0;
2183
+ }
2184
+ #endif /* YYERROR_VERBOSE */
2185
+
2186
+ /*-----------------------------------------------.
2187
+ | Release the memory associated to this symbol. |
2188
+ `-----------------------------------------------*/
2189
+
2190
+ static void
2191
+ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, void* scanner, struct KatanaInternalParser * parser)
2192
+ {
2193
+ YYUSE (yyvaluep);
2194
+ YYUSE (yylocationp);
2195
+ YYUSE (scanner);
2196
+ YYUSE (parser);
2197
+ if (!yymsg)
2198
+ yymsg = "Deleting";
2199
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2200
+
2201
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2202
+ YYUSE (yytype);
2203
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
2204
+ }
2205
+
2206
+
2207
+
2208
+
2209
+ /*----------.
2210
+ | yyparse. |
2211
+ `----------*/
2212
+
2213
+ int
2214
+ yyparse (void* scanner, struct KatanaInternalParser * parser)
2215
+ {
2216
+ /* The lookahead symbol. */
2217
+ int yychar;
2218
+
2219
+
2220
+ /* The semantic value of the lookahead symbol. */
2221
+ /* Default value used for initialization, for pacifying older GCCs
2222
+ or non-GCC compilers. */
2223
+ YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2224
+ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2225
+
2226
+ /* Location data for the lookahead symbol. */
2227
+ static YYLTYPE yyloc_default
2228
+ # if defined KATANALTYPE_IS_TRIVIAL && KATANALTYPE_IS_TRIVIAL
2229
+ = { 1, 1, 1, 1 }
2230
+ # endif
2231
+ ;
2232
+ YYLTYPE yylloc = yyloc_default;
2233
+
2234
+ /* Number of syntax errors so far. */
2235
+ int yynerrs;
2236
+
2237
+ yy_state_fast_t yystate;
2238
+ /* Number of tokens to shift before error messages enabled. */
2239
+ int yyerrstatus;
2240
+
2241
+ /* The stacks and their tools:
2242
+ 'yyss': related to states.
2243
+ 'yyvs': related to semantic values.
2244
+ 'yyls': related to locations.
2245
+
2246
+ Refer to the stacks through separate pointers, to allow yyoverflow
2247
+ to reallocate them elsewhere. */
2248
+
2249
+ /* The state stack. */
2250
+ yy_state_t yyssa[YYINITDEPTH];
2251
+ yy_state_t *yyss;
2252
+ yy_state_t *yyssp;
2253
+
2254
+ /* The semantic value stack. */
2255
+ YYSTYPE yyvsa[YYINITDEPTH];
2256
+ YYSTYPE *yyvs;
2257
+ YYSTYPE *yyvsp;
2258
+
2259
+ /* The location stack. */
2260
+ YYLTYPE yylsa[YYINITDEPTH];
2261
+ YYLTYPE *yyls;
2262
+ YYLTYPE *yylsp;
2263
+
2264
+ /* The locations where the error started and ended. */
2265
+ YYLTYPE yyerror_range[3];
2266
+
2267
+ YYPTRDIFF_T yystacksize;
2268
+
2269
+ int yyn;
2270
+ int yyresult;
2271
+ /* Lookahead token as an internal (translated) token number. */
2272
+ int yytoken = 0;
2273
+ /* The variables used to return semantic value and location from the
2274
+ action routines. */
2275
+ YYSTYPE yyval;
2276
+ YYLTYPE yyloc;
2277
+
2278
+ #if YYERROR_VERBOSE
2279
+ /* Buffer for error messages, and its allocated size. */
2280
+ char yymsgbuf[128];
2281
+ char *yymsg = yymsgbuf;
2282
+ YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
2283
+ #endif
2284
+
2285
+ #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2286
+
2287
+ /* The number of symbols on the RHS of the reduced rule.
2288
+ Keep to zero when no symbol should be popped. */
2289
+ int yylen = 0;
2290
+
2291
+ yyssp = yyss = yyssa;
2292
+ yyvsp = yyvs = yyvsa;
2293
+ yylsp = yyls = yylsa;
2294
+ yystacksize = YYINITDEPTH;
2295
+
2296
+ YYDPRINTF ((stderr, "Starting parse\n"));
2297
+
2298
+ yystate = 0;
2299
+ yyerrstatus = 0;
2300
+ yynerrs = 0;
2301
+ yychar = YYEMPTY; /* Cause a token to be read. */
2302
+ yylsp[0] = yylloc;
2303
+ goto yysetstate;
2304
+
2305
+
2306
+ /*------------------------------------------------------------.
2307
+ | yynewstate -- push a new state, which is found in yystate. |
2308
+ `------------------------------------------------------------*/
2309
+ yynewstate:
2310
+ /* In all cases, when you get here, the value and location stacks
2311
+ have just been pushed. So pushing a state here evens the stacks. */
2312
+ yyssp++;
2313
+
2314
+
2315
+ /*--------------------------------------------------------------------.
2316
+ | yysetstate -- set current state (the top of the stack) to yystate. |
2317
+ `--------------------------------------------------------------------*/
2318
+ yysetstate:
2319
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2320
+ YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
2321
+ YY_IGNORE_USELESS_CAST_BEGIN
2322
+ *yyssp = YY_CAST (yy_state_t, yystate);
2323
+ YY_IGNORE_USELESS_CAST_END
2324
+
2325
+ if (yyss + yystacksize - 1 <= yyssp)
2326
+ #if !defined yyoverflow && !defined YYSTACK_RELOCATE
2327
+ goto yyexhaustedlab;
2328
+ #else
2329
+ {
2330
+ /* Get the current used size of the three stacks, in elements. */
2331
+ YYPTRDIFF_T yysize = yyssp - yyss + 1;
2332
+
2333
+ # if defined yyoverflow
2334
+ {
2335
+ /* Give user a chance to reallocate the stack. Use copies of
2336
+ these so that the &'s don't force the real ones into
2337
+ memory. */
2338
+ yy_state_t *yyss1 = yyss;
2339
+ YYSTYPE *yyvs1 = yyvs;
2340
+ YYLTYPE *yyls1 = yyls;
2341
+
2342
+ /* Each stack pointer address is followed by the size of the
2343
+ data in use in that stack, in bytes. This used to be a
2344
+ conditional around just the two extra args, but that might
2345
+ be undefined if yyoverflow is a macro. */
2346
+ yyoverflow (YY_("memory exhausted"),
2347
+ &yyss1, yysize * YYSIZEOF (*yyssp),
2348
+ &yyvs1, yysize * YYSIZEOF (*yyvsp),
2349
+ &yyls1, yysize * YYSIZEOF (*yylsp),
2350
+ &yystacksize);
2351
+ yyss = yyss1;
2352
+ yyvs = yyvs1;
2353
+ yyls = yyls1;
2354
+ }
2355
+ # else /* defined YYSTACK_RELOCATE */
2356
+ /* Extend the stack our own way. */
2357
+ if (YYMAXDEPTH <= yystacksize)
2358
+ goto yyexhaustedlab;
2359
+ yystacksize *= 2;
2360
+ if (YYMAXDEPTH < yystacksize)
2361
+ yystacksize = YYMAXDEPTH;
2362
+
2363
+ {
2364
+ yy_state_t *yyss1 = yyss;
2365
+ union yyalloc *yyptr =
2366
+ YY_CAST (union yyalloc *,
2367
+ YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
2368
+ if (! yyptr)
2369
+ goto yyexhaustedlab;
2370
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
2371
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2372
+ YYSTACK_RELOCATE (yyls_alloc, yyls);
2373
+ # undef YYSTACK_RELOCATE
2374
+ if (yyss1 != yyssa)
2375
+ YYSTACK_FREE (yyss1);
2376
+ }
2377
+ # endif
2378
+
2379
+ yyssp = yyss + yysize - 1;
2380
+ yyvsp = yyvs + yysize - 1;
2381
+ yylsp = yyls + yysize - 1;
2382
+
2383
+ YY_IGNORE_USELESS_CAST_BEGIN
2384
+ YYDPRINTF ((stderr, "Stack size increased to %ld\n",
2385
+ YY_CAST (long, yystacksize)));
2386
+ YY_IGNORE_USELESS_CAST_END
2387
+
2388
+ if (yyss + yystacksize - 1 <= yyssp)
2389
+ YYABORT;
2390
+ }
2391
+ #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2392
+
2393
+ if (yystate == YYFINAL)
2394
+ YYACCEPT;
2395
+
2396
+ goto yybackup;
2397
+
2398
+
2399
+ /*-----------.
2400
+ | yybackup. |
2401
+ `-----------*/
2402
+ yybackup:
2403
+ /* Do appropriate processing given the current state. Read a
2404
+ lookahead token if we need one and don't already have one. */
2405
+
2406
+ /* First try to decide what to do without reference to lookahead token. */
2407
+ yyn = yypact[yystate];
2408
+ if (yypact_value_is_default (yyn))
2409
+ goto yydefault;
2410
+
2411
+ /* Not known => get a lookahead token if don't already have one. */
2412
+
2413
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2414
+ if (yychar == YYEMPTY)
2415
+ {
2416
+ YYDPRINTF ((stderr, "Reading a token: "));
2417
+ yychar = yylex (&yylval, &yylloc, scanner, parser);
2418
+ }
2419
+
2420
+ if (yychar <= YYEOF)
2421
+ {
2422
+ yychar = yytoken = YYEOF;
2423
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
2424
+ }
2425
+ else
2426
+ {
2427
+ yytoken = YYTRANSLATE (yychar);
2428
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2429
+ }
2430
+
2431
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
2432
+ detect an error, take that action. */
2433
+ yyn += yytoken;
2434
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2435
+ goto yydefault;
2436
+ yyn = yytable[yyn];
2437
+ if (yyn <= 0)
2438
+ {
2439
+ if (yytable_value_is_error (yyn))
2440
+ goto yyerrlab;
2441
+ yyn = -yyn;
2442
+ goto yyreduce;
2443
+ }
2444
+
2445
+ /* Count tokens shifted since error; after three, turn off error
2446
+ status. */
2447
+ if (yyerrstatus)
2448
+ yyerrstatus--;
2449
+
2450
+ /* Shift the lookahead token. */
2451
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2452
+ yystate = yyn;
2453
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2454
+ *++yyvsp = yylval;
2455
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
2456
+ *++yylsp = yylloc;
2457
+
2458
+ /* Discard the shifted token. */
2459
+ yychar = YYEMPTY;
2460
+ goto yynewstate;
2461
+
2462
+
2463
+ /*-----------------------------------------------------------.
2464
+ | yydefault -- do the default action for the current state. |
2465
+ `-----------------------------------------------------------*/
2466
+ yydefault:
2467
+ yyn = yydefact[yystate];
2468
+ if (yyn == 0)
2469
+ goto yyerrlab;
2470
+ goto yyreduce;
2471
+
2472
+
2473
+ /*-----------------------------.
2474
+ | yyreduce -- do a reduction. |
2475
+ `-----------------------------*/
2476
+ yyreduce:
2477
+ /* yyn is the number of a rule to reduce with. */
2478
+ yylen = yyr2[yyn];
2479
+
2480
+ /* If YYLEN is nonzero, implement the default value of the action:
2481
+ '$$ = $1'.
2482
+
2483
+ Otherwise, the following line sets YYVAL to garbage.
2484
+ This behavior is undocumented and Bison
2485
+ users should not rely upon it. Assigning to YYVAL
2486
+ unconditionally makes the parser a bit smaller, and it avoids a
2487
+ GCC warning that YYVAL may be used uninitialized. */
2488
+ yyval = yyvsp[1-yylen];
2489
+
2490
+ /* Default location. */
2491
+ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2492
+ yyerror_range[1] = yyloc;
2493
+ YY_REDUCE_PRINT (yyn);
2494
+ switch (yyn)
2495
+ {
2496
+ case 10:
2497
+ {
2498
+ katana_parse_internal_rule(parser, (yyvsp[-2].rule));
2499
+ }
2500
+ break;
2501
+
2502
+ case 11:
2503
+ {
2504
+ katana_parse_internal_keyframe_rule(parser, (yyvsp[-2].keyframe));
2505
+ }
2506
+ break;
2507
+
2508
+ case 12:
2509
+ {
2510
+ katana_parse_internal_keyframe_key_list(parser, (yyvsp[-1].valueList));
2511
+ }
2512
+ break;
2513
+
2514
+ case 13:
2515
+ {
2516
+ /* can be empty */
2517
+ katana_parse_internal_declaration_list(parser, (yyvsp[-1].boolean));
2518
+ }
2519
+ break;
2520
+
2521
+ case 14:
2522
+ {
2523
+ katana_parse_internal_value(parser, (yyvsp[-1].valueList));
2524
+ }
2525
+ break;
2526
+
2527
+ case 15:
2528
+ {
2529
+ katana_parse_internal_selector(parser, (yyvsp[-1].selectorList));
2530
+ }
2531
+ break;
2532
+
2533
+ case 16:
2534
+ {
2535
+ katana_parse_internal_media_list(parser, (yyvsp[-1].mediaList));
2536
+ }
2537
+ break;
2538
+
2539
+ case 33:
2540
+ {
2541
+ /* create a charset rule and push to stylesheet rules */
2542
+ katana_set_charset(parser, &(yyvsp[-2].string));
2543
+ }
2544
+ break;
2545
+
2546
+ case 36:
2547
+ {
2548
+ if ((yyvsp[-1].rule))
2549
+ katana_add_rule(parser, (yyvsp[-1].rule));
2550
+ }
2551
+ break;
2552
+
2553
+ case 46:
2554
+ {
2555
+ katana_start_rule(parser);
2556
+ }
2557
+ break;
2558
+
2559
+ case 47:
2560
+ {
2561
+ (yyval.rule) = (yyvsp[0].rule);
2562
+ katana_end_rule(parser, !!(yyval.rule));
2563
+ }
2564
+ break;
2565
+
2566
+ case 48:
2567
+ {
2568
+ (yyval.rule) = 0;
2569
+ katana_end_rule(parser, false);
2570
+ }
2571
+ break;
2572
+
2573
+ case 51:
2574
+ { (yyval.ruleList) = 0; }
2575
+ break;
2576
+
2577
+ case 52:
2578
+ {
2579
+ (yyval.ruleList) = katana_rule_list_add(parser, (yyvsp[-1].rule), (yyvsp[-2].ruleList));
2580
+ }
2581
+ break;
2582
+
2583
+ case 53:
2584
+ {
2585
+ katana_end_rule(parser, false);
2586
+ }
2587
+ break;
2588
+
2589
+ case 62:
2590
+ {
2591
+ (yyval.rule) = (yyvsp[0].rule);
2592
+ katana_end_rule(parser, !!(yyval.rule));
2593
+ }
2594
+ break;
2595
+
2596
+ case 63:
2597
+ {
2598
+ (yyval.rule) = 0;
2599
+ katana_end_rule(parser, false);
2600
+ }
2601
+ break;
2602
+
2603
+ case 64:
2604
+ {
2605
+ katana_start_rule_header(parser, KatanaRuleImport);
2606
+ }
2607
+ break;
2608
+
2609
+ case 65:
2610
+ {
2611
+ katana_end_rule_header(parser);
2612
+ katana_start_rule_body(parser);
2613
+ }
2614
+ break;
2615
+
2616
+ case 66:
2617
+ {
2618
+ (yyval.rule) = katana_new_import_rule(parser, &(yyvsp[-4].string), (yyvsp[-1].mediaList));
2619
+ }
2620
+ break;
2621
+
2622
+ case 67:
2623
+ {
2624
+ (yyval.rule) = 0;
2625
+ }
2626
+ break;
2627
+
2628
+ case 68:
2629
+ {
2630
+ (yyval.rule) = katana_new_namespace_rule(parser, &(yyvsp[-3].string), &(yyvsp[-2].string));
2631
+ }
2632
+ break;
2633
+
2634
+ case 69:
2635
+ { (yyval.string) = (KatanaParserString){"", 0}; }
2636
+ break;
2637
+
2638
+ case 73:
2639
+ {
2640
+ (yyval.valueList) = 0;
2641
+ }
2642
+ break;
2643
+
2644
+ case 74:
2645
+ {
2646
+ (yyval.valueList) = (yyvsp[0].valueList);
2647
+ }
2648
+ break;
2649
+
2650
+ case 75:
2651
+ {
2652
+ katana_string_to_lowercase(parser, &(yyvsp[-3].string));
2653
+ (yyval.mediaQueryExp) = katana_new_media_query_exp(parser, &(yyvsp[-3].string), (yyvsp[-1].valueList));
2654
+ if (!(yyval.mediaQueryExp))
2655
+ YYERROR;
2656
+ }
2657
+ break;
2658
+
2659
+ case 76:
2660
+ {
2661
+ YYERROR;
2662
+ }
2663
+ break;
2664
+
2665
+ case 77:
2666
+ {
2667
+ (yyval.mediaQueryExpList) = katana_new_media_query_exp_list(parser);
2668
+ katana_media_query_exp_list_add(parser, (yyvsp[0].mediaQueryExp), (yyval.mediaQueryExpList));
2669
+ }
2670
+ break;
2671
+
2672
+ case 78:
2673
+ {
2674
+ (yyval.mediaQueryExpList) = (yyvsp[-4].mediaQueryExpList);
2675
+ katana_media_query_exp_list_add(parser, (yyvsp[0].mediaQueryExp), (yyval.mediaQueryExpList));
2676
+ }
2677
+ break;
2678
+
2679
+ case 79:
2680
+ {
2681
+ (yyval.mediaQueryExpList) = katana_new_media_query_exp_list(parser);
2682
+ }
2683
+ break;
2684
+
2685
+ case 80:
2686
+ {
2687
+ (yyval.mediaQueryExpList) = (yyvsp[-1].mediaQueryExpList);
2688
+ }
2689
+ break;
2690
+
2691
+ case 81:
2692
+ {
2693
+ (yyval.mediaQueryRestrictor) = KatanaMediaQueryRestrictorNone;
2694
+ }
2695
+ break;
2696
+
2697
+ case 82:
2698
+ {
2699
+ (yyval.mediaQueryRestrictor) = KatanaMediaQueryRestrictorOnly;
2700
+ }
2701
+ break;
2702
+
2703
+ case 83:
2704
+ {
2705
+ (yyval.mediaQueryRestrictor) = KatanaMediaQueryRestrictorNot;
2706
+ }
2707
+ break;
2708
+
2709
+ case 84:
2710
+ {
2711
+ (yyval.mediaQuery) = katana_new_media_query(parser, KatanaMediaQueryRestrictorNone, NULL, (yyvsp[-1].mediaQueryExpList));
2712
+ }
2713
+ break;
2714
+
2715
+ case 85:
2716
+ {
2717
+ katana_string_to_lowercase(parser, &(yyvsp[-1].string));
2718
+ (yyval.mediaQuery) = katana_new_media_query(parser, (yyvsp[-2].mediaQueryRestrictor), &(yyvsp[-1].string), (yyvsp[0].mediaQueryExpList));
2719
+ }
2720
+ break;
2721
+
2722
+ case 87:
2723
+ {
2724
+ katana_parser_report_error(parser, (yyvsp[-1].location), "parser->lastLocationLabel(), InvalidMediaQueryCSSError");
2725
+ (yyval.mediaQuery) = katana_new_media_query(parser, KatanaMediaQueryRestrictorNot, NULL, NULL);
2726
+ }
2727
+ break;
2728
+
2729
+ case 88:
2730
+ {
2731
+ katana_parser_report_error(parser, (yyvsp[-1].location), "parser->lastLocationLabel(), InvalidMediaQueryCSSError");
2732
+ (yyval.mediaQuery) = katana_new_media_query(parser, KatanaMediaQueryRestrictorNot, NULL, NULL);
2733
+ }
2734
+ break;
2735
+
2736
+ case 89:
2737
+ {
2738
+ (yyval.mediaList) = katana_new_media_list(parser);
2739
+ }
2740
+ break;
2741
+
2742
+ case 91:
2743
+ {
2744
+ (yyval.mediaList) = katana_new_media_list(parser);
2745
+ katana_media_list_add(parser, (yyvsp[0].mediaQuery), (yyval.mediaList));
2746
+ }
2747
+ break;
2748
+
2749
+ case 92:
2750
+ {
2751
+ (yyval.mediaList) = (yyvsp[-1].mediaList);
2752
+ katana_media_list_add(parser, (yyvsp[0].mediaQuery), (yyval.mediaList));
2753
+ }
2754
+ break;
2755
+
2756
+ case 93:
2757
+ {
2758
+ (yyval.mediaList) = (yyvsp[0].mediaList);
2759
+ katana_parser_log(parser, "createFloatingNotAllQuery");
2760
+ }
2761
+ break;
2762
+
2763
+ case 94:
2764
+ {
2765
+ (yyval.mediaList) = katana_new_media_list(parser);
2766
+ katana_media_list_add(parser, (yyvsp[-3].mediaQuery), (yyval.mediaList));
2767
+ }
2768
+ break;
2769
+
2770
+ case 95:
2771
+ {
2772
+ (yyval.mediaList) = (yyvsp[-4].mediaList);
2773
+ katana_media_list_add(parser, (yyvsp[-3].mediaQuery), (yyval.mediaList));
2774
+ }
2775
+ break;
2776
+
2777
+ case 96:
2778
+ {
2779
+ katana_start_rule_body(parser);
2780
+ }
2781
+ break;
2782
+
2783
+ case 97:
2784
+ {
2785
+ katana_start_rule_header(parser, KatanaRuleMedia);
2786
+ }
2787
+ break;
2788
+
2789
+ case 98:
2790
+ {
2791
+ katana_end_rule_header(parser);
2792
+ }
2793
+ break;
2794
+
2795
+ case 100:
2796
+ {
2797
+ (yyval.rule) = katana_new_media_rule(parser, (yyvsp[-6].mediaList), (yyvsp[-1].ruleList));
2798
+ }
2799
+ break;
2800
+
2801
+ case 102:
2802
+ {
2803
+ (yyval.rule) = katana_new_supports_rule(parser, (yyvsp[-6].supportsExp), (yyvsp[-1].ruleList));
2804
+ }
2805
+ break;
2806
+
2807
+ case 103:
2808
+ {
2809
+ katana_start_rule_header(parser, KatanaRuleSupports);
2810
+ }
2811
+ break;
2812
+
2813
+ case 104:
2814
+ {
2815
+ katana_end_rule_header(parser);
2816
+ }
2817
+ break;
2818
+
2819
+ case 109:
2820
+ {
2821
+ // $$ = !$3;
2822
+ (yyval.supportsExp) = katana_new_supports_exp(parser, KatanaSupportsOperatorNot);
2823
+ katana_supports_exp_list_add(parser, (yyvsp[0].supportsExp), (yyval.supportsExp)->exps);
2824
+ }
2825
+ break;
2826
+
2827
+ case 110:
2828
+ {
2829
+ // $$ = $1 && $4;
2830
+ (yyval.supportsExp) = katana_new_supports_exp(parser, KatanaSupportsOperatorAnd);
2831
+ katana_supports_exp_list_add(parser, (yyvsp[-3].supportsExp), (yyval.supportsExp)->exps);
2832
+ katana_supports_exp_list_add(parser, (yyvsp[0].supportsExp), (yyval.supportsExp)->exps);
2833
+ }
2834
+ break;
2835
+
2836
+ case 111:
2837
+ {
2838
+ // $$ = $1 && $4;
2839
+ (yyval.supportsExp) = katana_new_supports_exp(parser, KatanaSupportsOperatorAnd);
2840
+ katana_supports_exp_list_add(parser, (yyvsp[-3].supportsExp), (yyval.supportsExp)->exps);
2841
+ katana_supports_exp_list_add(parser, (yyvsp[0].supportsExp), (yyval.supportsExp)->exps);
2842
+ }
2843
+ break;
2844
+
2845
+ case 112:
2846
+ {
2847
+ // $$ = $1 || $4;
2848
+ (yyval.supportsExp) = katana_new_supports_exp(parser, KatanaSupportsOperatorOr);
2849
+ katana_supports_exp_list_add(parser, (yyvsp[-3].supportsExp), (yyval.supportsExp)->exps);
2850
+ katana_supports_exp_list_add(parser, (yyvsp[0].supportsExp), (yyval.supportsExp)->exps);
2851
+ }
2852
+ break;
2853
+
2854
+ case 113:
2855
+ {
2856
+ // $$ = $1 || $4;
2857
+ (yyval.supportsExp) = katana_new_supports_exp(parser, KatanaSupportsOperatorOr);
2858
+ katana_supports_exp_list_add(parser, (yyvsp[-3].supportsExp), (yyval.supportsExp)->exps);
2859
+ katana_supports_exp_list_add(parser, (yyvsp[0].supportsExp), (yyval.supportsExp)->exps);
2860
+ }
2861
+ break;
2862
+
2863
+ case 114:
2864
+ {
2865
+ // $$ = $3;
2866
+ (yyval.supportsExp) = katana_new_supports_exp(parser, KatanaSupportsOperatorNone);
2867
+ katana_supports_exp_list_add(parser, (yyvsp[-2].supportsExp), (yyval.supportsExp)->exps);
2868
+ }
2869
+ break;
2870
+
2871
+ case 116:
2872
+ {
2873
+ YYERROR;
2874
+ }
2875
+ break;
2876
+
2877
+ case 117:
2878
+ {
2879
+ (yyval.supportsExp) = katana_new_supports_exp(parser, KatanaSupportsOperatorNone);
2880
+ (yyval.supportsExp)->decl = katana_new_declaration(parser, &(yyvsp[-7].string), false, (yyvsp[-3].valueList));
2881
+ }
2882
+ break;
2883
+
2884
+ case 118:
2885
+ {
2886
+ YYERROR;
2887
+ }
2888
+ break;
2889
+
2890
+ case 119:
2891
+ {
2892
+ katana_start_rule_header(parser, KatanaRuleKeyframes);
2893
+ }
2894
+ break;
2895
+
2896
+ case 120:
2897
+ {
2898
+ (yyval.boolean) = false;
2899
+ }
2900
+ break;
2901
+
2902
+ case 122:
2903
+ {
2904
+ (yyval.rule) = katana_new_keyframes_rule(parser, &(yyvsp[-7].string), (yyvsp[-1].keyframeRuleList), (yyvsp[-8].boolean));
2905
+ }
2906
+ break;
2907
+
2908
+ case 123:
2909
+ {
2910
+ (yyval.rule) = katana_new_keyframes_rule(parser, &(yyvsp[-7].string), (yyvsp[-1].keyframeRuleList), true);
2911
+ }
2912
+ break;
2913
+
2914
+ case 125:
2915
+ {
2916
+ // if (parser->m_context.useCounter())
2917
+ // parser->m_context.useCounter()->count(UseCounter::QuotedKeyframesRule);
2918
+ }
2919
+ break;
2920
+
2921
+ case 127:
2922
+ {
2923
+ katana_parser_clear_declarations(parser);
2924
+ katana_parser_reset_declarations(parser);
2925
+ }
2926
+ break;
2927
+
2928
+ case 128:
2929
+ {
2930
+ (yyval.keyframeRuleList) = katana_new_Keyframe_list(parser);
2931
+ katana_parser_resume_error_logging();
2932
+ }
2933
+ break;
2934
+
2935
+ case 129:
2936
+ {
2937
+ (yyval.keyframeRuleList) = (yyvsp[-3].keyframeRuleList);
2938
+ katana_keyframe_rule_list_add(parser, (yyvsp[-2].keyframe), (yyval.keyframeRuleList));
2939
+ }
2940
+ break;
2941
+
2942
+ case 130:
2943
+ {
2944
+ katana_parser_clear_declarations(parser);
2945
+ katana_parser_reset_declarations(parser);
2946
+ katana_parser_resume_error_logging();
2947
+ }
2948
+ break;
2949
+
2950
+ case 131:
2951
+ {
2952
+ (yyval.keyframe) = katana_new_keyframe(parser, (yyvsp[-4].valueList));
2953
+ }
2954
+ break;
2955
+
2956
+ case 132:
2957
+ {
2958
+ (yyval.valueList) = katana_new_value_list(parser);
2959
+ katana_value_list_add(parser, (yyvsp[-1].value), (yyval.valueList));
2960
+ }
2961
+ break;
2962
+
2963
+ case 133:
2964
+ {
2965
+ (yyval.valueList) = (yyvsp[-4].valueList);
2966
+ katana_value_list_add(parser, (yyvsp[-1].value), (yyval.valueList));
2967
+ }
2968
+ break;
2969
+
2970
+ case 134:
2971
+ {
2972
+ (yyval.value) = katana_new_number_value(parser, (yyvsp[-1].integer), &(yyvsp[0].number), KATANA_VALUE_NUMBER);
2973
+ }
2974
+ break;
2975
+
2976
+ case 135:
2977
+ {
2978
+ if (!strcasecmp((yyvsp[0].string).data, "from")) {
2979
+ KatanaParserNumber number;
2980
+ number.val = 0;
2981
+ number.raw = (KatanaParserString){"from", 4};
2982
+ (yyval.value) = katana_new_number_value(parser, 1, &number, KATANA_VALUE_NUMBER);
2983
+ }
2984
+ else if (!strcasecmp((yyvsp[0].string).data, "to")) {
2985
+ KatanaParserNumber number;
2986
+ number.val = 100;
2987
+ number.raw = (KatanaParserString){"to", 4};
2988
+ (yyval.value) = katana_new_number_value(parser, 1, &number, KATANA_VALUE_NUMBER);
2989
+ }
2990
+ else {
2991
+ YYERROR;
2992
+ }
2993
+ }
2994
+ break;
2995
+
2996
+ case 136:
2997
+ {
2998
+ // katana_parser_report_error(parser, parser->lastLocationLabel(), InvalidKeyframeSelectorCSSError);
2999
+ katana_parser_clear_declarations(parser);
3000
+ katana_parser_reset_declarations(parser);
3001
+ katana_parser_report_error(parser, NULL, "InvalidKeyframeSelectorCSSError");
3002
+ }
3003
+ break;
3004
+
3005
+ case 137:
3006
+ {
3007
+ katana_start_rule_header(parser, KatanaRulePage);
3008
+ }
3009
+ break;
3010
+
3011
+ case 138:
3012
+ {
3013
+ (yyval.rule) = katana_new_page_rule(parser);
3014
+ }
3015
+ break;
3016
+
3017
+ case 139:
3018
+ {
3019
+ (yyval.selector) = katana_new_selector(parser);
3020
+ (yyval.selector)->match = KatanaSelectorMatchTag;
3021
+ (yyval.selector)->tag = katana_new_qualified_name(parser, NULL, &(yyvsp[-1].string), &parser->default_namespace);
3022
+ }
3023
+ break;
3024
+
3025
+ case 140:
3026
+ {
3027
+ // $$ = $2;
3028
+ // $$->prependTagSelector(QualifiedName(nullAtom, $1, parser->m_defaultNamespace));
3029
+ // $$->setForPage();
3030
+ }
3031
+ break;
3032
+
3033
+ case 141:
3034
+ {
3035
+ // $$ = $1;
3036
+ // $$->setForPage();
3037
+ }
3038
+ break;
3039
+
3040
+ case 142:
3041
+ {
3042
+ // $$ = parser->createFloatingSelector();
3043
+ // $$->setForPage();
3044
+ }
3045
+ break;
3046
+
3047
+ case 145:
3048
+ {
3049
+ // parser->startDeclarationsForMarginBox();
3050
+ }
3051
+ break;
3052
+
3053
+ case 146:
3054
+ {
3055
+ // $$ = parser->createMarginAtRule($1);
3056
+ }
3057
+ break;
3058
+
3059
+ case 147:
3060
+ {
3061
+ // $$ = CSSSelector::TopLeftCornerMarginBox;
3062
+ }
3063
+ break;
3064
+
3065
+ case 148:
3066
+ {
3067
+ // $$ = CSSSelector::TopLeftMarginBox;
3068
+ }
3069
+ break;
3070
+
3071
+ case 149:
3072
+ {
3073
+ // $$ = CSSSelector::TopCenterMarginBox;
3074
+ }
3075
+ break;
3076
+
3077
+ case 150:
3078
+ {
3079
+ // $$ = CSSSelector::TopRightMarginBox;
3080
+ }
3081
+ break;
3082
+
3083
+ case 151:
3084
+ {
3085
+ // $$ = CSSSelector::TopRightCornerMarginBox;
3086
+ }
3087
+ break;
3088
+
3089
+ case 152:
3090
+ {
3091
+ // $$ = CSSSelector::BottomLeftCornerMarginBox;
3092
+ }
3093
+ break;
3094
+
3095
+ case 153:
3096
+ {
3097
+ // $$ = CSSSelector::BottomLeftMarginBox;
3098
+ }
3099
+ break;
3100
+
3101
+ case 154:
3102
+ {
3103
+ // $$ = CSSSelector::BottomCenterMarginBox;
3104
+ }
3105
+ break;
3106
+
3107
+ case 155:
3108
+ {
3109
+ // $$ = CSSSelector::BottomRightMarginBox;
3110
+ }
3111
+ break;
3112
+
3113
+ case 156:
3114
+ {
3115
+ // $$ = CSSSelector::BottomRightCornerMarginBox;
3116
+ }
3117
+ break;
3118
+
3119
+ case 157:
3120
+ {
3121
+ // $$ = CSSSelector::LeftTopMarginBox;
3122
+ }
3123
+ break;
3124
+
3125
+ case 158:
3126
+ {
3127
+ // $$ = CSSSelector::LeftMiddleMarginBox;
3128
+ }
3129
+ break;
3130
+
3131
+ case 159:
3132
+ {
3133
+ // $$ = CSSSelector::LeftBottomMarginBox;
3134
+ }
3135
+ break;
3136
+
3137
+ case 160:
3138
+ {
3139
+ // $$ = CSSSelector::RightTopMarginBox;
3140
+ }
3141
+ break;
3142
+
3143
+ case 161:
3144
+ {
3145
+ // $$ = CSSSelector::RightMiddleMarginBox;
3146
+ }
3147
+ break;
3148
+
3149
+ case 162:
3150
+ {
3151
+ // $$ = CSSSelector::RightBottomMarginBox;
3152
+ }
3153
+ break;
3154
+
3155
+ case 163:
3156
+ {
3157
+ katana_start_rule_header(parser, KatanaRuleFontFace);
3158
+ }
3159
+ break;
3160
+
3161
+ case 164:
3162
+ {
3163
+ (yyval.rule) = katana_new_font_face(parser);
3164
+ }
3165
+ break;
3166
+
3167
+ case 165:
3168
+ {
3169
+ // parser->markViewportRuleBodyStart();
3170
+ // parser->startRuleHeader(StyleRule::Viewport);
3171
+ }
3172
+ break;
3173
+
3174
+ case 166:
3175
+ {
3176
+ // $$ = parser->createViewportRule();
3177
+ // parser->markViewportRuleBodyEnd();
3178
+ }
3179
+ break;
3180
+
3181
+ case 167:
3182
+ { (yyval.relation) = KatanaSelectorRelationDirectAdjacent; }
3183
+ break;
3184
+
3185
+ case 168:
3186
+ { (yyval.relation) = KatanaSelectorRelationIndirectAdjacent; }
3187
+ break;
3188
+
3189
+ case 169:
3190
+ { (yyval.relation) = KatanaSelectorRelationChild; }
3191
+ break;
3192
+
3193
+ case 170:
3194
+ {
3195
+ if (!strcasecmp((yyvsp[-2].string).data, "deep"))
3196
+ (yyval.relation) = KatanaSelectorRelationShadowDeep;
3197
+ else
3198
+ YYERROR;
3199
+ }
3200
+ break;
3201
+
3202
+ case 172:
3203
+ { (yyval.integer) = 1; }
3204
+ break;
3205
+
3206
+ case 173:
3207
+ { (yyval.integer) = -1; }
3208
+ break;
3209
+
3210
+ case 174:
3211
+ { (yyval.integer) = 1; }
3212
+ break;
3213
+
3214
+ case 175:
3215
+ {
3216
+ katana_start_declaration(parser);
3217
+ }
3218
+ break;
3219
+
3220
+ case 176:
3221
+ {
3222
+ katana_start_rule_header(parser, KatanaRuleStyle);
3223
+ katana_start_selector(parser);
3224
+ }
3225
+ break;
3226
+
3227
+ case 177:
3228
+ {
3229
+ katana_end_rule_header(parser);
3230
+ }
3231
+ break;
3232
+
3233
+ case 178:
3234
+ {
3235
+ katana_end_selector(parser);
3236
+ }
3237
+ break;
3238
+
3239
+ case 179:
3240
+ {
3241
+ (yyval.rule) = katana_new_style_rule(parser, (yyvsp[-7].selectorList));
3242
+ }
3243
+ break;
3244
+
3245
+ case 180:
3246
+ {
3247
+ katana_start_selector(parser);
3248
+ }
3249
+ break;
3250
+
3251
+ case 181:
3252
+ {
3253
+ (yyval.selectorList) = katana_reusable_selector_list(parser);
3254
+ katana_selector_list_shink(parser, 0, (yyval.selectorList));
3255
+ katana_selector_list_add(parser, katana_sink_floating_selector(parser, (yyvsp[0].selector)), (yyval.selectorList));
3256
+ }
3257
+ break;
3258
+
3259
+ case 182:
3260
+ {
3261
+ (yyval.selectorList) = (yyvsp[-5].selectorList);
3262
+ katana_selector_list_add(parser, katana_sink_floating_selector(parser, (yyvsp[0].selector)), (yyval.selectorList));
3263
+ }
3264
+ break;
3265
+
3266
+ case 185:
3267
+ {
3268
+ (yyval.selector) = (yyvsp[0].selector);
3269
+ KatanaSelector * end = (yyval.selector);
3270
+ if ( NULL != end ) {
3271
+ while (NULL != end->tagHistory)
3272
+ end = end->tagHistory;
3273
+ end->relation = KatanaSelectorRelationDescendant;
3274
+ end->tagHistory = katana_sink_floating_selector(parser, (yyvsp[-2].selector));
3275
+ }
3276
+ }
3277
+ break;
3278
+
3279
+ case 186:
3280
+ {
3281
+ (yyval.selector) = (yyvsp[0].selector);
3282
+ KatanaSelector * end = (yyval.selector);
3283
+ if ( NULL != end ) {
3284
+ while (NULL != end->tagHistory)
3285
+ end = end->tagHistory;
3286
+ end->relation = (yyvsp[-1].relation);
3287
+ end->tagHistory = katana_sink_floating_selector(parser, (yyvsp[-2].selector));
3288
+ }
3289
+ }
3290
+ break;
3291
+
3292
+ case 187:
3293
+ {
3294
+ katana_string_clear(parser,&(yyval.string));
3295
+ }
3296
+ break;
3297
+
3298
+ case 188:
3299
+ {
3300
+ (yyval.string) = kKatanaAsteriskString;
3301
+ }
3302
+ break;
3303
+
3304
+ case 189:
3305
+ {
3306
+ // namespace
3307
+ // printf("NS 1:%s\n",katana_string_to_characters(parser,&$1));
3308
+ // $$ = $1;
3309
+ }
3310
+ break;
3311
+
3312
+ case 190:
3313
+ {
3314
+ (yyval.selector) = katana_new_selector(parser);
3315
+ (yyval.selector)->match = KatanaSelectorMatchTag;
3316
+ (yyval.selector)->tag = katana_new_qualified_name(parser, NULL, &(yyvsp[0].string), &parser->default_namespace);
3317
+ }
3318
+ break;
3319
+
3320
+ case 191:
3321
+ {
3322
+ (yyval.selector) = katana_rewrite_specifier_with_element_name(parser, &(yyvsp[-1].string), (yyvsp[0].selector));
3323
+ if (!(yyval.selector))
3324
+ YYERROR;
3325
+ }
3326
+ break;
3327
+
3328
+ case 192:
3329
+ {
3330
+ (yyval.selector) = katana_rewrite_specifier_with_namespace_if_needed(parser, (yyvsp[0].selector));
3331
+ if (!(yyval.selector))
3332
+ YYERROR;
3333
+ }
3334
+ break;
3335
+
3336
+ case 193:
3337
+ {
3338
+ (yyval.selector) = katana_new_selector(parser);
3339
+ (yyval.selector)->match = KatanaSelectorMatchTag;
3340
+ (yyval.selector)->tag = katana_new_qualified_name(parser, &(yyvsp[-1].string), &(yyvsp[0].string), &(yyvsp[-1].string));
3341
+ }
3342
+ break;
3343
+
3344
+ case 194:
3345
+ {
3346
+ // printf("namespace_selector element_name specifier_list\n");
3347
+ // $$ = parser->rewriteSpecifiersWithElementName($1, $2, $3);
3348
+ // if (!$$)
3349
+ // YYERROR;
3350
+ }
3351
+ break;
3352
+
3353
+ case 195:
3354
+ {
3355
+ // printf("namespace_selector specifier_list\n");
3356
+ // $$ = parser->rewriteSpecifiersWithElementName($1, starAtom, $2);
3357
+ // if (!$$)
3358
+ // YYERROR;
3359
+ }
3360
+ break;
3361
+
3362
+ case 196:
3363
+ {
3364
+ // $$ = parser->createFloatingSelectorVector();
3365
+ // $$->append(parser->sinkFloatingSelector($1));
3366
+ }
3367
+ break;
3368
+
3369
+ case 197:
3370
+ {
3371
+ // $$ = $1;
3372
+ // $$->append(parser->sinkFloatingSelector($5));
3373
+ }
3374
+ break;
3375
+
3376
+ case 198:
3377
+ {
3378
+ (yyval.string) = (yyvsp[0].string);
3379
+ }
3380
+ break;
3381
+
3382
+ case 199:
3383
+ {
3384
+ (yyval.string) = kKatanaAsteriskString;
3385
+ }
3386
+ break;
3387
+
3388
+ case 201:
3389
+ {
3390
+ (yyval.selector) = katana_rewrite_specifiers(parser, (yyvsp[-1].selector), (yyvsp[0].selector));
3391
+ }
3392
+ break;
3393
+
3394
+ case 202:
3395
+ {
3396
+ (yyval.selector) = katana_new_selector(parser);
3397
+ (yyval.selector)->match =KatanaSelectorMatchId;
3398
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[0].string));
3399
+ }
3400
+ break;
3401
+
3402
+ case 203:
3403
+ {
3404
+ if ((yyvsp[0].string).data[0] >= '0' && (yyvsp[0].string).data[0] <= '9') {
3405
+ YYERROR;
3406
+ } else {
3407
+ (yyval.selector) = katana_new_selector(parser);
3408
+ (yyval.selector)->match =KatanaSelectorMatchId;
3409
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[0].string));
3410
+ }
3411
+ }
3412
+ break;
3413
+
3414
+ case 207:
3415
+ {
3416
+ (yyval.selector) = katana_new_selector(parser);
3417
+ (yyval.selector)->match = KatanaSelectorMatchClass;
3418
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[0].string));
3419
+ }
3420
+ break;
3421
+
3422
+ case 208:
3423
+ {
3424
+ (yyval.string) = (yyvsp[-1].string);
3425
+ }
3426
+ break;
3427
+
3428
+ case 209:
3429
+ {
3430
+ KatanaAttributeMatchType attrMatchType = KatanaAttributeMatchTypeCaseSensitive;
3431
+ if (!katana_parse_attribute_match_type(parser, attrMatchType, &(yyvsp[-1].string)))
3432
+ YYERROR;
3433
+ (yyval.attributeMatchType) = attrMatchType;
3434
+ }
3435
+ break;
3436
+
3437
+ case 211:
3438
+ { (yyval.attributeMatchType) = KatanaAttributeMatchTypeCaseSensitive; }
3439
+ break;
3440
+
3441
+ case 212:
3442
+ {
3443
+ (yyval.selector) = katana_new_selector(parser);
3444
+ (yyval.selector)->data->attribute = katana_new_qualified_name(parser, NULL, &(yyvsp[-1].string), NULL);
3445
+ (yyval.selector)->data->bits.attributeMatchType = KatanaAttributeMatchTypeCaseSensitive;
3446
+ (yyval.selector)->match = KatanaSelectorMatchAttributeSet;
3447
+ }
3448
+ break;
3449
+
3450
+ case 213:
3451
+ {
3452
+ (yyval.selector) = katana_new_selector(parser);
3453
+ (yyval.selector)->data->attribute = katana_new_qualified_name(parser, NULL, &(yyvsp[-6].string), NULL);
3454
+ (yyval.selector)->data->bits.attributeMatchType = (yyvsp[-1].attributeMatchType);
3455
+ (yyval.selector)->match = (yyvsp[-5].integer);
3456
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[-3].string));
3457
+ }
3458
+ break;
3459
+
3460
+ case 214:
3461
+ {
3462
+ (yyval.selector) = katana_new_selector(parser);
3463
+ (yyval.selector)->data->attribute = katana_new_qualified_name(parser, &(yyvsp[-2].string), &(yyvsp[-1].string), NULL);
3464
+ (yyval.selector)->data->bits.attributeMatchType = KatanaAttributeMatchTypeCaseSensitive;
3465
+ (yyval.selector)->match = KatanaSelectorMatchAttributeSet;
3466
+ }
3467
+ break;
3468
+
3469
+ case 215:
3470
+ {
3471
+ (yyval.selector) = katana_new_selector(parser);
3472
+ (yyval.selector)->data->attribute = katana_new_qualified_name(parser, &(yyvsp[-7].string), &(yyvsp[-6].string), NULL);
3473
+ (yyval.selector)->data->bits.attributeMatchType = (yyvsp[-1].attributeMatchType);
3474
+ (yyval.selector)->match = (yyvsp[-5].integer);
3475
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[-3].string));
3476
+ }
3477
+ break;
3478
+
3479
+ case 216:
3480
+ {
3481
+ YYERROR;
3482
+ }
3483
+ break;
3484
+
3485
+ case 217:
3486
+ {
3487
+ (yyval.integer) = KatanaSelectorMatchAttributeExact;
3488
+ }
3489
+ break;
3490
+
3491
+ case 218:
3492
+ {
3493
+ (yyval.integer) = KatanaSelectorMatchAttributeList;
3494
+ }
3495
+ break;
3496
+
3497
+ case 219:
3498
+ {
3499
+ (yyval.integer) = KatanaSelectorMatchAttributeHyphen;
3500
+ }
3501
+ break;
3502
+
3503
+ case 220:
3504
+ {
3505
+ (yyval.integer) = KatanaSelectorMatchAttributeBegin;
3506
+ }
3507
+ break;
3508
+
3509
+ case 221:
3510
+ {
3511
+ (yyval.integer) = KatanaSelectorMatchAttributeEnd;
3512
+ }
3513
+ break;
3514
+
3515
+ case 222:
3516
+ {
3517
+ (yyval.integer) = KatanaSelectorMatchAttributeContain;
3518
+ }
3519
+ break;
3520
+
3521
+ case 225:
3522
+ {
3523
+ // if ($2.isFunction())
3524
+ // YYERROR;
3525
+ // $$ = parser->createFloatingSelector();
3526
+ // $$->setMatch(CSSSelector::PagePseudoClass);
3527
+ // parser->tokenToLowerCase($2);
3528
+ // $$->setValue($2);
3529
+ // CSSSelector::PseudoType type = $$->pseudoType();
3530
+ // if (type == CSSSelector::PseudoUnknown)
3531
+ // YYERROR;
3532
+ }
3533
+ break;
3534
+
3535
+ case 226:
3536
+ {
3537
+
3538
+ if (katana_string_is_function(&(yyvsp[0].string)))
3539
+ YYERROR;
3540
+ (yyval.selector) = katana_new_selector(parser);
3541
+ (yyval.selector)->match = KatanaSelectorMatchPseudoClass;
3542
+ katana_string_to_lowercase(parser, &(yyvsp[0].string));
3543
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[0].string));
3544
+ katana_selector_extract_pseudo_type((yyval.selector));
3545
+ }
3546
+ break;
3547
+
3548
+ case 227:
3549
+ {
3550
+ if (katana_string_is_function(&(yyvsp[0].string)))
3551
+ YYERROR;
3552
+ (yyval.selector) = katana_new_selector(parser);
3553
+ (yyval.selector)->match = KatanaSelectorMatchPseudoElement;
3554
+ katana_string_to_lowercase(parser, &(yyvsp[0].string));
3555
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[0].string));
3556
+ katana_selector_extract_pseudo_type((yyval.selector));
3557
+ }
3558
+ break;
3559
+
3560
+ case 228:
3561
+ {
3562
+ // $$ = parser->createFloatingSelector();
3563
+ // $$->setMatch(CSSSelector::PseudoElement);
3564
+ // $$->adoptSelectorVector(*parser->sinkFloatingSelectorVector($5));
3565
+ // $$->setValue($3);
3566
+ // CSSSelector::PseudoType type = $$->pseudoType();
3567
+ // if (type != CSSSelector::PseudoCue)
3568
+ // YYERROR;
3569
+ YYERROR;
3570
+ }
3571
+ break;
3572
+
3573
+ case 229:
3574
+ {
3575
+ YYERROR;
3576
+ }
3577
+ break;
3578
+
3579
+ case 230:
3580
+ {
3581
+ // $$ = parser->createFloatingSelector();
3582
+ // $$->setMatch(CSSSelector::PseudoClass);
3583
+ // $$->adoptSelectorVector(*parser->sinkFloatingSelectorVector($4));
3584
+ // parser->tokenToLowerCase($2);
3585
+ // $$->setValue($2);
3586
+ // CSSSelector::PseudoType type = $$->pseudoType();
3587
+ // if (type != CSSSelector::PseudoAny)
3588
+ // YYERROR;
3589
+ }
3590
+ break;
3591
+
3592
+ case 231:
3593
+ {
3594
+ YYERROR;
3595
+ }
3596
+ break;
3597
+
3598
+ case 232:
3599
+ {
3600
+ (yyval.selector) = katana_new_selector(parser);
3601
+ (yyval.selector)->match = KatanaSelectorMatchPseudoClass;
3602
+ katana_selector_set_argument(parser, (yyval.selector), &(yyvsp[-2].string));
3603
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[-4].string));
3604
+ katana_selector_extract_pseudo_type((yyval.selector));
3605
+ }
3606
+ break;
3607
+
3608
+ case 233:
3609
+ {
3610
+ (yyval.selector) = katana_new_selector(parser);
3611
+ (yyval.selector)->match = KatanaSelectorMatchPseudoClass;
3612
+ katana_selector_set_argument_with_number(parser, (yyval.selector), (yyvsp[-3].integer), &(yyvsp[-2].number));
3613
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[-5].string));
3614
+ katana_selector_extract_pseudo_type((yyval.selector));
3615
+ }
3616
+ break;
3617
+
3618
+ case 234:
3619
+ {
3620
+ (yyval.selector) = katana_new_selector(parser);
3621
+ (yyval.selector)->match = KatanaSelectorMatchPseudoClass;
3622
+ katana_selector_set_argument(parser, (yyval.selector), &(yyvsp[-2].string));
3623
+
3624
+ katana_string_to_lowercase(parser, &(yyvsp[-4].string));
3625
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[-4].string));
3626
+ katana_selector_extract_pseudo_type((yyval.selector));
3627
+ }
3628
+ break;
3629
+
3630
+ case 235:
3631
+ {
3632
+ YYERROR;
3633
+ }
3634
+ break;
3635
+
3636
+ case 236:
3637
+ {
3638
+ if (!katana_selector_is_simple(parser, (yyvsp[-2].selector)))
3639
+ YYERROR;
3640
+ else {
3641
+ (yyval.selector) = katana_new_selector(parser);
3642
+ (yyval.selector)->match = KatanaSelectorMatchPseudoClass;
3643
+ (yyval.selector)->pseudo = KatanaPseudoNot;
3644
+
3645
+ KatanaArray* array = katana_new_array(parser);
3646
+ katana_selector_list_add(parser, katana_sink_floating_selector(parser, (yyvsp[-2].selector)), array);
3647
+ katana_adopt_selector_list(parser, array, (yyval.selector));
3648
+
3649
+ katana_string_to_lowercase(parser, &(yyvsp[-4].string));
3650
+ katana_selector_set_value(parser, (yyval.selector), &(yyvsp[-4].string));
3651
+
3652
+ }
3653
+ }
3654
+ break;
3655
+
3656
+ case 237:
3657
+ {
3658
+ YYERROR;
3659
+ }
3660
+ break;
3661
+
3662
+ case 238:
3663
+ {
3664
+ YYERROR;
3665
+ }
3666
+ break;
3667
+
3668
+ case 239:
3669
+ {
3670
+ YYERROR;
3671
+ }
3672
+ break;
3673
+
3674
+ case 240:
3675
+ {
3676
+ YYERROR;
3677
+ }
3678
+ break;
3679
+
3680
+ case 241:
3681
+ {
3682
+ YYERROR;
3683
+ }
3684
+ break;
3685
+
3686
+ case 243:
3687
+ { (yyval.boolean) = false; }
3688
+ break;
3689
+
3690
+ case 245:
3691
+ {
3692
+ (yyval.boolean) = (yyvsp[-1].boolean) || (yyvsp[0].boolean);
3693
+ }
3694
+ break;
3695
+
3696
+ case 247:
3697
+ {
3698
+ katana_start_declaration(parser);
3699
+ (yyval.boolean) = (yyvsp[-2].boolean);
3700
+ }
3701
+ break;
3702
+
3703
+ case 248:
3704
+ {
3705
+ katana_start_declaration(parser);
3706
+ (yyval.boolean) = (yyvsp[-3].boolean) || (yyvsp[-2].boolean);
3707
+ }
3708
+ break;
3709
+
3710
+ case 249:
3711
+ {
3712
+ (yyval.boolean) = false;
3713
+ bool isPropertyParsed = false;
3714
+ (yyval.boolean) = katana_add_declaration(parser, katana_new_declaration(parser, &(yyvsp[-5].string), (yyvsp[0].boolean), (yyvsp[-1].valueList)));
3715
+ if (!(yyval.boolean)) {
3716
+ katana_parser_report_error(parser, (yyvsp[-2].location), "InvalidPropertyValueCSSError");
3717
+ } else {
3718
+ isPropertyParsed = true;
3719
+ }
3720
+ katana_end_declaration(parser, (yyvsp[0].boolean), isPropertyParsed);
3721
+ }
3722
+ break;
3723
+
3724
+ case 250:
3725
+ {
3726
+ /* When we encounter something like p {color: red !important fail;} we should drop the declaration */
3727
+ katana_parser_report_error(parser, (yyvsp[-4].location), "InvalidPropertyValueCSSError");
3728
+ katana_end_declaration(parser, false, false);
3729
+ (yyval.boolean) = false;
3730
+ }
3731
+ break;
3732
+
3733
+ case 251:
3734
+ {
3735
+ katana_parser_report_error(parser, (yyvsp[-2].location), "InvalidPropertyValueCSSError");
3736
+ katana_end_declaration(parser, false, false);
3737
+ (yyval.boolean) = false;
3738
+ }
3739
+ break;
3740
+
3741
+ case 252:
3742
+ {
3743
+ katana_parser_report_error(parser, (yyvsp[-1].location), "PropertyDeclarationCSSError");
3744
+ katana_end_declaration(parser, false, false);
3745
+ (yyval.boolean) = false;
3746
+ }
3747
+ break;
3748
+
3749
+ case 253:
3750
+ {
3751
+ katana_parser_report_error(parser, (yyvsp[-1].location), "PropertyDeclarationCSSError");
3752
+ (yyval.boolean) = false;
3753
+ }
3754
+ break;
3755
+
3756
+ case 254:
3757
+ {
3758
+ (yyval.string) = (yyvsp[-1].string);
3759
+ katana_set_current_declaration(parser, &(yyval.string));
3760
+ }
3761
+ break;
3762
+
3763
+ case 255:
3764
+ { (yyval.boolean) = true; }
3765
+ break;
3766
+
3767
+ case 256:
3768
+ { (yyval.boolean) = false; }
3769
+ break;
3770
+
3771
+ case 257:
3772
+ {
3773
+ (yyval.valueList) = katana_new_value_list(parser);
3774
+ katana_value_list_add(parser, katana_new_ident_value(parser, &(yyvsp[-1].string)), (yyval.valueList));
3775
+
3776
+ }
3777
+ break;
3778
+
3779
+ case 258:
3780
+ {
3781
+ (yyval.valueList) = (yyvsp[-2].valueList);
3782
+ katana_value_list_add(parser, katana_new_ident_value(parser, &(yyvsp[-1].string)), (yyval.valueList));
3783
+ }
3784
+ break;
3785
+
3786
+ case 259:
3787
+ {
3788
+ (yyval.value) = katana_new_list_value(parser, NULL);
3789
+ }
3790
+ break;
3791
+
3792
+ case 260:
3793
+ {
3794
+ (yyval.value) = katana_new_list_value(parser, (yyvsp[-1].valueList));
3795
+ }
3796
+ break;
3797
+
3798
+ case 261:
3799
+ {
3800
+ YYERROR;
3801
+ }
3802
+ break;
3803
+
3804
+ case 262:
3805
+ {
3806
+ (yyval.valueList) = katana_new_value_list(parser);
3807
+ katana_value_list_add(parser, (yyvsp[0].value), (yyval.valueList));
3808
+ }
3809
+ break;
3810
+
3811
+ case 263:
3812
+ {
3813
+ (yyval.valueList) = (yyvsp[-2].valueList);
3814
+ katana_value_list_add(parser, katana_new_operator_value(parser, (yyvsp[-1].character)), (yyval.valueList));
3815
+ katana_value_list_add(parser, (yyvsp[0].value), (yyval.valueList));
3816
+ }
3817
+ break;
3818
+
3819
+ case 264:
3820
+ {
3821
+ (yyval.valueList) = (yyvsp[-1].valueList);
3822
+ katana_value_list_add(parser, (yyvsp[0].value), (yyval.valueList));
3823
+ }
3824
+ break;
3825
+
3826
+ case 265:
3827
+ {
3828
+ // $$ = $1;
3829
+ // $$->addValue(makeOperatorValue($2));
3830
+ // $$->addValue(makeOperatorValue($3));
3831
+ // $$->addValue(parser->sinkFloatingValue($4));
3832
+ }
3833
+ break;
3834
+
3835
+ case 266:
3836
+ {
3837
+ katana_parser_report_error(parser, (yyvsp[-1].location), "PropertyDeclarationCSSError");
3838
+ }
3839
+ break;
3840
+
3841
+ case 267:
3842
+ {
3843
+ (yyval.character) = '/';
3844
+ }
3845
+ break;
3846
+
3847
+ case 269:
3848
+ {
3849
+ (yyval.character) = ',';
3850
+ }
3851
+ break;
3852
+
3853
+ case 271:
3854
+ {
3855
+ (yyval.value) = (yyvsp[-1].value);
3856
+ // $$.fValue *= $1;
3857
+ katana_value_set_sign(parser, (yyval.value), (yyvsp[-2].integer));
3858
+ }
3859
+ break;
3860
+
3861
+ case 272:
3862
+ { (yyval.value) = katana_new_value(parser); (yyval.value)->isInt = false; katana_value_set_string(parser, (yyval.value), &(yyvsp[-1].string)); (yyval.value)->unit = KATANA_VALUE_STRING; }
3863
+ break;
3864
+
3865
+ case 273:
3866
+ { (yyval.value) = katana_new_ident_value(parser, &(yyvsp[-1].string)); }
3867
+ break;
3868
+
3869
+ case 274:
3870
+ { (yyval.value) = katana_new_value(parser); katana_value_set_string(parser, (yyval.value), &(yyvsp[-1].string)); (yyval.value)->isInt = false; (yyval.value)->unit = KATANA_VALUE_DIMENSION; }
3871
+ break;
3872
+
3873
+ case 275:
3874
+ { (yyval.value) = katana_new_value(parser); katana_value_set_string(parser, (yyval.value), &(yyvsp[-1].string)); (yyval.value)->isInt = false; (yyval.value)->unit = KATANA_VALUE_DIMENSION; }
3875
+ break;
3876
+
3877
+ case 276:
3878
+ { (yyval.value) = katana_new_value(parser); katana_value_set_string(parser, (yyval.value), &(yyvsp[-1].string)); (yyval.value)->isInt = false; (yyval.value)->unit = KATANA_VALUE_URI; }
3879
+ break;
3880
+
3881
+ case 277:
3882
+ { (yyval.value) = katana_new_value(parser); katana_value_set_string(parser, (yyval.value), &(yyvsp[-1].string)); (yyval.value)->isInt = false; (yyval.value)->unit = KATANA_VALUE_UNICODE_RANGE; }
3883
+ break;
3884
+
3885
+ case 278:
3886
+ { (yyval.value) = katana_new_value(parser); katana_value_set_string(parser, (yyval.value), &(yyvsp[-1].string)); (yyval.value)->isInt = false; (yyval.value)->unit = KATANA_VALUE_PARSER_HEXCOLOR; }
3887
+ break;
3888
+
3889
+ case 279:
3890
+ {
3891
+ /* Handle error case: "color: #;" */
3892
+ KatanaParserString tmp = {"#", 1};
3893
+ (yyval.value) = katana_new_value(parser);katana_value_set_string(parser, (yyval.value), &tmp); (yyval.value)->isInt = false; (yyval.value)->unit = 0;
3894
+ }
3895
+ break;
3896
+
3897
+ case 282:
3898
+ { /* Handle width: %; */
3899
+ KatanaParserString tmp = {"%", 1};
3900
+ (yyval.value) = katana_new_value(parser); katana_value_set_string(parser, (yyval.value), &tmp); (yyval.value)->isInt = false; (yyval.value)->unit = 0;
3901
+ }
3902
+ break;
3903
+
3904
+ case 284:
3905
+ { (yyval.value) = katana_new_number_value(parser, 1, &(yyvsp[0].number), KATANA_VALUE_NUMBER); (yyval.value)->isInt = true; }
3906
+ break;
3907
+
3908
+ case 285:
3909
+ { (yyval.value) = katana_new_number_value(parser, 1, &(yyvsp[0].number), KATANA_VALUE_NUMBER); }
3910
+ break;
3911
+
3912
+ case 286:
3913
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_PERCENTAGE); }
3914
+ break;
3915
+
3916
+ case 287:
3917
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_PX); }
3918
+ break;
3919
+
3920
+ case 288:
3921
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_CM); }
3922
+ break;
3923
+
3924
+ case 289:
3925
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_MM); }
3926
+ break;
3927
+
3928
+ case 290:
3929
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_IN); }
3930
+ break;
3931
+
3932
+ case 291:
3933
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_PT); }
3934
+ break;
3935
+
3936
+ case 292:
3937
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_PC); }
3938
+ break;
3939
+
3940
+ case 293:
3941
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_DEG); }
3942
+ break;
3943
+
3944
+ case 294:
3945
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_RAD); }
3946
+ break;
3947
+
3948
+ case 295:
3949
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_GRAD); }
3950
+ break;
3951
+
3952
+ case 296:
3953
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_TURN); }
3954
+ break;
3955
+
3956
+ case 297:
3957
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_MS); }
3958
+ break;
3959
+
3960
+ case 298:
3961
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_S); }
3962
+ break;
3963
+
3964
+ case 299:
3965
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_HZ); }
3966
+ break;
3967
+
3968
+ case 300:
3969
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_KHZ); }
3970
+ break;
3971
+
3972
+ case 301:
3973
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_EMS); }
3974
+ break;
3975
+
3976
+ case 302:
3977
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_PARSER_Q_EMS); }
3978
+ break;
3979
+
3980
+ case 303:
3981
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_EXS); }
3982
+ break;
3983
+
3984
+ case 304:
3985
+ {
3986
+ (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_REMS);
3987
+ }
3988
+ break;
3989
+
3990
+ case 305:
3991
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_CHS); }
3992
+ break;
3993
+
3994
+ case 306:
3995
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_VW); }
3996
+ break;
3997
+
3998
+ case 307:
3999
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_VH); }
4000
+ break;
4001
+
4002
+ case 308:
4003
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_VMIN); }
4004
+ break;
4005
+
4006
+ case 309:
4007
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_VMAX); }
4008
+ break;
4009
+
4010
+ case 310:
4011
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_DPPX); }
4012
+ break;
4013
+
4014
+ case 311:
4015
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_DPI); }
4016
+ break;
4017
+
4018
+ case 312:
4019
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_DPCM); }
4020
+ break;
4021
+
4022
+ case 313:
4023
+ { (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_FR); }
4024
+ break;
4025
+
4026
+ case 314:
4027
+ {
4028
+ (yyval.value) = katana_new_function_value(parser, &(yyvsp[-3].string), (yyvsp[-1].valueList));
4029
+ }
4030
+ break;
4031
+
4032
+ case 315:
4033
+ {
4034
+ (yyval.value) = katana_new_function_value(parser, &(yyvsp[-2].string), NULL);
4035
+ }
4036
+ break;
4037
+
4038
+ case 316:
4039
+ {
4040
+ YYERROR;
4041
+ }
4042
+ break;
4043
+
4044
+ case 318:
4045
+ { (yyval.value) = (yyvsp[0].value); (yyval.value)->fValue *= (yyvsp[-1].integer); }
4046
+ break;
4047
+
4048
+ case 319:
4049
+ {
4050
+ (yyval.character) = '+';
4051
+ }
4052
+ break;
4053
+
4054
+ case 320:
4055
+ {
4056
+ (yyval.character) = '-';
4057
+ }
4058
+ break;
4059
+
4060
+ case 321:
4061
+ {
4062
+ (yyval.character) = '*';
4063
+ }
4064
+ break;
4065
+
4066
+ case 322:
4067
+ {
4068
+ (yyval.character) = '/';
4069
+ }
4070
+ break;
4071
+
4072
+ case 325:
4073
+ {
4074
+ (yyval.valueList) = (yyvsp[-2].valueList);
4075
+ katana_value_list_insert(parser, katana_new_operator_value(parser, '('), 0, (yyval.valueList));
4076
+ katana_new_operator_value(parser, ')');
4077
+ katana_value_list_add(parser, katana_new_operator_value(parser, ')'), (yyval.valueList));
4078
+ }
4079
+ break;
4080
+
4081
+ case 326:
4082
+ {
4083
+ YYERROR;
4084
+ }
4085
+ break;
4086
+
4087
+ case 327:
4088
+ {
4089
+ (yyval.valueList) = katana_new_value_list(parser);
4090
+ katana_value_list_add(parser, (yyvsp[0].value), (yyval.valueList));
4091
+ }
4092
+ break;
4093
+
4094
+ case 328:
4095
+ {
4096
+ (yyval.valueList) = (yyvsp[-2].valueList);
4097
+ katana_value_list_add(parser, katana_new_operator_value(parser, (yyvsp[-1].character)), (yyval.valueList));
4098
+ katana_value_list_add(parser, (yyvsp[0].value), (yyval.valueList));
4099
+ }
4100
+ break;
4101
+
4102
+ case 329:
4103
+ {
4104
+ (yyval.valueList) = (yyvsp[-2].valueList);
4105
+ katana_value_list_add(parser, katana_new_operator_value(parser, (yyvsp[-1].character)), (yyval.valueList));
4106
+ katana_value_list_steal_values(parser, (yyvsp[0].valueList), (yyval.valueList));
4107
+ }
4108
+ break;
4109
+
4110
+ case 331:
4111
+ {
4112
+ (yyval.value) = katana_new_function_value(parser, &(yyvsp[-4].string), (yyvsp[-2].valueList));
4113
+ }
4114
+ break;
4115
+
4116
+ case 332:
4117
+ {
4118
+ YYERROR;
4119
+ }
4120
+ break;
4121
+
4122
+ case 336:
4123
+ {
4124
+ katana_parser_report_error(parser, (yyvsp[-1].location), "InvalidRuleCSSError");
4125
+ }
4126
+ break;
4127
+
4128
+ case 343:
4129
+ {
4130
+ // parser->reportError($4, InvalidSupportsConditionCSSError);
4131
+ // parser->popSupportsRuleData();
4132
+ }
4133
+ break;
4134
+
4135
+ case 344:
4136
+ {
4137
+ // parser->markViewportRuleBodyEnd();
4138
+ }
4139
+ break;
4140
+
4141
+ case 347:
4142
+ {
4143
+ // parser->resumeErrorLogging();
4144
+ // parser->reportError($1, InvalidRuleCSSError);
4145
+ }
4146
+ break;
4147
+
4148
+ case 348:
4149
+ {
4150
+ katana_parser_report_error(parser, (yyvsp[-3].location), "InvalidRuleCSSError invalid_rule");
4151
+ }
4152
+ break;
4153
+
4154
+ case 352:
4155
+ {
4156
+ katana_parser_report_error(parser, (yyvsp[-2].location), "InvalidRuleCSSError invalid_rule_header");
4157
+ }
4158
+ break;
4159
+
4160
+ case 355:
4161
+ {
4162
+ katana_end_invalid_rule_header(parser);
4163
+ }
4164
+ break;
4165
+
4166
+ case 356:
4167
+ {
4168
+ katana_parser_report_error(parser, parser->position, "invalidBlockHit");
4169
+ }
4170
+ break;
4171
+
4172
+ case 367:
4173
+ {
4174
+ (yyval.location) = katana_parser_current_location(parser, &yylloc);
4175
+ }
4176
+ break;
4177
+
4178
+ case 368:
4179
+ {
4180
+ // parser->setLocationLabel(parser->currentLocation());
4181
+ }
4182
+ break;
4183
+
4184
+
4185
+
4186
+ default: break;
4187
+ }
4188
+ /* User semantic actions sometimes alter yychar, and that requires
4189
+ that yytoken be updated with the new translation. We take the
4190
+ approach of translating immediately before every use of yytoken.
4191
+ One alternative is translating here after every semantic action,
4192
+ but that translation would be missed if the semantic action invokes
4193
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
4194
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
4195
+ incorrect destructor might then be invoked immediately. In the
4196
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
4197
+ to an incorrect destructor call or verbose syntax error message
4198
+ before the lookahead is translated. */
4199
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4200
+
4201
+ YYPOPSTACK (yylen);
4202
+ yylen = 0;
4203
+ YY_STACK_PRINT (yyss, yyssp);
4204
+
4205
+ *++yyvsp = yyval;
4206
+ *++yylsp = yyloc;
4207
+
4208
+ /* Now 'shift' the result of the reduction. Determine what state
4209
+ that goes to, based on the state we popped back to and the rule
4210
+ number reduced by. */
4211
+ {
4212
+ const int yylhs = yyr1[yyn] - YYNTOKENS;
4213
+ const int yyi = yypgoto[yylhs] + *yyssp;
4214
+ yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
4215
+ ? yytable[yyi]
4216
+ : yydefgoto[yylhs]);
4217
+ }
4218
+
4219
+ goto yynewstate;
4220
+
4221
+
4222
+ /*--------------------------------------.
4223
+ | yyerrlab -- here on detecting error. |
4224
+ `--------------------------------------*/
4225
+ yyerrlab:
4226
+ /* Make sure we have latest lookahead translation. See comments at
4227
+ user semantic actions for why this is necessary. */
4228
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
4229
+
4230
+ /* If not already recovering from an error, report this error. */
4231
+ if (!yyerrstatus)
4232
+ {
4233
+ ++yynerrs;
4234
+ #if ! YYERROR_VERBOSE
4235
+ yyerror (&yylloc, scanner, parser, YY_("syntax error"));
4236
+ #else
4237
+ # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
4238
+ yyssp, yytoken)
4239
+ {
4240
+ char const *yymsgp = YY_("syntax error");
4241
+ int yysyntax_error_status;
4242
+ yysyntax_error_status = YYSYNTAX_ERROR;
4243
+ if (yysyntax_error_status == 0)
4244
+ yymsgp = yymsg;
4245
+ else if (yysyntax_error_status == 1)
4246
+ {
4247
+ if (yymsg != yymsgbuf)
4248
+ YYSTACK_FREE (yymsg);
4249
+ yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
4250
+ if (!yymsg)
4251
+ {
4252
+ yymsg = yymsgbuf;
4253
+ yymsg_alloc = sizeof yymsgbuf;
4254
+ yysyntax_error_status = 2;
4255
+ }
4256
+ else
4257
+ {
4258
+ yysyntax_error_status = YYSYNTAX_ERROR;
4259
+ yymsgp = yymsg;
4260
+ }
4261
+ }
4262
+ yyerror (&yylloc, scanner, parser, yymsgp);
4263
+ if (yysyntax_error_status == 2)
4264
+ goto yyexhaustedlab;
4265
+ }
4266
+ # undef YYSYNTAX_ERROR
4267
+ #endif
4268
+ }
4269
+
4270
+ yyerror_range[1] = yylloc;
4271
+
4272
+ if (yyerrstatus == 3)
4273
+ {
4274
+ /* If just tried and failed to reuse lookahead token after an
4275
+ error, discard it. */
4276
+
4277
+ if (yychar <= YYEOF)
4278
+ {
4279
+ /* Return failure if at end of input. */
4280
+ if (yychar == YYEOF)
4281
+ YYABORT;
4282
+ }
4283
+ else
4284
+ {
4285
+ yydestruct ("Error: discarding",
4286
+ yytoken, &yylval, &yylloc, scanner, parser);
4287
+ yychar = YYEMPTY;
4288
+ }
4289
+ }
4290
+
4291
+ /* Else will try to reuse lookahead token after shifting the error
4292
+ token. */
4293
+ goto yyerrlab1;
4294
+
4295
+
4296
+ /*---------------------------------------------------.
4297
+ | yyerrorlab -- error raised explicitly by YYERROR. |
4298
+ `---------------------------------------------------*/
4299
+ yyerrorlab:
4300
+ /* Pacify compilers when the user code never invokes YYERROR and the
4301
+ label yyerrorlab therefore never appears in user code. */
4302
+ if (0)
4303
+ YYERROR;
4304
+
4305
+ /* Do not reclaim the symbols of the rule whose action triggered
4306
+ this YYERROR. */
4307
+ YYPOPSTACK (yylen);
4308
+ yylen = 0;
4309
+ YY_STACK_PRINT (yyss, yyssp);
4310
+ yystate = *yyssp;
4311
+ goto yyerrlab1;
4312
+
4313
+
4314
+ /*-------------------------------------------------------------.
4315
+ | yyerrlab1 -- common code for both syntax error and YYERROR. |
4316
+ `-------------------------------------------------------------*/
4317
+ yyerrlab1:
4318
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
4319
+
4320
+ for (;;)
4321
+ {
4322
+ yyn = yypact[yystate];
4323
+ if (!yypact_value_is_default (yyn))
4324
+ {
4325
+ yyn += YYTERROR;
4326
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4327
+ {
4328
+ yyn = yytable[yyn];
4329
+ if (0 < yyn)
4330
+ break;
4331
+ }
4332
+ }
4333
+
4334
+ /* Pop the current state because it cannot handle the error token. */
4335
+ if (yyssp == yyss)
4336
+ YYABORT;
4337
+
4338
+ yyerror_range[1] = *yylsp;
4339
+ yydestruct ("Error: popping",
4340
+ yystos[yystate], yyvsp, yylsp, scanner, parser);
4341
+ YYPOPSTACK (1);
4342
+ yystate = *yyssp;
4343
+ YY_STACK_PRINT (yyss, yyssp);
4344
+ }
4345
+
4346
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4347
+ *++yyvsp = yylval;
4348
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
4349
+
4350
+ yyerror_range[2] = yylloc;
4351
+ /* Using YYLLOC is tempting, but would change the location of
4352
+ the lookahead. YYLOC is available though. */
4353
+ YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
4354
+ *++yylsp = yyloc;
4355
+
4356
+ /* Shift the error token. */
4357
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
4358
+
4359
+ yystate = yyn;
4360
+ goto yynewstate;
4361
+
4362
+
4363
+ /*-------------------------------------.
4364
+ | yyacceptlab -- YYACCEPT comes here. |
4365
+ `-------------------------------------*/
4366
+ yyacceptlab:
4367
+ yyresult = 0;
4368
+ goto yyreturn;
4369
+
4370
+
4371
+ /*-----------------------------------.
4372
+ | yyabortlab -- YYABORT comes here. |
4373
+ `-----------------------------------*/
4374
+ yyabortlab:
4375
+ yyresult = 1;
4376
+ goto yyreturn;
4377
+
4378
+
4379
+ #if !defined yyoverflow || YYERROR_VERBOSE
4380
+ /*-------------------------------------------------.
4381
+ | yyexhaustedlab -- memory exhaustion comes here. |
4382
+ `-------------------------------------------------*/
4383
+ yyexhaustedlab:
4384
+ yyerror (&yylloc, scanner, parser, YY_("memory exhausted"));
4385
+ yyresult = 2;
4386
+ /* Fall through. */
4387
+ #endif
4388
+
4389
+
4390
+ /*-----------------------------------------------------.
4391
+ | yyreturn -- parsing is finished, return the result. |
4392
+ `-----------------------------------------------------*/
4393
+ yyreturn:
4394
+ if (yychar != YYEMPTY)
4395
+ {
4396
+ /* Make sure we have latest lookahead translation. See comments at
4397
+ user semantic actions for why this is necessary. */
4398
+ yytoken = YYTRANSLATE (yychar);
4399
+ yydestruct ("Cleanup: discarding lookahead",
4400
+ yytoken, &yylval, &yylloc, scanner, parser);
4401
+ }
4402
+ /* Do not reclaim the symbols of the rule whose action triggered
4403
+ this YYABORT or YYACCEPT. */
4404
+ YYPOPSTACK (yylen);
4405
+ YY_STACK_PRINT (yyss, yyssp);
4406
+ while (yyssp != yyss)
4407
+ {
4408
+ yydestruct ("Cleanup: popping",
4409
+ yystos[+*yyssp], yyvsp, yylsp, scanner, parser);
4410
+ YYPOPSTACK (1);
4411
+ }
4412
+ #ifndef yyoverflow
4413
+ if (yyss != yyssa)
4414
+ YYSTACK_FREE (yyss);
4415
+ #endif
4416
+ #if YYERROR_VERBOSE
4417
+ if (yymsg != yymsgbuf)
4418
+ YYSTACK_FREE (yymsg);
4419
+ #endif
4420
+ return yyresult;
4421
+ }
4422
+