Coverage Report

Created: 2026-06-10 07:00

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/selinux/checkpolicy/y.tab.c
Line
Count
Source
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 0
58
59
/* Push parsers.  */
60
#define YYPUSH 0
61
62
/* Pull parsers.  */
63
#define YYPULL 1
64
65
66
67
68
/* First part of user prologue.  */
69
#line 32 "policy_parse.y"
70
71
#include <sys/types.h>
72
#include <assert.h>
73
#include <stdarg.h>
74
#include <stdint.h>
75
#include <stdio.h>
76
#include <stdlib.h>
77
#include <string.h>
78
#include <sys/socket.h>
79
#include <netinet/in.h>
80
#include <arpa/inet.h>
81
#include <stdlib.h>
82
83
#include <sepol/policydb/expand.h>
84
#include <sepol/policydb/policydb.h>
85
#include <sepol/policydb/services.h>
86
#include <sepol/policydb/conditional.h>
87
#include <sepol/policydb/hierarchy.h>
88
#include <sepol/policydb/polcaps.h>
89
#include "queue.h"
90
#include "module_compiler.h"
91
#include "policy_define.h"
92
93
extern policydb_t *policydbp;
94
extern unsigned int pass;
95
96
extern char yytext[];
97
extern int yylex(void);
98
extern int yywarn(const char *msg);
99
extern int yyerror(const char *msg);
100
101
typedef int (* require_func_t)(int pass);
102
103
104
#line 105 "y.tab.c"
105
106
# ifndef YY_CAST
107
#  ifdef __cplusplus
108
#   define YY_CAST(Type, Val) static_cast<Type> (Val)
109
#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
110
#  else
111
30.4M
#   define YY_CAST(Type, Val) ((Type) (Val))
112
#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
113
#  endif
114
# endif
115
# ifndef YY_NULLPTR
116
#  if defined __cplusplus
117
#   if 201103L <= __cplusplus
118
#    define YY_NULLPTR nullptr
119
#   else
120
#    define YY_NULLPTR 0
121
#   endif
122
#  else
123
#   define YY_NULLPTR ((void*)0)
124
#  endif
125
# endif
126
127
/* Enabling verbose error messages.  */
128
#ifdef YYERROR_VERBOSE
129
# undef YYERROR_VERBOSE
130
# define YYERROR_VERBOSE 1
131
#else
132
# define YYERROR_VERBOSE 0
133
#endif
134
135
/* Use api.header.include to #include this header
136
   instead of duplicating it here.  */
137
#ifndef YY_YY_Y_TAB_H_INCLUDED
138
# define YY_YY_Y_TAB_H_INCLUDED
139
/* Debug traces.  */
140
#ifndef YYDEBUG
141
# define YYDEBUG 0
142
#endif
143
#if YYDEBUG
144
extern int yydebug;
145
#endif
146
147
/* Token type.  */
148
#ifndef YYTOKENTYPE
149
# define YYTOKENTYPE
150
  enum yytokentype
151
  {
152
    PATH = 258,
153
    QPATH = 259,
154
    FILENAME = 260,
155
    COMMON = 261,
156
    CLASS = 262,
157
    CONSTRAIN = 263,
158
    VALIDATETRANS = 264,
159
    INHERITS = 265,
160
    SID = 266,
161
    ROLE = 267,
162
    ROLEATTRIBUTE = 268,
163
    ATTRIBUTE_ROLE = 269,
164
    ROLES = 270,
165
    TYPEALIAS = 271,
166
    TYPEATTRIBUTE = 272,
167
    TYPEBOUNDS = 273,
168
    TYPE = 274,
169
    TYPES = 275,
170
    ALIAS = 276,
171
    ATTRIBUTE = 277,
172
    EXPANDATTRIBUTE = 278,
173
    BOOL = 279,
174
    TUNABLE = 280,
175
    IF = 281,
176
    ELSE = 282,
177
    TYPE_TRANSITION = 283,
178
    TYPE_MEMBER = 284,
179
    TYPE_CHANGE = 285,
180
    ROLE_TRANSITION = 286,
181
    RANGE_TRANSITION = 287,
182
    SENSITIVITY = 288,
183
    DOMINANCE = 289,
184
    DOM = 290,
185
    DOMBY = 291,
186
    INCOMP = 292,
187
    CATEGORY = 293,
188
    LEVEL = 294,
189
    RANGE = 295,
190
    MLSCONSTRAIN = 296,
191
    MLSVALIDATETRANS = 297,
192
    USER = 298,
193
    NEVERALLOW = 299,
194
    ALLOW = 300,
195
    AUDITALLOW = 301,
196
    AUDITDENY = 302,
197
    DONTAUDIT = 303,
198
    ALLOWXPERM = 304,
199
    AUDITALLOWXPERM = 305,
200
    DONTAUDITXPERM = 306,
201
    NEVERALLOWXPERM = 307,
202
    SOURCE = 308,
203
    TARGET = 309,
204
    SAMEUSER = 310,
205
    PORTCON = 311,
206
    NETIFCON = 312,
207
    NODECON = 313,
208
    IBPKEYCON = 314,
209
    IBENDPORTCON = 315,
210
    PIRQCON = 316,
211
    IOMEMCON = 317,
212
    IOPORTCON = 318,
213
    PCIDEVICECON = 319,
214
    DEVICETREECON = 320,
215
    FSUSEXATTR = 321,
216
    FSUSETASK = 322,
217
    FSUSETRANS = 323,
218
    GENFSCON = 324,
219
    U1 = 325,
220
    U2 = 326,
221
    U3 = 327,
222
    R1 = 328,
223
    R2 = 329,
224
    R3 = 330,
225
    T1 = 331,
226
    T2 = 332,
227
    T3 = 333,
228
    L1 = 334,
229
    L2 = 335,
230
    H1 = 336,
231
    H2 = 337,
232
    NOT = 338,
233
    AND = 339,
234
    OR = 340,
235
    XOR = 341,
236
    CTRUE = 342,
237
    CFALSE = 343,
238
    IDENTIFIER = 344,
239
    NUMBER = 345,
240
    EQUALS = 346,
241
    NOTEQUAL = 347,
242
    IPV4_ADDR = 348,
243
    IPV4_CIDR = 349,
244
    IPV6_ADDR = 350,
245
    IPV6_CIDR = 351,
246
    MODULE = 352,
247
    VERSION_IDENTIFIER = 353,
248
    REQUIRE = 354,
249
    OPTIONAL = 355,
250
    POLICYCAP = 356,
251
    PERMISSIVE = 357,
252
    NEVERAUDIT = 358,
253
    FILESYSTEM = 359,
254
    NETIFNAME = 360,
255
    DEFAULT_USER = 361,
256
    DEFAULT_ROLE = 362,
257
    DEFAULT_TYPE = 363,
258
    DEFAULT_RANGE = 364,
259
    LOW_HIGH = 365,
260
    LOW = 366,
261
    HIGH = 367,
262
    GLBLUB = 368,
263
    INVALID_CHAR = 369
264
  };
265
#endif
266
/* Tokens.  */
267
#define PATH 258
268
#define QPATH 259
269
#define FILENAME 260
270
#define COMMON 261
271
#define CLASS 262
272
#define CONSTRAIN 263
273
#define VALIDATETRANS 264
274
#define INHERITS 265
275
#define SID 266
276
#define ROLE 267
277
#define ROLEATTRIBUTE 268
278
#define ATTRIBUTE_ROLE 269
279
#define ROLES 270
280
#define TYPEALIAS 271
281
#define TYPEATTRIBUTE 272
282
#define TYPEBOUNDS 273
283
#define TYPE 274
284
#define TYPES 275
285
#define ALIAS 276
286
#define ATTRIBUTE 277
287
#define EXPANDATTRIBUTE 278
288
#define BOOL 279
289
#define TUNABLE 280
290
#define IF 281
291
#define ELSE 282
292
#define TYPE_TRANSITION 283
293
#define TYPE_MEMBER 284
294
#define TYPE_CHANGE 285
295
#define ROLE_TRANSITION 286
296
#define RANGE_TRANSITION 287
297
#define SENSITIVITY 288
298
#define DOMINANCE 289
299
#define DOM 290
300
#define DOMBY 291
301
#define INCOMP 292
302
#define CATEGORY 293
303
#define LEVEL 294
304
#define RANGE 295
305
#define MLSCONSTRAIN 296
306
#define MLSVALIDATETRANS 297
307
#define USER 298
308
#define NEVERALLOW 299
309
#define ALLOW 300
310
#define AUDITALLOW 301
311
#define AUDITDENY 302
312
#define DONTAUDIT 303
313
#define ALLOWXPERM 304
314
#define AUDITALLOWXPERM 305
315
#define DONTAUDITXPERM 306
316
#define NEVERALLOWXPERM 307
317
#define SOURCE 308
318
#define TARGET 309
319
#define SAMEUSER 310
320
#define PORTCON 311
321
#define NETIFCON 312
322
#define NODECON 313
323
#define IBPKEYCON 314
324
#define IBENDPORTCON 315
325
#define PIRQCON 316
326
#define IOMEMCON 317
327
#define IOPORTCON 318
328
#define PCIDEVICECON 319
329
#define DEVICETREECON 320
330
#define FSUSEXATTR 321
331
#define FSUSETASK 322
332
#define FSUSETRANS 323
333
#define GENFSCON 324
334
#define U1 325
335
#define U2 326
336
#define U3 327
337
#define R1 328
338
#define R2 329
339
#define R3 330
340
#define T1 331
341
#define T2 332
342
#define T3 333
343
#define L1 334
344
#define L2 335
345
#define H1 336
346
#define H2 337
347
#define NOT 338
348
#define AND 339
349
#define OR 340
350
#define XOR 341
351
#define CTRUE 342
352
#define CFALSE 343
353
#define IDENTIFIER 344
354
#define NUMBER 345
355
#define EQUALS 346
356
#define NOTEQUAL 347
357
#define IPV4_ADDR 348
358
#define IPV4_CIDR 349
359
#define IPV6_ADDR 350
360
#define IPV6_CIDR 351
361
#define MODULE 352
362
#define VERSION_IDENTIFIER 353
363
#define REQUIRE 354
364
#define OPTIONAL 355
365
#define POLICYCAP 356
366
#define PERMISSIVE 357
367
#define NEVERAUDIT 358
368
#define FILESYSTEM 359
369
#define NETIFNAME 360
370
#define DEFAULT_USER 361
371
#define DEFAULT_ROLE 362
372
#define DEFAULT_TYPE 363
373
#define DEFAULT_RANGE 364
374
#define LOW_HIGH 365
375
#define LOW 366
376
#define HIGH 367
377
#define GLBLUB 368
378
#define INVALID_CHAR 369
379
380
/* Value type.  */
381
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
382
union YYSTYPE
383
{
384
#line 67 "policy_parse.y"
385
386
  unsigned int val;
387
  uint64_t val64;
388
  uintptr_t valptr;
389
  void *ptr;
390
        require_func_t require_func;
391
392
#line 393 "y.tab.c"
393
394
};
395
typedef union YYSTYPE YYSTYPE;
396
# define YYSTYPE_IS_TRIVIAL 1
397
# define YYSTYPE_IS_DECLARED 1
398
#endif
399
400
401
extern YYSTYPE yylval;
402
403
int yyparse (void);
404
405
#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
406
407
408
409
#ifdef short
410
# undef short
411
#endif
412
413
/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
414
   <limits.h> and (if available) <stdint.h> are included
415
   so that the code can choose integer types of a good width.  */
416
417
#ifndef __PTRDIFF_MAX__
418
# include <limits.h> /* INFRINGES ON USER NAME SPACE */
419
# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
420
#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
421
#  define YY_STDINT_H
422
# endif
423
#endif
424
425
/* Narrow types that promote to a signed type and that can represent a
426
   signed or unsigned integer of at least N bits.  In tables they can
427
   save space and decrease cache pressure.  Promoting to a signed type
428
   helps avoid bugs in integer arithmetic.  */
429
430
#ifdef __INT_LEAST8_MAX__
431
typedef __INT_LEAST8_TYPE__ yytype_int8;
432
#elif defined YY_STDINT_H
433
typedef int_least8_t yytype_int8;
434
#else
435
typedef signed char yytype_int8;
436
#endif
437
438
#ifdef __INT_LEAST16_MAX__
439
typedef __INT_LEAST16_TYPE__ yytype_int16;
440
#elif defined YY_STDINT_H
441
typedef int_least16_t yytype_int16;
442
#else
443
typedef short yytype_int16;
444
#endif
445
446
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
447
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
448
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
449
       && UINT_LEAST8_MAX <= INT_MAX)
450
typedef uint_least8_t yytype_uint8;
451
#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
452
typedef unsigned char yytype_uint8;
453
#else
454
typedef short yytype_uint8;
455
#endif
456
457
#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
458
typedef __UINT_LEAST16_TYPE__ yytype_uint16;
459
#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
460
       && UINT_LEAST16_MAX <= INT_MAX)
461
typedef uint_least16_t yytype_uint16;
462
#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
463
typedef unsigned short yytype_uint16;
464
#else
465
typedef int yytype_uint16;
466
#endif
467
468
#ifndef YYPTRDIFF_T
469
# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
470
6.16k
#  define YYPTRDIFF_T __PTRDIFF_TYPE__
471
#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
472
# elif defined PTRDIFF_MAX
473
#  ifndef ptrdiff_t
474
#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
475
#  endif
476
#  define YYPTRDIFF_T ptrdiff_t
477
#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
478
# else
479
#  define YYPTRDIFF_T long
480
#  define YYPTRDIFF_MAXIMUM LONG_MAX
481
# endif
482
#endif
483
484
#ifndef YYSIZE_T
485
# ifdef __SIZE_TYPE__
486
#  define YYSIZE_T __SIZE_TYPE__
487
# elif defined size_t
488
#  define YYSIZE_T size_t
489
# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
490
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
491
#  define YYSIZE_T size_t
492
# else
493
#  define YYSIZE_T unsigned
494
# endif
495
#endif
496
497
#define YYSIZE_MAXIMUM                                  \
498
  YY_CAST (YYPTRDIFF_T,                                 \
499
           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
500
            ? YYPTRDIFF_MAXIMUM                         \
501
            : YY_CAST (YYSIZE_T, -1)))
502
503
1.26k
#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
504
505
/* Stored state numbers (used for stacks). */
506
typedef yytype_int16 yy_state_t;
507
508
/* State numbers in computations.  */
509
typedef int yy_state_fast_t;
510
511
#ifndef YY_
512
# if defined YYENABLE_NLS && YYENABLE_NLS
513
#  if ENABLE_NLS
514
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
515
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
516
#  endif
517
# endif
518
# ifndef YY_
519
521
#  define YY_(Msgid) Msgid
520
# endif
521
#endif
522
523
#ifndef YY_ATTRIBUTE_PURE
524
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
525
#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
526
# else
527
#  define YY_ATTRIBUTE_PURE
528
# endif
529
#endif
530
531
#ifndef YY_ATTRIBUTE_UNUSED
532
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
533
#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
534
# else
535
#  define YY_ATTRIBUTE_UNUSED
536
# endif
537
#endif
538
539
/* Suppress unused-variable warnings by "using" E.  */
540
#if ! defined lint || defined __GNUC__
541
131k
# define YYUSE(E) ((void) (E))
542
#else
543
# define YYUSE(E) /* empty */
544
#endif
545
546
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
547
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
548
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
549
    _Pragma ("GCC diagnostic push")                                     \
550
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
551
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
552
# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
553
    _Pragma ("GCC diagnostic pop")
554
#else
555
# define YY_INITIAL_VALUE(Value) Value
556
#endif
557
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
558
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
559
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
560
#endif
561
#ifndef YY_INITIAL_VALUE
562
# define YY_INITIAL_VALUE(Value) /* Nothing. */
563
#endif
564
565
#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
566
# define YY_IGNORE_USELESS_CAST_BEGIN                          \
567
    _Pragma ("GCC diagnostic push")                            \
568
    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
569
# define YY_IGNORE_USELESS_CAST_END            \
570
    _Pragma ("GCC diagnostic pop")
571
#endif
572
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
573
# define YY_IGNORE_USELESS_CAST_BEGIN
574
# define YY_IGNORE_USELESS_CAST_END
575
#endif
576
577
578
30.4M
#define YY_ASSERT(E) ((void) (0 && (E)))
579
580
#if ! defined yyoverflow || YYERROR_VERBOSE
581
582
/* The parser invokes alloca or malloc; define the necessary symbols.  */
583
584
# ifdef YYSTACK_USE_ALLOCA
585
#  if YYSTACK_USE_ALLOCA
586
#   ifdef __GNUC__
587
#    define YYSTACK_ALLOC __builtin_alloca
588
#   elif defined __BUILTIN_VA_ARG_INCR
589
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
590
#   elif defined _AIX
591
#    define YYSTACK_ALLOC __alloca
592
#   elif defined _MSC_VER
593
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
594
#    define alloca _alloca
595
#   else
596
#    define YYSTACK_ALLOC alloca
597
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
598
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
599
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
600
#     ifndef EXIT_SUCCESS
601
#      define EXIT_SUCCESS 0
602
#     endif
603
#    endif
604
#   endif
605
#  endif
606
# endif
607
608
# ifdef YYSTACK_ALLOC
609
   /* Pacify GCC's 'empty if-body' warning.  */
610
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
611
#  ifndef YYSTACK_ALLOC_MAXIMUM
612
    /* The OS might guarantee only one guard page at the bottom of the stack,
613
       and a page size can be as small as 4096 bytes.  So we cannot safely
614
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
615
       to allow for a few compiler-allocated temporary stack slots.  */
616
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
617
#  endif
618
# else
619
#  define YYSTACK_ALLOC YYMALLOC
620
211
#  define YYSTACK_FREE YYFREE
621
#  ifndef YYSTACK_ALLOC_MAXIMUM
622
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
623
#  endif
624
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
625
       && ! ((defined YYMALLOC || defined malloc) \
626
             && (defined YYFREE || defined free)))
627
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
628
#   ifndef EXIT_SUCCESS
629
#    define EXIT_SUCCESS 0
630
#   endif
631
#  endif
632
#  ifndef YYMALLOC
633
#   define YYMALLOC malloc
634
#   if ! defined malloc && ! defined EXIT_SUCCESS
635
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
636
#   endif
637
#  endif
638
#  ifndef YYFREE
639
211
#   define YYFREE free
640
#   if ! defined free && ! defined EXIT_SUCCESS
641
void free (void *); /* INFRINGES ON USER NAME SPACE */
642
#   endif
643
#  endif
644
# endif
645
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
646
647
648
#if (! defined yyoverflow \
649
     && (! defined __cplusplus \
650
         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
651
652
/* A type that is properly aligned for any stack member.  */
653
union yyalloc
654
{
655
  yy_state_t yyss_alloc;
656
  YYSTYPE yyvs_alloc;
657
};
658
659
/* The size of the maximum gap between one aligned stack and the next.  */
660
422
# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
661
662
/* The size of an array large to enough to hold all stacks, each with
663
   N elements.  */
664
# define YYSTACK_BYTES(N) \
665
     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
666
      + YYSTACK_GAP_MAXIMUM)
667
668
# define YYCOPY_NEEDED 1
669
670
/* Relocate STACK from its old location to the new one.  The
671
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
672
   elements in the stack, and YYPTR gives the new location of the
673
   stack.  Advance YYPTR to a properly aligned location for the next
674
   stack.  */
675
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
676
422
    do                                                                  \
677
422
      {                                                                 \
678
422
        YYPTRDIFF_T yynewbytes;                                         \
679
422
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
680
422
        Stack = &yyptr->Stack_alloc;                                    \
681
422
        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
682
422
        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
683
422
      }                                                                 \
684
422
    while (0)
685
686
#endif
687
688
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
689
/* Copy COUNT objects from SRC to DST.  The source and destination do
690
   not overlap.  */
691
# ifndef YYCOPY
692
#  if defined __GNUC__ && 1 < __GNUC__
693
#   define YYCOPY(Dst, Src, Count) \
694
422
      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
695
#  else
696
#   define YYCOPY(Dst, Src, Count)              \
697
      do                                        \
698
        {                                       \
699
          YYPTRDIFF_T yyi;                      \
700
          for (yyi = 0; yyi < (Count); yyi++)   \
701
            (Dst)[yyi] = (Src)[yyi];            \
702
        }                                       \
703
      while (0)
704
#  endif
705
# endif
706
#endif /* !YYCOPY_NEEDED */
707
708
/* YYFINAL -- State number of the termination state.  */
709
30.4M
#define YYFINAL  9
710
/* YYLAST -- Last index in YYTABLE.  */
711
43.3M
#define YYLAST   1396
712
713
/* YYNTOKENS -- Number of terminals.  */
714
18.4M
#define YYNTOKENS  125
715
/* YYNNTS -- Number of nonterminals.  */
716
#define YYNNTS  199
717
/* YYNRULES -- Number of rules.  */
718
#define YYNRULES  411
719
/* YYNSTATES -- Number of states.  */
720
#define YYNSTATES  835
721
722
3
#define YYUNDEFTOK  2
723
13.0M
#define YYMAXUTOK   369
724
725
726
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
727
   as returned by yylex, with out-of-bounds checking.  */
