Coverage Report

Created: 2026-03-31 06:10

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