728
#define YYTRANSLATE(YYX)                                                \
729
13.0M
  (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
730
731
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
732
   as returned by yylex.  */
733
static const yytype_int8 yytranslate[] =
734
{
735
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
736
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
737
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
738
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
739
     120,   121,   124,     2,   119,   122,     2,     2,     2,     2,
740
       2,     2,     2,     2,     2,     2,     2,     2,   118,   117,
741
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
742
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
743
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
744
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
745
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
746
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
747
       2,     2,     2,   115,     2,   116,   123,     2,     2,     2,
748
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
749
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
750
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
751
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
752
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
753
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
754
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
755
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
756
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
757
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
758
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
759
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
760
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
761
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
762
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
763
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
764
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
765
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
766
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
767
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
768
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
769
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
770
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
771
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114
772
};
773
774
#if YYDEBUG
775
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
776
static const yytype_int16 yyrline[] =
777
{
778
       0,   168,   168,   169,   171,   173,   176,   171,   180,   181,
779
     183,   186,   187,   189,   192,   194,   195,   197,   198,   200,
780
     203,   204,   206,   208,   210,   213,   214,   216,   217,   218,
781
     219,   220,   221,   222,   223,   225,   227,   230,   232,   235,
782
     237,   240,   242,   244,   246,   248,   250,   252,   255,   256,
783
     258,   260,   261,   263,   265,   268,   270,   272,   275,   276,
784
     278,   279,   281,   283,   286,   287,   289,   291,   294,   295,
785
     297,   298,   300,   303,   306,   307,   309,   310,   311,   312,
786
     313,   314,   316,   317,   318,   319,   320,   321,   323,   324,
787
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
788
     335,   337,   340,   343,   345,   348,   351,   354,   357,   358,
789
     360,   363,   366,   368,   371,   374,   377,   379,   381,   384,
790
     387,   390,   393,   396,   399,   402,   406,   409,   411,   413,
791
     415,   418,   421,   424,   427,   431,   433,   435,   437,   439,
792
     441,   443,   446,   450,   454,   458,   462,   466,   470,   474,
793
     476,   478,   480,   483,   485,   488,   489,   490,   491,   492,
794
     493,   494,   495,   496,   498,   501,   504,   507,   510,   513,
795
     516,   519,   522,   525,   528,   531,   534,   536,   539,   542,
796
     545,   546,   548,   549,   551,   552,   554,   557,   560,   562,
797
     565,   568,   571,   574,   577,   580,   583,   583,   586,   586,
798
     589,   589,   592,   592,   595,   595,   598,   598,   601,   601,
799
     604,   604,   607,   607,   610,   613,   613,   616,   616,   619,
800
     622,   622,   625,   625,   628,   631,   634,   637,   640,   643,
801
     647,   649,   652,   654,   656,   658,   661,   662,   664,   667,
802
     668,   670,   671,   673,   676,   676,   678,   679,   681,   682,
803
     683,   684,   685,   687,   690,   692,   695,   697,   700,   703,
804
     706,   708,   709,   711,   712,   714,   716,   719,   720,   722,
805
     723,   725,   727,   730,   731,   733,   734,   736,   739,   740,
806
     742,   743,   745,   748,   749,   751,   752,   754,   756,   758,
807
     760,   763,   764,   766,   767,   769,   771,   773,   776,   777,
808
     779,   780,   782,   784,   784,   786,   789,   792,   795,   797,
809
     799,   801,   805,   807,   808,   810,   810,   811,   812,   814,
810
     817,   819,   820,   822,   824,   827,   829,   832,   833,   835,
811
     837,   839,   841,   843,   846,   849,   852,   852,   855,   858,
812
     861,   862,   863,   864,   865,   867,   868,   870,   873,   874,
813
     876,   878,   878,   880,   880,   880,   880,   882,   885,   887,
814
     890,   892,   895,   898,   900,   902,   905,   918,   927,   930,
815
     933,   936,   938,   943,   948,   951,   953,   955,   957,   959,
816
     960,   962,   963,   964,   965,   966,   967,   969,   971,   972,
817
     974,   975,   977,   980,   981,   982,   983,   984,   985,   986,
818
     987,   988,   990,   992,   996,   995,  1000,  1002,  1004,  1007,
819
    1010,  1011
820
};
821
#endif
822
823
#if YYDEBUG || YYERROR_VERBOSE || 0
824
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
825
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
826
static const char *const yytname[] =
827
{
828
  "$end", "error", "$undefined", "PATH", "QPATH", "FILENAME", "COMMON",
829
  "CLASS", "CONSTRAIN", "VALIDATETRANS", "INHERITS", "SID", "ROLE",
830
  "ROLEATTRIBUTE", "ATTRIBUTE_ROLE", "ROLES", "TYPEALIAS", "TYPEATTRIBUTE",
831
  "TYPEBOUNDS", "TYPE", "TYPES", "ALIAS", "ATTRIBUTE", "EXPANDATTRIBUTE",
832
  "BOOL", "TUNABLE", "IF", "ELSE", "TYPE_TRANSITION", "TYPE_MEMBER",
833
  "TYPE_CHANGE", "ROLE_TRANSITION", "RANGE_TRANSITION", "SENSITIVITY",
834
  "DOMINANCE", "DOM", "DOMBY", "INCOMP", "CATEGORY", "LEVEL", "RANGE",
835
  "MLSCONSTRAIN", "MLSVALIDATETRANS", "USER", "NEVERALLOW", "ALLOW",
836
  "AUDITALLOW", "AUDITDENY", "DONTAUDIT", "ALLOWXPERM", "AUDITALLOWXPERM",
837
  "DONTAUDITXPERM", "NEVERALLOWXPERM", "SOURCE", "TARGET", "SAMEUSER",
838
  "PORTCON", "NETIFCON", "NODECON", "IBPKEYCON", "IBENDPORTCON", "PIRQCON",
839
  "IOMEMCON", "IOPORTCON", "PCIDEVICECON", "DEVICETREECON", "FSUSEXATTR",
840
  "FSUSETASK", "FSUSETRANS", "GENFSCON", "U1", "U2", "U3", "R1", "R2",
841
  "R3", "T1", "T2", "T3", "L1", "L2", "H1", "H2", "NOT", "AND", "OR",
842
  "XOR", "CTRUE", "CFALSE", "IDENTIFIER", "NUMBER", "EQUALS", "NOTEQUAL",
843
  "IPV4_ADDR", "IPV4_CIDR", "IPV6_ADDR", "IPV6_CIDR", "MODULE",
844
  "VERSION_IDENTIFIER", "REQUIRE", "OPTIONAL", "POLICYCAP", "PERMISSIVE",
845
  "NEVERAUDIT", "FILESYSTEM", "NETIFNAME", "DEFAULT_USER", "DEFAULT_ROLE",
846
  "DEFAULT_TYPE", "DEFAULT_RANGE", "LOW_HIGH", "LOW", "HIGH", "GLBLUB",
847
  "INVALID_CHAR", "'{'", "'}'", "';'", "':'", "','", "'('", "')'", "'-'",
848
  "'~'", "'*'", "$accept", "policy", "base_policy", "$@1", "$@2", "$@3",
849
  "classes", "class_def", "initial_sids", "initial_sid_def",
850
  "access_vectors", "opt_common_perms", "common_perms", "common_perms_def",
851
  "av_perms", "av_perms_def", "opt_default_rules", "default_rules",
852
  "default_user_def", "default_role_def", "default_type_def",
853
  "default_range_def", "opt_mls", "mls", "sensitivities",
854
  "sensitivity_def", "alias_def", "dominance", "opt_categories",
855
  "categories", "category_def", "levels", "level_def", "mlspolicy",
856
  "mlspolicy_decl", "mlsconstraint_def", "mlsvalidatetrans_def", "te_rbac",
857
  "te_rbac_decl", "rbac_decl", "te_decl", "attribute_def",
858
  "expandattribute_def", "type_def", "typealias_def", "typeattribute_def",
859
  "typebounds_def", "opt_attr_list", "bool_def", "tunable_def", "bool_val",
860
  "cond_stmt_def", "cond_else", "cond_expr", "cond_expr_prim",
861
  "cond_pol_list", "cond_rule_def", "cond_transition_def",
862
  "cond_te_avtab_def", "cond_allow_def", "cond_auditallow_def",
863
  "cond_auditdeny_def", "cond_dontaudit_def", "cond_xperm_allow_def",
864
  "cond_xperm_auditallow_def", "cond_xperm_dontaudit_def",
865
  "transition_def", "range_trans_def", "te_avtab_def", "allow_def",
866
  "auditallow_def", "auditdeny_def", "dontaudit_def", "neverallow_def",
867
  "xperm_allow_def", "xperm_auditallow_def", "xperm_dontaudit_def",
868
  "xperm_neverallow_def", "attribute_role_def", "role_type_def",
869
  "role_attr_def", "role_trans_def", "role_allow_def", "roleattribute_def",
870
  "opt_constraints", "constraints", "constraint_decl", "constraint_def",
871
  "validatetrans_def", "cexpr", "cexpr_prim", "$@4", "$@5", "$@6", "$@7",
872
  "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14", "$@15", "$@16",
873
  "op", "role_mls_op", "users", "user_def", "opt_mls_user",
874
  "initial_sid_contexts", "initial_sid_context_def", "opt_dev_contexts",
875
  "dev_contexts", "dev_context_def", "pirq_context_def",
876
  "iomem_context_def", "ioport_context_def", "pci_context_def",
877
  "dtree_context_def", "net_contexts", "opt_port_contexts",
878
  "port_contexts", "port_context_def", "opt_ibpkey_contexts",
879
  "ibpkey_contexts", "ibpkey_context_def", "opt_ibendport_contexts",
880
  "ibendport_contexts", "ibendport_context_def", "opt_netif_contexts",
881
  "netif_contexts", "netif_context_def", "opt_node_contexts",
882
  "node_contexts", "node_context_def", "opt_fs_uses", "fs_uses",
883
  "fs_use_def", "opt_genfs_contexts", "genfs_contexts",
884
  "genfs_context_def", "$@17", "ipv4_addr_def", "ipv4_cidr_def", "xperms",
885
  "nested_xperm_set", "nested_xperm_list", "nested_xperm_element", "$@18",
886
  "xperm", "security_context_def", "opt_mls_range_def", "mls_range_def",
887
  "mls_level_def", "id_comma_list", "tilde", "asterisk", "names", "$@19",
888
  "tilde_push", "asterisk_push", "names_push", "identifier_list_push",
889
  "identifier_push", "identifier_list", "nested_id_set", "nested_id_list",
890
  "nested_id_element", "$@20", "identifier", "filesystem", "path",
891
  "filename", "netifname", "number", "number64", "ipv6_addr", "ipv6_cidr",
892
  "policycap_def", "permissive_def", "neveraudit_def", "module_policy",
893
  "module_def", "version_identifier", "avrules_block", "avrule_decls",
894
  "avrule_decl", "require_block", "require_list", "require_decl",
895
  "require_class", "require_decl_def", "require_id_list", "optional_block",
896
  "$@21", "optional_else", "optional_decl", "else_decl",
897
  "avrule_user_defs", YY_NULLPTR
898
};
899
#endif
900
901
# ifdef YYPRINT
902
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
903
   (internal) symbol number NUM (which must be that of a token).  */
904
static const yytype_int16 yytoknum[] =
905
{
906
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
907
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
908
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
909
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
910
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
911
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
912
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
913
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
914
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
915
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
916
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
917
     365,   366,   367,   368,   369,   123,   125,    59,    58,    44,
918
      40,    41,    45,   126,    42
919
};
920
# endif
921
922
30.4M
#define YYPACT_NINF (-733)
923
924
#define yypact_value_is_default(Yyn) \
925
30.4M
  ((Yyn) == YYPACT_NINF)
926
927
#define YYTABLE_NINF (-233)
928
929
#define yytable_value_is_error(Yyn) \
930
1.44k
  0
931
932
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
933
     STATE-NUM.  */
934
static const yytype_int16 yypact[] =
935
{
936
      29,    61,   160,  -733,   215,  -733,   671,  -733,   281,  -733,
937
      61,   308,  -733,    61,    61,    61,    61,    61,    61,    61,
938
      61,    91,    61,    61,   -38,    91,    91,    91,    91,    91,
939
      91,    91,    91,    91,    91,    91,    91,    91,    91,   112,
940
    -733,    61,    61,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
941
    -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
942
    -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
943
    -733,  -733,  -733,  -733,  -733,  -733,   517,  -733,  -733,  -733,
944
     187,  -733,  -733,  -733,  -733,  -733,   150,  -733,    61,  -733,
945
     138,  -733,    10,    61,   201,   300,    61,    61,   -11,   217,
946
     134,  -733,  -733,   179,  -733,   200,  -733,   231,   200,   200,
947
     -38,   -38,   251,  -733,  -733,    91,    91,    91,    91,    91,
948
      91,    91,    91,    91,    91,    91,    91,    91,    91,   358,
949
     241,   244,    61,   347,  -733,  -733,   671,  -733,  -733,    61,
950
    -733,  -733,   408,   432,  -733,    91,    61,   327,   -34,  -733,
951
    -733,    91,   332,    44,   250,   333,   344,  -733,  -733,  -733,
952
     104,  -733,  -733,  -733,  -733,  -733,  -733,   350,  -733,   354,
953
     364,   239,   126,   -38,   -38,   -38,   -38,   -38,  -733,   366,
954
     374,   377,    53,    73,   385,   285,   392,   394,   398,   405,
955
     406,   410,   414,    61,  -733,  -733,  -733,  -733,  -733,  -733,
956
    -733,  -733,  -733,    25,  -733,   420,    61,  -733,  -733,   523,
957
    -733,   428,   436,   278,    61,   408,  -733,  -733,   433,   434,
958
    -733,  -733,    61,  -733,  -733,  -733,  -733,   438,  -733,    61,
959
    -733,  -733,  -733,    61,  -733,  -733,  -733,   239,   236,   297,
960
    -733,  -733,   139,    91,    91,    91,    91,   439,    91,   440,
961
     430,   441,    91,  -733,    91,    91,    91,    91,    91,    91,
962
      91,    91,    91,  -733,  -733,  -733,  -733,   345,    91,  -733,
963
      61,    91,    91,    91,    91,   521,   278,  -733,  -733,  -733,
964
    -733,    -2,  -733,  -733,  -733,  -733,  -733,  -733,    91,    91,
965
      91,    91,    91,    91,    91,    91,    91,    91,   531,  -733,
966
    -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
967
      61,    61,    61,    61,  -733,    61,  -733,    61,    61,    91,
968
      91,    91,    91,    91,    61,    61,    61,    61,  -733,  -733,
969
      61,   532,   543,   -22,  -733,   435,   437,   444,     2,    61,
970
     836,  -733,   466,  -733,  -733,  -733,  -733,  -733,    61,    61,
971
      91,    91,    91,    91,    91,    91,    91,    91,    91,    91,
972
     457,  -733,    15,   456,   458,   459,   460,  -733,   434,   461,
973
     462,   463,   464,   467,    -4,    -4,    -4,    -4,  -733,    61,
974
     468,  -733,  -733,   471,  -733,  -733,   472,   473,   474,   475,
975
     476,   477,   234,   282,   478,     8,    61,  -733,   625,  -733,
976
    -733,  -733,  -733,  -733,  -733,   190,  -733,   536,   481,    -9,
977
     470,   479,   480,   482,   483,   484,   485,   486,   487,   488,
978
    -733,  -733,  -733,   490,  -733,  -733,  -733,  -733,  -733,  -733,
979
    -733,  -733,  -733,   188,   491,  -733,  -733,   188,  -733,   492,
980
     494,   495,   559,  -733,   671,  -733,  -733,  -733,  -733,  -733,
981
    -733,   496,   497,   498,   501,   504,   505,  -733,  -733,   506,
982
     507,  -733,    69,  -733,    61,  -733,    61,   544,   536,  -733,
983
      61,  -733,    91,    91,    91,    91,    91,    91,    91,    91,
984
      91,    91,   149,  -733,  -733,    49,  -733,   503,  -733,  -733,
985
    -733,  -733,  -733,  -733,    61,   510,  -733,  -733,  -733,  -733,
986
    -733,  -733,  -733,  -733,    91,    91,  -733,   493,  -733,  -733,
987
    -733,  -733,    54,    13,    61,   334,  -733,  -733,   136,    61,
988
      61,    61,    91,    91,    91,    91,    61,    61,    61,  -733,
989
    -733,  -733,  -733,  -733,  -733,    91,   356,   599,  -733,  -733,
990
    -733,   512,   387,    91,    91,  -733,   465,  -733,  -733,  -733,
991
    -733,    23,   513,   514,   515,   528,   529,   535,    -4,    -4,
992
      -4,   537,   356,   111,    72,   277,  -733,   417,   417,   417,
993
     111,   417,   417,   417,   417,   417,   111,   111,   111,   356,
994
     356,   155,  -733,    61,    90,  -733,  -733,  -733,    61,    91,
995
     356,  -733,  -733,   541,  -733,  -733,  -733,  -733,  -733,  -733,
996
     542,   545,   546,  -733,   159,  -733,  -733,  -733,  -733,  -733,
997
    -733,  -733,  -733,  -733,  -733,  -733,   557,  -733,  -733,   566,
998
     586,  -733,  -733,   584,  -733,  -733,   325,   582,   386,  -733,
999
     -23,   356,   356,  -733,    61,     0,    61,    61,  -733,   596,
1000
     346,  -733,   353,   356,   176,  -733,  -733,  -733,  -733,  -733,
1001
     127,   127,   127,   127,  -733,   127,   127,   127,   127,  -733,
1002
     127,   127,  -733,   127,   127,   127,  -733,  -733,  -733,  -733,
1003
    -733,  -733,  -733,  -733,   583,  -733,   548,  -733,  -733,    61,
1004
      61,    61,     0,   626,   596,  -733,  -733,  -733,   178,  -733,
1005
    -733,   592,  -733,  -733,   193,  -733,  -733,  -733,  -733,  -733,
1006
    -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1007
      61,   569,   574,   575,   511,    61,   395,   641,   626,  -733,
1008
    -733,  -733,   164,  -733,   592,  -733,   587,  -733,  -733,  -733,
1009
    -733,  -733,   -41,   537,   537,   614,   537,   537,   511,   647,
1010
     395,  -733,  -733,  -733,  -733,  -733,  -733,   202,   649,   641,
1011
    -733,  -733,  -733,  -733,   184,    61,    32,  -733,   148,    61,
1012
    -733,   152,   175,    61,    61,   613,   650,   647,  -733,  -733,
1013
    -733,  -733,  -733,    61,   304,  -733,   649,  -733,  -733,  -733,
1014
     593,  -733,    61,   537,  -733,  -733,   614,  -733,   537,  -733,
1015
    -733,  -733,  -733,   537,    61,  -733,   650,  -733,  -733,    61,
1016
    -733,  -733,   619,    61,   613,    61,  -733,    61,  -733,    61,
1017
    -733,    61,    61,    61,   177,   537,  -733,  -733,    61,  -733,
1018
      61,  -733,  -733,  -733,  -733,  -733,  -733,   537,  -733,    61,
1019
    -733,  -733,    61,  -733,  -733
1020
};
1021
1022
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1023
     Performed when YYTABLE does not specify something else to do.  Zero
1024
     means the default is an error.  */
1025
static const yytype_int16 yydefact[] =
1026
{
1027
       4,     0,     0,     2,     0,     3,     0,   357,     0,     1,
1028
       0,     0,     8,     0,     0,     0,     0,     0,     0,     0,
1029
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1030
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1031
     408,     0,     0,   386,   381,   382,    88,    89,    90,    91,
1032
      92,    93,    94,    95,   383,    96,    97,    98,   155,   156,
1033
     157,   158,   159,   160,   161,   162,   163,    82,    83,    87,
1034
      84,    85,    86,    99,   100,   373,   411,   380,   384,   385,
1035
       0,   366,   306,   375,   377,   376,     0,    10,     0,     9,
1036
      16,    11,   109,     0,     0,     0,     0,     0,   109,     0,
1037
       0,   329,   330,     0,   333,     0,   332,   331,     0,     0,
1038
       0,     0,     0,   124,   125,     0,     0,     0,     0,     0,
1039
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1040
       0,     0,     0,   411,   379,   378,     0,   374,    13,     0,
1041
      12,     5,     0,    15,    17,     0,     0,     0,     0,   327,
1042
     173,     0,     0,     0,     0,   109,     0,   101,   354,   356,
1043
       0,   351,   353,   335,   334,   112,   113,     0,   336,     0,
1044
       0,   118,     0,     0,     0,     0,     0,     0,   127,     0,
1045
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1046
       0,     0,     0,     0,   393,   396,   394,   395,   398,   399,
1047
     400,   401,   397,     0,   389,     0,     0,   371,   372,     0,
1048
     410,     0,     0,    26,     0,    14,    20,    18,     0,   108,
1049
     175,   179,     0,    55,   105,   106,   107,     0,   104,     0,
1050
     350,   352,   102,     0,   110,   111,   117,   119,   120,   121,
1051
     122,   123,     0,     0,     0,     0,     0,     0,     0,     0,
1052
     324,   326,     0,   178,     0,     0,     0,     0,     0,     0,
1053
       0,     0,     0,   387,   388,   390,   402,     0,     0,   404,
1054
       0,     0,     0,     0,     0,    49,    25,    27,    28,    29,
1055
      30,     0,    21,   174,   328,   103,   355,   337,     0,     0,
1056
       0,     0,     0,     0,     0,     0,     0,     0,   116,   126,
1057
     128,   129,   135,   136,   137,   138,   139,   140,   141,   130,
1058
       0,     0,     0,     0,   176,     0,   153,     0,     0,     0,
1059
       0,     0,     0,     0,     0,     0,     0,     0,   392,   391,
1060
       0,   240,   407,     0,   348,     0,     0,     0,     0,     0,
1061
       0,    48,     0,    51,    31,    32,    33,    34,     0,     0,
1062
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1063
       0,   114,     0,     0,     0,     0,     0,   323,   325,     0,
1064
       0,     0,     0,     0,     0,     0,     0,     0,   403,     0,
1065
       0,   409,   405,     0,    19,   349,     0,     0,     0,     0,
1066
       0,     0,     0,     0,     0,     0,     0,    81,     0,    74,
1067
      77,    76,    78,    80,    79,     0,    52,    59,    23,     0,
1068
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1069
     127,   362,   150,     0,   151,   152,   177,   154,   168,   164,
1070
     165,   166,   167,     0,     0,   309,   308,     0,   319,     0,
1071
       0,     0,     0,   238,     0,    35,    36,    37,    38,    39,
1072
      40,     0,     0,     0,     0,     0,     0,    47,    54,     0,
1073
       0,    75,   181,   236,     0,    56,     0,     0,    58,    60,
1074
       0,    22,     0,     0,     0,     0,     0,     0,     0,     0,
1075
       0,     0,     0,   149,   318,     0,   313,   317,   169,   311,
1076
     310,   170,   171,   172,     0,     0,    43,    41,    42,    46,
1077
      44,    45,    53,   370,     0,     0,     6,   180,   182,   184,
1078
     185,   237,     0,     0,     0,     0,    64,    61,     0,     0,
1079
       0,     0,     0,     0,     0,     0,     0,     0,     0,   115,
1080
     312,   314,   315,   239,   406,     0,     0,     0,   183,    57,
1081
      63,     0,     0,     0,     0,    65,    50,    68,    70,    71,
1082
      24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1083
       0,     0,     0,     0,     0,     0,   214,     0,     0,     0,
1084
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1085
       0,     0,   192,     0,   292,   241,    62,    67,     0,     0,
1086
       0,    69,   132,     0,   133,   134,   142,   143,   144,   145,
1087
       0,     0,     0,   316,     0,   233,   234,   235,   230,   231,
1088
     232,   219,   215,   220,   217,   222,   196,   198,   200,   202,
1089
       0,   204,   206,   208,   210,   212,     0,     0,     0,   189,
1090
       0,     0,     0,   187,     0,     0,     0,     0,   242,   299,
1091
     291,   293,     0,     0,     0,   131,   146,   147,   148,   186,
1092
       0,     0,     0,     0,   193,     0,     0,     0,     0,   194,
1093
       0,     0,   195,     0,     0,     0,   224,   228,   225,   229,
1094
     226,   227,   188,   190,   191,   243,     0,   359,   358,     0,
1095
       0,     0,     0,   262,   298,   300,   294,    66,     0,    73,
1096
     347,     0,   338,   339,     0,   342,   216,   340,   221,   218,
1097
     223,   197,   199,   201,   203,   205,   207,   209,   211,   213,
1098
       0,     0,     0,     0,     0,     0,   245,   279,   261,   263,
1099
     301,    72,     0,   345,     0,   343,     0,   295,   296,   297,
1100
     360,   361,     0,     0,     0,     0,     0,     0,     0,   268,
1101
     244,   246,   248,   249,   250,   251,   252,     0,   284,   278,
1102
     280,   264,   341,   346,     0,     0,     0,   305,     0,     0,
1103
     367,     0,     0,     0,     0,     0,   274,   267,   269,   247,
1104
     364,   365,   363,     0,     0,   260,   283,   285,   281,   344,
1105
     322,   303,     0,     0,   265,   253,     0,   254,     0,   256,
1106
     258,   259,   368,     0,     0,     7,   273,   275,   270,     0,
1107
     307,   369,     0,     0,     0,     0,   286,     0,   320,     0,
1108
     302,     0,     0,     0,     0,     0,   276,   282,     0,   288,
1109
       0,   290,   321,   304,   266,   255,   257,     0,   271,     0,
1110
     287,   289,     0,   277,   272
1111
};
1112
1113
  /* YYPGOTO[NTERM-NUM].  */
1114
static const yytype_int16 yypgoto[] =
1115
{
1116
    -733,  -733,  -733,  -733,  -733,  -733,  -733,   702,  -733,   634,
1117
    -733,  -733,  -733,   589,  -733,   518,  -733,  -733,   453,   454,
1118
     469,   489,  -733,  -733,  -733,   393,   -97,  -733,  -733,  -733,
1119
     266,  -733,   223,  -733,   195,  -733,  -733,  -733,   348,  -305,
1120
    -275,  -733,  -733,  -733,  -733,  -733,  -733,   -39,  -733,  -733,
1121
     413,  -274,  -733,   -40,  -733,   323,  -733,  -733,  -733,  -733,
1122
    -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1123
    -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1124
    -733,  -733,  -733,  -733,  -733,  -733,   237,  -733,  -733,  -526,
1125
    -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1126
    -733,  -733,  -733,  -733,  -150,  -237,  -733,  -365,  -733,  -733,
1127
     163,  -733,  -733,     9,  -733,  -733,  -733,  -733,  -733,  -733,
1128
    -733,  -733,    30,  -733,  -733,   -17,  -733,  -733,   -45,  -733,
1129
    -733,     4,  -733,  -733,   -24,  -733,  -733,   116,  -733,  -733,
1130
      75,  -733,  -573,  -733,  -351,  -319,  -733,   279,  -733,  -406,
1131
    -528,  -733,  -311,  -279,   -94,  -301,  -210,   807,  -733,  -733,
1132
    -733,  -178,    42,  -634,  -342,   -57,  -733,   607,  -733,    -1,
1133
      86,    31,   224,  -733,     3,   -10,  -732,  -733,  -733,  -733,
1134
    -733,  -733,  -733,  -733,  -131,  -733,   701,  -236,  -733,   576,
1135
    -733,  -733,  -733,  -271,  -733,  -733,  -733,  -733,   645
1136
};
1137
1138
  /* YYDEFGOTO[NTERM-NUM].  */
1139
static const yytype_int16 yydefgoto[] =
1140
{
1141
      -1,     2,     3,     4,   213,   537,    11,    12,    90,    91,
1142
     141,   142,   143,   144,   215,   216,   275,   276,   277,   278,
1143
     279,   280,   340,   341,   342,   343,   152,   407,   467,   468,
1144
     469,   515,   516,   546,   547,   548,   549,   398,   399,    44,
1145
      45,    46,    47,    48,    49,    50,    51,   147,    52,    53,
1146
     167,    54,   361,   112,   113,   242,   299,   300,   301,   302,
1147
     303,   304,   305,   306,   307,   308,    55,    56,    57,    58,
1148
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1149
      69,    70,    71,    72,   506,   507,   508,   509,   510,   581,
1150
     582,   655,   656,   657,   658,   660,   661,   663,   664,   665,
1151
     650,   652,   651,   653,   610,   611,   462,   133,   380,   584,
1152
     585,   739,   740,   741,   742,   743,   744,   745,   746,   716,
1153
     717,   718,   719,   766,   767,   768,   795,   796,   797,   748,
1154
     749,   750,   775,   776,   777,   639,   640,   641,   683,   684,
1155
     685,   809,    84,   803,   434,   435,   485,   486,   561,   436,
1156
     675,   808,   249,   250,   148,   103,   104,   105,   233,   694,
1157
     695,   696,   722,   697,   333,   106,   160,   161,   229,   107,
1158
     679,   732,   423,   773,   438,   761,   793,   805,   403,    73,
1159
      74,     5,     6,    86,    75,    76,    77,    78,   203,   204,
1160
     205,   206,   267,    79,   332,   382,    80,   383,   135
1161
};
1162
1163
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1164
     positive, shift that token.  If negative, reduce the rule whose
1165
     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1166
static const yytype_int16 yytable[] =
1167
{
1168
       8,   155,   153,   154,   366,   211,   309,   409,   348,    87,
1169
     151,    85,    92,    93,    94,    95,    96,    97,    98,    99,
1170
     421,   108,   109,   114,   439,   440,   441,   487,   421,   151,
1171
     145,   490,   193,   463,   151,   400,   604,   194,   367,   195,
1172
     130,   131,   804,   159,   196,   110,   163,   197,     7,   198,
1173
     199,     7,   219,   629,   630,   392,   393,   723,   200,   156,
1174
     725,   631,   632,   201,   644,   401,   402,     7,   202,   404,
1175
     171,   172,   820,   437,   437,   437,   437,   504,   505,   487,
1176
       7,   756,   111,   221,   612,   222,    81,   138,   753,   677,
1177
     723,   613,   149,   400,   384,   149,   149,   511,   672,   162,
1178
     442,   583,   164,   159,   678,   673,   674,   471,   146,   114,
1179
     114,   433,   132,   349,   484,   394,   227,   688,   489,   101,
1180
     753,     7,   512,   401,   402,   458,     1,   404,   518,   146,
1181
     540,   209,   422,   237,   238,   239,   240,   241,   212,    81,
1182
     592,   263,     7,     7,   139,   149,   605,   606,   607,    88,
1183
       7,   711,   712,   713,   781,   603,   635,   636,   637,   162,
1184
       9,   225,     7,   222,   433,   530,   484,   288,   289,   290,
1185
     539,   246,   114,   114,   114,   114,   114,   288,   289,   290,
1186
       7,   247,   251,   533,   291,   292,   293,   294,   295,   296,
1187
     297,   248,   262,     7,   291,   292,   293,   294,   295,   296,
1188
     297,   802,   608,   609,   757,   266,   100,   600,   601,   602,
1189
     173,   174,   175,   281,   101,   102,   690,   176,   177,   100,
1190
     230,   284,    10,     7,   368,     7,   158,   129,   286,   818,
1191
     784,   785,   287,   787,   789,   790,   791,     7,    39,   631,
1192
     632,     7,   691,   631,   632,   799,   309,   236,    39,   100,
1193
     101,   102,   550,   690,   810,   298,   158,   437,   437,   437,
1194
     631,   632,   631,   632,     7,   529,     7,   137,     7,   334,
1195
     783,   817,   633,   690,   786,   819,   649,   821,    81,     7,
1196
     752,   823,   690,   824,   825,   826,   828,   165,   166,   614,
1197
     830,   770,   831,   689,   100,   721,   615,   788,   459,   827,
1198
     779,   833,   136,   433,   834,   464,   771,   772,   724,   362,
1199
     363,   364,   365,   495,   251,    10,   251,   149,   150,    88,
1200
     173,   151,   175,   374,   375,   376,   377,   176,   177,   378,
1201
     176,   177,   385,   620,   157,   173,   174,   175,   395,   626,
1202
     627,   628,   176,   177,   451,   452,   453,   408,   334,   692,
1203
     692,   692,   692,   168,   692,   692,   692,   692,   207,   692,
1204
     692,   208,   692,   692,   692,   193,   178,   226,   563,   222,
1205
     194,    81,   195,   514,    82,   543,   544,   196,   251,    83,
1206
     197,   173,   198,   199,   271,   272,   273,   274,   176,   177,
1207
     132,   200,   454,   455,   456,   460,   201,    82,   800,   792,
1208
     801,   202,   253,   254,   465,   666,   667,   668,   385,   564,
1209
     565,   566,   635,   636,   637,   214,   541,   616,   617,   618,
1210
     619,   621,   622,   623,   624,   625,   567,   568,   569,   570,
1211
     571,   572,   573,   574,   575,   576,   577,   578,   139,   579,
1212
     693,   693,   693,   693,   220,   693,   693,   693,   693,   224,
1213
     693,   693,   146,   693,   693,   693,   734,   735,   736,   737,
1214
     738,   228,   329,   334,   330,   513,   670,   232,   671,   334,
1215
     687,   234,   222,   698,   699,   700,   580,   701,   702,   703,
1216
     704,   235,   705,   706,   243,   707,   708,   709,   386,   387,
1217
     388,   389,   244,   251,   642,   245,   822,   390,   391,   339,
1218
     405,   504,   505,   252,   587,   588,   543,   544,   608,   609,
1219
     255,   385,   256,   542,   730,   731,   257,   385,   551,   552,
1220
     553,   169,   170,   258,   259,   558,   559,   560,   260,    13,
1221
      14,    15,   261,    16,    17,    18,    19,   265,   268,    20,
1222
      21,    22,    23,    24,   269,    25,    26,    27,    28,    29,
1223
     283,   270,   317,   222,   339,   285,   314,   316,   360,   318,
1224
     132,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1225
     381,   379,   420,   424,   466,   425,   426,   427,   428,   429,
1226
     430,   431,   634,   514,   432,   443,   444,   149,   472,   445,
1227
     446,   447,   448,   449,   450,   457,   470,   473,   474,   494,
1228
     475,   476,   477,   478,   479,   480,   481,   483,   488,   491,
1229
     583,   492,   493,   496,   497,   498,    39,    40,   499,    41,
1230
      42,   500,   501,   502,   503,   532,   534,    81,   654,   586,
1231
     594,   595,   596,   676,    43,   680,   681,    13,    14,    15,
1232
    -232,    16,    17,    18,    19,   597,   598,    20,    21,    22,
1233
      23,    24,   599,    25,    26,    27,    28,    29,   645,   646,
1234
     659,   662,   647,   648,   669,   682,   710,   631,   132,    30,
1235
      31,    32,    33,    34,    35,    36,    37,    38,   676,   676,
1236
     676,   690,   715,    13,    14,    15,   727,    16,    17,    18,
1237
      19,   728,   729,    20,    21,    22,    23,    24,   747,    25,
1238
      26,    27,    28,    29,   760,   755,   765,   774,   792,   726,
1239
     794,   807,    82,    89,   733,    30,    31,    32,    33,    34,
1240
      35,    36,    37,    38,   140,    40,   396,    41,    42,   344,
1241
     345,   676,   217,   282,   517,   406,   758,   759,   545,   762,
1242
     763,   591,   397,   482,   538,   346,   461,   638,   751,   769,
1243
     798,   816,   806,   778,   780,   782,   686,   676,   676,   720,
1244
     676,   676,   676,   676,   531,   347,   754,   231,   714,   764,
1245
      39,    40,   676,    41,    42,   593,   812,   134,   210,   264,
1246
       0,   676,     0,     0,     0,     0,   811,     0,    43,     0,
1247
       0,   813,     0,   815,     0,     0,   814,     0,   676,     0,
1248
       0,     0,   676,     0,   676,     0,   251,     0,   676,     0,
1249
     676,   676,   676,   676,     0,     0,     0,   676,   829,   676,
1250
       0,     0,     0,     0,     0,     0,     0,     0,   676,     0,
1251
     832,   676,   115,   116,   117,   118,   119,   120,   121,   122,
1252
     123,   124,   125,   126,   127,   128,     0,     0,    13,    14,
1253
      15,     0,    16,    17,    18,    19,     0,     0,    20,    21,
1254
      22,    23,    24,     0,    25,    26,    27,    28,    29,     0,
1255
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1256
      30,    31,    32,    33,    34,    35,    36,    37,    38,     0,
1257
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1258
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1259
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1260
       0,     0,   179,   180,   181,   182,   183,   184,   185,   186,
1261
     187,   188,   189,   190,   191,   192,    40,   396,    41,    42,
1262
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1263
       0,     0,   218,   397,     0,     0,     0,     0,   223,     0,
1264
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1265
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1266
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1267
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1268
       0,     0,     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
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1272
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1273
     310,   311,   312,   313,     0,   315,     0,     0,     0,   319,
1274
       0,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1275
       0,     0,     0,     0,     0,   331,     0,     0,   335,   336,
1276
     337,   338,     0,     0,     0,     0,     0,     0,     0,     0,
1277
       0,     0,     0,     0,     0,   350,   351,   352,   353,   354,
1278
     355,   356,   357,   358,   359,     0,     0,     0,     0,     0,
1279
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1280
       0,     0,     0,     0,     0,     0,   369,   370,   371,   372,
1281
     373,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1282
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1283
       0,     0,     0,     0,     0,     0,     0,   410,   411,   412,
1284
     413,   414,   415,   416,   417,   418,   419,     0,     0,     0,
1285
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1286
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1287
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1288
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1289
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1290
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1291
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1292
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1293
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1294
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1295
       0,     0,     0,     0,     0,     0,     0,     0,     0,   519,
1296
     520,   521,   522,   523,   524,   525,   526,   527,   528,     0,
1297
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1298
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1299
       0,   535,   536,     0,     0,     0,     0,     0,     0,     0,
1300
       0,     0,     0,     0,     0,     0,     0,     0,     0,   554,
1301
     555,   556,   557,     0,     0,     0,     0,     0,     0,     0,
1302
       0,     0,   562,     0,     0,     0,     0,     0,     0,     0,
1303
     589,   590,     0,     0,     0,     0,     0,     0,     0,     0,
1304
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1305
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1306
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1307
       0,     0,     0,     0,     0,     0,   643
1308
};
1309
1310
static const yytype_int16 yycheck[] =
1311
{
1312
       1,    98,    96,    97,   315,   136,   242,   349,    10,    10,
1313
      21,     8,    13,    14,    15,    16,    17,    18,    19,    20,
1314
       5,    22,    23,    24,   375,   376,   377,   433,     5,    21,
1315
      20,   437,     7,   398,    21,   340,   562,    12,   317,    14,
1316
      41,    42,   774,   100,    19,    83,   103,    22,    89,    24,
1317
      25,    89,   146,   579,   580,    53,    54,   691,    33,    98,
1318
     694,    84,    85,    38,   590,   340,   340,    89,    43,   340,
1319
     110,   111,   804,   374,   375,   376,   377,     8,     9,   485,
1320
      89,   122,   120,   117,    12,   119,    90,    88,   722,    89,
1321
     724,    19,    93,   398,   116,    96,    97,   462,   121,   100,
1322
     379,    11,   103,   160,   104,   631,   632,   116,   119,   110,
1323
     111,   115,    43,   115,   433,   113,   155,   643,   437,   123,
1324
     754,    89,   464,   398,   398,   117,    97,   398,   470,   119,
1325
     117,   132,   117,   173,   174,   175,   176,   177,   139,    90,
1326
     117,   116,    89,    89,     6,   146,    35,    36,    37,    11,
1327
      89,   679,   680,   681,   122,   561,    66,    67,    68,   160,
1328
       0,   117,    89,   119,   115,   116,   485,    28,    29,    30,
1329
     116,   118,   173,   174,   175,   176,   177,    28,    29,    30,
1330
      89,   182,   183,   494,    45,    46,    47,    48,    49,    50,
1331
      51,   118,   193,    89,    45,    46,    47,    48,    49,    50,
1332
      51,   774,    91,    92,   732,   206,   115,   558,   559,   560,
1333
      84,    85,    86,   214,   123,   124,    89,    91,    92,   115,
1334
     116,   222,     7,    89,   318,    89,   122,   115,   229,   802,
1335
     758,   759,   233,   761,   762,   763,   764,    89,    99,    84,
1336
      85,    89,   115,    84,    85,   773,   482,   121,    99,   115,
1337
     123,   124,   116,    89,   782,   116,   122,   558,   559,   560,
1338
      84,    85,    84,    85,    89,   116,    89,   117,    89,   270,
1339
     122,   799,   117,    89,   122,   803,   117,   805,    90,    89,
1340
     116,   809,    89,   811,   812,   813,   814,    87,    88,    12,
1341
     818,    89,   820,   117,   115,   117,    19,   122,   395,   122,
1342
     116,   829,   115,   115,   832,   115,   104,   105,   115,   310,
1343
     311,   312,   313,   444,   315,     7,   317,   318,   117,    11,
1344
      84,    21,    86,   324,   325,   326,   327,    91,    92,   330,
1345
      91,    92,   333,   570,   117,    84,    85,    86,   339,   576,
1346
     577,   578,    91,    92,   110,   111,   112,   348,   349,   650,
1347
     651,   652,   653,   122,   655,   656,   657,   658,   117,   660,
1348
     661,   117,   663,   664,   665,     7,   115,   117,    12,   119,
1349
      12,    90,    14,    39,    93,    41,    42,    19,   379,    98,
1350
      22,    84,    24,    25,   106,   107,   108,   109,    91,    92,
1351
      43,    33,   110,   111,   112,   396,    38,    93,    94,    95,
1352
      96,    43,   117,   118,   405,    80,    81,    82,   409,    53,
1353
      54,    55,    66,    67,    68,     7,   513,   567,   568,   569,
1354
     570,   571,   572,   573,   574,   575,    70,    71,    72,    73,
1355
      74,    75,    76,    77,    78,    79,    80,    81,     6,    83,
1356
     650,   651,   652,   653,   117,   655,   656,   657,   658,   117,
1357
     660,   661,   119,   663,   664,   665,    61,    62,    63,    64,
1358
      65,   117,   117,   464,   119,   466,    80,   117,    82,   470,
1359
     117,   117,   119,   651,   652,   653,   120,   655,   656,   657,
1360
     658,   117,   660,   661,   118,   663,   664,   665,    53,    54,
1361
      53,    54,   118,   494,   588,   118,   807,    53,    54,    33,
1362
      34,     8,     9,   118,   117,   118,    41,    42,    91,    92,
1363
     118,   512,   118,   514,     3,     4,   118,   518,   519,   520,
1364
     521,   108,   109,   118,   118,   526,   527,   528,   118,    12,
1365
      13,    14,   118,    16,    17,    18,    19,   117,    15,    22,
1366
      23,    24,    25,    26,   116,    28,    29,    30,    31,    32,
1367
     117,   115,   122,   119,    33,   117,   117,   117,    27,   118,
1368
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1369
      27,    39,   115,   117,    38,   117,   117,   117,   117,   117,
1370
     117,   117,   583,    39,   117,   117,   115,   588,   118,   117,
1371
     117,   117,   117,   117,   117,   117,   115,   118,   118,    40,
1372
     118,   118,   118,   118,   118,   118,   118,   117,   117,   117,
1373
      11,   117,   117,   117,   117,   117,    99,   100,   117,   102,
1374
     103,   117,   117,   117,   117,   122,   116,    90,    71,   117,
1375
     117,   117,   117,   634,   117,   636,   637,    12,    13,    14,
1376
      74,    16,    17,    18,    19,   117,   117,    22,    23,    24,
1377
      25,    26,   117,    28,    29,    30,    31,    32,   117,   117,
1378
      74,    77,   117,   117,    82,    69,   118,    84,    43,    44,
1379
      45,    46,    47,    48,    49,    50,    51,    52,   679,   680,
1380
     681,    89,    56,    12,    13,    14,   117,    16,    17,    18,
1381
      19,   117,   117,    22,    23,    24,    25,    26,    57,    28,
1382
      29,    30,    31,    32,    90,   118,    59,    58,    95,   710,
1383
      60,   118,    93,    11,   715,    44,    45,    46,    47,    48,
1384
      49,    50,    51,    52,    90,   100,   101,   102,   103,   276,
1385
     276,   732,   143,   215,   468,   342,   733,   734,   515,   736,
1386
     737,   546,   117,   420,   507,   276,   398,   584,   718,   740,
1387
     767,   796,   776,   749,   755,   756,   640,   758,   759,   684,
1388
     761,   762,   763,   764,   485,   276,   724,   160,   682,   738,
1389
      99,   100,   773,   102,   103,   551,   786,    76,   133,   203,
1390
      -1,   782,    -1,    -1,    -1,    -1,   783,    -1,   117,    -1,
1391
      -1,   788,    -1,   794,    -1,    -1,   793,    -1,   799,    -1,
1392
      -1,    -1,   803,    -1,   805,    -1,   807,    -1,   809,    -1,
1393
     811,   812,   813,   814,    -1,    -1,    -1,   818,   815,   820,
1394
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   829,    -1,
1395
     827,   832,    25,    26,    27,    28,    29,    30,    31,    32,
1396
      33,    34,    35,    36,    37,    38,    -1,    -1,    12,    13,
1397
      14,    -1,    16,    17,    18,    19,    -1,    -1,    22,    23,
1398
      24,    25,    26,    -1,    28,    29,    30,    31,    32,    -1,
1399
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1400
      44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
1401
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1402
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1403
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1404
      -1,    -1,   115,   116,   117,   118,   119,   120,   121,   122,
1405
     123,   124,   125,   126,   127,   128,   100,   101,   102,   103,
1406
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1407
      -1,    -1,   145,   117,    -1,    -1,    -1,    -1,   151,    -1,
1408
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1409
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1410
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1411
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1412
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1413
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1414
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1415
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1416
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1417
     243,   244,   245,   246,    -1,   248,    -1,    -1,    -1,   252,
1418
      -1,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1419
      -1,    -1,    -1,    -1,    -1,   268,    -1,    -1,   271,   272,
1420
     273,   274,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1421
      -1,    -1,    -1,    -1,    -1,   288,   289,   290,   291,   292,
1422
     293,   294,   295,   296,   297,    -1,    -1,    -1,    -1,    -1,
1423
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1424
      -1,    -1,    -1,    -1,    -1,    -1,   319,   320,   321,   322,
1425
     323,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1426
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1427
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,   351,   352,
1428
     353,   354,   355,   356,   357,   358,   359,    -1,    -1,    -1,
1429
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1430
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1431
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1432
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1433
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1434
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1435
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1436
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1437
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1438
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1439
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   472,
1440
     473,   474,   475,   476,   477,   478,   479,   480,   481,    -1,
1441
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1442
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1443
      -1,   504,   505,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1444
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   522,
1445
     523,   524,   525,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1446
      -1,    -1,   535,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1447
     543,   544,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1448
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1449
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1450
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1451
      -1,    -1,    -1,    -1,    -1,    -1,   589
1452
};
1453
1454
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1455
     symbol of state STATE-NUM.  */
1456
static const yytype_int16 yystos[] =
1457
{
1458
       0,    97,   126,   127,   128,   306,   307,    89,   294,     0,
1459
       7,   131,   132,    12,    13,    14,    16,    17,    18,    19,
1460
      22,    23,    24,    25,    26,    28,    29,    30,    31,    32,
1461
      44,    45,    46,    47,    48,    49,    50,    51,    52,    99,
1462
     100,   102,   103,   117,   164,   165,   166,   167,   168,   169,
1463
     170,   171,   173,   174,   176,   191,   192,   193,   194,   195,
1464
     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1465
     206,   207,   208,   304,   305,   309,   310,   311,   312,   318,
1466
     321,    90,    93,    98,   267,   299,   308,   294,    11,   132,
1467
     133,   134,   294,   294,   294,   294,   294,   294,   294,   294,
1468
     115,   123,   124,   280,   281,   282,   290,   294,   294,   294,
1469
      83,   120,   178,   179,   294,   282,   282,   282,   282,   282,
1470
     282,   282,   282,   282,   282,   282,   282,   282,   282,   115,
1471
     294,   294,    43,   232,   311,   323,   115,   117,   294,     6,
1472
     134,   135,   136,   137,   138,    20,   119,   172,   279,   294,
1473
     117,    21,   151,   279,   279,   151,   172,   117,   122,   290,
1474
     291,   292,   294,   290,   294,    87,    88,   175,   122,   175,
1475
     175,   178,   178,    84,    85,    86,    91,    92,   115,   282,
1476
     282,   282,   282,   282,   282,   282,   282,   282,   282,   282,
1477
     282,   282,   282,     7,    12,    14,    19,    22,    24,    25,
1478
      33,    38,    43,   313,   314,   315,   316,   117,   117,   294,
1479
     323,   309,   294,   129,     7,   139,   140,   138,   282,   279,
1480
     117,   117,   119,   282,   117,   117,   117,   172,   117,   293,
1481
     116,   292,   117,   283,   117,   117,   121,   178,   178,   178,
1482
     178,   178,   180,   118,   118,   118,   118,   294,   118,   277,
1483
     278,   294,   118,   117,   118,   118,   118,   118,   118,   118,
1484
     118,   118,   294,   116,   314,   117,   294,   317,    15,   116,
1485
     115,   106,   107,   108,   109,   141,   142,   143,   144,   145,
1486
     146,   294,   140,   117,   294,   117,   294,   294,    28,    29,
1487
      30,    45,    46,    47,    48,    49,    50,    51,   116,   181,
1488
     182,   183,   184,   185,   186,   187,   188,   189,   190,   312,
1489
     282,   282,   282,   282,   117,   282,   117,   122,   118,   282,
1490
     282,   282,   282,   282,   282,   282,   282,   282,   282,   117,
1491
     119,   282,   319,   289,   294,   282,   282,   282,   282,    33,
1492
     147,   148,   149,   150,   143,   144,   145,   146,    10,   115,
1493
     282,   282,   282,   282,   282,   282,   282,   282,   282,   282,
1494
      27,   177,   294,   294,   294,   294,   277,   278,   279,   282,
1495
     282,   282,   282,   282,   294,   294,   294,   294,   294,    39,
1496
     233,    27,   320,   322,   116,   294,    53,    54,    53,    54,
1497
      53,    54,    53,    54,   113,   294,   101,   117,   162,   163,
1498
     164,   165,   176,   303,   318,    34,   150,   152,   294,   289,
1499
     282,   282,   282,   282,   282,   282,   282,   282,   282,   282,
1500
     115,     5,   117,   297,   117,   117,   117,   117,   117,   117,
1501
     117,   117,   117,   115,   269,   270,   274,   280,   299,   269,
1502
     269,   269,   278,   117,   115,   117,   117,   117,   117,   117,
1503
     117,   110,   111,   112,   110,   111,   112,   117,   117,   151,
1504
     294,   163,   231,   232,   115,   294,    38,   153,   154,   155,
1505
     115,   116,   118,   118,   118,   118,   118,   118,   118,   118,
1506
     118,   118,   180,   117,   270,   271,   272,   274,   117,   270,
1507
     274,   117,   117,   117,    40,   309,   117,   117,   117,   117,
1508
     117,   117,   117,   117,     8,     9,   209,   210,   211,   212,
1509
     213,   232,   289,   294,    39,   156,   157,   155,   289,   282,
1510
     282,   282,   282,   282,   282,   282,   282,   282,   282,   116,
1511
     116,   272,   122,   277,   116,   282,   282,   130,   211,   116,
1512
     117,   151,   294,    41,    42,   157,   158,   159,   160,   161,
1513
     116,   294,   294,   294,   282,   282,   282,   282,   294,   294,
1514
     294,   273,   282,    12,    53,    54,    55,    70,    71,    72,
1515
      73,    74,    75,    76,    77,    78,    79,    80,    81,    83,
1516
     120,   214,   215,    11,   234,   235,   117,   117,   118,   282,
1517
     282,   159,   117,   297,   117,   117,   117,   117,   117,   117,
1518
     269,   269,   269,   274,   214,    35,    36,    37,    91,    92,
1519
     229,   230,    12,    19,    12,    19,   229,   229,   229,   229,
1520
     230,   229,   229,   229,   229,   229,   230,   230,   230,   214,
1521
     214,    84,    85,   117,   294,    66,    67,    68,   235,   260,
1522
     261,   262,   279,   282,   214,   117,   117,   117,   117,   117,
1523
     225,   227,   226,   228,    71,   216,   217,   218,   219,    74,
1524
     220,   221,    77,   222,   223,   224,    80,    81,    82,    82,
1525
      80,    82,   121,   214,   214,   275,   294,    89,   104,   295,
1526
     294,   294,    69,   263,   264,   265,   262,   117,   214,   117,
1527
      89,   115,   280,   281,   284,   285,   286,   288,   286,   286,
1528
     286,   286,   286,   286,   286,   286,   286,   286,   286,   286,
1529
     118,   275,   275,   275,   295,    56,   244,   245,   246,   247,
1530
     265,   117,   287,   288,   115,   288,   294,   117,   117,   117,
1531
       3,     4,   296,   294,    61,    62,    63,    64,    65,   236,
1532
     237,   238,   239,   240,   241,   242,   243,    57,   254,   255,
1533
     256,   247,   116,   288,   287,   118,   122,   275,   299,   299,
1534
      90,   300,   299,   299,   296,    59,   248,   249,   250,   238,
1535
      89,   104,   105,   298,    58,   257,   258,   259,   256,   116,
1536
     294,   122,   294,   122,   275,   275,   122,   275,   122,   275,
1537
     275,   275,    95,   301,    60,   251,   252,   253,   250,   275,
1538
      94,    96,   267,   268,   301,   302,   259,   118,   276,   266,
1539
     275,   299,   300,   299,   299,   294,   253,   275,   267,   275,
1540
     301,   275,   277,   275,   275,   275,   275,   122,   275,   299,
1541
     275,   275,   299,   275,   275
1542
};
1543
1544
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1545
static const yytype_int16 yyr1[] =
1546
{
1547
       0,   125,   126,   126,   128,   129,   130,   127,   131,   131,
1548
     132,   133,   133,   134,   135,   136,   136,   137,   137,   138,
1549
     139,   139,   140,   140,   140,   141,   141,   142,   142,   142,
1550
     142,   142,   142,   142,   142,   143,   143,   144,   144,   145,
1551
     145,   146,   146,   146,   146,   146,   146,   146,   147,   147,
1552
     148,   149,   149,   150,   150,   151,   152,   152,   153,   153,
1553
     154,   154,   155,   155,   156,   156,   157,   157,   158,   158,
1554
     159,   159,   160,   161,   162,   162,   163,   163,   163,   163,
1555
     163,   163,   164,   164,   164,   164,   164,   164,   165,   165,
1556
     165,   165,   165,   165,   165,   165,   165,   165,   165,   165,
1557
     165,   166,   167,   168,   168,   169,   170,   171,   172,   172,
1558
     173,   174,   175,   175,   176,   177,   177,   178,   178,   178,
1559
     178,   178,   178,   178,   178,   179,   180,   180,   181,   181,
1560
     181,   182,   182,   182,   182,   183,   183,   183,   183,   183,
1561
     183,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1562
     191,   191,   191,   192,   192,   193,   193,   193,   193,   193,
1563
     193,   193,   193,   193,   194,   195,   196,   197,   198,   199,
1564
     200,   201,   202,   203,   204,   205,   206,   206,   207,   208,
1565
     209,   209,   210,   210,   211,   211,   212,   213,   214,   214,
1566
     214,   214,   214,   215,   215,   215,   216,   215,   217,   215,
1567
     218,   215,   219,   215,   220,   215,   221,   215,   222,   215,
1568
     223,   215,   224,   215,   215,   225,   215,   226,   215,   215,
1569
     227,   215,   228,   215,   215,   215,   215,   215,   215,   215,
1570
     229,   229,   230,   230,   230,   230,   231,   231,   232,   233,
1571
     233,   234,   234,   235,   236,   236,   237,   237,   238,   238,
1572
     238,   238,   238,   239,   240,   240,   241,   241,   242,   243,
1573
     244,   245,   245,   246,   246,   247,   247,   248,   248,   249,
1574
     249,   250,   250,   251,   251,   252,   252,   253,   254,   254,
1575
     255,   255,   256,   257,   257,   258,   258,   259,   259,   259,
1576
     259,   260,   260,   261,   261,   262,   262,   262,   263,   263,
1577
     264,   264,   265,   266,   265,   265,   267,   268,   269,   269,
1578
     269,   269,   270,   271,   271,   273,   272,   272,   272,   274,
1579
     275,   276,   276,   277,   277,   278,   278,   279,   279,   280,
1580
     281,   282,   282,   282,   282,   282,   283,   282,   284,   285,
1581
     286,   286,   286,   286,   286,   287,   287,   288,   289,   289,
1582
     290,   291,   291,   292,   293,   292,   292,   294,   295,   295,
1583
     296,   296,   297,   298,   298,   298,   299,   300,   301,   302,
1584
     303,   304,   305,   306,   307,   308,   308,   308,   309,   310,
1585
     310,   311,   311,   311,   311,   311,   311,   312,   313,   313,
1586
     314,   314,   315,   316,   316,   316,   316,   316,   316,   316,
1587
     316,   316,   317,   317,   319,   318,   320,   320,   321,   322,
1588
     323,   323
1589
};
1590
1591
  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
1592
static const yytype_int8 yyr2[] =
1593
{
1594
       0,     2,     1,     1,     0,     0,     0,    18,     1,     2,
1595
       2,     1,     2,     2,     2,     1,     0,     1,     2,     5,
1596
       1,     2,     5,     4,     7,     1,     0,     1,     1,     1,
1597
       1,     2,     2,     2,     2,     4,     4,     4,     4,     4,
1598
       4,     5,     5,     5,     5,     5,     5,     4,     1,     0,
1599
       5,     1,     2,     4,     3,     2,     2,     4,     1,     0,
1600
       1,     2,     4,     3,     1,     2,     5,     3,     1,     2,
1601
       1,     1,     5,     4,     1,     2,     1,     1,     1,     1,
1602
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1603
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1604
       1,     3,     4,     5,     4,     4,     4,     4,     2,     0,
1605
       4,     4,     1,     1,     6,     4,     0,     3,     2,     3,
1606
       3,     3,     3,     3,     1,     1,     2,     0,     1,     1,
1607
       1,     8,     7,     7,     7,     1,     1,     1,     1,     1,
1608
       1,     1,     7,     7,     7,     7,     8,     8,     8,     8,
1609
       7,     7,     7,     5,     7,     1,     1,     1,     1,     1,
1610
       1,     1,     1,     1,     7,     7,     7,     7,     7,     8,
1611
       8,     8,     8,     3,     5,     4,     5,     7,     4,     4,
1612
       1,     0,     1,     2,     1,     1,     5,     4,     3,     2,
1613
       3,     3,     1,     3,     3,     3,     0,     4,     0,     4,
1614
       0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
1615
       0,     4,     0,     4,     1,     0,     4,     0,     4,     2,
1616
       0,     4,     0,     4,     3,     3,     3,     3,     3,     3,
1617
       1,     1,     1,     1,     1,     1,     1,     2,     6,     4,
1618
       0,     1,     2,     3,     1,     0,     1,     2,     1,     1,
1619
       1,     1,     1,     3,     3,     5,     3,     5,     3,     3,
1620
       3,     1,     0,     1,     2,     4,     6,     1,     0,     1,
1621
       2,     4,     6,     1,     0,     1,     2,     4,     1,     0,
1622
       1,     2,     4,     1,     0,     1,     2,     4,     3,     4,
1623
       3,     1,     0,     1,     2,     4,     4,     4,     1,     0,
1624
       1,     2,     6,     0,     7,     4,     1,     1,     1,     1,
1625
       2,     2,     3,     1,     2,     0,     4,     1,     1,     1,
1626
       6,     2,     0,     3,     1,     3,     1,     1,     3,     1,
1627
       1,     1,     1,     1,     2,     2,     0,     4,     1,     1,
1628
       1,     3,     1,     2,     4,     1,     2,     1,     1,     2,
1629
       3,     1,     2,     1,     0,     3,     1,     1,     1,     1,
1630
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1631
       3,     3,     3,     2,     4,     1,     1,     1,     2,     2,
1632
       1,     1,     1,     1,     1,     1,     1,     4,     2,     1,
1633
       2,     3,     3,     1,     1,     1,     1,     1,     1,     1,
1634
       1,     1,     1,     3,     0,     6,     4,     0,     1,     1,
1635
       2,     0
1636
};
1637
1638
1639
#define yyerrok         (yyerrstatus = 0)
1640
#define yyclearin       (yychar = YYEMPTY)
1641
25.0M
#define YYEMPTY         (-2)
1642
13.1M
#define YYEOF           0
1643
1644
3.83k
#define YYACCEPT        goto yyacceptlab
1645
1.69k
#define YYABORT         goto yyabortlab
1646
0
#define YYERROR         goto yyerrorlab
1647
1648
1649
#define YYRECOVERING()  (!!yyerrstatus)
1650
1651
#define YYBACKUP(Token, Value)                                    \
1652
  do                                                              \
1653
    if (yychar == YYEMPTY)                                        \
1654
      {                                                           \
1655
        yychar = (Token);                                         \
1656
        yylval = (Value);                                         \
1657
        YYPOPSTACK (yylen);                                       \
1658
        yystate = *yyssp;                                         \
1659
        goto yybackup;                                            \
1660
      }                                                           \
1661
    else                                                          \
1662
      {                                                           \
1663
        yyerror (YY_("syntax error: cannot back up")); \
1664
        YYERROR;                                                  \
1665
      }                                                           \
1666
  while (0)
1667
1668
/* Error token number */
1669
61.6k
#define YYTERROR        1
1670
#define YYERRCODE       256
1671
1672
1673
1674
/* Enable debugging if requested.  */
1675
#if YYDEBUG
1676
1677
# ifndef YYFPRINTF
1678
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1679
#  define YYFPRINTF fprintf
1680
# endif
1681
1682
# define YYDPRINTF(Args)                        \
1683
do {                                            \
1684
  if (yydebug)                                  \
1685
    YYFPRINTF Args;                             \
1686
} while (0)
1687
1688
/* This macro is provided for backward compatibility. */
1689
#ifndef YY_LOCATION_PRINT
1690
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1691
#endif
1692
1693
1694
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
1695
do {                                                                      \
1696
  if (yydebug)                                                            \
1697
    {                                                                     \
1698
      YYFPRINTF (stderr, "%s ", Title);                                   \
1699
      yy_symbol_print (stderr,                                            \
1700
                  Type, Value); \
1701
      YYFPRINTF (stderr, "\n");                                           \
1702
    }                                                                     \
1703
} while (0)
1704
1705
1706
/*-----------------------------------.
1707
| Print this symbol's value on YYO.  |
1708
`-----------------------------------*/
1709
1710
static void
1711
yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
1712
{
1713
  FILE *yyoutput = yyo;
1714
  YYUSE (yyoutput);
1715
  if (!yyvaluep)
1716
    return;
1717
# ifdef YYPRINT
1718
  if (yytype < YYNTOKENS)
1719
    YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
1720
# endif
1721
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1722
  YYUSE (yytype);
1723
  YY_IGNORE_MAYBE_UNINITIALIZED_END
1724
}
1725
1726
1727
/*---------------------------.
1728
| Print this symbol on YYO.  |
1729
`---------------------------*/
1730
1731
static void
1732
yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
1733
{
1734
  YYFPRINTF (yyo, "%s %s (",
1735
             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1736
1737
  yy_symbol_value_print (yyo, yytype, yyvaluep);
1738
  YYFPRINTF (yyo, ")");
1739
}
1740
1741
/*------------------------------------------------------------------.
1742
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1743
| TOP (included).                                                   |
1744
`------------------------------------------------------------------*/
1745
1746
static void
1747
yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
1748
{
1749
  YYFPRINTF (stderr, "Stack now");
1750
  for (; yybottom <= yytop; yybottom++)
1751
    {
1752
      int yybot = *yybottom;
1753
      YYFPRINTF (stderr, " %d", yybot);
1754
    }
1755
  YYFPRINTF (stderr, "\n");
1756
}
1757
1758
# define YY_STACK_PRINT(Bottom, Top)                            \
1759
do {                                                            \
1760
  if (yydebug)                                                  \
1761
    yy_stack_print ((Bottom), (Top));                           \
1762
} while (0)
1763
1764
1765
/*------------------------------------------------.
1766
| Report that the YYRULE is going to be reduced.  |
1767
`------------------------------------------------*/
1768
1769
static void
1770
yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule)
1771
{
1772
  int yylno = yyrline[yyrule];
1773
  int yynrhs = yyr2[yyrule];
1774
  int yyi;
1775
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
1776
             yyrule - 1, yylno);
1777
  /* The symbols being reduced.  */
1778
  for (yyi = 0; yyi < yynrhs; yyi++)
1779
    {
1780
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1781
      yy_symbol_print (stderr,
1782
                       yystos[+yyssp[yyi + 1 - yynrhs]],
1783
                       &yyvsp[(yyi + 1) - (yynrhs)]
1784
                                              );
1785
      YYFPRINTF (stderr, "\n");
1786
    }
1787
}
1788
1789
# define YY_REDUCE_PRINT(Rule)          \
1790
do {                                    \
1791
  if (yydebug)                          \
1792
    yy_reduce_print (yyssp, yyvsp, Rule); \
1793
} while (0)
1794
1795
/* Nonzero means print parse trace.  It is left uninitialized so that
1796
   multiple parsers can coexist.  */
1797
int yydebug;
1798
#else /* !YYDEBUG */
1799
# define YYDPRINTF(Args)
1800
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1801
# define YY_STACK_PRINT(Bottom, Top)
1802
# define YY_REDUCE_PRINT(Rule)
1803
#endif /* !YYDEBUG */
1804
1805
1806
/* YYINITDEPTH -- initial size of the parser's stacks.  */
1807
#ifndef YYINITDEPTH
1808
5.53k
# define YYINITDEPTH 200
1809
#endif
1810
1811
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1812
   if the built-in stack extension method is used).
1813
1814
   Do not make this value too large; the results are undefined if
1815
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1816
   evaluated with infinite-precision integer arithmetic.  */
1817
1818
#ifndef YYMAXDEPTH
1819
425
# define YYMAXDEPTH 10000
1820
#endif
1821
1822
1823
#if YYERROR_VERBOSE
1824
1825
# ifndef yystrlen
1826
#  if defined __GLIBC__ && defined _STRING_H
1827
#   define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
1828
#  else
1829
/* Return the length of YYSTR.  */
1830
static YYPTRDIFF_T
1831
yystrlen (const char *yystr)
1832
{
1833
  YYPTRDIFF_T yylen;
1834
  for (yylen = 0; yystr[yylen]; yylen++)
1835
    continue;
1836
  return yylen;
1837
}
1838
#  endif
1839
# endif
1840
1841
# ifndef yystpcpy
1842
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1843
#   define yystpcpy stpcpy
1844
#  else
1845
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1846
   YYDEST.  */
1847
static char *
1848
yystpcpy (char *yydest, const char *yysrc)
1849
{
1850
  char *yyd = yydest;
1851
  const char *yys = yysrc;
1852
1853
  while ((*yyd++ = *yys++) != '\0')
1854
    continue;
1855
1856
  return yyd - 1;
1857
}
1858
#  endif
1859
# endif
1860
1861
# ifndef yytnamerr
1862
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1863
   quotes and backslashes, so that it's suitable for yyerror.  The
1864
   heuristic is that double-quoting is unnecessary unless the string
1865
   contains an apostrophe, a comma, or backslash (other than
1866
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1867
   null, do not copy; instead, return the length of what the result
1868
   would have been.  */
1869
static YYPTRDIFF_T
1870
yytnamerr (char *yyres, const char *yystr)
1871
{
1872
  if (*yystr == '"')
1873
    {
1874
      YYPTRDIFF_T yyn = 0;
1875
      char const *yyp = yystr;
1876
1877
      for (;;)
1878
        switch (*++yyp)
1879
          {
1880
          case '\'':
1881
          case ',':
1882
            goto do_not_strip_quotes;
1883
1884
          case '\\':
1885
            if (*++yyp != '\\')
1886
              goto do_not_strip_quotes;
1887
            else
1888
              goto append;
1889
1890
          append:
1891
          default:
1892
            if (yyres)
1893
              yyres[yyn] = *yyp;
1894
            yyn++;
1895
            break;
1896
1897
          case '"':
1898
            if (yyres)
1899
              yyres[yyn] = '\0';
1900
            return yyn;
1901
          }
1902
    do_not_strip_quotes: ;
1903
    }
1904
1905
  if (yyres)
1906
    return yystpcpy (yyres, yystr) - yyres;
1907
  else
1908
    return yystrlen (yystr);
1909
}
1910
# endif
1911
1912
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1913
   about the unexpected token YYTOKEN for the state stack whose top is
1914
   YYSSP.
1915
1916
   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
1917
   not large enough to hold the message.  In that case, also set
1918
   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
1919
   required number of bytes is too large to store.  */
1920
static int
1921
yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
1922
                yy_state_t *yyssp, int yytoken)
1923
{
1924
  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1925
  /* Internationalized format string. */
1926
  const char *yyformat = YY_NULLPTR;
1927
  /* Arguments of yyformat: reported tokens (one for the "unexpected",
1928
     one per "expected"). */
1929
  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1930
  /* Actual size of YYARG. */
1931
  int yycount = 0;
1932
  /* Cumulated lengths of YYARG.  */
1933
  YYPTRDIFF_T yysize = 0;
1934
1935
  /* There are many possibilities here to consider:
1936
     - If this state is a consistent state with a default action, then
1937
       the only way this function was invoked is if the default action
1938
       is an error action.  In that case, don't check for expected
1939
       tokens because there are none.
1940
     - The only way there can be no lookahead present (in yychar) is if
1941
       this state is a consistent state with a default action.  Thus,
1942
       detecting the absence of a lookahead is sufficient to determine
1943
       that there is no unexpected or expected token to report.  In that
1944
       case, just report a simple "syntax error".
1945
     - Don't assume there isn't a lookahead just because this state is a
1946
       consistent state with a default action.  There might have been a
1947
       previous inconsistent state, consistent state with a non-default
1948
       action, or user semantic action that manipulated yychar.
1949
     - Of course, the expected token list depends on states to have
1950
       correct lookahead information, and it depends on the parser not
1951
       to perform extra reductions after fetching a lookahead from the
1952
       scanner and before detecting a syntax error.  Thus, state merging
1953
       (from LALR or IELR) and default reductions corrupt the expected
1954
       token list.  However, the list is correct for canonical LR with
1955
       one exception: it will still contain any token that will not be
1956
       accepted due to an error action in a later state.
1957
  */
1958
  if (yytoken != YYEMPTY)
1959
    {
1960
      int yyn = yypact[+*yyssp];
1961
      YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1962
      yysize = yysize0;
1963
      yyarg[yycount++] = yytname[yytoken];
1964
      if (!yypact_value_is_default (yyn))
1965
        {
1966
          /* Start YYX at -YYN if negative to avoid negative indexes in
1967
             YYCHECK.  In other words, skip the first -YYN actions for
1968
             this state because they are default actions.  */
1969
          int yyxbegin = yyn < 0 ? -yyn : 0;
1970
          /* Stay within bounds of both yycheck and yytname.  */
1971
          int yychecklim = YYLAST - yyn + 1;
1972
          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1973
          int yyx;
1974
1975
          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1976
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1977
                && !yytable_value_is_error (yytable[yyx + yyn]))
1978
              {
1979
                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1980
                  {
1981
                    yycount = 1;
1982
                    yysize = yysize0;
1983
                    break;
1984
                  }
1985
                yyarg[yycount++] = yytname[yyx];
1986
                {
1987
                  YYPTRDIFF_T yysize1
1988
                    = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1989
                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
1990
                    yysize = yysize1;
1991
                  else
1992
                    return 2;
1993
                }
1994
              }
1995
        }
1996
    }
1997
1998
  switch (yycount)
1999
    {
2000
# define YYCASE_(N, S)                      \
2001
      case N:                               \
2002
        yyformat = S;                       \
2003
      break
2004
    default: /* Avoid compiler warnings. */
2005
      YYCASE_(0, YY_("syntax error"));
2006
      YYCASE_(1, YY_("syntax error, unexpected %s"));
2007
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2008
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2009
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2010
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2011
# undef YYCASE_
2012
    }
2013
2014
  {
2015
    /* Don't count the "%s"s in the final size, but reserve room for
2016
       the terminator.  */
2017
    YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
2018
    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2019
      yysize = yysize1;
2020
    else
2021
      return 2;
2022
  }
2023
2024
  if (*yymsg_alloc < yysize)
2025
    {
2026
      *yymsg_alloc = 2 * yysize;
2027
      if (! (yysize <= *yymsg_alloc
2028
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2029
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2030
      return 1;
2031
    }
2032
2033
  /* Avoid sprintf, as that infringes on the user's name space.
2034
     Don't have undefined behavior even if the translation
2035
     produced a string with the wrong number of "%s"s.  */
2036
  {
2037
    char *yyp = *yymsg;
2038
    int yyi = 0;
2039
    while ((*yyp = *yyformat) != '\0')
2040
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2041
        {
2042
          yyp += yytnamerr (yyp, yyarg[yyi++]);
2043
          yyformat += 2;
2044
        }
2045
      else
2046
        {
2047
          ++yyp;
2048
          ++yyformat;
2049
        }
2050
  }
2051
  return 0;
2052
}
2053
#endif /* YYERROR_VERBOSE */
2054
2055
/*-----------------------------------------------.
2056
| Release the memory associated to this symbol.  |
2057
`-----------------------------------------------*/
2058
2059
static void
2060
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2061
65.6k
{
2062
65.6k
  YYUSE (yyvaluep);
2063
65.6k
  if (!yymsg)
2064
0
    yymsg = "Deleting";
2065
65.6k
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2066
2067
65.6k
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2068
65.6k
  YYUSE (yytype);
2069
65.6k
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2070
65.6k
}
2071
2072
2073
2074
2075
/* The lookahead symbol.  */
2076
int yychar;
2077
2078
/* The semantic value of the lookahead symbol.  */
2079
YYSTYPE yylval;
2080
/* Number of syntax errors so far.  */
2081
int yynerrs;
2082
2083
2084
/*----------.
2085
| yyparse.  |
2086
`----------*/
2087
2088
int
2089
yyparse (void)
2090
5.53k
{
2091
5.53k
    yy_state_fast_t yystate;
2092
    /* Number of tokens to shift before error messages enabled.  */
2093
5.53k
    int yyerrstatus;
2094
2095
    /* The stacks and their tools:
2096
       'yyss': related to states.
2097
       'yyvs': related to semantic values.
2098
2099
       Refer to the stacks through separate pointers, to allow yyoverflow
2100
       to reallocate them elsewhere.  */
2101
2102
    /* The state stack.  */
2103
5.53k
    yy_state_t yyssa[YYINITDEPTH];
2104
5.53k
    yy_state_t *yyss;
2105
5.53k
    yy_state_t *yyssp;
2106
2107
    /* The semantic value stack.  */
2108
5.53k
    YYSTYPE yyvsa[YYINITDEPTH];
2109
5.53k
    YYSTYPE *yyvs;
2110
5.53k
    YYSTYPE *yyvsp;
2111
2112
5.53k
    YYPTRDIFF_T yystacksize;
2113
2114
5.53k
  int yyn;
2115
5.53k
  int yyresult;
2116
  /* Lookahead token as an internal (translated) token number.  */
2117
5.53k
  int yytoken = 0;
2118
  /* The variables used to return semantic value and location from the
2119
     action routines.  */
2120
5.53k
  YYSTYPE yyval;
2121
2122
#if YYERROR_VERBOSE
2123
  /* Buffer for error messages, and its allocated size.  */
2124
  char yymsgbuf[128];
2125
  char *yymsg = yymsgbuf;
2126
  YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
2127
#endif
2128
2129
18.5M
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
2130
2131
  /* The number of symbols on the RHS of the reduced rule.
2132
     Keep to zero when no symbol should be popped.  */
2133
5.53k
  int yylen = 0;
2134
2135
5.53k
  yyssp = yyss = yyssa;
2136
5.53k
  yyvsp = yyvs = yyvsa;
2137
5.53k
  yystacksize = YYINITDEPTH;
2138
2139
5.53k
  YYDPRINTF ((stderr, "Starting parse\n"));
2140
2141
5.53k
  yystate = 0;
2142
5.53k
  yyerrstatus = 0;
2143
5.53k
  yynerrs = 0;
2144
5.53k
  yychar = YYEMPTY; /* Cause a token to be read.  */
2145
5.53k
  goto yysetstate;
2146
2147
2148
/*------------------------------------------------------------.
2149
| yynewstate -- push a new state, which is found in yystate.  |
2150
`------------------------------------------------------------*/
2151
30.4M
yynewstate:
2152
  /* In all cases, when you get here, the value and location stacks
2153
     have just been pushed.  So pushing a state here evens the stacks.  */
2154
30.4M
  yyssp++;
2155
2156
2157
/*--------------------------------------------------------------------.
2158
| yysetstate -- set current state (the top of the stack) to yystate.  |
2159
`--------------------------------------------------------------------*/
2160
30.4M
yysetstate:
2161
30.4M
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2162
30.4M
  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
2163
30.4M
  YY_IGNORE_USELESS_CAST_BEGIN
2164
30.4M
  *yyssp = YY_CAST (yy_state_t, yystate);
2165
30.4M
  YY_IGNORE_USELESS_CAST_END
2166
2167
30.4M
  if (yyss + yystacksize - 1 <= yyssp)
2168
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
2169
    goto yyexhaustedlab;
2170
#else
2171
211
    {
2172
      /* Get the current used size of the three stacks, in elements.  */
2173
211
      YYPTRDIFF_T yysize = yyssp - yyss + 1;
2174
2175
# if defined yyoverflow
2176
      {
2177
        /* Give user a chance to reallocate the stack.  Use copies of
2178
           these so that the &'s don't force the real ones into
2179
           memory.  */
2180
        yy_state_t *yyss1 = yyss;
2181
        YYSTYPE *yyvs1 = yyvs;
2182
2183
        /* Each stack pointer address is followed by the size of the
2184
           data in use in that stack, in bytes.  This used to be a
2185
           conditional around just the two extra args, but that might
2186
           be undefined if yyoverflow is a macro.  */
2187
        yyoverflow (YY_("memory exhausted"),
2188
                    &yyss1, yysize * YYSIZEOF (*yyssp),
2189
                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
2190
                    &yystacksize);
2191
        yyss = yyss1;
2192
        yyvs = yyvs1;
2193
      }
2194
# else /* defined YYSTACK_RELOCATE */
2195
      /* Extend the stack our own way.  */
2196
211
      if (YYMAXDEPTH <= yystacksize)
2197
0
        goto yyexhaustedlab;
2198
211
      yystacksize *= 2;
2199
211
      if (YYMAXDEPTH < yystacksize)
2200
3
        yystacksize = YYMAXDEPTH;
2201
2202
211
      {
2203
211
        yy_state_t *yyss1 = yyss;
2204
211
        union yyalloc *yyptr =
2205
211
          YY_CAST (union yyalloc *,
2206
211
                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
2207
211
        if (! yyptr)
2208
0
          goto yyexhaustedlab;
2209
211
        YYSTACK_RELOCATE (yyss_alloc, yyss);
2210
211
        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2211
211
# undef YYSTACK_RELOCATE
2212
211
        if (yyss1 != yyssa)
2213
123
          YYSTACK_FREE (yyss1);
2214
211
      }
2215
0
# endif
2216
2217
0
      yyssp = yyss + yysize - 1;
2218
211
      yyvsp = yyvs + yysize - 1;
2219
2220
211
      YY_IGNORE_USELESS_CAST_BEGIN
2221
211
      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
2222
211
                  YY_CAST (long, yystacksize)));
2223
211
      YY_IGNORE_USELESS_CAST_END
2224
2225
211
      if (yyss + yystacksize - 1 <= yyssp)
2226
0
        YYABORT;
2227
211
    }
2228
30.4M
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2229
2230
30.4M
  if (yystate == YYFINAL)
2231
3.83k
    YYACCEPT;
2232
2233
30.4M
  goto yybackup;
2234
2235
2236
/*-----------.
2237
| yybackup.  |
2238
`-----------*/
2239
30.4M
yybackup:
2240
  /* Do appropriate processing given the current state.  Read a
2241
     lookahead token if we need one and don't already have one.  */
2242
2243
  /* First try to decide what to do without reference to lookahead token.  */
2244
30.4M
  yyn = yypact[yystate];
2245
30.4M
  if (yypact_value_is_default (yyn))
2246
17.3M
    goto yydefault;
2247
2248
  /* Not known => get a lookahead token if don't already have one.  */
2249
2250
  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2251
13.0M
  if (yychar == YYEMPTY)
2252
11.9M
    {
2253
11.9M
      YYDPRINTF ((stderr, "Reading a token: "));
2254
11.9M
      yychar = yylex ();
2255
11.9M
    }
2256
2257
13.0M
  if (yychar <= YYEOF)
2258
39.2k
    {
2259
39.2k
      yychar = yytoken = YYEOF;
2260
39.2k
      YYDPRINTF ((stderr, "Now at end of input.\n"));
2261
39.2k
    }
2262
13.0M
  else
2263
13.0M
    {
2264
13.0M
      yytoken = YYTRANSLATE (yychar);
2265
13.0M
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2266
13.0M
    }
2267
2268
  /* If the proper action on seeing token YYTOKEN is to reduce or to
2269
     detect an error, take that action.  */
2270
13.0M
  yyn += yytoken;
2271
13.0M
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2272
1.13M
    goto yydefault;
2273
11.9M
  yyn = yytable[yyn];
2274
11.9M
  if (yyn <= 0)
2275
1.44k
    {
2276
1.44k
      if (yytable_value_is_error (yyn))
2277
0
        goto yyerrlab;
2278
1.44k
      yyn = -yyn;
2279
1.44k
      goto yyreduce;
2280
1.44k
    }
2281
2282
  /* Count tokens shifted since error; after three, turn off error
2283
     status.  */
2284
11.9M
  if (yyerrstatus)
2285
0
    yyerrstatus--;
2286
2287
  /* Shift the lookahead token.  */
2288
11.9M
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2289
11.9M
  yystate = yyn;
2290
11.9M
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2291
11.9M
  *++yyvsp = yylval;
2292
11.9M
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2293
2294
  /* Discard the shifted token.  */
2295
11.9M
  yychar = YYEMPTY;
2296
11.9M
  goto yynewstate;
2297
2298
2299
/*-----------------------------------------------------------.
2300
| yydefault -- do the default action for the current state.  |
2301
`-----------------------------------------------------------*/
2302
18.4M
yydefault:
2303
18.4M
  yyn = yydefact[yystate];
2304
18.4M
  if (yyn == 0)
2305
521
    goto yyerrlab;
2306
18.4M
  goto yyreduce;
2307
2308
2309
/*-----------------------------.
2310
| yyreduce -- do a reduction.  |
2311
`-----------------------------*/
2312
18.4M
yyreduce:
2313
  /* yyn is the number of a rule to reduce with.  */
2314
18.4M
  yylen = yyr2[yyn];
2315
2316
  /* If YYLEN is nonzero, implement the default value of the action:
2317
     '$$ = $1'.
2318
2319
     Otherwise, the following line sets YYVAL to garbage.
2320
     This behavior is undocumented and Bison
2321
     users should not rely upon it.  Assigning to YYVAL
2322
     unconditionally makes the parser a bit smaller, and it avoids a
2323
     GCC warning that YYVAL may be used uninitialized.  */
2324
18.4M
  yyval = yyvsp[1-yylen];
2325
2326
2327
18.4M
  YY_REDUCE_PRINT (yyn);
2328
18.4M
  switch (yyn)
2329
18.4M
    {
2330
5.51k
  case 4:
2331
5.51k
#line 171 "policy_parse.y"
2332
5.51k
                          { if (define_policy(pass, 0) == -1) YYABORT; }
2333
5.51k
#line 2334 "y.tab.c"
2334
5.51k
    break;
2335
2336
5.51k
  case 5:
2337
5.48k
#line 173 "policy_parse.y"
2338
5.48k
                          { if (pass == 1) { if (policydb_index_classes(policydbp)) YYABORT; }
2339
2.49k
                            else if (pass == 2) { if (policydb_index_others(NULL, policydbp, 0)) YYABORT; }}
2340
5.48k
#line 2341 "y.tab.c"
2341
5.48k
    break;
2342
2343
5.48k
  case 6:
2344
4.22k
#line 176 "policy_parse.y"
2345
4.22k
                         { if (pass == 1) { if (policydb_index_bools(policydbp)) YYABORT; }
2346
1.65k
         else if (pass == 2) { if (policydb_index_others(NULL, policydbp, 0)) YYABORT; }}
2347
4.21k
#line 2348 "y.tab.c"
2348
4.21k
    break;
2349
2350
11.7k
  case 10:
2351
11.7k
#line 184 "policy_parse.y"
2352
11.7k
                        {if (define_class()) YYABORT;}
2353
11.7k
#line 2354 "y.tab.c"
2354
11.7k
    break;
2355
2356
11.7k
  case 13:
2357
9.12k
#line 190 "policy_parse.y"
2358
9.12k
                        {if (define_initial_sid()) YYABORT;}
2359
9.12k
#line 2360 "y.tab.c"
2360
9.12k
    break;
2361
2362
9.12k
  case 19:
2363
18
#line 201 "policy_parse.y"
2364
18
                        {if (define_common_perms()) YYABORT;}
2365
18
#line 2366 "y.tab.c"
2366
18
    break;
2367
2368
5.49k
  case 22:
2369
5.49k
#line 207 "policy_parse.y"
2370
5.49k
                        {if (define_av_perms(FALSE)) YYABORT;}
2371
5.48k
#line 2372 "y.tab.c"
2372
5.48k
    break;
2373
2374
5.48k
  case 23:
2375
0
#line 209 "policy_parse.y"
2376
0
                        {if (define_av_perms(TRUE)) YYABORT;}
2377
0
#line 2378 "y.tab.c"
2378
0
    break;
2379
2380
0
  case 24:
2381
0
#line 211 "policy_parse.y"
2382
0
                        {if (define_av_perms(TRUE)) YYABORT;}
2383
0
#line 2384 "y.tab.c"
2384
0
    break;
2385
2386
618
  case 35:
2387
618
#line 226 "policy_parse.y"
2388
618
                        {if (define_default_user(DEFAULT_SOURCE)) YYABORT; }
2389
615
#line 2390 "y.tab.c"
2390
615
    break;
2391
2392
615
  case 36:
2393
189
#line 228 "policy_parse.y"
2394
189
                        {if (define_default_user(DEFAULT_TARGET)) YYABORT; }
2395
189
#line 2396 "y.tab.c"
2396
189
    break;
2397
2398
2.64k
  case 37:
2399
2.64k
#line 231 "policy_parse.y"
2400
2.64k
                        {if (define_default_role(DEFAULT_SOURCE)) YYABORT; }
2401
2.63k
#line 2402 "y.tab.c"
2402
2.63k
    break;
2403
2404
2.63k
  case 38:
2405
79
#line 233 "policy_parse.y"
2406
79
                        {if (define_default_role(DEFAULT_TARGET)) YYABORT; }
2407
79
#line 2408 "y.tab.c"
2408
79
    break;
2409
2410
205
  case 39:
2411
205
#line 236 "policy_parse.y"
2412
205
                        {if (define_default_type(DEFAULT_SOURCE)) YYABORT;; }
2413
0
#line 2414 "y.tab.c"
2414
0
    break;
2415
2416
8
  case 40:
2417
8
#line 238 "policy_parse.y"
2418
8
                        {if (define_default_type(DEFAULT_TARGET)) YYABORT; }
2419
8
#line 2420 "y.tab.c"
2420
8
    break;
2421
2422
8
  case 41:
2423
0
#line 241 "policy_parse.y"
2424
0
                        {if (define_default_range(DEFAULT_SOURCE_LOW)) YYABORT; }
2425
0
#line 2426 "y.tab.c"
2426
0
    break;
2427
2428
0
  case 42:
2429
0
#line 243 "policy_parse.y"
2430
0
                        {if (define_default_range(DEFAULT_SOURCE_HIGH)) YYABORT; }
2431
0
#line 2432 "y.tab.c"
2432
0
    break;
2433
2434
0
  case 43:
2435
0
#line 245 "policy_parse.y"
2436
0
                        {if (define_default_range(DEFAULT_SOURCE_LOW_HIGH)) YYABORT; }
2437
0
#line 2438 "y.tab.c"
2438
0
    break;
2439
2440
0
  case 44:
2441
0
#line 247 "policy_parse.y"
2442
0
                        {if (define_default_range(DEFAULT_TARGET_LOW)) YYABORT; }
2443
0
#line 2444 "y.tab.c"
2444
0
    break;
2445
2446
0
  case 45:
2447
0
#line 249 "policy_parse.y"
2448
0
                        {if (define_default_range(DEFAULT_TARGET_HIGH)) YYABORT; }
2449
0
#line 2450 "y.tab.c"
2450
0
    break;
2451
2452
0
  case 46:
2453
0
#line 251 "policy_parse.y"
2454
0
                        {if (define_default_range(DEFAULT_TARGET_LOW_HIGH)) YYABORT; }
2455
0
#line 2456 "y.tab.c"
2456
0
    break;
2457
2458
219
  case 47:
2459
219
#line 253 "policy_parse.y"
2460
219
                        {if (define_default_range(DEFAULT_GLBLUB)) YYABORT; }
2461
219
#line 2462 "y.tab.c"
2462
219
    break;
2463
2464
219
  case 53:
2465
2
#line 264 "policy_parse.y"
2466
2
                        {if (define_sens()) YYABORT;}
2467
2
#line 2468 "y.tab.c"
2468
2
    break;
2469
2470
3.40k
  case 54:
2471
3.40k
#line 266 "policy_parse.y"
2472
3.40k
                        {if (define_sens()) YYABORT;}
2473
3.40k
#line 2474 "y.tab.c"
2474
3.40k
    break;
2475
2476
3.40k
  case 56:
2477
2
#line 271 "policy_parse.y"
2478
2
                        {if (define_dominance()) YYABORT;}
2479
2
#line 2480 "y.tab.c"
2480
2
    break;
2481
2482
3.40k
  case 57:
2483
3.40k
#line 273 "policy_parse.y"
2484
3.40k
                        {if (define_dominance()) YYABORT;}
2485
3.40k
#line 2486 "y.tab.c"
2486
3.40k
    break;
2487
2488
3.40k
  case 62:
2489
26
#line 282 "policy_parse.y"
2490
26
                        {if (define_category()) YYABORT;}
2491
26
#line 2492 "y.tab.c"
2492
26
    break;
2493
2494
3.40k
  case 63:
2495
3.40k
#line 284 "policy_parse.y"
2496
3.40k
                        {if (define_category()) YYABORT;}
2497
3.40k
#line 2498 "y.tab.c"
2498
3.40k
    break;
2499
2500
3.40k
  case 66:
2501
3.27k
#line 290 "policy_parse.y"
2502
3.27k
                        {if (define_level()) YYABORT;}
2503
3.27k
#line 2504 "y.tab.c"
2504
3.27k
    break;
2505
2506
3.27k
  case 67:
2507
859
#line 292 "policy_parse.y"
2508
859
                        {if (define_level()) YYABORT;}
2509
859
#line 2510 "y.tab.c"
2510
859
    break;
2511
2512
12.7k
  case 72:
2513
12.7k
#line 301 "policy_parse.y"
2514
12.7k
                        { if (define_constraint((constraint_expr_t*)(yyvsp[-1].valptr))) YYABORT; }
2515
12.6k
#line 2516 "y.tab.c"
2516
12.6k
    break;
2517
2518
12.6k
  case 73:
2519
15
#line 304 "policy_parse.y"
2520
15
                        { if (define_validatetrans((constraint_expr_t*)(yyvsp[-1].valptr))) YYABORT; }
2521
15
#line 2522 "y.tab.c"
2522
15
    break;
2523
2524
362
  case 101:
2525
362
#line 338 "policy_parse.y"
2526
362
                        { if (define_attrib()) YYABORT;}
2527
362
#line 2528 "y.tab.c"
2528
362
    break;
2529
2530
362
  case 102:
2531
273
#line 341 "policy_parse.y"
2532
273
                        { if (expand_attrib()) YYABORT;}
2533
273
#line 2534 "y.tab.c"
2534
273
    break;
2535
2536
273
  case 103:
2537
62
#line 344 "policy_parse.y"
2538
62
                        {if (define_type(1)) YYABORT;}
2539
62
#line 2540 "y.tab.c"
2540
62
    break;
2541
2542
3.54k
  case 104:
2543
3.54k
#line 346 "policy_parse.y"
2544
3.54k
                        {if (define_type(0)) YYABORT;}
2545
3.54k
#line 2546 "y.tab.c"
2546
3.54k
    break;
2547
2548
3.54k
  case 105:
2549
301
#line 349 "policy_parse.y"
2550
301
                        {if (define_typealias()) YYABORT;}
2551
301
#line 2552 "y.tab.c"
2552
301
    break;
2553
2554
301
  case 106:
2555
123
#line 352 "policy_parse.y"
2556
123
                        {if (define_typeattribute()) YYABORT;}
2557
123
#line 2558 "y.tab.c"
2558
123
    break;
2559
2560
1.41k
  case 107:
2561
1.41k
#line 355 "policy_parse.y"
2562
1.41k
                        {if (define_typebounds()) YYABORT;}
2563
1.41k
#line 2564 "y.tab.c"
2564
1.41k
    break;
2565
2566
1.41k
  case 110:
2567
36
#line 361 "policy_parse.y"
2568
36
                        { if (define_bool_tunable(0)) YYABORT; }
2569
36
#line 2570 "y.tab.c"
2570
36
    break;
2571
2572
36
  case 111:
2573
0
#line 364 "policy_parse.y"
2574
0
                        { if (define_bool_tunable(1)) YYABORT; }
2575
0
#line 2576 "y.tab.c"
2576
0
    break;
2577
2578
273
  case 112:
2579
273
#line 367 "policy_parse.y"
2580
273
                        { if (insert_id("T",0)) YYABORT; }
2581
273
#line 2582 "y.tab.c"
2582
273
    break;
2583
2584
273
  case 113:
2585
36
#line 369 "policy_parse.y"
2586
36
                        { if (insert_id("F",0)) YYABORT; }
2587
36
#line 2588 "y.tab.c"
2588
36
    break;
2589
2590
11.1k
  case 114:
2591
11.1k
#line 372 "policy_parse.y"
2592
11.1k
                        { if (pass == 2) { if (define_conditional((cond_expr_t*)(yyvsp[-4].ptr), (avrule_t*)(yyvsp[-2].ptr), (avrule_t*)(yyvsp[0].ptr)) < 0) YYABORT;  }}
2593
11.1k
#line 2594 "y.tab.c"
2594
11.1k
    break;
2595
2596
11.1k
  case 115:
2597
514
#line 375 "policy_parse.y"
2598
514
                        { (yyval.ptr) = (yyvsp[-1].ptr); }
2599
514
#line 2600 "y.tab.c"
2600
514
    break;
2601
2602
10.6k
  case 116:
2603
10.6k
#line 377 "policy_parse.y"
2604
10.6k
                        { (yyval.ptr) = NULL; }
2605
10.6k
#line 2606 "y.tab.c"
2606
10.6k
    break;
2607
2608
0
  case 117:
2609
0
#line 380 "policy_parse.y"
2610
0
                        { (yyval.ptr) = (yyvsp[-1].ptr);}
2611
0
#line 2612 "y.tab.c"
2612
0
    break;
2613
2614
134k
  case 118:
2615
134k
#line 382 "policy_parse.y"
2616
134k
                        { (yyval.ptr) = define_cond_expr(COND_NOT, (yyvsp[0].ptr), NULL);
2617
134k
        if ((yyval.ptr) == NULL) YYABORT; }
2618
134k
#line 2619 "y.tab.c"
2619
134k
    break;
2620
2621
134k
  case 119:
2622
3.00k
#line 385 "policy_parse.y"
2623
3.00k
                        { (yyval.ptr) = define_cond_expr(COND_AND, (yyvsp[-2].ptr), (yyvsp[0].ptr));
2624
3.00k
        if ((yyval.ptr) == NULL) YYABORT; }
2625
3.00k
#line 2626 "y.tab.c"
2626
3.00k
    break;
2627
2628
3.00k
  case 120:
2629
940
#line 388 "policy_parse.y"
2630
940
                        { (yyval.ptr) = define_cond_expr(COND_OR, (yyvsp[-2].ptr), (yyvsp[0].ptr));
2631
940
        if ((yyval.ptr) == NULL) YYABORT; }
2632
938
#line 2633 "y.tab.c"
2633
938
    break;
2634
2635
192k
  case 121:
2636
192k
#line 391 "policy_parse.y"
2637
192k
                        { (yyval.ptr) = define_cond_expr(COND_XOR, (yyvsp[-2].ptr), (yyvsp[0].ptr));
2638
192k
        if ((yyval.ptr) == NULL) YYABORT; }
2639
192k
#line 2640 "y.tab.c"
2640
192k
    break;
2641
2642
192k
  case 122:
2643
6.93k
#line 394 "policy_parse.y"
2644
6.93k
                        { (yyval.ptr) = define_cond_expr(COND_EQ, (yyvsp[-2].ptr), (yyvsp[0].ptr));
2645
6.93k
        if ((yyval.ptr) == NULL) YYABORT; }
2646
6.93k
#line 2647 "y.tab.c"
2647
6.93k
    break;
2648
2649
13.8k
  case 123:
2650
13.8k
#line 397 "policy_parse.y"
2651
13.8k
                        { (yyval.ptr) = define_cond_expr(COND_NEQ, (yyvsp[-2].ptr), (yyvsp[0].ptr));
2652
13.8k
        if ((yyval.ptr) == NULL) YYABORT; }
2653
13.8k
#line 2654 "y.tab.c"
2654
13.8k
    break;
2655
2656
228k
  case 124:
2657
228k
#line 400 "policy_parse.y"
2658
228k
                        { (yyval.ptr) = (yyvsp[0].ptr); }
2659
228k
#line 2660 "y.tab.c"
2660
228k
    break;
2661
2662
228k
  case 125:
2663
228k
#line 403 "policy_parse.y"
2664
228k
                        { (yyval.ptr) = define_cond_expr(COND_BOOL, NULL, NULL);
2665
228k
        if ((yyval.ptr) == COND_ERR) YYABORT; }
2666
228k
#line 2667 "y.tab.c"
2667
228k
    break;
2668
2669
228k
  case 126:
2670
26.2k
#line 407 "policy_parse.y"
2671
26.2k
                        { (yyval.ptr) = define_cond_pol_list((avrule_t *)(yyvsp[-1].ptr), (avrule_t *)(yyvsp[0].ptr)); }
2672
26.2k
#line 2673 "y.tab.c"
2673
26.2k
    break;
2674
2675
11.7k
  case 127:
2676
11.7k
#line 409 "policy_parse.y"
2677
11.7k
                        { (yyval.ptr) = NULL; }
2678
11.7k
#line 2679 "y.tab.c"
2679
11.7k
    break;
2680
2681
6.99k
  case 128:
2682
6.99k
#line 412 "policy_parse.y"
2683
6.99k
                        { (yyval.ptr) = (yyvsp[0].ptr); }
2684
6.99k
#line 2685 "y.tab.c"
2685
6.99k
    break;
2686
2687
19.1k
  case 129:
2688
19.1k
#line 414 "policy_parse.y"
2689
19.1k
                        { (yyval.ptr) = (yyvsp[0].ptr); }
2690
19.1k
#line 2691 "y.tab.c"
2691
19.1k
    break;
2692
2693
82
  case 130:
2694
82
#line 416 "policy_parse.y"
2695
82
                        { (yyval.ptr) = NULL; }
2696
82
#line 2697 "y.tab.c"
2697
82
    break;
2698
2699
0
  case 131:
2700
0
#line 419 "policy_parse.y"
2701
0
                        { (yyval.ptr) = define_cond_filename_trans() ;
2702
0
                          if ((yyval.ptr) == COND_ERR) YYABORT;}
2703
0
#line 2704 "y.tab.c"
2704
0
    break;
2705
2706
6.33k
  case 132:
2707
6.33k
#line 422 "policy_parse.y"
2708
6.33k
                        { (yyval.ptr) = define_cond_compute_type(AVRULE_TRANSITION) ;
2709
6.33k
                          if ((yyval.ptr) == COND_ERR) YYABORT;}
2710
6.32k
#line 2711 "y.tab.c"
2711
6.32k
    break;
2712
2713
6.32k
  case 133:
2714
340
#line 425 "policy_parse.y"
2715
340
                        { (yyval.ptr) = define_cond_compute_type(AVRULE_MEMBER) ;
2716
340
                          if ((yyval.ptr) ==  COND_ERR) YYABORT;}
2717
340
#line 2718 "y.tab.c"
2718
340
    break;
2719
2720
340
  case 134:
2721
338
#line 428 "policy_parse.y"
2722
338
                        { (yyval.ptr) = define_cond_compute_type(AVRULE_CHANGE) ;
2723
338
                          if ((yyval.ptr) == COND_ERR) YYABORT;}
2724
327
#line 2725 "y.tab.c"
2725
327
    break;
2726
2727
8.69k
  case 135:
2728
8.69k
#line 432 "policy_parse.y"
2729
8.69k
                          { (yyval.ptr) = (yyvsp[0].ptr); }
2730
8.69k
#line 2731 "y.tab.c"
2731
8.69k
    break;
2732
2733
2.32k
  case 136:
2734
2.32k
#line 434 "policy_parse.y"
2735
2.32k
                          { (yyval.ptr) = (yyvsp[0].ptr); }
2736
2.32k
#line 2737 "y.tab.c"
2737
2.32k
    break;
2738
2739
147
  case 137:
2740
147
#line 436 "policy_parse.y"
2741
147
                          { (yyval.ptr) = (yyvsp[0].ptr); }
2742
147
#line 2743 "y.tab.c"
2743
147
    break;
2744
2745
246
  case 138:
2746
246
#line 438 "policy_parse.y"
2747
246
                          { (yyval.ptr) = (yyvsp[0].ptr); }
2748
246
#line 2749 "y.tab.c"
2749
246
    break;
2750
2751
7.22k
  case 139:
2752
7.22k
#line 440 "policy_parse.y"
2753
7.22k
                          { (yyval.ptr) = (yyvsp[0].ptr); }
2754
7.22k
#line 2755 "y.tab.c"
2755
7.22k
    break;
2756
2757
368
  case 140:
2758
368
#line 442 "policy_parse.y"
2759
368
                          { (yyval.ptr) = (yyvsp[0].ptr); }
2760
368
#line 2761 "y.tab.c"
2761
368
    break;
2762
2763
160
  case 141:
2764
160
#line 444 "policy_parse.y"
2765
160
                          { (yyval.ptr) = (yyvsp[0].ptr); }
2766
160
#line 2767 "y.tab.c"
2767
160
    break;
2768
2769
8.70k
  case 142:
2770
8.70k
#line 447 "policy_parse.y"
2771
8.70k
                        { (yyval.ptr) = define_cond_te_avtab(AVRULE_ALLOWED) ;
2772
8.70k
                          if ((yyval.ptr) == COND_ERR) YYABORT; }
2773
8.69k
#line 2774 "y.tab.c"
2774
8.69k
    break;
2775
2776
8.69k
  case 143:
2777
2.32k
#line 451 "policy_parse.y"
2778
2.32k
                        { (yyval.ptr) = define_cond_te_avtab(AVRULE_AUDITALLOW) ;
2779
2.32k
                          if ((yyval.ptr) == COND_ERR) YYABORT; }
2780
2.32k
#line 2781 "y.tab.c"
2781
2.32k
    break;
2782
2783
2.32k
  case 144:
2784
147
#line 455 "policy_parse.y"
2785
147
                        { (yyval.ptr) = define_cond_te_avtab(AVRULE_AUDITDENY) ;
2786
147
                          if ((yyval.ptr) == COND_ERR) YYABORT; }
2787
147
#line 2788 "y.tab.c"
2788
147
    break;
2789
2790
246
  case 145:
2791
246
#line 459 "policy_parse.y"
2792
246
                        { (yyval.ptr) = define_cond_te_avtab(AVRULE_DONTAUDIT);
2793
246
                          if ((yyval.ptr) == COND_ERR) YYABORT; }
2794
246
#line 2795 "y.tab.c"
2795
246
    break;
2796
2797
7.24k
  case 146:
2798
7.24k
#line 463 "policy_parse.y"
2799
7.24k
                                { (yyval.ptr) = define_cond_te_avtab_extended_perms(AVRULE_XPERMS_ALLOWED) ;
2800
7.24k
          if ((yyval.ptr) == COND_ERR) YYABORT; }
2801
7.22k
#line 2802 "y.tab.c"
2802
7.22k
    break;
2803
2804
7.22k
  case 147:
2805
368
#line 467 "policy_parse.y"
2806
368
                                { (yyval.ptr) = define_cond_te_avtab_extended_perms(AVRULE_XPERMS_AUDITALLOW) ;
2807
368
          if ((yyval.ptr) == COND_ERR) YYABORT; }
2808
368
#line 2809 "y.tab.c"
2809
368
    break;
2810
2811
368
  case 148:
2812
160
#line 471 "policy_parse.y"
2813
160
                                { (yyval.ptr) = define_cond_te_avtab_extended_perms(AVRULE_XPERMS_DONTAUDIT) ;
2814
160
          if ((yyval.ptr) == COND_ERR) YYABORT; }
2815
160
#line 2816 "y.tab.c"
2816
160
    break;
2817
2818
7.62k
  case 149:
2819
7.62k
#line 475 "policy_parse.y"
2820
7.62k
                        {if (define_filename_trans()) YYABORT; }
2821
7.57k
#line 2822 "y.tab.c"
2822
7.57k
    break;
2823
2824
7.57k
  case 150:
2825
5.89k
#line 477 "policy_parse.y"
2826
5.89k
                        {if (define_compute_type(AVRULE_TRANSITION)) YYABORT;}
2827
5.88k
#line 2828 "y.tab.c"
2828
5.88k
    break;
2829
2830
5.88k
  case 151:
2831
77
#line 479 "policy_parse.y"
2832
77
                        {if (define_compute_type(AVRULE_MEMBER)) YYABORT;}
2833
77
#line 2834 "y.tab.c"
2834
77
    break;
2835
2836
886
  case 152:
2837
886
#line 481 "policy_parse.y"
2838
886
                        {if (define_compute_type(AVRULE_CHANGE)) YYABORT;}
2839
886
#line 2840 "y.tab.c"
2840
886
    break;
2841
2842
886
  case 153:
2843
436
#line 484 "policy_parse.y"
2844
436
                        { if (define_range_trans(0)) YYABORT; }
2845
431
#line 2846 "y.tab.c"
2846
431
    break;
2847
2848
1.01k
  case 154:
2849
1.01k
#line 486 "policy_parse.y"
2850
1.01k
                        { if (define_range_trans(1)) YYABORT; }
2851
1.01k
#line 2852 "y.tab.c"
2852
1.01k
    break;
2853
2854
5.96k
  case 164:
2855
5.96k
#line 499 "policy_parse.y"
2856
5.96k
                        {if (define_te_avtab(AVRULE_ALLOWED)) YYABORT; }
2857
5.95k
#line 2858 "y.tab.c"
2858
5.95k
    break;
2859
2860
5.95k
  case 165:
2861
123
#line 502 "policy_parse.y"
2862
123
                        {if (define_te_avtab(AVRULE_AUDITALLOW)) YYABORT; }
2863
123
#line 2864 "y.tab.c"
2864
123
    break;
2865
2866
123
  case 166:
2867
16
#line 505 "policy_parse.y"
2868
16
                        {if (define_te_avtab(AVRULE_AUDITDENY)) YYABORT; }
2869
16
#line 2870 "y.tab.c"
2870
16
    break;
2871
2872
5.90k
  case 167:
2873
5.90k
#line 508 "policy_parse.y"
2874
5.90k
                        {if (define_te_avtab(AVRULE_DONTAUDIT)) YYABORT; }
2875
5.89k
#line 2876 "y.tab.c"
2876
5.89k
    break;
2877
2878
5.89k
  case 168:
2879
1.34k
#line 511 "policy_parse.y"
2880
1.34k
                        {if (define_te_avtab(AVRULE_NEVERALLOW)) YYABORT; }
2881
1.34k
#line 2882 "y.tab.c"
2882
1.34k
    break;
2883
2884
11.3k
  case 169:
2885
11.3k
#line 514 "policy_parse.y"
2886
11.3k
                        {if (define_te_avtab_extended_perms(AVRULE_XPERMS_ALLOWED)) YYABORT; }
2887
11.3k
#line 2888 "y.tab.c"
2888
11.3k
    break;
2889
2890
11.3k
  case 170:
2891
82
#line 517 "policy_parse.y"
2892
82
                        {if (define_te_avtab_extended_perms(AVRULE_XPERMS_AUDITALLOW)) YYABORT; }
2893
81
#line 2894 "y.tab.c"
2894
81
    break;
2895
2896
838
  case 171:
2897
838
#line 520 "policy_parse.y"
2898
838
                        {if (define_te_avtab_extended_perms(AVRULE_XPERMS_DONTAUDIT)) YYABORT; }
2899
829
#line 2900 "y.tab.c"
2900
829
    break;
2901
2902
829
  case 172:
2903
682
#line 523 "policy_parse.y"
2904
682
                        {if (define_te_avtab_extended_perms(AVRULE_XPERMS_NEVERALLOW)) YYABORT; }
2905
677
#line 2906 "y.tab.c"
2906
677
    break;
2907
2908
1.94k
  case 173:
2909
1.94k
#line 526 "policy_parse.y"
2910
1.94k
                        {if (define_attrib_role()) YYABORT; }
2911
1.94k
#line 2912 "y.tab.c"
2912
1.94k
    break;
2913
2914
10.1k
  case 174:
2915
10.1k
#line 529 "policy_parse.y"
2916
10.1k
                        {if (define_role_types()) YYABORT;}
2917
10.1k
#line 2918 "y.tab.c"
2918
10.1k
    break;
2919
2920
175k
  case 175:
2921
175k
#line 532 "policy_parse.y"
2922
175k
                        {if (define_role_attr()) YYABORT;}
2923
175k
#line 2924 "y.tab.c"
2924
175k
    break;
2925
2926
175k
  case 176:
2927
1.30k
#line 535 "policy_parse.y"
2928
1.30k
                        {if (define_role_trans(0)) YYABORT; }
2929
1.29k
#line 2930 "y.tab.c"
2930
1.29k
    break;
2931
2932
5.77k
  case 177:
2933
5.77k
#line 537 "policy_parse.y"
2934
5.77k
                        {if (define_role_trans(1)) YYABORT;}
2935
5.73k
#line 2936 "y.tab.c"
2936
5.73k
    break;
2937
2938
14.8k
  case 178:
2939
14.8k
#line 540 "policy_parse.y"
2940
14.8k
                        {if (define_role_allow()) YYABORT; }
2941
14.8k
#line 2942 "y.tab.c"
2942
14.8k
    break;
2943
2944
14.8k
  case 179:
2945
679
#line 543 "policy_parse.y"
2946
679
                        {if (define_roleattribute()) YYABORT;}
2947
678
#line 2948 "y.tab.c"
2948
678
    break;
2949
2950
678
  case 186:
2951
629
#line 555 "policy_parse.y"
2952
629
                        { if (define_constraint((constraint_expr_t*)(yyvsp[-1].valptr))) YYABORT; }
2953
601
#line 2954 "y.tab.c"
2954
601
    break;
2955
2956
57.3k
  case 187:
2957
57.3k
#line 558 "policy_parse.y"
2958
57.3k
                        { if (define_validatetrans((constraint_expr_t*)(yyvsp[-1].valptr))) YYABORT; }
2959
57.3k
#line 2960 "y.tab.c"
2960
57.3k
    break;
2961
2962
57.3k
  case 188:
2963
217
#line 561 "policy_parse.y"
2964
217
                        { (yyval.valptr) = (yyvsp[-1].valptr); }
2965
217
#line 2966 "y.tab.c"
2966
217
    break;
2967
2968
2.96M
  case 189:
2969
2.96M
#line 563 "policy_parse.y"
2970
2.96M
                        { (yyval.valptr) = define_cexpr(CEXPR_NOT, (yyvsp[0].valptr), 0);
2971
2.96M
        if ((yyval.valptr) == 0) YYABORT; }
2972
2.96M
#line 2973 "y.tab.c"
2973
2.96M
    break;
2974
2975
2.96M
  case 190:
2976
66.1k
#line 566 "policy_parse.y"
2977
66.1k
                        { (yyval.valptr) = define_cexpr(CEXPR_AND, (yyvsp[-2].valptr), (yyvsp[0].valptr));
2978
66.1k
        if ((yyval.valptr) == 0) YYABORT; }
2979
66.1k
#line 2980 "y.tab.c"
2980
66.1k
    break;
2981
2982
66.1k
  case 191:
2983
42.8k
#line 569 "policy_parse.y"
2984
42.8k
                        { (yyval.valptr) = define_cexpr(CEXPR_OR, (yyvsp[-2].valptr), (yyvsp[0].valptr));
2985
42.8k
        if ((yyval.valptr) == 0) YYABORT; }
2986
42.8k
#line 2987 "y.tab.c"
2987
42.8k
    break;
2988
2989
179k
  case 192:
2990
179k
#line 572 "policy_parse.y"
2991
179k
                        { (yyval.valptr) = (yyvsp[0].valptr); }
2992
179k
#line 2993 "y.tab.c"
2993
179k
    break;
2994
2995
0
  case 193:
2996
0
#line 575 "policy_parse.y"
2997
0
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_USER, (yyvsp[-1].valptr));
2998
0
        if ((yyval.valptr) == 0) YYABORT; }
2999
0
#line 3000 "y.tab.c"
3000
0
    break;
3001
3002
10.1k
  case 194:
3003
10.1k
#line 578 "policy_parse.y"
3004
10.1k
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_ROLE, (yyvsp[-1].valptr));
3005
10.1k
        if ((yyval.valptr) == 0) YYABORT; }
3006
10.1k
#line 3007 "y.tab.c"
3007
10.1k
    break;
3008
3009
42.9k
  case 195:
3010
42.9k
#line 581 "policy_parse.y"
3011
42.9k
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_TYPE, (yyvsp[-1].valptr));
3012
42.9k
        if ((yyval.valptr) == 0) YYABORT; }
3013
42.9k
#line 3014 "y.tab.c"
3014
42.9k
    break;
3015
3016
42.9k
  case 196:
3017
362
#line 583 "policy_parse.y"
3018
362
                                { if (insert_separator(1)) YYABORT; }
3019
362
#line 3020 "y.tab.c"
3020
362
    break;
3021
3022
362
  case 197:
3023
362
#line 584 "policy_parse.y"
3024
362
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, CEXPR_USER, (yyvsp[-2].valptr));
3025
362
        if ((yyval.valptr) == 0) YYABORT; }
3026
360
#line 3027 "y.tab.c"
3027
360
    break;
3028
3029
1.03k
  case 198:
3030
1.03k
#line 586 "policy_parse.y"
3031
1.03k
                                { if (insert_separator(1)) YYABORT; }
3032
1.03k
#line 3033 "y.tab.c"
3033
1.03k
    break;
3034
3035
1.03k
  case 199:
3036
1.03k
#line 587 "policy_parse.y"
3037
1.03k
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, (CEXPR_USER | CEXPR_TARGET), (yyvsp[-2].valptr));
3038
1.03k
        if ((yyval.valptr) == 0) YYABORT; }
3039
1.03k
#line 3040 "y.tab.c"
3040
1.03k
    break;
3041
3042
1.03k
  case 200:
3043
859
#line 589 "policy_parse.y"
3044
859
                                { if (insert_separator(1)) YYABORT; }
3045
859
#line 3046 "y.tab.c"
3046
859
    break;
3047
3048
859
  case 201:
3049
859
#line 590 "policy_parse.y"
3050
859
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, (CEXPR_USER | CEXPR_XTARGET), (yyvsp[-2].valptr));
3051
859
        if ((yyval.valptr) == 0) YYABORT; }
3052
857
#line 3053 "y.tab.c"
3053
857
    break;
3054
3055
5.75k
  case 202:
3056
5.75k
#line 592 "policy_parse.y"
3057
5.75k
                                { if (insert_separator(1)) YYABORT; }
3058
5.75k
#line 3059 "y.tab.c"
3059
5.75k
    break;
3060
3061
5.75k
  case 203:
3062
5.75k
#line 593 "policy_parse.y"
3063
5.75k
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, CEXPR_ROLE, (yyvsp[-2].valptr));
3064
5.75k
        if ((yyval.valptr) == 0) YYABORT; }
3065
5.74k
#line 3066 "y.tab.c"
3066
5.74k
    break;
3067
3068
24.1k
  case 204:
3069
24.1k
#line 595 "policy_parse.y"
3070
24.1k
                                { if (insert_separator(1)) YYABORT; }
3071
24.1k
#line 3072 "y.tab.c"
3072
24.1k
    break;
3073
3074
24.1k
  case 205:
3075
24.1k
#line 596 "policy_parse.y"
3076
24.1k
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, (CEXPR_ROLE | CEXPR_TARGET), (yyvsp[-2].valptr));
3077
24.1k
        if ((yyval.valptr) == 0) YYABORT; }
3078
24.1k
#line 3079 "y.tab.c"
3079
24.1k
    break;
3080
3081
24.1k
  case 206:
3082
17.8k
#line 598 "policy_parse.y"
3083
17.8k
                                { if (insert_separator(1)) YYABORT; }
3084
17.8k
#line 3085 "y.tab.c"
3085
17.8k
    break;
3086
3087
17.8k
  case 207:
3088
17.8k
#line 599 "policy_parse.y"
3089
17.8k
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, (CEXPR_ROLE | CEXPR_XTARGET), (yyvsp[-2].valptr));
3090
17.8k
        if ((yyval.valptr) == 0) YYABORT; }
3091
17.8k
#line 3092 "y.tab.c"
3092
17.8k
    break;
3093
3094
17.8k
  case 208:
3095
3.08k
#line 601 "policy_parse.y"
3096
3.08k
                                { if (insert_separator(1)) YYABORT; }
3097
3.08k
#line 3098 "y.tab.c"
3098
3.08k
    break;
3099
3100
3.08k
  case 209:
3101
3.08k
#line 602 "policy_parse.y"
3102
3.08k
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, CEXPR_TYPE, (yyvsp[-2].valptr));
3103
3.08k
        if ((yyval.valptr) == 0) YYABORT; }
3104
3.07k
#line 3105 "y.tab.c"
3105
3.07k
    break;
3106
3107
3.07k
  case 210:
3108
2.48k
#line 604 "policy_parse.y"
3109
2.48k
                                { if (insert_separator(1)) YYABORT; }
3110
2.48k
#line 3111 "y.tab.c"
3111
2.48k
    break;
3112
3113
2.48k
  case 211:
3114
2.48k
#line 605 "policy_parse.y"
3115
2.48k
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, (CEXPR_TYPE | CEXPR_TARGET), (yyvsp[-2].valptr));
3116
2.48k
        if ((yyval.valptr) == 0) YYABORT; }
3117
2.48k
#line 3118 "y.tab.c"
3118
2.48k
    break;
3119
3120
2.48k
  case 212:
3121
379
#line 607 "policy_parse.y"
3122
379
                                { if (insert_separator(1)) YYABORT; }
3123
379
#line 3124 "y.tab.c"
3124
379
    break;
3125
3126
379
  case 213:
3127
379
#line 608 "policy_parse.y"
3128
379
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, (CEXPR_TYPE | CEXPR_XTARGET), (yyvsp[-2].valptr));
3129
379
        if ((yyval.valptr) == 0) YYABORT; }
3130
379
#line 3131 "y.tab.c"
3131
379
    break;
3132
3133
2.84k
  case 214:
3134
2.84k
#line 611 "policy_parse.y"
3135
2.84k
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_USER, CEXPR_EQ);
3136
2.84k
        if ((yyval.valptr) == 0) YYABORT; }
3137
2.84k
#line 3138 "y.tab.c"
3138
2.84k
    break;
3139
3140
2.84k
  case 215:
3141
0
#line 613 "policy_parse.y"
3142
0
                                      { if (insert_separator(1)) YYABORT; }
3143
0
#line 3144 "y.tab.c"
3144
0
    break;
3145
3146
0
  case 216:
3147
0
#line 614 "policy_parse.y"
3148
0
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, CEXPR_ROLE, CEXPR_EQ);
3149
0
        if ((yyval.valptr) == 0) YYABORT; }
3150
0
#line 3151 "y.tab.c"
3151
0
    break;
3152
3153
190
  case 217:
3154
190
#line 616 "policy_parse.y"
3155
190
                                      { if (insert_separator(1)) YYABORT; }
3156
190
#line 3157 "y.tab.c"
3157
190
    break;
3158
3159
190
  case 218:
3160
190
#line 617 "policy_parse.y"
3161
190
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, (CEXPR_ROLE | CEXPR_TARGET), CEXPR_EQ);
3162
190
        if ((yyval.valptr) == 0) YYABORT; }
3163
190
#line 3164 "y.tab.c"
3164
190
    break;
3165
3166
190
  case 219:
3167
0
#line 620 "policy_parse.y"
3168
0
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_ROLE, (yyvsp[0].valptr));
3169
0
        if ((yyval.valptr) == 0) YYABORT; }
3170
0
#line 3171 "y.tab.c"
3171
0
    break;
3172
3173
44
  case 220:
3174
44
#line 622 "policy_parse.y"
3175
44
                                      { if (insert_separator(1)) YYABORT; }
3176
44
#line 3177 "y.tab.c"
3177
44
    break;
3178
3179
44
  case 221:
3180
44
#line 623 "policy_parse.y"
3181
44
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, CEXPR_TYPE, CEXPR_EQ);
3182
44
        if ((yyval.valptr) == 0) YYABORT; }
3183
44
#line 3184 "y.tab.c"
3184
44
    break;
3185
3186
44
  case 222:
3187
0
#line 625 "policy_parse.y"
3188
0
                                      { if (insert_separator(1)) YYABORT; }
3189
0
#line 3190 "y.tab.c"
3190
0
    break;
3191
3192
0
  case 223:
3193
0
#line 626 "policy_parse.y"
3194
0
                        { (yyval.valptr) = define_cexpr(CEXPR_NAMES, (CEXPR_TYPE | CEXPR_TARGET), CEXPR_EQ);
3195
0
        if ((yyval.valptr) == 0) YYABORT; }
3196
0
#line 3197 "y.tab.c"
3197
0
    break;
3198
3199
6.69k
  case 224:
3200
6.69k
#line 629 "policy_parse.y"
3201
6.69k
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_L1L2, (yyvsp[-1].valptr));
3202
6.69k
        if ((yyval.valptr) == 0) YYABORT; }
3203
6.69k
#line 3204 "y.tab.c"
3204
6.69k
    break;
3205
3206
14.1k
  case 225:
3207
14.1k
#line 632 "policy_parse.y"
3208
14.1k
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_L1H2, (yyvsp[-1].valptr));
3209
14.1k
        if ((yyval.valptr) == 0) YYABORT; }
3210
14.1k
#line 3211 "y.tab.c"
3211
14.1k
    break;
3212
3213
22.1k
  case 226:
3214
22.1k
#line 635 "policy_parse.y"
3215
22.1k
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_H1L2, (yyvsp[-1].valptr));
3216
22.1k
        if ((yyval.valptr) == 0) YYABORT; }
3217
22.1k
#line 3218 "y.tab.c"
3218
22.1k
    break;
3219
3220
22.1k
  case 227:
3221
2.83k
#line 638 "policy_parse.y"
3222
2.83k
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_H1H2, (yyvsp[-1].valptr));
3223
2.83k
        if ((yyval.valptr) == 0) YYABORT; }
3224
2.83k
#line 3225 "y.tab.c"
3225
2.83k
    break;
3226
3227
10.9k
  case 228:
3228
10.9k
#line 641 "policy_parse.y"
3229
10.9k
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_L1H1, (yyvsp[-1].valptr));
3230
10.9k
        if ((yyval.valptr) == 0) YYABORT; }
3231
10.9k
#line 3232 "y.tab.c"
3232
10.9k
    break;
3233
3234
10.9k
  case 229:
3235
10.9k
#line 644 "policy_parse.y"
3236
10.9k
                        { (yyval.valptr) = define_cexpr(CEXPR_ATTR, CEXPR_L2H2, (yyvsp[-1].valptr));
3237
10.9k
        if ((yyval.valptr) == 0) YYABORT; }
3238
10.9k
#line 3239 "y.tab.c"
3239
10.9k
    break;
3240
3241
168k
  case 230:
3242
168k
#line 648 "policy_parse.y"
3243
168k
                        { (yyval.valptr) = CEXPR_EQ; }
3244
168k
#line 3245 "y.tab.c"
3245
168k
    break;
3246
3247
0
  case 231:
3248
0
#line 650 "policy_parse.y"
3249
0
                        { (yyval.valptr) = CEXPR_NEQ; }
3250
0
#line 3251 "y.tab.c"
3251
0
    break;
3252
3253
69.1k
  case 232:
3254
69.1k
#line 653 "policy_parse.y"
3255
69.1k
                        { (yyval.valptr) = (yyvsp[0].valptr); }
3256
69.1k
#line 3257 "y.tab.c"
3257
69.1k
    break;
3258
3259
3.31k
  case 233:
3260
3.31k
#line 655 "policy_parse.y"
3261
3.31k
                        { (yyval.valptr) = CEXPR_DOM; }
3262
3.31k
#line 3263 "y.tab.c"
3263
3.31k
    break;
3264
3265
892
  case 234:
3266
892
#line 657 "policy_parse.y"
3267
892
                        { (yyval.valptr) = CEXPR_DOMBY; }
3268
892
#line 3269 "y.tab.c"
3269
892
    break;
3270
3271
4.47k
  case 235:
3272
4.47k
#line 659 "policy_parse.y"
3273
4.47k
                        { (yyval.valptr) = CEXPR_INCOMP; }
3274
4.47k
#line 3275 "y.tab.c"
3275
4.47k
    break;
3276
3277
41.6k
  case 238:
3278
41.6k
#line 665 "policy_parse.y"
3279
41.6k
                        {if (define_user()) YYABORT;}
3280
41.1k
#line 3281 "y.tab.c"
3281
41.1k
    break;
3282
3283
41.1k
  case 243:
3284
4.61k
#line 674 "policy_parse.y"
3285
4.61k
                        {if (define_initial_sid_context()) YYABORT;}
3286
4.50k
#line 3287 "y.tab.c"
3287
4.50k
    break;
3288
3289
4.50k
  case 253:
3290
49
#line 688 "policy_parse.y"
3291
49
                        {if (define_pirq_context((yyvsp[-1].val))) YYABORT;}
3292
49
#line 3293 "y.tab.c"
3293
49
    break;
3294
3295
349
  case 254:
3296
349
#line 691 "policy_parse.y"
3297
349
                        {if (define_iomem_context((yyvsp[-1].val64),(yyvsp[-1].val64))) YYABORT;}
3298
349
#line 3299 "y.tab.c"
3299
349
    break;
3300
3301
349
  case 255:
3302
265
#line 693 "policy_parse.y"
3303
265
                        {if (define_iomem_context((yyvsp[-3].val64),(yyvsp[-1].val64))) YYABORT;}
3304
265
#line 3305 "y.tab.c"
3305
265
    break;
3306
3307
265
  case 256:
3308
50
#line 696 "policy_parse.y"
3309
50
                        {if (define_ioport_context((yyvsp[-1].val),(yyvsp[-1].val))) YYABORT;}
3310
50
#line 3311 "y.tab.c"
3311
50
    break;
3312
3313
50
  case 257:
3314
31
#line 698 "policy_parse.y"
3315
31
                        {if (define_ioport_context((yyvsp[-3].val),(yyvsp[-1].val))) YYABORT;}
3316
31
#line 3317 "y.tab.c"
3317
31
    break;
3318
3319
46
  case 258:
3320
46
#line 701 "policy_parse.y"
3321
46
                        {if (define_pcidevice_context((yyvsp[-1].val))) YYABORT;}
3322
46
#line 3323 "y.tab.c"
3323
46
    break;
3324
3325
49
  case 259:
3326
49
#line 704 "policy_parse.y"
3327
49
                        {if (define_devicetree_context()) YYABORT;}
3328
49
#line 3329 "y.tab.c"
3329
49
    break;
3330
3331
49
  case 265:
3332
26
#line 715 "policy_parse.y"
3333
26
                        {if (define_port_context((yyvsp[-1].val),(yyvsp[-1].val))) YYABORT;}
3334
26
#line 3335 "y.tab.c"
3335
26
    break;
3336
3337
91
  case 266:
3338
91
#line 717 "policy_parse.y"
3339
91
                        {if (define_port_context((yyvsp[-3].val),(yyvsp[-1].val))) YYABORT;}
3340
70
#line 3341 "y.tab.c"
3341
70
    break;
3342
3343
779
  case 271:
3344
779
#line 726 "policy_parse.y"
3345
779
                        {if (define_ibpkey_context((yyvsp[-1].val),(yyvsp[-1].val))) YYABORT;}
3346
759
#line 3347 "y.tab.c"
3347
759
    break;
3348
3349
759
  case 272:
3350
582
#line 728 "policy_parse.y"
3351
582
                        {if (define_ibpkey_context((yyvsp[-3].val),(yyvsp[-1].val))) YYABORT;}
3352
572
#line 3353 "y.tab.c"
3353
572
    break;
3354
3355
572
  case 277:
3356
0
#line 737 "policy_parse.y"
3357
0
                        {if (define_ibendport_context((yyvsp[-1].val))) YYABORT;}
3358
0
#line 3359 "y.tab.c"
3359
0
    break;
3360
3361
286
  case 282:
3362
286
#line 746 "policy_parse.y"
3363
286
                        {if (define_netif_context()) YYABORT;}
3364
286
#line 3365 "y.tab.c"
3365
286
    break;
3366
3367
720
  case 287:
3368
720
#line 755 "policy_parse.y"
3369
720
                        {if (define_ipv4_node_context()) YYABORT;}
3370
685
#line 3371 "y.tab.c"
3371
685
    break;
3372
3373
685
  case 288:
3374
257
#line 757 "policy_parse.y"
3375
257
                        {if (define_ipv4_cidr_node_context()) YYABORT;}
3376
237
#line 3377 "y.tab.c"
3377
237
    break;
3378
3379
557
  case 289:
3380
557
#line 759 "policy_parse.y"
3381
557
                        {if (define_ipv6_node_context()) YYABORT;}
3382
526
#line 3383 "y.tab.c"
3383
526
    break;
3384
3385
1.27k
  case 290:
3386
1.27k
#line 761 "policy_parse.y"
3387
1.27k
                        {if (define_ipv6_cidr_node_context()) YYABORT;}
3388
1.23k
#line 3389 "y.tab.c"
3389
1.23k
    break;
3390
3391
1.23k
  case 295:
3392
48
#line 770 "policy_parse.y"
3393
48
                        {if (define_fs_use(SECURITY_FS_USE_XATTR)) YYABORT;}
3394
48
#line 3395 "y.tab.c"
3395
48
    break;
3396
3397
48
  case 296:
3398
0
#line 772 "policy_parse.y"
3399
0
                        {if (define_fs_use(SECURITY_FS_USE_TASK)) YYABORT;}
3400
0
#line 3401 "y.tab.c"
3401
0
    break;
3402
3403
16
  case 297:
3404
16
#line 774 "policy_parse.y"
3405
16
                        {if (define_fs_use(SECURITY_FS_USE_TRANS)) YYABORT;}
3406
16
#line 3407 "y.tab.c"
3407
16
    break;
3408
3409
16
  case 302:
3410
16
#line 783 "policy_parse.y"
3411
16
                        {if (define_genfs_context(1)) YYABORT;}
3412
16
#line 3413 "y.tab.c"
3413
16
    break;
3414
3415
49
  case 303:
3416
49
#line 784 "policy_parse.y"
3417
49
                                                           {insert_id("-", 0);}
3418
49
#line 3419 "y.tab.c"
3419
49
    break;
3420
3421
48
  case 304:
3422
48
#line 785 "policy_parse.y"
3423
48
                        {if (define_genfs_context(1)) YYABORT;}
3424
48
#line 3425 "y.tab.c"
3425
48
    break;
3426
3427
660
  case 305:
3428
660
#line 787 "policy_parse.y"
3429
660
                        {if (define_genfs_context(0)) YYABORT;}
3430
652
#line 3431 "y.tab.c"
3431
652
    break;
3432
3433
1.44k
  case 306:
3434
1.44k
#line 790 "policy_parse.y"
3435
1.44k
                        { if (insert_id(yytext,0)) YYABORT; }
3436
1.44k
#line 3437 "y.tab.c"
3437
1.44k
    break;
3438
3439
1.44k
  case 307:
3440
257
#line 793 "policy_parse.y"
3441
257
                        { if (insert_id(yytext,0)) YYABORT; }
3442
257
#line 3443 "y.tab.c"
3443
257
    break;
3444
3445
6.20k
  case 308:
3446
6.20k
#line 796 "policy_parse.y"
3447
6.20k
                        { if (insert_separator(0)) YYABORT; }
3448
6.20k
#line 3449 "y.tab.c"
3449
6.20k
    break;
3450
3451
6.20k
  case 309:
3452
43
#line 798 "policy_parse.y"
3453
43
                        { if (insert_separator(0)) YYABORT; }
3454
43
#line 3455 "y.tab.c"
3455
43
    break;
3456
3457
14.4k
  case 310:
3458
14.4k
#line 800 "policy_parse.y"
3459
14.4k
                        { if (insert_id("~", 0)) YYABORT; }
3460
14.4k
#line 3461 "y.tab.c"
3461
14.4k
    break;
3462
3463
14.4k
  case 311:
3464
0
#line 802 "policy_parse.y"
3465
0
                        { if (insert_id("~", 0)) YYABORT;
3466
0
        if (insert_separator(0)) YYABORT; }
3467
0
#line 3468 "y.tab.c"
3468
0
    break;
3469
3470
0
  case 315:
3471
0
#line 810 "policy_parse.y"
3472
0
                                { if (insert_id("-", 0)) YYABORT; }
3473
0
#line 3474 "y.tab.c"
3474
0
    break;
3475
3476
20.7k
  case 319:
3477
20.7k
#line 815 "policy_parse.y"
3478
20.7k
                        { if (insert_id(yytext,0)) YYABORT; }
3479
20.7k
#line 3480 "y.tab.c"
3480
20.7k
    break;
3481
3482
27.1k
  case 323:
3483
27.1k
#line 823 "policy_parse.y"
3484
27.1k
                        {if (insert_separator(0)) YYABORT;}
3485
27.1k
#line 3486 "y.tab.c"
3486
27.1k
    break;
3487
3488
27.1k
  case 324:
3489
12.0k
#line 825 "policy_parse.y"
3490
12.0k
                        {if (insert_separator(0)) YYABORT;}
3491
12.0k
#line 3492 "y.tab.c"
3492
12.0k
    break;
3493
3494
29.1k
  case 325:
3495
29.1k
#line 828 "policy_parse.y"
3496
29.1k
                        {if (insert_separator(0)) YYABORT;}
3497
29.1k
#line 3498 "y.tab.c"
3498
29.1k
    break;
3499
3500
67.3k
  case 326:
3501
67.3k
#line 830 "policy_parse.y"
3502
67.3k
                        {if (insert_separator(0)) YYABORT;}
3503
67.3k
#line 3504 "y.tab.c"
3504
67.3k
    break;
3505
3506
311k
  case 331:
3507
311k
#line 840 "policy_parse.y"
3508
311k
                        { if (insert_separator(0)) YYABORT; }
3509
311k
#line 3510 "y.tab.c"
3510
311k
    break;
3511
3512
311k
  case 332:
3513
60.7k
#line 842 "policy_parse.y"
3514
60.7k
                        { if (insert_separator(0)) YYABORT; }
3515
60.7k
#line 3516 "y.tab.c"
3516
60.7k
    break;
3517
3518
60.7k
  case 333:
3519
1.72k
#line 844 "policy_parse.y"
3520
1.72k
                        { if (insert_id("*", 0)) YYABORT;
3521
1.72k
        if (insert_separator(0)) YYABORT; }
3522
1.72k
#line 3523 "y.tab.c"
3523
1.72k
    break;
3524
3525
36.1k
  case 334:
3526
36.1k
#line 847 "policy_parse.y"
3527
36.1k
                        { if (insert_id("~", 0)) YYABORT;
3528
36.1k
        if (insert_separator(0)) YYABORT; }
3529
36.1k
#line 3530 "y.tab.c"
3530
36.1k
    break;
3531
3532
36.1k
  case 335:
3533
2.83k
#line 850 "policy_parse.y"
3534
2.83k
                        { if (insert_id("~", 0)) YYABORT;
3535
2.83k
        if (insert_separator(0)) YYABORT; }
3536
2.83k
#line 3537 "y.tab.c"
3537
2.83k
    break;
3538
3539
8.58k
  case 336:
3540
8.58k
#line 852 "policy_parse.y"
3541
8.58k
                                         { if (insert_id("-", 0)) YYABORT; }
3542
8.58k
#line 3543 "y.tab.c"
3543
8.58k
    break;
3544
3545
8.58k
  case 337:
3546
8.58k
#line 853 "policy_parse.y"
3547
8.58k
                        { if (insert_separator(0)) YYABORT; }
3548
8.58k
#line 3549 "y.tab.c"
3549
8.58k
    break;
3550
3551
8.58k
  case 338:
3552
556
#line 856 "policy_parse.y"
3553
556
                        { if (insert_id("~", 1)) YYABORT; }
3554
556
#line 3555 "y.tab.c"
3555
556
    break;
3556
3557
556
  case 339:
3558
49
#line 859 "policy_parse.y"
3559
49
                        { if (insert_id("*", 1)) YYABORT; }
3560
49
#line 3561 "y.tab.c"
3561
49
    break;
3562
3563
56.1k
  case 347:
3564
56.1k
#line 871 "policy_parse.y"
3565
56.1k
                        { if (insert_id(yytext, 1)) YYABORT; }
3566
56.1k
#line 3567 "y.tab.c"
3567
56.1k
    break;
3568
3569
56.1k
  case 354:
3570
27.0k
#line 880 "policy_parse.y"
3571
27.0k
                                           { if (insert_id("-", 0)) YYABORT; }
3572
27.0k
#line 3573 "y.tab.c"
3573
27.0k
    break;
3574
3575
1.68M
  case 357:
3576
1.68M
#line 883 "policy_parse.y"
3577
1.68M
                        { if (insert_id(yytext,0)) YYABORT; }
3578
1.68M
#line 3579 "y.tab.c"
3579
1.68M
    break;
3580
3581
1.68M
  case 358:
3582
257
#line 886 "policy_parse.y"
3583
257
                        { if (insert_id(yytext,0)) YYABORT; }
3584
257
#line 3585 "y.tab.c"
3585
257
    break;
3586
3587
523
  case 359:
3588
523
#line 888 "policy_parse.y"
3589
523
                        { if (insert_id(yytext,0)) YYABORT; }
3590
523
#line 3591 "y.tab.c"
3591
523
    break;
3592
3593
523
  case 360:
3594
213
#line 891 "policy_parse.y"
3595
213
                        { if (insert_id(yytext,0)) YYABORT; }
3596
213
#line 3597 "y.tab.c"
3597
213
    break;
3598
3599
562
  case 361:
3600
562
#line 893 "policy_parse.y"
3601
562
                        { yytext[strlen(yytext) - 1] = '\0'; if (insert_id(yytext + 1,0)) YYABORT; }
3602
562
#line 3603 "y.tab.c"
3603
562
    break;
3604
3605
7.62k
  case 362:
3606
7.62k
#line 896 "policy_parse.y"
3607
7.62k
                        { yytext[strlen(yytext) - 1] = '\0'; if (insert_id(yytext + 1,0)) YYABORT; }
3608
7.62k
#line 3609 "y.tab.c"
3609
7.62k
    break;
3610
3611
7.62k
  case 363:
3612
188
#line 899 "policy_parse.y"
3613
188
                        { if (insert_id(yytext,0)) YYABORT; }
3614
188
#line 3615 "y.tab.c"
3615
188
    break;
3616
3617
188
  case 364:
3618
77
#line 901 "policy_parse.y"
3619
77
                        { if (insert_id(yytext,0)) YYABORT; }
3620
77
#line 3621 "y.tab.c"
3621
77
    break;
3622
3623
77
  case 365:
3624
26
#line 903 "policy_parse.y"
3625
26
                        { if (insert_id(yytext,0)) YYABORT; }
3626
26
#line 3627 "y.tab.c"
3627
26
    break;
3628
3629
23.1k
  case 366:
3630
23.1k
#line 906 "policy_parse.y"
3631
23.1k
                        { unsigned long x;
3632
23.1k
        errno = 0;
3633
23.1k
        x = strtoul(yytext, NULL, 0);
3634
23.1k
        if (errno)
3635
4
            YYABORT;
3636
23.1k
#if ULONG_MAX > UINT_MAX
3637
23.1k
        if (x > UINT_MAX)
3638
0
            YYABORT;
3639
23.1k
#endif
3640
23.1k
        (yyval.val) = (unsigned int) x;
3641
23.1k
      }
3642
0
#line 3643 "y.tab.c"
3643
0
    break;
3644
3645
882
  case 367:
3646
882
#line 919 "policy_parse.y"
3647
882
                        { unsigned long long x;
3648
882
        errno = 0;
3649
882
        x = strtoull(yytext, NULL, 0);
3650
882
        if (errno)
3651
1
            YYABORT;
3652
881
        (yyval.val64) = (uint64_t) x;
3653
881
      }
3654
0
#line 3655 "y.tab.c"
3655
0
    break;
3656
3657
2.48k
  case 368:
3658
2.48k
#line 928 "policy_parse.y"
3659
2.48k
                        { if (insert_id(yytext,0)) YYABORT; }
3660
2.48k
#line 3661 "y.tab.c"
3661
2.48k
    break;
3662
3663
2.48k
  case 369:
3664
1.27k
#line 931 "policy_parse.y"
3665
1.27k
                        { if (insert_id(yytext,0)) YYABORT; }
3666
1.27k
#line 3667 "y.tab.c"
3667
1.27k
    break;
3668
3669
1.27k
  case 370:
3670
580
#line 934 "policy_parse.y"
3671
580
                        {if (define_polcap()) YYABORT;}
3672
578
#line 3673 "y.tab.c"
3673
578
    break;
3674
3675
578
  case 371:
3676
481
#line 937 "policy_parse.y"
3677
481
                        {if (define_permissive()) YYABORT;}
3678
481
#line 3679 "y.tab.c"
3679
481
    break;
3680
3681
481
  case 372:
3682
36
#line 939 "policy_parse.y"
3683
36
                        {if (define_neveraudit()) YYABORT;}
3684
35
#line 3685 "y.tab.c"
3685
35
    break;
3686
3687
35
  case 373:
3688
0
#line 944 "policy_parse.y"
3689
0
                        { if (end_avrule_block(pass) == -1) YYABORT;
3690
0
                          if (policydb_index_others(NULL, policydbp, 0)) YYABORT;
3691
0
                        }
3692
0
#line 3693 "y.tab.c"
3693
0
    break;
3694
3695
0
  case 374:
3696
0
#line 949 "policy_parse.y"
3697
0
                        { if (define_policy(pass, 1) == -1) YYABORT; }
3698
0
#line 3699 "y.tab.c"
3699
0
    break;
3700
3701
0
  case 375:
3702
0
#line 952 "policy_parse.y"
3703
0
                        { if (insert_id(yytext,0)) YYABORT; }
3704
0
#line 3705 "y.tab.c"
3705
0
    break;
3706
3707
1
  case 376:
3708
1
#line 954 "policy_parse.y"
3709
1
                        { if (insert_id(yytext,0)) YYABORT; }
3710
1
#line 3711 "y.tab.c"
3711
1
    break;
3712
3713
1.55k
  case 392:
3714
1.55k
#line 978 "policy_parse.y"
3715
1.55k
                        { if (require_class(pass)) YYABORT; }
3716
1.54k
#line 3717 "y.tab.c"
3717
1.54k
    break;
3718
3719
5.72k
  case 393:
3720
5.72k
#line 980 "policy_parse.y"
3721
5.72k
                                      { (yyval.require_func) = require_role; }
3722
5.72k
#line 3723 "y.tab.c"
3723
5.72k
    break;
3724
3725
4.04k
  case 394:
3726
4.04k
#line 981 "policy_parse.y"
3727
4.04k
                                      { (yyval.require_func) = require_type; }
3728
4.04k
#line 3729 "y.tab.c"
3729
4.04k
    break;
3730
3731
6.92k
  case 395:
3732
6.92k
#line 982 "policy_parse.y"
3733
6.92k
                                      { (yyval.require_func) = require_attribute; }
3734
6.92k
#line 3735 "y.tab.c"
3735
6.92k
    break;
3736
3737
362
  case 396:
3738
362
#line 983 "policy_parse.y"
3739
362
                                           { (yyval.require_func) = require_attribute_role; }
3740
362
#line 3741 "y.tab.c"
3741
362
    break;
3742
3743
1.88k
  case 397:
3744
1.88k
#line 984 "policy_parse.y"
3745
1.88k
                                      { (yyval.require_func) = require_user; }
3746
1.88k
#line 3747 "y.tab.c"
3747
1.88k
    break;
3748
3749
13.2k
  case 398:
3750
13.2k
#line 985 "policy_parse.y"
3751
13.2k
                                      { (yyval.require_func) = require_bool; }
3752
13.2k
#line 3753 "y.tab.c"
3753
13.2k
    break;
3754
3755
636
  case 399:
3756
636
#line 986 "policy_parse.y"
3757
636
                                      { (yyval.require_func) = require_tunable; }
3758
636
#line 3759 "y.tab.c"
3759
636
    break;
3760
3761
260
  case 400:
3762
260
#line 987 "policy_parse.y"
3763
260
                                      { (yyval.require_func) = require_sens; }
3764
260
#line 3765 "y.tab.c"
3765
260
    break;
3766
3767
298
  case 401:
3768
298
#line 988 "policy_parse.y"
3769
298
                                      { (yyval.require_func) = require_cat; }
3770
298
#line 3771 "y.tab.c"
3771
298
    break;
3772
3773
33.3k
  case 402:
3774
33.3k
#line 991 "policy_parse.y"
3775
33.3k
                        { if ((yyvsp[-1].require_func) (pass)) YYABORT; }
3776
33.3k
#line 3777 "y.tab.c"
3777
33.3k
    break;
3778
3779
408k
  case 403:
3780
408k
#line 993 "policy_parse.y"
3781
408k
                        { if ((yyvsp[-3].require_func) (pass)) YYABORT; }
3782
408k
#line 3783 "y.tab.c"
3783
408k
    break;
3784
3785
408k
  case 404:
3786
31.5k
#line 996 "policy_parse.y"
3787
31.5k
                        { if (end_avrule_block(pass) == -1) YYABORT; }
3788
31.5k
#line 3789 "y.tab.c"
3789
31.5k
    break;
3790
3791
31.5k
  case 405:
3792
31.0k
#line 998 "policy_parse.y"
3793
31.0k
                        { if (end_optional(pass) == -1) YYABORT; }
3794
31.0k
#line 3795 "y.tab.c"
3795
31.0k
    break;
3796
3797
31.0k
  case 406:
3798
821
#line 1001 "policy_parse.y"
3799
821
                        { if (end_avrule_block(pass) == -1) YYABORT; }
3800
821
#line 3801 "y.tab.c"
3801
821
    break;
3802
3803
40.9k
  case 408:
3804
40.9k
#line 1005 "policy_parse.y"
3805
40.9k
                        { if (begin_optional(pass) == -1) YYABORT; }
3806
40.9k
#line 3807 "y.tab.c"
3807
40.9k
    break;
3808
3809
40.9k
  case 409:
3810
1.24k
#line 1008 "policy_parse.y"
3811
1.24k
                        { if (begin_optional_else(pass) == -1) YYABORT; }
3812
1.24k
#line 3813 "y.tab.c"
3813
1.24k
    break;
3814
3815
3816
1.24k
#line 3817 "y.tab.c"
3817
3818
10.3M
      default: break;
3819
18.4M
    }
3820
  /* User semantic actions sometimes alter yychar, and that requires
3821
     that yytoken be updated with the new translation.  We take the
3822
     approach of translating immediately before every use of yytoken.
3823
     One alternative is translating here after every semantic action,
3824
     but that translation would be missed if the semantic action invokes
3825
     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3826
     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
3827
     incorrect destructor might then be invoked immediately.  In the
3828
     case of YYERROR or YYBACKUP, subsequent parser actions might lead
3829
     to an incorrect destructor call or verbose syntax error message
3830
     before the lookahead is translated.  */
3831
18.4M
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3832
3833
18.4M
  YYPOPSTACK (yylen);
3834
18.4M
  yylen = 0;
3835
18.4M
  YY_STACK_PRINT (yyss, yyssp);
3836
3837
18.4M
  *++yyvsp = yyval;
3838
3839
  /* Now 'shift' the result of the reduction.  Determine what state
3840
     that goes to, based on the state we popped back to and the rule
3841
     number reduced by.  */
3842
18.4M
  {
3843
18.4M
    const int yylhs = yyr1[yyn] - YYNTOKENS;
3844
18.4M
    const int yyi = yypgoto[yylhs] + *yyssp;
3845
18.4M
    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3846
18.4M
               ? yytable[yyi]
3847
18.4M
               : yydefgoto[yylhs]);
3848
18.4M
  }
3849
3850
18.4M
  goto yynewstate;
3851
3852
3853
/*--------------------------------------.
3854
| yyerrlab -- here on detecting error.  |
3855
`--------------------------------------*/
3856
521
yyerrlab:
3857
  /* Make sure we have latest lookahead translation.  See comments at
3858
     user semantic actions for why this is necessary.  */
3859
521
  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3860
3861
  /* If not already recovering from an error, report this error.  */
3862
521
  if (!yyerrstatus)
3863
521
    {
3864
521
      ++yynerrs;
3865
521
#if ! YYERROR_VERBOSE
3866
521
      yyerror (YY_("syntax error"));
3867
#else
3868
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3869
                                        yyssp, yytoken)
3870
      {
3871
        char const *yymsgp = YY_("syntax error");
3872
        int yysyntax_error_status;
3873
        yysyntax_error_status = YYSYNTAX_ERROR;
3874
        if (yysyntax_error_status == 0)
3875
          yymsgp = yymsg;
3876
        else if (yysyntax_error_status == 1)
3877
          {
3878
            if (yymsg != yymsgbuf)
3879
              YYSTACK_FREE (yymsg);
3880
            yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
3881
            if (!yymsg)
3882
              {
3883
                yymsg = yymsgbuf;
3884
                yymsg_alloc = sizeof yymsgbuf;
3885
                yysyntax_error_status = 2;
3886
              }
3887
            else
3888
              {
3889
                yysyntax_error_status = YYSYNTAX_ERROR;
3890
                yymsgp = yymsg;
3891
              }
3892
          }
3893
        yyerror (yymsgp);
3894
        if (yysyntax_error_status == 2)
3895
          goto yyexhaustedlab;
3896
      }
3897
# undef YYSYNTAX_ERROR
3898
#endif
3899
521
    }
3900
3901
3902
3903
521
  if (yyerrstatus == 3)
3904
0
    {
3905
      /* If just tried and failed to reuse lookahead token after an
3906
         error, discard it.  */
3907
3908
0
      if (yychar <= YYEOF)
3909
0
        {
3910
          /* Return failure if at end of input.  */
3911
0
          if (yychar == YYEOF)
3912
0
            YYABORT;
3913
0
        }
3914
0
      else
3915
0
        {
3916
0
          yydestruct ("Error: discarding",
3917
0
                      yytoken, &yylval);
3918
0
          yychar = YYEMPTY;
3919
0
        }
3920
0
    }
3921
3922
  /* Else will try to reuse lookahead token after shifting the error
3923
     token.  */
3924
521
  goto yyerrlab1;
3925
3926
3927
/*---------------------------------------------------.
3928
| yyerrorlab -- error raised explicitly by YYERROR.  |
3929
`---------------------------------------------------*/
3930
521
yyerrorlab:
3931
  /* Pacify compilers when the user code never invokes YYERROR and the
3932
     label yyerrorlab therefore never appears in user code.  */
3933
0
  if (0)
3934
0
    YYERROR;
3935
3936
  /* Do not reclaim the symbols of the rule whose action triggered
3937
     this YYERROR.  */
3938
0
  YYPOPSTACK (yylen);
3939
0
  yylen = 0;
3940
0
  YY_STACK_PRINT (yyss, yyssp);
3941
0
  yystate = *yyssp;
3942
0
  goto yyerrlab1;
3943
3944
3945
/*-------------------------------------------------------------.
3946
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
3947
`-------------------------------------------------------------*/
3948
521
yyerrlab1:
3949
521
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3950
3951
521
  for (;;)
3952
35.7k
    {
3953
35.7k
      yyn = yypact[yystate];
3954
35.7k
      if (!yypact_value_is_default (yyn))
3955
34.7k
        {
3956
34.7k
          yyn += YYTERROR;
3957
34.7k
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3958
0
            {
3959
0
              yyn = yytable[yyn];
3960
0
              if (0 < yyn)
3961
0
                break;
3962
0
            }
3963
34.7k
        }
3964
3965
      /* Pop the current state because it cannot handle the error token.  */
3966
35.7k
      if (yyssp == yyss)
3967
521
        YYABORT;
3968
3969
3970
35.2k
      yydestruct ("Error: popping",
3971
35.2k
                  yystos[yystate], yyvsp);
3972
35.2k
      YYPOPSTACK (1);
3973
35.2k
      yystate = *yyssp;
3974
35.2k
      YY_STACK_PRINT (yyss, yyssp);
3975
35.2k
    }
3976
3977
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3978
0
  *++yyvsp = yylval;
3979
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
3980
3981
3982
  /* Shift the error token.  */
3983
0
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3984
3985
0
  yystate = yyn;
3986
0
  goto yynewstate;
3987
3988
3989
/*-------------------------------------.
3990
| yyacceptlab -- YYACCEPT comes here.  |
3991
`-------------------------------------*/
3992
3.83k
yyacceptlab:
3993
3.83k
  yyresult = 0;
3994
3.83k
  goto yyreturn;
3995
3996
3997
/*-----------------------------------.
3998
| yyabortlab -- YYABORT comes here.  |
3999
`-----------------------------------*/
4000
1.69k
yyabortlab:
4001
1.69k
  yyresult = 1;
4002
1.69k
  goto yyreturn;
4003
4004
4005
0
#if !defined yyoverflow || YYERROR_VERBOSE
4006
/*-------------------------------------------------.
4007
| yyexhaustedlab -- memory exhaustion comes here.  |
4008
`-------------------------------------------------*/
4009
0
yyexhaustedlab:
4010
0
  yyerror (YY_("memory exhausted"));
4011
0
  yyresult = 2;
4012
  /* Fall through.  */
4013
0
#endif
4014
4015
4016
/*-----------------------------------------------------.
4017
| yyreturn -- parsing is finished, return the result.  |
4018
`-----------------------------------------------------*/
4019
5.53k
yyreturn:
4020
5.53k
  if (yychar != YYEMPTY)
4021
878
    {
4022
      /* Make sure we have latest lookahead translation.  See comments at
4023
         user semantic actions for why this is necessary.  */
4024
878
      yytoken = YYTRANSLATE (yychar);
4025
878
      yydestruct ("Cleanup: discarding lookahead",
4026
878
                  yytoken, &yylval);
4027
878
    }
4028
  /* Do not reclaim the symbols of the rule whose action triggered
4029
     this YYABORT or YYACCEPT.  */
4030
5.53k
  YYPOPSTACK (yylen);
4031
5.53k
  YY_STACK_PRINT (yyss, yyssp);
4032
35.0k
  while (yyssp != yyss)
4033
29.5k
    {
4034
29.5k
      yydestruct ("Cleanup: popping",
4035
29.5k
                  yystos[+*yyssp], yyvsp);
4036
29.5k
      YYPOPSTACK (1);
4037
29.5k
    }
4038
5.53k
#ifndef yyoverflow
4039
5.53k
  if (yyss != yyssa)
4040
88
    YYSTACK_FREE (yyss);
4041
5.53k
#endif
4042
#if YYERROR_VERBOSE
4043
  if (yymsg != yymsgbuf)
4044
    YYSTACK_FREE (yymsg);
4045
#endif
4046
5.53k
  return yyresult;
4047
0
}