Coverage Report

Created: 2024-02-25 06:24

/src/libpcap/build/grammar.c
Line
Count
Source (jump to first uncovered line)
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 1
58
59
/* Push parsers.  */
60
#define YYPUSH 0
61
62
/* Pull parsers.  */
63
#define YYPULL 1
64
65
66
/* Substitute the variable and function names.  */
67
#define yyparse         pcap_parse
68
149k
#define yylex           pcap_lex
69
1.77k
#define yyerror         pcap_error
70
#define yydebug         pcap_debug
71
21.9k
#define yynerrs         pcap_nerrs
72
73
/* First part of user prologue.  */
74
#line 47 "/src/libpcap/build/grammar.y"
75
76
/*
77
 * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
78
 *  The Regents of the University of California.  All rights reserved.
79
 *
80
 * Redistribution and use in source and binary forms, with or without
81
 * modification, are permitted provided that: (1) source code distributions
82
 * retain the above copyright notice and this paragraph in its entirety, (2)
83
 * distributions including binary code include the above copyright notice and
84
 * this paragraph in its entirety in the documentation or other materials
85
 * provided with the distribution, and (3) all advertising materials mentioning
86
 * features or use of this software display the following acknowledgement:
87
 * ``This product includes software developed by the University of California,
88
 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
89
 * the University nor the names of its contributors may be used to endorse
90
 * or promote products derived from this software without specific prior
91
 * written permission.
92
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
93
 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
94
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
95
 *
96
 */
97
98
#ifdef HAVE_CONFIG_H
99
#include <config.h>
100
#endif
101
102
/*
103
 * grammar.h requires gencode.h and sometimes breaks in a polluted namespace
104
 * (see ftmacros.h), so include it early.
105
 */
106
#include "gencode.h"
107
#include "grammar.h"
108
109
#include <stdlib.h>
110
111
#ifndef _WIN32
112
#include <sys/types.h>
113
#include <sys/socket.h>
114
115
#if __STDC__
116
struct mbuf;
117
struct rtentry;
118
#endif
119
120
#include <netinet/in.h>
121
#include <arpa/inet.h>
122
#endif /* _WIN32 */
123
124
#include <stdio.h>
125
126
#include "diag-control.h"
127
128
#include "pcap-int.h"
129
130
#include "scanner.h"
131
132
#include "llc.h"
133
#include "ieee80211.h"
134
#include "pflog.h"
135
#include <pcap/namedb.h>
136
137
#ifdef HAVE_OS_PROTO_H
138
#include "os-proto.h"
139
#endif
140
141
/*
142
 * Work around some bugs in Berkeley YACC prior to the 2017-07-09
143
 * release.
144
 *
145
 * The 2005-05-05 release was the first one to define YYPATCH, so
146
 * we treat any release that either 1) doesn't define YYPATCH or
147
 * 2) defines it to a value < 20170709 as being buggy.
148
 */
149
#if defined(YYBYACC) && (!defined(YYPATCH) || YYPATCH < 20170709)
150
/*
151
 * Both Berkeley YACC and Bison define yydebug (under whatever name
152
 * it has) as a global, but Bison does so only if YYDEBUG is defined.
153
 * Berkeley YACC, prior to the 2017-07-09 release, defines it even if
154
 * YYDEBUG isn't defined; declare it here to suppress a warning.  The
155
 * 2017-07-09 release fixes that.
156
 */
157
#if !defined(YYDEBUG)
158
extern int yydebug;
159
#endif
160
161
/*
162
 * In Berkeley YACC, prior to the 2017-07-09 release, yynerrs (under
163
 * whatever name it has) is global, even if it's building a reentrant
164
 * parser.  In Bison, and in the Berkeley YACC 2017-07-09 release and
165
 * later, it's local in reentrant parsers.
166
 *
167
 * Declare it to squelch a warning.
168
 */
169
extern int yynerrs;
170
#endif
171
172
4.91k
#define QSET(q, p, d, a) (q).proto = (unsigned char)(p),\
173
4.91k
       (q).dir = (unsigned char)(d),\
174
4.91k
       (q).addr = (unsigned char)(a)
175
176
struct tok {
177
  int v;      /* value */
178
  const char *s;    /* string */
179
};
180
181
static const struct tok ieee80211_types[] = {
182
  { IEEE80211_FC0_TYPE_DATA, "data" },
183
  { IEEE80211_FC0_TYPE_MGT, "mgt" },
184
  { IEEE80211_FC0_TYPE_MGT, "management" },
185
  { IEEE80211_FC0_TYPE_CTL, "ctl" },
186
  { IEEE80211_FC0_TYPE_CTL, "control" },
187
  { 0, NULL }
188
};
189
static const struct tok ieee80211_mgt_subtypes[] = {
190
  { IEEE80211_FC0_SUBTYPE_ASSOC_REQ, "assocreq" },
191
  { IEEE80211_FC0_SUBTYPE_ASSOC_REQ, "assoc-req" },
192
  { IEEE80211_FC0_SUBTYPE_ASSOC_RESP, "assocresp" },
193
  { IEEE80211_FC0_SUBTYPE_ASSOC_RESP, "assoc-resp" },
194
  { IEEE80211_FC0_SUBTYPE_REASSOC_REQ, "reassocreq" },
195
  { IEEE80211_FC0_SUBTYPE_REASSOC_REQ, "reassoc-req" },
196
  { IEEE80211_FC0_SUBTYPE_REASSOC_RESP, "reassocresp" },
197
  { IEEE80211_FC0_SUBTYPE_REASSOC_RESP, "reassoc-resp" },
198
  { IEEE80211_FC0_SUBTYPE_PROBE_REQ, "probereq" },
199
  { IEEE80211_FC0_SUBTYPE_PROBE_REQ, "probe-req" },
200
  { IEEE80211_FC0_SUBTYPE_PROBE_RESP, "proberesp" },
201
  { IEEE80211_FC0_SUBTYPE_PROBE_RESP, "probe-resp" },
202
  { IEEE80211_FC0_SUBTYPE_BEACON, "beacon" },
203
  { IEEE80211_FC0_SUBTYPE_ATIM, "atim" },
204
  { IEEE80211_FC0_SUBTYPE_DISASSOC, "disassoc" },
205
  { IEEE80211_FC0_SUBTYPE_DISASSOC, "disassociation" },
206
  { IEEE80211_FC0_SUBTYPE_AUTH, "auth" },
207
  { IEEE80211_FC0_SUBTYPE_AUTH, "authentication" },
208
  { IEEE80211_FC0_SUBTYPE_DEAUTH, "deauth" },
209
  { IEEE80211_FC0_SUBTYPE_DEAUTH, "deauthentication" },
210
  { 0, NULL }
211
};
212
static const struct tok ieee80211_ctl_subtypes[] = {
213
  { IEEE80211_FC0_SUBTYPE_BAR, "bar" },
214
  { IEEE80211_FC0_SUBTYPE_BA, "ba" },
215
  { IEEE80211_FC0_SUBTYPE_PS_POLL, "ps-poll" },
216
  { IEEE80211_FC0_SUBTYPE_RTS, "rts" },
217
  { IEEE80211_FC0_SUBTYPE_CTS, "cts" },
218
  { IEEE80211_FC0_SUBTYPE_ACK, "ack" },
219
  { IEEE80211_FC0_SUBTYPE_CF_END, "cf-end" },
220
  { IEEE80211_FC0_SUBTYPE_CF_END_ACK, "cf-end-ack" },
221
  { 0, NULL }
222
};
223
static const struct tok ieee80211_data_subtypes[] = {
224
  { IEEE80211_FC0_SUBTYPE_DATA, "data" },
225
  { IEEE80211_FC0_SUBTYPE_CF_ACK, "data-cf-ack" },
226
  { IEEE80211_FC0_SUBTYPE_CF_POLL, "data-cf-poll" },
227
  { IEEE80211_FC0_SUBTYPE_CF_ACPL, "data-cf-ack-poll" },
228
  { IEEE80211_FC0_SUBTYPE_NODATA, "null" },
229
  { IEEE80211_FC0_SUBTYPE_NODATA_CF_ACK, "cf-ack" },
230
  { IEEE80211_FC0_SUBTYPE_NODATA_CF_POLL, "cf-poll"  },
231
  { IEEE80211_FC0_SUBTYPE_NODATA_CF_ACPL, "cf-ack-poll" },
232
  { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_DATA, "qos-data" },
233
  { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_CF_ACK, "qos-data-cf-ack" },
234
  { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_CF_POLL, "qos-data-cf-poll" },
235
  { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_CF_ACPL, "qos-data-cf-ack-poll" },
236
  { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_NODATA, "qos" },
237
  { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_NODATA_CF_POLL, "qos-cf-poll" },
238
  { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_NODATA_CF_ACPL, "qos-cf-ack-poll" },
239
  { 0, NULL }
240
};
241
static const struct tok llc_s_subtypes[] = {
242
  { LLC_RR, "rr" },
243
  { LLC_RNR, "rnr" },
244
  { LLC_REJ, "rej" },
245
  { 0, NULL }
246
};
247
static const struct tok llc_u_subtypes[] = {
248
  { LLC_UI, "ui" },
249
  { LLC_UA, "ua" },
250
  { LLC_DISC, "disc" },
251
  { LLC_DM, "dm" },
252
  { LLC_SABME, "sabme" },
253
  { LLC_TEST, "test" },
254
  { LLC_XID, "xid" },
255
  { LLC_FRMR, "frmr" },
256
  { 0, NULL }
257
};
258
struct type2tok {
259
  int type;
260
  const struct tok *tok;
261
};
262
static const struct type2tok ieee80211_type_subtypes[] = {
263
  { IEEE80211_FC0_TYPE_MGT, ieee80211_mgt_subtypes },
264
  { IEEE80211_FC0_TYPE_CTL, ieee80211_ctl_subtypes },
265
  { IEEE80211_FC0_TYPE_DATA, ieee80211_data_subtypes },
266
  { 0, NULL }
267
};
268
269
static int
270
str2tok(const char *str, const struct tok *toks)
271
570
{
272
570
  int i;
273
274
3.42k
  for (i = 0; toks[i].s != NULL; i++) {
275
3.15k
    if (pcapint_strcasecmp(toks[i].s, str) == 0) {
276
      /*
277
       * Just in case somebody is using this to
278
       * generate values of -1/0xFFFFFFFF.
279
       * That won't work, as it's indistinguishable
280
       * from an error.
281
       */
282
303
      if (toks[i].v == -1)
283
0
        abort();
284
303
      return (toks[i].v);
285
303
    }
286
3.15k
  }
287
267
  return (-1);
288
570
}
289
290
static const struct qual qerr = { Q_UNDEF, Q_UNDEF, Q_UNDEF, Q_UNDEF };
291
292
static void
293
yyerror(void *yyscanner _U_, compiler_state_t *cstate, const char *msg)
294
1.77k
{
295
1.77k
  bpf_set_error(cstate, "can't parse filter expression: %s", msg);
296
1.77k
}
297
298
static const struct tok pflog_reasons[] = {
299
  { PFRES_MATCH,    "match" },
300
  { PFRES_BADOFF,   "bad-offset" },
301
  { PFRES_FRAG,   "fragment" },
302
  { PFRES_SHORT,    "short" },
303
  { PFRES_NORM,   "normalize" },
304
  { PFRES_MEMORY,   "memory" },
305
  { PFRES_TS,   "bad-timestamp" },
306
  { PFRES_CONGEST,  "congestion" },
307
  { PFRES_IPOPTIONS,  "ip-option" },
308
  { PFRES_PROTCKSUM,  "proto-cksum" },
309
  { PFRES_BADSTATE, "state-mismatch" },
310
  { PFRES_STATEINS, "state-insert" },
311
  { PFRES_MAXSTATES,  "state-limit" },
312
  { PFRES_SRCLIMIT, "src-limit" },
313
  { PFRES_SYNPROXY, "synproxy" },
314
#if defined(__FreeBSD__)
315
  { PFRES_MAPFAILED,  "map-failed" },
316
#elif defined(__NetBSD__)
317
  { PFRES_STATELOCKED,  "state-locked" },
318
#elif defined(__OpenBSD__)
319
  { PFRES_TRANSLATE,  "translate" },
320
  { PFRES_NOROUTE,  "no-route" },
321
#elif defined(__APPLE__)
322
  { PFRES_DUMMYNET, "dummynet" },
323
#endif
324
  { 0, NULL }
325
};
326
327
static int
328
pfreason_to_num(compiler_state_t *cstate, const char *reason)
329
3
{
330
3
  int i;
331
332
3
  i = str2tok(reason, pflog_reasons);
333
3
  if (i == -1)
334
3
    bpf_set_error(cstate, "unknown PF reason \"%s\"", reason);
335
3
  return (i);
336
3
}
337
338
static const struct tok pflog_actions[] = {
339
  { PF_PASS,    "pass" },
340
  { PF_PASS,    "accept" }, /* alias for "pass" */
341
  { PF_DROP,    "drop" },
342
  { PF_DROP,    "block" },  /* alias for "drop" */
343
  { PF_SCRUB,   "scrub" },
344
  { PF_NOSCRUB,   "noscrub" },
345
  { PF_NAT,   "nat" },
346
  { PF_NONAT,   "nonat" },
347
  { PF_BINAT,   "binat" },
348
  { PF_NOBINAT,   "nobinat" },
349
  { PF_RDR,   "rdr" },
350
  { PF_NORDR,   "nordr" },
351
  { PF_SYNPROXY_DROP, "synproxy-drop" },
352
#if defined(__FreeBSD__)
353
  { PF_DEFER,   "defer" },
354
#elif defined(__OpenBSD__)
355
  { PF_DEFER,   "defer" },
356
  { PF_MATCH,   "match" },
357
  { PF_DIVERT,    "divert" },
358
  { PF_RT,    "rt" },
359
  { PF_AFRT,    "afrt" },
360
#elif defined(__APPLE__)
361
  { PF_DUMMYNET,    "dummynet" },
362
  { PF_NODUMMYNET,  "nodummynet" },
363
  { PF_NAT64,   "nat64" },
364
  { PF_NONAT64,   "nonat64" },
365
#endif
366
  { 0, NULL },
367
};
368
369
static int
370
pfaction_to_num(compiler_state_t *cstate, const char *action)
371
12
{
372
12
  int i;
373
374
12
  i = str2tok(action, pflog_actions);
375
12
  if (i == -1)
376
4
    bpf_set_error(cstate, "unknown PF action \"%s\"", action);
377
12
  return (i);
378
12
}
379
380
/*
381
 * For calls that might return an "an error occurred" value.
382
 */
383
7.15k
#define CHECK_INT_VAL(val)  if (val == -1) YYABORT
384
94.3k
#define CHECK_PTR_VAL(val)  if (val == NULL) YYABORT
385
386
DIAG_OFF_BISON_BYACC
387
388
#line 389 "/src/libpcap/build/grammar.c"
389
390
# ifndef YY_CAST
391
#  ifdef __cplusplus
392
#   define YY_CAST(Type, Val) static_cast<Type> (Val)
393
#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
394
#  else
395
461k
#   define YY_CAST(Type, Val) ((Type) (Val))
396
#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
397
#  endif
398
# endif
399
# ifndef YY_NULLPTR
400
#  if defined __cplusplus
401
#   if 201103L <= __cplusplus
402
#    define YY_NULLPTR nullptr
403
#   else
404
#    define YY_NULLPTR 0
405
#   endif
406
#  else
407
#   define YY_NULLPTR ((void*)0)
408
#  endif
409
# endif
410
411
/* Enabling verbose error messages.  */
412
#ifdef YYERROR_VERBOSE
413
# undef YYERROR_VERBOSE
414
# define YYERROR_VERBOSE 1
415
#else
416
# define YYERROR_VERBOSE 0
417
#endif
418
419
/* Use api.header.include to #include this header
420
   instead of duplicating it here.  */
421
#ifndef YY_PCAP_SRC_LIBPCAP_BUILD_GRAMMAR_H_INCLUDED
422
# define YY_PCAP_SRC_LIBPCAP_BUILD_GRAMMAR_H_INCLUDED
423
/* Debug traces.  */
424
#ifndef YYDEBUG
425
# define YYDEBUG 0
426
#endif
427
#if YYDEBUG
428
extern int pcap_debug;
429
#endif
430
431
/* Token type.  */
432
#ifndef YYTOKENTYPE
433
# define YYTOKENTYPE
434
  enum yytokentype
435
  {
436
    DST = 258,
437
    SRC = 259,
438
    HOST = 260,
439
    GATEWAY = 261,
440
    NET = 262,
441
    NETMASK = 263,
442
    PORT = 264,
443
    PORTRANGE = 265,
444
    LESS = 266,
445
    GREATER = 267,
446
    PROTO = 268,
447
    PROTOCHAIN = 269,
448
    CBYTE = 270,
449
    ARP = 271,
450
    RARP = 272,
451
    IP = 273,
452
    SCTP = 274,
453
    TCP = 275,
454
    UDP = 276,
455
    ICMP = 277,
456
    IGMP = 278,
457
    IGRP = 279,
458
    PIM = 280,
459
    VRRP = 281,
460
    CARP = 282,
461
    ATALK = 283,
462
    AARP = 284,
463
    DECNET = 285,
464
    LAT = 286,
465
    SCA = 287,
466
    MOPRC = 288,
467
    MOPDL = 289,
468
    TK_BROADCAST = 290,
469
    TK_MULTICAST = 291,
470
    NUM = 292,
471
    INBOUND = 293,
472
    OUTBOUND = 294,
473
    IFINDEX = 295,
474
    PF_IFNAME = 296,
475
    PF_RSET = 297,
476
    PF_RNR = 298,
477
    PF_SRNR = 299,
478
    PF_REASON = 300,
479
    PF_ACTION = 301,
480
    TYPE = 302,
481
    SUBTYPE = 303,
482
    DIR = 304,
483
    ADDR1 = 305,
484
    ADDR2 = 306,
485
    ADDR3 = 307,
486
    ADDR4 = 308,
487
    RA = 309,
488
    TA = 310,
489
    LINK = 311,
490
    GEQ = 312,
491
    LEQ = 313,
492
    NEQ = 314,
493
    ID = 315,
494
    EID = 316,
495
    HID = 317,
496
    HID6 = 318,
497
    AID = 319,
498
    LSH = 320,
499
    RSH = 321,
500
    LEN = 322,
501
    IPV6 = 323,
502
    ICMPV6 = 324,
503
    AH = 325,
504
    ESP = 326,
505
    VLAN = 327,
506
    MPLS = 328,
507
    PPPOED = 329,
508
    PPPOES = 330,
509
    GENEVE = 331,
510
    ISO = 332,
511
    ESIS = 333,
512
    CLNP = 334,
513
    ISIS = 335,
514
    L1 = 336,
515
    L2 = 337,
516
    IIH = 338,
517
    LSP = 339,
518
    SNP = 340,
519
    CSNP = 341,
520
    PSNP = 342,
521
    STP = 343,
522
    IPX = 344,
523
    NETBEUI = 345,
524
    LANE = 346,
525
    LLC = 347,
526
    METAC = 348,
527
    BCC = 349,
528
    SC = 350,
529
    ILMIC = 351,
530
    OAMF4EC = 352,
531
    OAMF4SC = 353,
532
    OAM = 354,
533
    OAMF4 = 355,
534
    CONNECTMSG = 356,
535
    METACONNECT = 357,
536
    VPI = 358,
537
    VCI = 359,
538
    RADIO = 360,
539
    FISU = 361,
540
    LSSU = 362,
541
    MSU = 363,
542
    HFISU = 364,
543
    HLSSU = 365,
544
    HMSU = 366,
545
    SIO = 367,
546
    OPC = 368,
547
    DPC = 369,
548
    SLS = 370,
549
    HSIO = 371,
550
    HOPC = 372,
551
    HDPC = 373,
552
    HSLS = 374,
553
    LEX_ERROR = 375,
554
    OR = 376,
555
    AND = 377,
556
    UMINUS = 378
557
  };
558
#endif
559
560
/* Value type.  */
561
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
562
union YYSTYPE
563
{
564
#line 361 "/src/libpcap/build/grammar.y"
565
566
  int i;
567
  bpf_u_int32 h;
568
  char *s;
569
  struct stmt *stmt;
570
  struct arth *a;
571
  struct {
572
    struct qual q;
573
    int atmfieldtype;
574
    int mtp3fieldtype;
575
    struct block *b;
576
  } blk;
577
  struct block *rblk;
578
579
#line 580 "/src/libpcap/build/grammar.c"
580
581
};
582
typedef union YYSTYPE YYSTYPE;
583
# define YYSTYPE_IS_TRIVIAL 1
584
# define YYSTYPE_IS_DECLARED 1
585
#endif
586
587
588
589
int pcap_parse (void *yyscanner, compiler_state_t *cstate);
590
591
#endif /* !YY_PCAP_SRC_LIBPCAP_BUILD_GRAMMAR_H_INCLUDED  */
592
593
594
595
#ifdef short
596
# undef short
597
#endif
598
599
/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
600
   <limits.h> and (if available) <stdint.h> are included
601
   so that the code can choose integer types of a good width.  */
602
603
#ifndef __PTRDIFF_MAX__
604
# include <limits.h> /* INFRINGES ON USER NAME SPACE */
605
# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
606
#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
607
#  define YY_STDINT_H
608
# endif
609
#endif
610
611
/* Narrow types that promote to a signed type and that can represent a
612
   signed or unsigned integer of at least N bits.  In tables they can
613
   save space and decrease cache pressure.  Promoting to a signed type
614
   helps avoid bugs in integer arithmetic.  */
615
616
#ifdef __INT_LEAST8_MAX__
617
typedef __INT_LEAST8_TYPE__ yytype_int8;
618
#elif defined YY_STDINT_H
619
typedef int_least8_t yytype_int8;
620
#else
621
typedef signed char yytype_int8;
622
#endif
623
624
#ifdef __INT_LEAST16_MAX__
625
typedef __INT_LEAST16_TYPE__ yytype_int16;
626
#elif defined YY_STDINT_H
627
typedef int_least16_t yytype_int16;
628
#else
629
typedef short yytype_int16;
630
#endif
631
632
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
633
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
634
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
635
       && UINT_LEAST8_MAX <= INT_MAX)
636
typedef uint_least8_t yytype_uint8;
637
#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
638
typedef unsigned char yytype_uint8;
639
#else
640
typedef short yytype_uint8;
641
#endif
642
643
#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
644
typedef __UINT_LEAST16_TYPE__ yytype_uint16;
645
#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
646
       && UINT_LEAST16_MAX <= INT_MAX)
647
typedef uint_least16_t yytype_uint16;
648
#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
649
typedef unsigned short yytype_uint16;
650
#else
651
typedef int yytype_uint16;
652
#endif
653
654
#ifndef YYPTRDIFF_T
655
# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
656
13.0k
#  define YYPTRDIFF_T __PTRDIFF_TYPE__
657
#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
658
# elif defined PTRDIFF_MAX
659
#  ifndef ptrdiff_t
660
#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
661
#  endif
662
#  define YYPTRDIFF_T ptrdiff_t
663
#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
664
# else
665
#  define YYPTRDIFF_T long
666
#  define YYPTRDIFF_MAXIMUM LONG_MAX
667
# endif
668
#endif
669
670
#ifndef YYSIZE_T
671
# ifdef __SIZE_TYPE__
672
#  define YYSIZE_T __SIZE_TYPE__
673
# elif defined size_t
674
#  define YYSIZE_T size_t
675
# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
676
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
677
#  define YYSIZE_T size_t
678
# else
679
#  define YYSIZE_T unsigned
680
# endif
681
#endif
682
683
#define YYSIZE_MAXIMUM                                  \
684
  YY_CAST (YYPTRDIFF_T,                                 \
685
           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
686
            ? YYPTRDIFF_MAXIMUM                         \
687
            : YY_CAST (YYSIZE_T, -1)))
688
689
90
#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
690
691
/* Stored state numbers (used for stacks). */
692
typedef yytype_int16 yy_state_t;
693
694
/* State numbers in computations.  */
695
typedef int yy_state_fast_t;
696
697
#ifndef YY_
698
# if defined YYENABLE_NLS && YYENABLE_NLS
699
#  if ENABLE_NLS
700
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
701
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
702
#  endif
703
# endif
704
# ifndef YY_
705
1.77k
#  define YY_(Msgid) Msgid
706
# endif
707
#endif
708
709
#ifndef YY_ATTRIBUTE_PURE
710
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
711
#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
712
# else
713
#  define YY_ATTRIBUTE_PURE
714
# endif
715
#endif
716
717
#ifndef YY_ATTRIBUTE_UNUSED
718
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
719
#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
720
# else
721
#  define YY_ATTRIBUTE_UNUSED
722
# endif
723
#endif
724
725
/* Suppress unused-variable warnings by "using" E.  */
726
#if ! defined lint || defined __GNUC__
727
132k
# define YYUSE(E) ((void) (E))
728
#else
729
# define YYUSE(E) /* empty */
730
#endif
731
732
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
733
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
734
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
735
    _Pragma ("GCC diagnostic push")                                     \
736
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
737
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
738
# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
739
    _Pragma ("GCC diagnostic pop")
740
#else
741
26.0k
# define YY_INITIAL_VALUE(Value) Value
742
#endif
743
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
744
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
745
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
746
#endif
747
#ifndef YY_INITIAL_VALUE
748
# define YY_INITIAL_VALUE(Value) /* Nothing. */
749
#endif
750
751
#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
752
# define YY_IGNORE_USELESS_CAST_BEGIN                          \
753
    _Pragma ("GCC diagnostic push")                            \
754
    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
755
# define YY_IGNORE_USELESS_CAST_END            \
756
    _Pragma ("GCC diagnostic pop")
757
#endif
758
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
759
# define YY_IGNORE_USELESS_CAST_BEGIN
760
# define YY_IGNORE_USELESS_CAST_END
761
#endif
762
763
764
461k
#define YY_ASSERT(E) ((void) (0 && (E)))
765
766
#if ! defined yyoverflow || YYERROR_VERBOSE
767
768
/* The parser invokes alloca or malloc; define the necessary symbols.  */
769
770
# ifdef YYSTACK_USE_ALLOCA
771
#  if YYSTACK_USE_ALLOCA
772
#   ifdef __GNUC__
773
#    define YYSTACK_ALLOC __builtin_alloca
774
#   elif defined __BUILTIN_VA_ARG_INCR
775
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
776
#   elif defined _AIX
777
#    define YYSTACK_ALLOC __alloca
778
#   elif defined _MSC_VER
779
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
780
#    define alloca _alloca
781
#   else
782
#    define YYSTACK_ALLOC alloca
783
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
784
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
785
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
786
#     ifndef EXIT_SUCCESS
787
#      define EXIT_SUCCESS 0
788
#     endif
789
#    endif
790
#   endif
791
#  endif
792
# endif
793
794
# ifdef YYSTACK_ALLOC
795
   /* Pacify GCC's 'empty if-body' warning.  */
796
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
797
#  ifndef YYSTACK_ALLOC_MAXIMUM
798
    /* The OS might guarantee only one guard page at the bottom of the stack,
799
       and a page size can be as small as 4096 bytes.  So we cannot safely
800
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
801
       to allow for a few compiler-allocated temporary stack slots.  */
802
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
803
#  endif
804
# else
805
#  define YYSTACK_ALLOC YYMALLOC
806
15
#  define YYSTACK_FREE YYFREE
807
#  ifndef YYSTACK_ALLOC_MAXIMUM
808
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
809
#  endif
810
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
811
       && ! ((defined YYMALLOC || defined malloc) \
812
             && (defined YYFREE || defined free)))
813
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
814
#   ifndef EXIT_SUCCESS
815
#    define EXIT_SUCCESS 0
816
#   endif
817
#  endif
818
#  ifndef YYMALLOC
819
#   define YYMALLOC malloc
820
#   if ! defined malloc && ! defined EXIT_SUCCESS
821
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
822
#   endif
823
#  endif
824
#  ifndef YYFREE
825
15
#   define YYFREE free
826
#   if ! defined free && ! defined EXIT_SUCCESS
827
void free (void *); /* INFRINGES ON USER NAME SPACE */
828
#   endif
829
#  endif
830
# endif
831
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
832
833
834
#if (! defined yyoverflow \
835
     && (! defined __cplusplus \
836
         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
837
838
/* A type that is properly aligned for any stack member.  */
839
union yyalloc
840
{
841
  yy_state_t yyss_alloc;
842
  YYSTYPE yyvs_alloc;
843
};
844
845
/* The size of the maximum gap between one aligned stack and the next.  */
846
30
# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
847
848
/* The size of an array large to enough to hold all stacks, each with
849
   N elements.  */
850
# define YYSTACK_BYTES(N) \
851
     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
852
      + YYSTACK_GAP_MAXIMUM)
853
854
# define YYCOPY_NEEDED 1
855
856
/* Relocate STACK from its old location to the new one.  The
857
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
858
   elements in the stack, and YYPTR gives the new location of the
859
   stack.  Advance YYPTR to a properly aligned location for the next
860
   stack.  */
861
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
862
30
    do                                                                  \
863
30
      {                                                                 \
864
30
        YYPTRDIFF_T yynewbytes;                                         \
865
30
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
866
30
        Stack = &yyptr->Stack_alloc;                                    \
867
30
        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
868
30
        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
869
30
      }                                                                 \
870
30
    while (0)
871
872
#endif
873
874
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
875
/* Copy COUNT objects from SRC to DST.  The source and destination do
876
   not overlap.  */
877
# ifndef YYCOPY
878
#  if defined __GNUC__ && 1 < __GNUC__
879
#   define YYCOPY(Dst, Src, Count) \
880
30
      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
881
#  else
882
#   define YYCOPY(Dst, Src, Count)              \
883
      do                                        \
884
        {                                       \
885
          YYPTRDIFF_T yyi;                      \
886
          for (yyi = 0; yyi < (Count); yyi++)   \
887
            (Dst)[yyi] = (Src)[yyi];            \
888
        }                                       \
889
      while (0)
890
#  endif
891
# endif
892
#endif /* !YYCOPY_NEEDED */
893
894
/* YYFINAL -- State number of the termination state.  */
895
461k
#define YYFINAL  3
896
/* YYLAST -- Last index in YYTABLE.  */
897
728k
#define YYLAST   800
898
899
/* YYNTOKENS -- Number of terminals.  */
900
301k
#define YYNTOKENS  141
901
/* YYNNTS -- Number of nonterminals.  */
902
#define YYNNTS  47
903
/* YYNRULES -- Number of rules.  */
904
#define YYNRULES  221
905
/* YYNSTATES -- Number of states.  */
906
#define YYNSTATES  296
907
908
0
#define YYUNDEFTOK  2
909
193k
#define YYMAXUTOK   378
910
911
912
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
913
   as returned by yylex, with out-of-bounds checking.  */
914
#define YYTRANSLATE(YYX)                                                \
915
195k
  (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
916
917
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
918
   as returned by yylex.  */
919
static const yytype_uint8 yytranslate[] =
920
{
921
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
922
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
923
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
924
       2,     2,     2,   123,     2,     2,     2,   139,   125,     2,
925
     132,   131,   128,   126,     2,   127,     2,   129,     2,     2,
926
       2,     2,     2,     2,     2,     2,     2,     2,   138,     2,
927
     135,   134,   133,     2,     2,     2,     2,     2,     2,     2,
928
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
929
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
930
       2,   136,     2,   137,   140,     2,     2,     2,     2,     2,
931
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
932
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
933
       2,     2,     2,     2,   124,     2,     2,     2,     2,     2,
934
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
935
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
936
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
937
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
938
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
939
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
940
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
941
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
942
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
943
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
944
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
945
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
946
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
947
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
948
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
949
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
950
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
951
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
952
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
953
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
954
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
955
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
956
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
957
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
958
     115,   116,   117,   118,   119,   120,   121,   122,   130
959
};
960
961
#if YYDEBUG
962
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
963
static const yytype_int16 yyrline[] =
964
{
965
       0,   435,   435,   447,   449,   451,   452,   453,   454,   455,
966
     457,   459,   461,   462,   464,   466,   467,   486,   505,   524,
967
     549,   574,   575,   576,   578,   580,   582,   583,   584,   586,
968
     588,   590,   591,   593,   594,   595,   596,   597,   605,   607,
969
     608,   609,   610,   612,   614,   615,   616,   617,   618,   619,
970
     622,   623,   626,   627,   628,   629,   630,   631,   632,   633,
971
     634,   635,   636,   637,   640,   641,   642,   643,   646,   648,
972
     649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
973
     659,   660,   661,   662,   663,   664,   665,   666,   667,   668,
974
     669,   670,   671,   672,   673,   674,   675,   676,   677,   678,
975
     679,   680,   681,   682,   683,   684,   685,   686,   688,   689,
976
     690,   691,   692,   693,   694,   695,   696,   697,   698,   699,
977
     700,   701,   702,   703,   704,   705,   706,   707,   710,   711,
978
     712,   713,   714,   715,   718,   723,   726,   730,   733,   739,
979
     748,   754,   777,   794,   795,   819,   822,   823,   839,   840,
980
     843,   846,   847,   848,   850,   851,   852,   854,   855,   857,
981
     858,   859,   860,   861,   862,   863,   864,   865,   866,   867,
982
     868,   869,   870,   871,   873,   874,   875,   876,   877,   879,
983
     880,   882,   883,   884,   885,   886,   887,   888,   890,   891,
984
     892,   893,   896,   897,   899,   900,   901,   902,   904,   911,
985
     912,   915,   916,   917,   918,   919,   920,   923,   924,   925,
986
     926,   927,   928,   929,   930,   932,   933,   934,   935,   937,
987
     950,   951
988
};
989
#endif
990
991
#if YYDEBUG || YYERROR_VERBOSE || 0
992
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
993
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
994
static const char *const yytname[] =
995
{
996
  "$end", "error", "$undefined", "DST", "SRC", "HOST", "GATEWAY", "NET",
997
  "NETMASK", "PORT", "PORTRANGE", "LESS", "GREATER", "PROTO", "PROTOCHAIN",
998
  "CBYTE", "ARP", "RARP", "IP", "SCTP", "TCP", "UDP", "ICMP", "IGMP",
999
  "IGRP", "PIM", "VRRP", "CARP", "ATALK", "AARP", "DECNET", "LAT", "SCA",
1000
  "MOPRC", "MOPDL", "TK_BROADCAST", "TK_MULTICAST", "NUM", "INBOUND",
1001
  "OUTBOUND", "IFINDEX", "PF_IFNAME", "PF_RSET", "PF_RNR", "PF_SRNR",
1002
  "PF_REASON", "PF_ACTION", "TYPE", "SUBTYPE", "DIR", "ADDR1", "ADDR2",
1003
  "ADDR3", "ADDR4", "RA", "TA", "LINK", "GEQ", "LEQ", "NEQ", "ID", "EID",
1004
  "HID", "HID6", "AID", "LSH", "RSH", "LEN", "IPV6", "ICMPV6", "AH", "ESP",
1005
  "VLAN", "MPLS", "PPPOED", "PPPOES", "GENEVE", "ISO", "ESIS", "CLNP",
1006
  "ISIS", "L1", "L2", "IIH", "LSP", "SNP", "CSNP", "PSNP", "STP", "IPX",
1007
  "NETBEUI", "LANE", "LLC", "METAC", "BCC", "SC", "ILMIC", "OAMF4EC",
1008
  "OAMF4SC", "OAM", "OAMF4", "CONNECTMSG", "METACONNECT", "VPI", "VCI",
1009
  "RADIO", "FISU", "LSSU", "MSU", "HFISU", "HLSSU", "HMSU", "SIO", "OPC",
1010
  "DPC", "SLS", "HSIO", "HOPC", "HDPC", "HSLS", "LEX_ERROR", "OR", "AND",
1011
  "'!'", "'|'", "'&'", "'+'", "'-'", "'*'", "'/'", "UMINUS", "')'", "'('",
1012
  "'>'", "'='", "'<'", "'['", "']'", "':'", "'%'", "'^'", "$accept",
1013
  "prog", "null", "expr", "and", "or", "id", "nid", "not", "paren", "pid",
1014
  "qid", "term", "head", "rterm", "pqual", "dqual", "aqual", "ndaqual",
1015
  "pname", "other", "pfvar", "p80211", "type", "subtype", "type_subtype",
1016
  "pllc", "dir", "reason", "action", "relop", "irelop", "arth", "narth",
1017
  "byteop", "pnum", "atmtype", "atmmultitype", "atmfield", "atmvalue",
1018
  "atmfieldvalue", "atmlistvalue", "mtp2type", "mtp3field", "mtp3value",
1019
  "mtp3fieldvalue", "mtp3listvalue", YY_NULLPTR
1020
};
1021
#endif
1022
1023
# ifdef YYPRINT
1024
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
1025
   (internal) symbol number NUM (which must be that of a token).  */
1026
static const yytype_int16 yytoknum[] =
1027
{
1028
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1029
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1030
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1031
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1032
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1033
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1034
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1035
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1036
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1037
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1038
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1039
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1040
     375,   376,   377,    33,   124,    38,    43,    45,    42,    47,
1041
     378,    41,    40,    62,    61,    60,    91,    93,    58,    37,
1042
      94
1043
};
1044
# endif
1045
1046
461k
#define YYPACT_NINF (-217)
1047
1048
#define yypact_value_is_default(Yyn) \
1049
461k
  ((Yyn) == YYPACT_NINF)
1050
1051
#define YYTABLE_NINF (-42)
1052
1053
#define yytable_value_is_error(Yyn) \
1054
14.2k
  0
1055
1056
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1057
     STATE-NUM.  */
1058
static const yytype_int16 yypact[] =
1059
{
1060
    -217,    28,   223,  -217,    13,    18,    21,  -217,  -217,  -217,
1061
    -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,
1062
    -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,    41,
1063
     -30,    24,    51,    79,   -25,    26,  -217,  -217,  -217,  -217,
1064
    -217,  -217,   -24,   -24,  -217,   -24,   -24,  -217,  -217,  -217,
1065
    -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,
1066
    -217,  -217,   -23,  -217,  -217,  -217,  -217,  -217,  -217,  -217,
1067
    -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,
1068
    -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,
1069
    -217,   576,  -217,   -50,   459,   459,  -217,    19,  -217,   745,
1070
       3,  -217,  -217,  -217,   558,  -217,  -217,  -217,  -217,    -5,
1071
    -217,    39,  -217,  -217,   -14,  -217,  -217,  -217,  -217,  -217,
1072
    -217,  -217,  -217,  -217,  -217,   -24,  -217,  -217,  -217,  -217,
1073
    -217,  -217,   576,  -103,   -49,  -217,  -217,   341,   341,  -217,
1074
    -100,     2,    12,  -217,  -217,    -7,    -3,  -217,  -217,  -217,
1075
      19,    19,  -217,    -4,    31,  -217,  -217,  -217,  -217,  -217,
1076
    -217,  -217,  -217,  -217,   -22,    78,   -18,  -217,  -217,  -217,
1077
    -217,  -217,  -217,    60,  -217,  -217,  -217,   576,  -217,  -217,
1078
    -217,   576,   576,   576,   576,   576,   576,   576,   576,  -217,
1079
    -217,  -217,   576,   576,   576,   576,  -217,   125,   126,   127,
1080
    -217,  -217,  -217,   132,   133,   144,  -217,  -217,  -217,  -217,
1081
    -217,  -217,  -217,   145,    12,   602,  -217,   341,   341,  -217,
1082
      10,  -217,  -217,  -217,  -217,  -217,   123,   149,   150,  -217,
1083
    -217,    63,   -50,    12,   191,   192,   194,   195,  -217,  -217,
1084
     151,  -217,  -217,  -217,  -217,  -217,  -217,   585,    64,    64,
1085
     607,    49,   -66,   -66,   -49,   -49,   602,   602,   602,   602,
1086
    -217,   -97,  -217,  -217,  -217,   -92,  -217,  -217,  -217,   -95,
1087
    -217,  -217,  -217,  -217,    19,    19,  -217,  -217,  -217,  -217,
1088
     -12,  -217,   163,  -217,   125,  -217,   132,  -217,  -217,  -217,
1089
    -217,  -217,    65,  -217,  -217,  -217
1090
};
1091
1092
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1093
     Performed when YYTABLE does not specify something else to do.  Zero
1094
     means the default is an error.  */
1095
static const yytype_uint8 yydefact[] =
1096
{
1097
       4,     0,    51,     1,     0,     0,     0,    71,    72,    70,
1098
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1099
      83,    84,    85,    86,    88,    87,   179,   113,   114,     0,
1100
       0,     0,     0,     0,     0,     0,    69,   173,    89,    90,
1101
      91,    92,   117,   119,   120,   122,   124,    93,    94,   103,
1102
      95,    96,    97,    98,    99,   100,   102,   101,   104,   105,
1103
     106,   181,   143,   182,   183,   186,   187,   184,   185,   188,
1104
     189,   190,   191,   192,   193,   107,   201,   202,   203,   204,
1105
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1106
      24,     0,    25,     2,    51,    51,     5,     0,    31,     0,
1107
      50,    44,   125,   127,     0,   158,   157,    45,    46,     0,
1108
      48,     0,   110,   111,     0,   115,   128,   129,   130,   131,
1109
     148,   149,   132,   150,   133,     0,   116,   118,   121,   123,
1110
     145,   144,     0,     0,   171,    11,    10,    51,    51,    32,
1111
       0,   158,   157,    15,    21,    18,    20,    22,    39,    12,
1112
       0,     0,    13,    53,    52,    64,    68,    65,    66,    67,
1113
      36,    37,   108,   109,     0,     0,     0,    58,    59,    60,
1114
      61,    62,    63,    34,    35,    38,   126,     0,   152,   154,
1115
     156,     0,     0,     0,     0,     0,     0,     0,     0,   151,
1116
     153,   155,     0,     0,     0,     0,   198,     0,     0,     0,
1117
      47,   194,   219,     0,     0,     0,    49,   215,   175,   174,
1118
     177,   178,   176,     0,     0,     0,     7,    51,    51,     6,
1119
     157,     9,     8,    40,   172,   180,     0,     0,     0,    23,
1120
      26,    30,     0,    29,     0,     0,     0,     0,   138,   139,
1121
     135,   142,   136,   146,   147,   137,    33,     0,   169,   170,
1122
     167,   166,   161,   162,   163,   164,   165,   168,    42,    43,
1123
     199,     0,   195,   196,   220,     0,   216,   217,   112,   157,
1124
      17,    16,    19,    14,     0,     0,    55,    57,    54,    56,
1125
       0,   159,     0,   197,     0,   218,     0,    27,    28,   140,
1126
     141,   134,     0,   200,   221,   160
1127
};
1128
1129
  /* YYPGOTO[NTERM-NUM].  */
1130
static const yytype_int16 yypgoto[] =
1131
{
1132
    -217,  -217,  -217,   199,   -26,  -216,   -91,  -133,     7,    -2,
1133
    -217,  -217,   -77,  -217,  -217,  -217,  -217,    32,  -217,     9,
1134
    -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,
1135
     -43,   -34,   -27,   -81,  -217,   -38,  -217,  -217,  -217,  -217,
1136
    -195,  -217,  -217,  -217,  -217,  -180,  -217
1137
};
1138
1139
  /* YYDEFGOTO[NTERM-NUM].  */
1140
static const yytype_int16 yydefgoto[] =
1141
{
1142
      -1,     1,     2,   140,   137,   138,   229,   149,   150,   132,
1143
     231,   232,    96,    97,    98,    99,   173,   174,   175,   133,
1144
     101,   102,   176,   240,   291,   242,   103,   245,   122,   124,
1145
     194,   195,   104,   105,   213,   106,   107,   108,   109,   200,
1146
     201,   261,   110,   111,   206,   207,   265
1147
};
1148
1149
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1150
     positive, shift that token.  If negative, reduce the rule whose
1151
     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1152
static const yytype_int16 yytable[] =
1153
{
1154
      95,   226,   260,   -41,   126,   127,   148,   128,   129,    94,
1155
     -13,   100,   120,    26,   141,   238,   275,   139,   230,   243,
1156
     130,   135,   136,   264,   135,   289,   -29,   -29,     3,   135,
1157
     116,   223,   196,   177,   283,   121,   225,   131,   239,   285,
1158
     125,   125,   244,   125,   125,   284,   216,   221,   290,   286,
1159
     112,   141,   178,   179,   180,   113,    26,   142,   114,   152,
1160
     219,   222,   187,   188,   134,   155,   198,   157,   204,   158,
1161
     159,   135,   136,   192,   193,   199,   202,   205,   115,   143,
1162
     144,   145,   146,   147,   117,   230,   123,   214,   118,   293,
1163
     192,   193,    95,    95,   142,   151,   178,   179,   180,   220,
1164
     220,    94,    94,   100,   100,   215,   294,   197,    92,   203,
1165
     208,   209,   152,   233,   181,   182,   119,   234,   235,   210,
1166
     211,   212,   227,   125,   -41,   -41,   228,    92,   189,   190,
1167
     191,   -13,   -13,   224,   -41,   218,   218,   141,   241,   177,
1168
     139,   -13,    90,   225,   217,   217,   100,   100,   151,   125,
1169
     247,    92,   236,   237,   248,   249,   250,   251,   252,   253,
1170
     254,   255,   196,   262,   263,   256,   257,   258,   259,   202,
1171
     266,    92,   189,   190,   191,   185,   186,   187,   188,   220,
1172
     269,   267,   268,   287,   288,   270,   271,   272,   192,   193,
1173
     185,   186,   187,   188,   273,   276,   277,   278,   279,   280,
1174
     292,    93,   295,   192,   193,   246,   274,     0,     0,     0,
1175
       0,     0,     0,     0,     0,   218,    95,     0,     0,     0,
1176
       0,     0,     0,    -3,   217,   217,   100,   100,     0,     0,
1177
       0,     0,     0,     0,     4,     5,   152,   152,     6,     7,
1178
       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1179
      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
1180
      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1181
       0,     0,   151,   151,     0,     0,     0,     0,     0,    36,
1182
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1183
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1184
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1185
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1186
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1187
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1188
      87,    88,    89,     0,     0,     0,    90,     0,     0,     0,
1189
      91,     0,     4,     5,     0,    92,     6,     7,     8,     9,
1190
      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1191
      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
1192
      28,    29,    30,    31,    32,    33,    34,    35,     0,     0,
1193
       0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
1194
       0,   143,   144,   145,   146,   147,     0,     0,    37,    38,
1195
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1196
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1197
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1198
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1199
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1200
      89,     0,     0,     0,    90,     0,     0,     0,    91,     0,
1201
       4,     5,     0,    92,     6,     7,     8,     9,    10,    11,
1202
      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1203
      22,    23,    24,    25,     0,     0,    26,    27,    28,    29,
1204
      30,    31,    32,    33,    34,    35,     0,     0,     0,     0,
1205
       0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
1206
       0,     0,     0,     0,     0,     0,    37,    38,    39,    40,
1207
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1208
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1209
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1210
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1211
      81,    82,    83,    84,    85,    86,    87,    88,    89,     0,
1212
       0,     0,    90,     0,     0,     0,    91,     0,     0,     0,
1213
       0,    92,     7,     8,     9,    10,    11,    12,    13,    14,
1214
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1215
      25,     0,     0,    26,     0,   178,   179,   180,     0,     0,
1216
       0,     0,     0,   181,   182,     0,     0,     0,     0,     0,
1217
       0,     0,    36,     0,     0,     0,     0,     0,     0,     0,
1218
       0,     0,     0,    37,    38,    39,    40,    41,     0,     0,
1219
     181,   182,     0,    47,    48,    49,    50,    51,    52,    53,
1220
      54,    55,    56,    57,    58,    59,    60,   181,   182,     0,
1221
       0,     0,   181,   182,     0,     0,     0,     0,     0,     0,
1222
       0,    75,   183,   184,   185,   186,   187,   188,     0,     0,
1223
       0,   189,   190,   191,     0,     0,     0,   192,   193,     0,
1224
       0,     0,     0,    91,     0,     0,     0,     0,    92,   183,
1225
     184,   185,   186,   187,   188,     0,     0,     0,     0,     0,
1226
       0,     0,   281,   282,   192,   193,   183,   184,   185,   186,
1227
     187,   188,   184,   185,   186,   187,   188,     0,     0,     0,
1228
       0,   192,   193,     0,     0,     0,   192,   193,   153,   154,
1229
     155,   156,   157,     0,   158,   159,     0,     0,   160,   161,
1230
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1231
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1232
     162,   163,     0,     0,     0,     0,     0,     0,     0,     0,
1233
       0,     0,   164,   165,   166,   167,   168,   169,   170,   171,
1234
     172
1235
};
1236
1237
static const yytype_int16 yycheck[] =
1238
{
1239
       2,     8,   197,     0,    42,    43,    97,    45,    46,     2,
1240
       0,     2,    37,    37,    95,    37,   232,    94,   151,    37,
1241
      43,   121,   122,   203,   121,    37,   121,   122,     0,   121,
1242
      60,   131,    37,   136,   131,    60,   131,    60,    60,   131,
1243
      42,    43,    60,    45,    46,   261,   137,   138,    60,   265,
1244
      37,   132,    57,    58,    59,    37,    37,    95,    37,    97,
1245
     137,   138,   128,   129,    91,     5,   109,     7,   111,     9,
1246
      10,   121,   122,   139,   140,   109,    37,   111,    37,    60,
1247
      61,    62,    63,    64,    60,   218,    60,   125,    37,   284,
1248
     139,   140,    94,    95,   132,    97,    57,    58,    59,   137,
1249
     138,    94,    95,    94,    95,   132,   286,   109,   132,   111,
1250
     124,   125,   150,   151,    65,    66,    37,   121,   122,   133,
1251
     134,   135,   129,   125,   121,   122,   129,   132,   133,   134,
1252
     135,   121,   122,   131,   131,   137,   138,   218,    60,   136,
1253
     217,   131,   123,   131,   137,   138,   137,   138,   150,   151,
1254
     177,   132,   121,   122,   181,   182,   183,   184,   185,   186,
1255
     187,   188,    37,    37,    37,   192,   193,   194,   195,    37,
1256
      37,   132,   133,   134,   135,   126,   127,   128,   129,   217,
1257
     218,    37,    37,   274,   275,    62,    37,    37,   139,   140,
1258
     126,   127,   128,   129,   131,     4,     4,     3,     3,    48,
1259
      37,     2,   137,   139,   140,   173,   232,    -1,    -1,    -1,
1260
      -1,    -1,    -1,    -1,    -1,   217,   218,    -1,    -1,    -1,
1261
      -1,    -1,    -1,     0,   217,   218,   217,   218,    -1,    -1,
1262
      -1,    -1,    -1,    -1,    11,    12,   274,   275,    15,    16,
1263
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1264
      27,    28,    29,    30,    31,    32,    33,    34,    -1,    -1,
1265
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1266
      -1,    -1,   274,   275,    -1,    -1,    -1,    -1,    -1,    56,
1267
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1268
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1269
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1270
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1271
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1272
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1273
     117,   118,   119,    -1,    -1,    -1,   123,    -1,    -1,    -1,
1274
     127,    -1,    11,    12,    -1,   132,    15,    16,    17,    18,
1275
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1276
      29,    30,    31,    32,    33,    34,    -1,    -1,    37,    38,
1277
      39,    40,    41,    42,    43,    44,    45,    46,    -1,    -1,
1278
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,
1279
      -1,    60,    61,    62,    63,    64,    -1,    -1,    67,    68,
1280
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1281
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1282
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1283
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1284
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1285
     119,    -1,    -1,    -1,   123,    -1,    -1,    -1,   127,    -1,
1286
      11,    12,    -1,   132,    15,    16,    17,    18,    19,    20,
1287
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1288
      31,    32,    33,    34,    -1,    -1,    37,    38,    39,    40,
1289
      41,    42,    43,    44,    45,    46,    -1,    -1,    -1,    -1,
1290
      -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,    -1,    -1,
1291
      -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,
1292
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1293
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1294
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1295
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1296
     111,   112,   113,   114,   115,   116,   117,   118,   119,    -1,
1297
      -1,    -1,   123,    -1,    -1,    -1,   127,    -1,    -1,    -1,
1298
      -1,   132,    16,    17,    18,    19,    20,    21,    22,    23,
1299
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1300
      34,    -1,    -1,    37,    -1,    57,    58,    59,    -1,    -1,
1301
      -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,
1302
      -1,    -1,    56,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1303
      -1,    -1,    -1,    67,    68,    69,    70,    71,    -1,    -1,
1304
      65,    66,    -1,    77,    78,    79,    80,    81,    82,    83,
1305
      84,    85,    86,    87,    88,    89,    90,    65,    66,    -1,
1306
      -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,
1307
      -1,   105,   124,   125,   126,   127,   128,   129,    -1,    -1,
1308
      -1,   133,   134,   135,    -1,    -1,    -1,   139,   140,    -1,
1309
      -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,   132,   124,
1310
     125,   126,   127,   128,   129,    -1,    -1,    -1,    -1,    -1,
1311
      -1,    -1,   137,   138,   139,   140,   124,   125,   126,   127,
1312
     128,   129,   125,   126,   127,   128,   129,    -1,    -1,    -1,
1313
      -1,   139,   140,    -1,    -1,    -1,   139,   140,     3,     4,
1314
       5,     6,     7,    -1,     9,    10,    -1,    -1,    13,    14,
1315
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1316
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1317
      35,    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1318
      -1,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
1319
      55
1320
};
1321
1322
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1323
     symbol of state STATE-NUM.  */
1324
static const yytype_uint8 yystos[] =
1325
{
1326
       0,   142,   143,     0,    11,    12,    15,    16,    17,    18,
1327
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1328
      29,    30,    31,    32,    33,    34,    37,    38,    39,    40,
1329
      41,    42,    43,    44,    45,    46,    56,    67,    68,    69,
1330
      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1331
      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1332
      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1333
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1334
     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1335
     123,   127,   132,   144,   149,   150,   153,   154,   155,   156,
1336
     160,   161,   162,   167,   173,   174,   176,   177,   178,   179,
1337
     183,   184,    37,    37,    37,    37,    60,    60,    37,    37,
1338
      37,    60,   169,    60,   170,   150,   176,   176,   176,   176,
1339
      43,    60,   150,   160,   173,   121,   122,   145,   146,   153,
1340
     144,   174,   176,    60,    61,    62,    63,    64,   147,   148,
1341
     149,   150,   176,     3,     4,     5,     6,     7,     9,    10,
1342
      13,    14,    35,    36,    47,    48,    49,    50,    51,    52,
1343
      53,    54,    55,   157,   158,   159,   163,   136,    57,    58,
1344
      59,    65,    66,   124,   125,   126,   127,   128,   129,   133,
1345
     134,   135,   139,   140,   171,   172,    37,   150,   171,   172,
1346
     180,   181,    37,   150,   171,   172,   185,   186,   124,   125,
1347
     133,   134,   135,   175,   176,   173,   147,   149,   150,   153,
1348
     176,   147,   153,   131,   131,   131,     8,   129,   129,   147,
1349
     148,   151,   152,   176,   121,   122,   121,   122,    37,    60,
1350
     164,    60,   166,    37,    60,   168,   158,   173,   173,   173,
1351
     173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
1352
     181,   182,    37,    37,   186,   187,    37,    37,    37,   176,
1353
      62,    37,    37,   131,   145,   146,     4,     4,     3,     3,
1354
      48,   137,   138,   131,   146,   131,   146,   147,   147,    37,
1355
      60,   165,    37,   181,   186,   137
1356
};
1357
1358
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1359
static const yytype_uint8 yyr1[] =
1360
{
1361
       0,   141,   142,   142,   143,   144,   144,   144,   144,   144,
1362
     145,   146,   147,   147,   147,   148,   148,   148,   148,   148,
1363
     148,   148,   148,   148,   149,   150,   151,   151,   151,   152,
1364
     152,   153,   153,   154,   154,   154,   154,   154,   154,   155,
1365
     155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
1366
     156,   156,   157,   157,   157,   157,   157,   157,   157,   157,
1367
     157,   157,   157,   157,   158,   158,   158,   158,   159,   160,
1368
     160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
1369
     160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
1370
     160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
1371
     160,   160,   160,   160,   160,   160,   160,   160,   161,   161,
1372
     161,   161,   161,   161,   161,   161,   161,   161,   161,   161,
1373
     161,   161,   161,   161,   161,   161,   161,   161,   162,   162,
1374
     162,   162,   162,   162,   163,   163,   163,   163,   164,   164,
1375
     165,   165,   166,   167,   167,   167,   168,   168,   169,   169,
1376
     170,   171,   171,   171,   172,   172,   172,   173,   173,   174,
1377
     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
1378
     174,   174,   174,   174,   175,   175,   175,   175,   175,   176,
1379
     176,   177,   177,   177,   177,   177,   177,   177,   178,   178,
1380
     178,   178,   179,   179,   180,   180,   180,   180,   181,   182,
1381
     182,   183,   183,   183,   183,   183,   183,   184,   184,   184,
1382
     184,   184,   184,   184,   184,   185,   185,   185,   185,   186,
1383
     187,   187
1384
};
1385
1386
  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
1387
static const yytype_int8 yyr2[] =
1388
{
1389
       0,     2,     2,     1,     0,     1,     3,     3,     3,     3,
1390
       1,     1,     1,     1,     3,     1,     3,     3,     1,     3,
1391
       1,     1,     1,     2,     1,     1,     1,     3,     3,     1,
1392
       1,     1,     2,     3,     2,     2,     2,     2,     2,     2,
1393
       3,     1,     3,     3,     1,     1,     1,     2,     1,     2,
1394
       1,     0,     1,     1,     3,     3,     3,     3,     1,     1,
1395
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1396
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1397
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1398
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1399
       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
1400
       2,     2,     4,     1,     1,     2,     2,     1,     2,     1,
1401
       1,     2,     1,     2,     1,     1,     2,     1,     2,     2,
1402
       2,     2,     2,     2,     4,     2,     2,     2,     1,     1,
1403
       1,     1,     1,     1,     2,     2,     1,     1,     1,     1,
1404
       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1405
       6,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1406
       3,     2,     3,     1,     1,     1,     1,     1,     1,     1,
1407
       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1408
       1,     1,     1,     1,     1,     2,     2,     3,     1,     1,
1409
       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1410
       1,     1,     1,     1,     1,     1,     2,     2,     3,     1,
1411
       1,     3
1412
};
1413
1414
1415
#define yyerrok         (yyerrstatus = 0)
1416
#define yyclearin       (yychar = YYEMPTY)
1417
393k
#define YYEMPTY         (-2)
1418
246k
#define YYEOF           0
1419
1420
9.26k
#define YYACCEPT        goto yyacceptlab
1421
3.73k
#define YYABORT         goto yyabortlab
1422
0
#define YYERROR         goto yyerrorlab
1423
1424
1425
#define YYRECOVERING()  (!!yyerrstatus)
1426
1427
#define YYBACKUP(Token, Value)                                    \
1428
  do                                                              \
1429
    if (yychar == YYEMPTY)                                        \
1430
      {                                                           \
1431
        yychar = (Token);                                         \
1432
        yylval = (Value);                                         \
1433
        YYPOPSTACK (yylen);                                       \
1434
        yystate = *yyssp;                                         \
1435
        goto yybackup;                                            \
1436
      }                                                           \
1437
    else                                                          \
1438
      {                                                           \
1439
        yyerror (yyscanner, cstate, YY_("syntax error: cannot back up")); \
1440
        YYERROR;                                                  \
1441
      }                                                           \
1442
  while (0)
1443
1444
/* Error token number */
1445
13.6k
#define YYTERROR        1
1446
#define YYERRCODE       256
1447
1448
1449
1450
/* Enable debugging if requested.  */
1451
#if YYDEBUG
1452
1453
# ifndef YYFPRINTF
1454
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1455
#  define YYFPRINTF fprintf
1456
# endif
1457
1458
# define YYDPRINTF(Args)                        \
1459
do {                                            \
1460
  if (yydebug)                                  \
1461
    YYFPRINTF Args;                             \
1462
} while (0)
1463
1464
/* This macro is provided for backward compatibility. */
1465
#ifndef YY_LOCATION_PRINT
1466
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1467
#endif
1468
1469
1470
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
1471
do {                                                                      \
1472
  if (yydebug)                                                            \
1473
    {                                                                     \
1474
      YYFPRINTF (stderr, "%s ", Title);                                   \
1475
      yy_symbol_print (stderr,                                            \
1476
                  Type, Value, yyscanner, cstate); \
1477
      YYFPRINTF (stderr, "\n");                                           \
1478
    }                                                                     \
1479
} while (0)
1480
1481
1482
/*-----------------------------------.
1483
| Print this symbol's value on YYO.  |
1484
`-----------------------------------*/
1485
1486
static void
1487
yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, void *yyscanner, compiler_state_t *cstate)
1488
{
1489
  FILE *yyoutput = yyo;
1490
  YYUSE (yyoutput);
1491
  YYUSE (yyscanner);
1492
  YYUSE (cstate);
1493
  if (!yyvaluep)
1494
    return;
1495
# ifdef YYPRINT
1496
  if (yytype < YYNTOKENS)
1497
    YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
1498
# endif
1499
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1500
  YYUSE (yytype);
1501
  YY_IGNORE_MAYBE_UNINITIALIZED_END
1502
}
1503
1504
1505
/*---------------------------.
1506
| Print this symbol on YYO.  |
1507
`---------------------------*/
1508
1509
static void
1510
yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, void *yyscanner, compiler_state_t *cstate)
1511
{
1512
  YYFPRINTF (yyo, "%s %s (",
1513
             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1514
1515
  yy_symbol_value_print (yyo, yytype, yyvaluep, yyscanner, cstate);
1516
  YYFPRINTF (yyo, ")");
1517
}
1518
1519
/*------------------------------------------------------------------.
1520
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1521
| TOP (included).                                                   |
1522
`------------------------------------------------------------------*/
1523
1524
static void
1525
yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
1526
{
1527
  YYFPRINTF (stderr, "Stack now");
1528
  for (; yybottom <= yytop; yybottom++)
1529
    {
1530
      int yybot = *yybottom;
1531
      YYFPRINTF (stderr, " %d", yybot);
1532
    }
1533
  YYFPRINTF (stderr, "\n");
1534
}
1535
1536
# define YY_STACK_PRINT(Bottom, Top)                            \
1537
do {                                                            \
1538
  if (yydebug)                                                  \
1539
    yy_stack_print ((Bottom), (Top));                           \
1540
} while (0)
1541
1542
1543
/*------------------------------------------------.
1544
| Report that the YYRULE is going to be reduced.  |
1545
`------------------------------------------------*/
1546
1547
static void
1548
yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule, void *yyscanner, compiler_state_t *cstate)
1549
{
1550
  int yylno = yyrline[yyrule];
1551
  int yynrhs = yyr2[yyrule];
1552
  int yyi;
1553
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
1554
             yyrule - 1, yylno);
1555
  /* The symbols being reduced.  */
1556
  for (yyi = 0; yyi < yynrhs; yyi++)
1557
    {
1558
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1559
      yy_symbol_print (stderr,
1560
                       yystos[+yyssp[yyi + 1 - yynrhs]],
1561
                       &yyvsp[(yyi + 1) - (yynrhs)]
1562
                                              , yyscanner, cstate);
1563
      YYFPRINTF (stderr, "\n");
1564
    }
1565
}
1566
1567
# define YY_REDUCE_PRINT(Rule)          \
1568
do {                                    \
1569
  if (yydebug)                          \
1570
    yy_reduce_print (yyssp, yyvsp, Rule, yyscanner, cstate); \
1571
} while (0)
1572
1573
/* Nonzero means print parse trace.  It is left uninitialized so that
1574
   multiple parsers can coexist.  */
1575
int yydebug;
1576
#else /* !YYDEBUG */
1577
# define YYDPRINTF(Args)
1578
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1579
# define YY_STACK_PRINT(Bottom, Top)
1580
# define YY_REDUCE_PRINT(Rule)
1581
#endif /* !YYDEBUG */
1582
1583
1584
/* YYINITDEPTH -- initial size of the parser's stacks.  */
1585
#ifndef YYINITDEPTH
1586
13.0k
# define YYINITDEPTH 200
1587
#endif
1588
1589
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1590
   if the built-in stack extension method is used).
1591
1592
   Do not make this value too large; the results are undefined if
1593
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1594
   evaluated with infinite-precision integer arithmetic.  */
1595
1596
#ifndef YYMAXDEPTH
1597
30
# define YYMAXDEPTH 10000
1598
#endif
1599
1600
1601
#if YYERROR_VERBOSE
1602
1603
# ifndef yystrlen
1604
#  if defined __GLIBC__ && defined _STRING_H
1605
#   define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
1606
#  else
1607
/* Return the length of YYSTR.  */
1608
static YYPTRDIFF_T
1609
yystrlen (const char *yystr)
1610
{
1611
  YYPTRDIFF_T yylen;
1612
  for (yylen = 0; yystr[yylen]; yylen++)
1613
    continue;
1614
  return yylen;
1615
}
1616
#  endif
1617
# endif
1618
1619
# ifndef yystpcpy
1620
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1621
#   define yystpcpy stpcpy
1622
#  else
1623
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1624
   YYDEST.  */
1625
static char *
1626
yystpcpy (char *yydest, const char *yysrc)
1627
{
1628
  char *yyd = yydest;
1629
  const char *yys = yysrc;
1630
1631
  while ((*yyd++ = *yys++) != '\0')
1632
    continue;
1633
1634
  return yyd - 1;
1635
}
1636
#  endif
1637
# endif
1638
1639
# ifndef yytnamerr
1640
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1641
   quotes and backslashes, so that it's suitable for yyerror.  The
1642
   heuristic is that double-quoting is unnecessary unless the string
1643
   contains an apostrophe, a comma, or backslash (other than
1644
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1645
   null, do not copy; instead, return the length of what the result
1646
   would have been.  */
1647
static YYPTRDIFF_T
1648
yytnamerr (char *yyres, const char *yystr)
1649
{
1650
  if (*yystr == '"')
1651
    {
1652
      YYPTRDIFF_T yyn = 0;
1653
      char const *yyp = yystr;
1654
1655
      for (;;)
1656
        switch (*++yyp)
1657
          {
1658
          case '\'':
1659
          case ',':
1660
            goto do_not_strip_quotes;
1661
1662
          case '\\':
1663
            if (*++yyp != '\\')
1664
              goto do_not_strip_quotes;
1665
            else
1666
              goto append;
1667
1668
          append:
1669
          default:
1670
            if (yyres)
1671
              yyres[yyn] = *yyp;
1672
            yyn++;
1673
            break;
1674
1675
          case '"':
1676
            if (yyres)
1677
              yyres[yyn] = '\0';
1678
            return yyn;
1679
          }
1680
    do_not_strip_quotes: ;
1681
    }
1682
1683
  if (yyres)
1684
    return yystpcpy (yyres, yystr) - yyres;
1685
  else
1686
    return yystrlen (yystr);
1687
}
1688
# endif
1689
1690
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1691
   about the unexpected token YYTOKEN for the state stack whose top is
1692
   YYSSP.
1693
1694
   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
1695
   not large enough to hold the message.  In that case, also set
1696
   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
1697
   required number of bytes is too large to store.  */
1698
static int
1699
yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
1700
                yy_state_t *yyssp, int yytoken)
1701
{
1702
  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1703
  /* Internationalized format string. */
1704
  const char *yyformat = YY_NULLPTR;
1705
  /* Arguments of yyformat: reported tokens (one for the "unexpected",
1706
     one per "expected"). */
1707
  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1708
  /* Actual size of YYARG. */
1709
  int yycount = 0;
1710
  /* Cumulated lengths of YYARG.  */
1711
  YYPTRDIFF_T yysize = 0;
1712
1713
  /* There are many possibilities here to consider:
1714
     - If this state is a consistent state with a default action, then
1715
       the only way this function was invoked is if the default action
1716
       is an error action.  In that case, don't check for expected
1717
       tokens because there are none.
1718
     - The only way there can be no lookahead present (in yychar) is if
1719
       this state is a consistent state with a default action.  Thus,
1720
       detecting the absence of a lookahead is sufficient to determine
1721
       that there is no unexpected or expected token to report.  In that
1722
       case, just report a simple "syntax error".
1723
     - Don't assume there isn't a lookahead just because this state is a
1724
       consistent state with a default action.  There might have been a
1725
       previous inconsistent state, consistent state with a non-default
1726
       action, or user semantic action that manipulated yychar.
1727
     - Of course, the expected token list depends on states to have
1728
       correct lookahead information, and it depends on the parser not
1729
       to perform extra reductions after fetching a lookahead from the
1730
       scanner and before detecting a syntax error.  Thus, state merging
1731
       (from LALR or IELR) and default reductions corrupt the expected
1732
       token list.  However, the list is correct for canonical LR with
1733
       one exception: it will still contain any token that will not be
1734
       accepted due to an error action in a later state.
1735
  */
1736
  if (yytoken != YYEMPTY)
1737
    {
1738
      int yyn = yypact[+*yyssp];
1739
      YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1740
      yysize = yysize0;
1741
      yyarg[yycount++] = yytname[yytoken];
1742
      if (!yypact_value_is_default (yyn))
1743
        {
1744
          /* Start YYX at -YYN if negative to avoid negative indexes in
1745
             YYCHECK.  In other words, skip the first -YYN actions for
1746
             this state because they are default actions.  */
1747
          int yyxbegin = yyn < 0 ? -yyn : 0;
1748
          /* Stay within bounds of both yycheck and yytname.  */
1749
          int yychecklim = YYLAST - yyn + 1;
1750
          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1751
          int yyx;
1752
1753
          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1754
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1755
                && !yytable_value_is_error (yytable[yyx + yyn]))
1756
              {
1757
                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1758
                  {
1759
                    yycount = 1;
1760
                    yysize = yysize0;
1761
                    break;
1762
                  }
1763
                yyarg[yycount++] = yytname[yyx];
1764
                {
1765
                  YYPTRDIFF_T yysize1
1766
                    = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1767
                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
1768
                    yysize = yysize1;
1769
                  else
1770
                    return 2;
1771
                }
1772
              }
1773
        }
1774
    }
1775
1776
  switch (yycount)
1777
    {
1778
# define YYCASE_(N, S)                      \
1779
      case N:                               \
1780
        yyformat = S;                       \
1781
      break
1782
    default: /* Avoid compiler warnings. */
1783
      YYCASE_(0, YY_("syntax error"));
1784
      YYCASE_(1, YY_("syntax error, unexpected %s"));
1785
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1786
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1787
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1788
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1789
# undef YYCASE_
1790
    }
1791
1792
  {
1793
    /* Don't count the "%s"s in the final size, but reserve room for
1794
       the terminator.  */
1795
    YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
1796
    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
1797
      yysize = yysize1;
1798
    else
1799
      return 2;
1800
  }
1801
1802
  if (*yymsg_alloc < yysize)
1803
    {
1804
      *yymsg_alloc = 2 * yysize;
1805
      if (! (yysize <= *yymsg_alloc
1806
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1807
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1808
      return 1;
1809
    }
1810
1811
  /* Avoid sprintf, as that infringes on the user's name space.
1812
     Don't have undefined behavior even if the translation
1813
     produced a string with the wrong number of "%s"s.  */
1814
  {
1815
    char *yyp = *yymsg;
1816
    int yyi = 0;
1817
    while ((*yyp = *yyformat) != '\0')
1818
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1819
        {
1820
          yyp += yytnamerr (yyp, yyarg[yyi++]);
1821
          yyformat += 2;
1822
        }
1823
      else
1824
        {
1825
          ++yyp;
1826
          ++yyformat;
1827
        }
1828
  }
1829
  return 0;
1830
}
1831
#endif /* YYERROR_VERBOSE */
1832
1833
/*-----------------------------------------------.
1834
| Release the memory associated to this symbol.  |
1835
`-----------------------------------------------*/
1836
1837
static void
1838
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, void *yyscanner, compiler_state_t *cstate)
1839
33.0k
{
1840
33.0k
  YYUSE (yyvaluep);
1841
33.0k
  YYUSE (yyscanner);
1842
33.0k
  YYUSE (cstate);
1843
33.0k
  if (!yymsg)
1844
0
    yymsg = "Deleting";
1845
33.0k
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1846
1847
33.0k
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1848
33.0k
  YYUSE (yytype);
1849
33.0k
  YY_IGNORE_MAYBE_UNINITIALIZED_END
1850
33.0k
}
1851
1852
1853
1854
1855
/*----------.
1856
| yyparse.  |
1857
`----------*/
1858
1859
int
1860
yyparse (void *yyscanner, compiler_state_t *cstate)
1861
13.0k
{
1862
/* The lookahead symbol.  */
1863
13.0k
int yychar;
1864
1865
1866
/* The semantic value of the lookahead symbol.  */
1867
/* Default value used for initialization, for pacifying older GCCs
1868
   or non-GCC compilers.  */
1869
13.0k
YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1870
13.0k
YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
1871
1872
    /* Number of syntax errors so far.  */
1873
13.0k
    int yynerrs;
1874
1875
13.0k
    yy_state_fast_t yystate;
1876
    /* Number of tokens to shift before error messages enabled.  */
1877
13.0k
    int yyerrstatus;
1878
1879
    /* The stacks and their tools:
1880
       'yyss': related to states.
1881
       'yyvs': related to semantic values.
1882
1883
       Refer to the stacks through separate pointers, to allow yyoverflow
1884
       to reallocate them elsewhere.  */
1885
1886
    /* The state stack.  */
1887
13.0k
    yy_state_t yyssa[YYINITDEPTH];
1888
13.0k
    yy_state_t *yyss;
1889
13.0k
    yy_state_t *yyssp;
1890
1891
    /* The semantic value stack.  */
1892
13.0k
    YYSTYPE yyvsa[YYINITDEPTH];
1893
13.0k
    YYSTYPE *yyvs;
1894
13.0k
    YYSTYPE *yyvsp;
1895
1896
13.0k
    YYPTRDIFF_T yystacksize;
1897
1898
13.0k
  int yyn;
1899
13.0k
  int yyresult;
1900
  /* Lookahead token as an internal (translated) token number.  */
1901
13.0k
  int yytoken = 0;
1902
  /* The variables used to return semantic value and location from the
1903
     action routines.  */
1904
13.0k
  YYSTYPE yyval;
1905
1906
#if YYERROR_VERBOSE
1907
  /* Buffer for error messages, and its allocated size.  */
1908
  char yymsgbuf[128];
1909
  char *yymsg = yymsgbuf;
1910
  YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
1911
#endif
1912
1913
345k
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1914
1915
  /* The number of symbols on the RHS of the reduced rule.
1916
     Keep to zero when no symbol should be popped.  */
1917
13.0k
  int yylen = 0;
1918
1919
13.0k
  yyssp = yyss = yyssa;
1920
13.0k
  yyvsp = yyvs = yyvsa;
1921
13.0k
  yystacksize = YYINITDEPTH;
1922
1923
13.0k
  YYDPRINTF ((stderr, "Starting parse\n"));
1924
1925
13.0k
  yystate = 0;
1926
13.0k
  yyerrstatus = 0;
1927
13.0k
  yynerrs = 0;
1928
13.0k
  yychar = YYEMPTY; /* Cause a token to be read.  */
1929
13.0k
  goto yysetstate;
1930
1931
1932
/*------------------------------------------------------------.
1933
| yynewstate -- push a new state, which is found in yystate.  |
1934
`------------------------------------------------------------*/
1935
448k
yynewstate:
1936
  /* In all cases, when you get here, the value and location stacks
1937
     have just been pushed.  So pushing a state here evens the stacks.  */
1938
448k
  yyssp++;
1939
1940
1941
/*--------------------------------------------------------------------.
1942
| yysetstate -- set current state (the top of the stack) to yystate.  |
1943
`--------------------------------------------------------------------*/
1944
461k
yysetstate:
1945
461k
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1946
461k
  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1947
461k
  YY_IGNORE_USELESS_CAST_BEGIN
1948
461k
  *yyssp = YY_CAST (yy_state_t, yystate);
1949
461k
  YY_IGNORE_USELESS_CAST_END
1950
1951
461k
  if (yyss + yystacksize - 1 <= yyssp)
1952
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
1953
    goto yyexhaustedlab;
1954
#else
1955
15
    {
1956
      /* Get the current used size of the three stacks, in elements.  */
1957
15
      YYPTRDIFF_T yysize = yyssp - yyss + 1;
1958
1959
# if defined yyoverflow
1960
      {
1961
        /* Give user a chance to reallocate the stack.  Use copies of
1962
           these so that the &'s don't force the real ones into
1963
           memory.  */
1964
        yy_state_t *yyss1 = yyss;
1965
        YYSTYPE *yyvs1 = yyvs;
1966
1967
        /* Each stack pointer address is followed by the size of the
1968
           data in use in that stack, in bytes.  This used to be a
1969
           conditional around just the two extra args, but that might
1970
           be undefined if yyoverflow is a macro.  */
1971
        yyoverflow (YY_("memory exhausted"),
1972
                    &yyss1, yysize * YYSIZEOF (*yyssp),
1973
                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
1974
                    &yystacksize);
1975
        yyss = yyss1;
1976
        yyvs = yyvs1;
1977
      }
1978
# else /* defined YYSTACK_RELOCATE */
1979
      /* Extend the stack our own way.  */
1980
15
      if (YYMAXDEPTH <= yystacksize)
1981
0
        goto yyexhaustedlab;
1982
15
      yystacksize *= 2;
1983
15
      if (YYMAXDEPTH < yystacksize)
1984
0
        yystacksize = YYMAXDEPTH;
1985
1986
15
      {
1987
15
        yy_state_t *yyss1 = yyss;
1988
15
        union yyalloc *yyptr =
1989
15
          YY_CAST (union yyalloc *,
1990
15
                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1991
15
        if (! yyptr)
1992
0
          goto yyexhaustedlab;
1993
15
        YYSTACK_RELOCATE (yyss_alloc, yyss);
1994
15
        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1995
15
# undef YYSTACK_RELOCATE
1996
15
        if (yyss1 != yyssa)
1997
0
          YYSTACK_FREE (yyss1);
1998
15
      }
1999
0
# endif
2000
2001
0
      yyssp = yyss + yysize - 1;
2002
15
      yyvsp = yyvs + yysize - 1;
2003
2004
15
      YY_IGNORE_USELESS_CAST_BEGIN
2005
15
      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
2006
15
                  YY_CAST (long, yystacksize)));
2007
15
      YY_IGNORE_USELESS_CAST_END
2008
2009
15
      if (yyss + yystacksize - 1 <= yyssp)
2010
0
        YYABORT;
2011
15
    }
2012
461k
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2013
2014
461k
  if (yystate == YYFINAL)
2015
9.26k
    YYACCEPT;
2016
2017
452k
  goto yybackup;
2018
2019
2020
/*-----------.
2021
| yybackup.  |
2022
`-----------*/
2023
452k
yybackup:
2024
  /* Do appropriate processing given the current state.  Read a
2025
     lookahead token if we need one and don't already have one.  */
2026
2027
  /* First try to decide what to do without reference to lookahead token.  */
2028
452k
  yyn = yypact[yystate];
2029
452k
  if (yypact_value_is_default (yyn))
2030
234k
    goto yydefault;
2031
2032
  /* Not known => get a lookahead token if don't already have one.  */
2033
2034
  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2035
218k
  if (yychar == YYEMPTY)
2036
149k
    {
2037
149k
      YYDPRINTF ((stderr, "Reading a token: "));
2038
149k
      yychar = yylex (&yylval, yyscanner);
2039
149k
    }
2040
2041
218k
  if (yychar <= YYEOF)
2042
28.1k
    {
2043
28.1k
      yychar = yytoken = YYEOF;
2044
28.1k
      YYDPRINTF ((stderr, "Now at end of input.\n"));
2045
28.1k
    }
2046
189k
  else
2047
189k
    {
2048
189k
      yytoken = YYTRANSLATE (yychar);
2049
189k
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2050
189k
    }
2051
2052
  /* If the proper action on seeing token YYTOKEN is to reduce or to
2053
     detect an error, take that action.  */
2054
218k
  yyn += yytoken;
2055
218k
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2056
56.3k
    goto yydefault;
2057
161k
  yyn = yytable[yyn];
2058
161k
  if (yyn <= 0)
2059
14.2k
    {
2060
14.2k
      if (yytable_value_is_error (yyn))
2061
0
        goto yyerrlab;
2062
14.2k
      yyn = -yyn;
2063
14.2k
      goto yyreduce;
2064
14.2k
    }
2065
2066
  /* Count tokens shifted since error; after three, turn off error
2067
     status.  */
2068
147k
  if (yyerrstatus)
2069
0
    yyerrstatus--;
2070
2071
  /* Shift the lookahead token.  */
2072
147k
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2073
147k
  yystate = yyn;
2074
147k
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2075
147k
  *++yyvsp = yylval;
2076
147k
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2077
2078
  /* Discard the shifted token.  */
2079
147k
  yychar = YYEMPTY;
2080
147k
  goto yynewstate;
2081
2082
2083
/*-----------------------------------------------------------.
2084
| yydefault -- do the default action for the current state.  |
2085
`-----------------------------------------------------------*/
2086
290k
yydefault:
2087
290k
  yyn = yydefact[yystate];
2088
290k
  if (yyn == 0)
2089
1.77k
    goto yyerrlab;
2090
288k
  goto yyreduce;
2091
2092
2093
/*-----------------------------.
2094
| yyreduce -- do a reduction.  |
2095
`-----------------------------*/
2096
303k
yyreduce:
2097
  /* yyn is the number of a rule to reduce with.  */
2098
303k
  yylen = yyr2[yyn];
2099
2100
  /* If YYLEN is nonzero, implement the default value of the action:
2101
     '$$ = $1'.
2102
2103
     Otherwise, the following line sets YYVAL to garbage.
2104
     This behavior is undocumented and Bison
2105
     users should not rely upon it.  Assigning to YYVAL
2106
     unconditionally makes the parser a bit smaller, and it avoids a
2107
     GCC warning that YYVAL may be used uninitialized.  */
2108
303k
  yyval = yyvsp[1-yylen];
2109
2110
2111
303k
  YY_REDUCE_PRINT (yyn);
2112
303k
  switch (yyn)
2113
303k
    {
2114
7.13k
  case 2:
2115
7.13k
#line 436 "/src/libpcap/build/grammar.y"
2116
7.13k
{
2117
  /*
2118
   * I'm not sure we have a reason to use yynerrs, but it's
2119
   * declared, and incremented, whether we need it or not,
2120
   * which means that Clang 15 will give a "used but not
2121
   * set" warning.  This should suppress the warning for
2122
   * yynerrs without suppressing it for other variables.
2123
   */
2124
7.13k
  (void) yynerrs;
2125
7.13k
  CHECK_INT_VAL(finish_parse(cstate, (yyvsp[0].blk).b));
2126
7.13k
}
2127
7.13k
#line 2128 "/src/libpcap/build/grammar.c"
2128
7.13k
    break;
2129
2130
13.0k
  case 4:
2131
13.0k
#line 449 "/src/libpcap/build/grammar.y"
2132
13.0k
                                { (yyval.blk).q = qerr; }
2133
13.0k
#line 2134 "/src/libpcap/build/grammar.c"
2134
13.0k
    break;
2135
2136
4.18k
  case 6:
2137
4.18k
#line 452 "/src/libpcap/build/grammar.y"
2138
4.18k
                                { gen_and((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2139
4.18k
#line 2140 "/src/libpcap/build/grammar.c"
2140
4.18k
    break;
2141
2142
3.48k
  case 7:
2143
3.48k
#line 453 "/src/libpcap/build/grammar.y"
2144
3.48k
                                { gen_and((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2145
3.48k
#line 2146 "/src/libpcap/build/grammar.c"
2146
3.48k
    break;
2147
2148
3.39k
  case 8:
2149
3.39k
#line 454 "/src/libpcap/build/grammar.y"
2150
3.39k
                                { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2151
3.39k
#line 2152 "/src/libpcap/build/grammar.c"
2152
3.39k
    break;
2153
2154
7.49k
  case 9:
2155
7.49k
#line 455 "/src/libpcap/build/grammar.y"
2156
7.49k
                                { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2157
7.49k
#line 2158 "/src/libpcap/build/grammar.c"
2158
7.49k
    break;
2159
2160
8.46k
  case 10:
2161
8.46k
#line 457 "/src/libpcap/build/grammar.y"
2162
8.46k
                                { (yyval.blk) = (yyvsp[-1].blk); }
2163
8.46k
#line 2164 "/src/libpcap/build/grammar.c"
2164
8.46k
    break;
2165
2166
13.3k
  case 11:
2167
13.3k
#line 459 "/src/libpcap/build/grammar.y"
2168
13.3k
                                { (yyval.blk) = (yyvsp[-1].blk); }
2169
13.3k
#line 2170 "/src/libpcap/build/grammar.c"
2170
13.3k
    break;
2171
2172
12.5k
  case 13:
2173
12.5k
#line 462 "/src/libpcap/build/grammar.y"
2174
12.5k
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_ncode(cstate, NULL, (yyvsp[0].h),
2175
12.5k
               (yyval.blk).q = (yyvsp[-1].blk).q))); }
2176
12.4k
#line 2177 "/src/libpcap/build/grammar.c"
2177
12.4k
    break;
2178
2179
12.4k
  case 14:
2180
58
#line 464 "/src/libpcap/build/grammar.y"
2181
58
                                { (yyval.blk) = (yyvsp[-1].blk); }
2182
58
#line 2183 "/src/libpcap/build/grammar.c"
2183
58
    break;
2184
2185
1.76k
  case 15:
2186
1.76k
#line 466 "/src/libpcap/build/grammar.y"
2187
1.76k
                                { CHECK_PTR_VAL((yyvsp[0].s)); CHECK_PTR_VAL(((yyval.blk).b = gen_scode(cstate, (yyvsp[0].s), (yyval.blk).q = (yyvsp[-1].blk).q))); }
2188
1.05k
#line 2189 "/src/libpcap/build/grammar.c"
2189
1.05k
    break;
2190
2191
1.05k
  case 16:
2192
230
#line 467 "/src/libpcap/build/grammar.y"
2193
230
                                {
2194
230
          CHECK_PTR_VAL((yyvsp[-2].s));
2195
          /* Check whether HID/NUM is being used when appropriate */
2196
230
          (yyval.blk).q = (yyvsp[-3].blk).q;
2197
230
          if ((yyval.blk).q.addr == Q_PORT) {
2198
1
          bpf_set_error(cstate, "'port' modifier applied to IP address and prefix length");
2199
1
          YYABORT;
2200
229
          } else if ((yyval.blk).q.addr == Q_PORTRANGE) {
2201
0
          bpf_set_error(cstate, "'portrange' modifier applied to IP address and prefix length");
2202
0
          YYABORT;
2203
229
          } else if ((yyval.blk).q.addr == Q_PROTO) {
2204
1
          bpf_set_error(cstate, "'proto' modifier applied to IP address and prefix length");
2205
1
          YYABORT;
2206
228
          } else if ((yyval.blk).q.addr == Q_PROTOCHAIN) {
2207
1
          bpf_set_error(cstate, "'protochain' modifier applied to IP address and prefix length");
2208
1
          YYABORT;
2209
1
          }
2210
227
          CHECK_PTR_VAL(((yyval.blk).b = gen_mcode(cstate, (yyvsp[-2].s), NULL, (yyvsp[0].h), (yyval.blk).q)));
2211
227
        }
2212
149
#line 2213 "/src/libpcap/build/grammar.c"
2213
149
    break;
2214
2215
149
  case 17:
2216
0
#line 486 "/src/libpcap/build/grammar.y"
2217
0
                                {
2218
0
          CHECK_PTR_VAL((yyvsp[-2].s));
2219
          /* Check whether HID mask HID is being used when appropriate */
2220
0
          (yyval.blk).q = (yyvsp[-3].blk).q;
2221
0
          if ((yyval.blk).q.addr == Q_PORT) {
2222
0
          bpf_set_error(cstate, "'port' modifier applied to IP address and netmask");
2223
0
          YYABORT;
2224
0
          } else if ((yyval.blk).q.addr == Q_PORTRANGE) {
2225
0
          bpf_set_error(cstate, "'portrange' modifier applied to IP address and netmask");
2226
0
          YYABORT;
2227
0
          } else if ((yyval.blk).q.addr == Q_PROTO) {
2228
0
          bpf_set_error(cstate, "'proto' modifier applied to IP address and netmask");
2229
0
          YYABORT;
2230
0
          } else if ((yyval.blk).q.addr == Q_PROTOCHAIN) {
2231
0
          bpf_set_error(cstate, "'protochain' modifier applied to IP address and netmask");
2232
0
          YYABORT;
2233
0
          }
2234
0
          CHECK_PTR_VAL(((yyval.blk).b = gen_mcode(cstate, (yyvsp[-2].s), (yyvsp[0].s), 0, (yyval.blk).q)));
2235
0
        }
2236
0
#line 2237 "/src/libpcap/build/grammar.c"
2237
0
    break;
2238
2239
424
  case 18:
2240
424
#line 505 "/src/libpcap/build/grammar.y"
2241
424
                                {
2242
424
          CHECK_PTR_VAL((yyvsp[0].s));
2243
          /* Check whether HID is being used when appropriate */
2244
424
          (yyval.blk).q = (yyvsp[-1].blk).q;
2245
424
          if ((yyval.blk).q.addr == Q_PORT) {
2246
1
          bpf_set_error(cstate, "'port' modifier applied to IP address");
2247
1
          YYABORT;
2248
423
          } else if ((yyval.blk).q.addr == Q_PORTRANGE) {
2249
0
          bpf_set_error(cstate, "'portrange' modifier applied to IP address");
2250
0
          YYABORT;
2251
423
          } else if ((yyval.blk).q.addr == Q_PROTO) {
2252
1
          bpf_set_error(cstate, "'proto' modifier applied to IP address");
2253
1
          YYABORT;
2254
422
          } else if ((yyval.blk).q.addr == Q_PROTOCHAIN) {
2255
1
          bpf_set_error(cstate, "'protochain' modifier applied to IP address");
2256
1
          YYABORT;
2257
1
          }
2258
421
          CHECK_PTR_VAL(((yyval.blk).b = gen_ncode(cstate, (yyvsp[0].s), 0, (yyval.blk).q)));
2259
421
        }
2260
379
#line 2261 "/src/libpcap/build/grammar.c"
2261
379
    break;
2262
2263
379
  case 19:
2264
321
#line 524 "/src/libpcap/build/grammar.y"
2265
321
                                {
2266
321
          CHECK_PTR_VAL((yyvsp[-2].s));
2267
320
#ifdef INET6
2268
          /* Check whether HID6/NUM is being used when appropriate */
2269
320
          (yyval.blk).q = (yyvsp[-3].blk).q;
2270
320
          if ((yyval.blk).q.addr == Q_PORT) {
2271
1
          bpf_set_error(cstate, "'port' modifier applied to IP address and prefix length");
2272
1
          YYABORT;
2273
319
          } else if ((yyval.blk).q.addr == Q_PORTRANGE) {
2274
0
          bpf_set_error(cstate, "'portrange' modifier applied to IP address and prefix length");
2275
0
          YYABORT;
2276
319
          } else if ((yyval.blk).q.addr == Q_PROTO) {
2277
1
          bpf_set_error(cstate, "'proto' modifier applied to IP address and prefix length ");
2278
1
          YYABORT;
2279
318
          } else if ((yyval.blk).q.addr == Q_PROTOCHAIN) {
2280
1
          bpf_set_error(cstate, "'protochain' modifier applied to IP address and prefix length");
2281
1
          YYABORT;
2282
1
          }
2283
317
          CHECK_PTR_VAL(((yyval.blk).b = gen_mcode6(cstate, (yyvsp[-2].s), (yyvsp[0].h), (yyval.blk).q)));
2284
#else
2285
          bpf_set_error(cstate, "IPv6 addresses not supported "
2286
          "in this configuration");
2287
          YYABORT;
2288
#endif /*INET6*/
2289
317
        }
2290
92
#line 2291 "/src/libpcap/build/grammar.c"
2291
92
    break;
2292
2293
909
  case 20:
2294
909
#line 549 "/src/libpcap/build/grammar.y"
2295
909
                                {
2296
909
          CHECK_PTR_VAL((yyvsp[0].s));
2297
908
#ifdef INET6
2298
          /* Check whether HID6 is being used when appropriate */
2299
908
          (yyval.blk).q = (yyvsp[-1].blk).q;
2300
908
          if ((yyval.blk).q.addr == Q_PORT) {
2301
1
          bpf_set_error(cstate, "'port' modifier applied to IP address");
2302
1
          YYABORT;
2303
907
          } else if ((yyval.blk).q.addr == Q_PORTRANGE) {
2304
0
          bpf_set_error(cstate, "'portrange' modifier applied to IP address");
2305
0
          YYABORT;
2306
907
          } else if ((yyval.blk).q.addr == Q_PROTO) {
2307
1
          bpf_set_error(cstate, "'proto' modifier applied to 'ip6addr/prefixlen");
2308
1
          YYABORT;
2309
906
          } else if ((yyval.blk).q.addr == Q_PROTOCHAIN) {
2310
1
          bpf_set_error(cstate, "'protochain' modifier applied to IP address");
2311
1
          YYABORT;
2312
1
          }
2313
905
          CHECK_PTR_VAL(((yyval.blk).b = gen_mcode6(cstate, (yyvsp[0].s), 128, (yyval.blk).q)));
2314
#else
2315
          bpf_set_error(cstate, "IPv6 addresses not supported "
2316
          "in this configuration");
2317
          YYABORT;
2318
#endif /*INET6*/
2319
905
        }
2320
859
#line 2321 "/src/libpcap/build/grammar.c"
2321
859
    break;
2322
2323
1.20k
  case 21:
2324
1.20k
#line 574 "/src/libpcap/build/grammar.y"
2325
1.20k
                                { CHECK_PTR_VAL((yyvsp[0].s)); CHECK_PTR_VAL(((yyval.blk).b = gen_ecode(cstate, (yyvsp[0].s), (yyval.blk).q = (yyvsp[-1].blk).q))); }
2326
1.17k
#line 2327 "/src/libpcap/build/grammar.c"
2327
1.17k
    break;
2328
2329
1.17k
  case 22:
2330
168
#line 575 "/src/libpcap/build/grammar.y"
2331
168
                                { CHECK_PTR_VAL((yyvsp[0].s)); CHECK_PTR_VAL(((yyval.blk).b = gen_acode(cstate, (yyvsp[0].s), (yyval.blk).q = (yyvsp[-1].blk).q))); }
2332
150
#line 2333 "/src/libpcap/build/grammar.c"
2333
150
    break;
2334
2335
2.08k
  case 23:
2336
2.08k
#line 576 "/src/libpcap/build/grammar.y"
2337
2.08k
                                { gen_not((yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2338
2.08k
#line 2339 "/src/libpcap/build/grammar.c"
2339
2.08k
    break;
2340
2341
2.92k
  case 24:
2342
2.92k
#line 578 "/src/libpcap/build/grammar.y"
2343
2.92k
                                { (yyval.blk) = (yyvsp[-1].blk); }
2344
2.92k
#line 2345 "/src/libpcap/build/grammar.c"
2345
2.92k
    break;
2346
2347
1.50k
  case 25:
2348
1.50k
#line 580 "/src/libpcap/build/grammar.y"
2349
1.50k
                                { (yyval.blk) = (yyvsp[-1].blk); }
2350
1.50k
#line 2351 "/src/libpcap/build/grammar.c"
2351
1.50k
    break;
2352
2353
491
  case 27:
2354
491
#line 583 "/src/libpcap/build/grammar.y"
2355
491
                                { gen_and((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2356
491
#line 2357 "/src/libpcap/build/grammar.c"
2357
491
    break;
2358
2359
1.29k
  case 28:
2360
1.29k
#line 584 "/src/libpcap/build/grammar.y"
2361
1.29k
                                { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2362
1.29k
#line 2363 "/src/libpcap/build/grammar.c"
2363
1.29k
    break;
2364
2365
429
  case 29:
2366
429
#line 586 "/src/libpcap/build/grammar.y"
2367
429
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_ncode(cstate, NULL, (yyvsp[0].h),
2368
429
               (yyval.blk).q = (yyvsp[-1].blk).q))); }
2369
406
#line 2370 "/src/libpcap/build/grammar.c"
2370
406
    break;
2371
2372
542
  case 32:
2373
542
#line 591 "/src/libpcap/build/grammar.y"
2374
542
                                { gen_not((yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2375
542
#line 2376 "/src/libpcap/build/grammar.c"
2376
542
    break;
2377
2378
89
  case 33:
2379
89
#line 593 "/src/libpcap/build/grammar.y"
2380
89
                                { QSET((yyval.blk).q, (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i)); }
2381
89
#line 2382 "/src/libpcap/build/grammar.c"
2382
89
    break;
2383
2384
908
  case 34:
2385
908
#line 594 "/src/libpcap/build/grammar.y"
2386
908
                                { QSET((yyval.blk).q, (yyvsp[-1].i), (yyvsp[0].i), Q_DEFAULT); }
2387
908
#line 2388 "/src/libpcap/build/grammar.c"
2388
908
    break;
2389
2390
1.94k
  case 35:
2391
1.94k
#line 595 "/src/libpcap/build/grammar.y"
2392
1.94k
                                { QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, (yyvsp[0].i)); }
2393
1.94k
#line 2394 "/src/libpcap/build/grammar.c"
2394
1.94k
    break;
2395
2396
1.86k
  case 36:
2397
1.86k
#line 596 "/src/libpcap/build/grammar.y"
2398
1.86k
                                { QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, Q_PROTO); }
2399
1.86k
#line 2400 "/src/libpcap/build/grammar.c"
2400
1.86k
    break;
2401
2402
100
  case 37:
2403
100
#line 597 "/src/libpcap/build/grammar.y"
2404
100
                                {
2405
#ifdef NO_PROTOCHAIN
2406
          bpf_set_error(cstate, "protochain not supported");
2407
          YYABORT;
2408
#else
2409
100
          QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, Q_PROTOCHAIN);
2410
100
#endif
2411
100
        }
2412
100
#line 2413 "/src/libpcap/build/grammar.c"
2413
100
    break;
2414
2415
0
  case 38:
2416
0
#line 605 "/src/libpcap/build/grammar.y"
2417
0
                                { QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, (yyvsp[0].i)); }
2418
0
#line 2419 "/src/libpcap/build/grammar.c"
2419
0
    break;
2420
2421
3.47k
  case 39:
2422
3.47k
#line 607 "/src/libpcap/build/grammar.y"
2423
3.47k
                                { (yyval.blk) = (yyvsp[0].blk); }
2424
3.47k
#line 2425 "/src/libpcap/build/grammar.c"
2425
3.47k
    break;
2426
2427
80
  case 40:
2428
80
#line 608 "/src/libpcap/build/grammar.y"
2429
80
                                { (yyval.blk).b = (yyvsp[-1].blk).b; (yyval.blk).q = (yyvsp[-2].blk).q; }
2430
80
#line 2431 "/src/libpcap/build/grammar.c"
2431
80
    break;
2432
2433
3.32k
  case 41:
2434
3.32k
#line 609 "/src/libpcap/build/grammar.y"
2435
3.32k
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_proto_abbrev(cstate, (yyvsp[0].i)))); (yyval.blk).q = qerr; }
2436
0
#line 2437 "/src/libpcap/build/grammar.c"
2437
0
    break;
2438
2439
2.76k
  case 42:
2440
2.76k
#line 610 "/src/libpcap/build/grammar.y"
2441
2.76k
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_relation(cstate, (yyvsp[-1].i), (yyvsp[-2].a), (yyvsp[0].a), 0)));
2442
2.76k
          (yyval.blk).q = qerr; }
2443
0
#line 2444 "/src/libpcap/build/grammar.c"
2444
0
    break;
2445
2446
1.48k
  case 43:
2447
1.48k
#line 612 "/src/libpcap/build/grammar.y"
2448
1.48k
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_relation(cstate, (yyvsp[-1].i), (yyvsp[-2].a), (yyvsp[0].a), 1)));
2449
1.48k
          (yyval.blk).q = qerr; }
2450
0
#line 2451 "/src/libpcap/build/grammar.c"
2451
0
    break;
2452
2453
2.83k
  case 44:
2454
2.83k
#line 614 "/src/libpcap/build/grammar.y"
2455
2.83k
                                { (yyval.blk).b = (yyvsp[0].rblk); (yyval.blk).q = qerr; }
2456
2.83k
#line 2457 "/src/libpcap/build/grammar.c"
2457
2.83k
    break;
2458
2459
131
  case 45:
2460
131
#line 615 "/src/libpcap/build/grammar.y"
2461
131
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_atmtype_abbrev(cstate, (yyvsp[0].i)))); (yyval.blk).q = qerr; }
2462
0
#line 2463 "/src/libpcap/build/grammar.c"
2463
0
    break;
2464
2465
30
  case 46:
2466
30
#line 616 "/src/libpcap/build/grammar.y"
2467
30
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_atmmulti_abbrev(cstate, (yyvsp[0].i)))); (yyval.blk).q = qerr; }
2468
0
#line 2469 "/src/libpcap/build/grammar.c"
2469
0
    break;
2470
2471
284
  case 47:
2472
284
#line 617 "/src/libpcap/build/grammar.y"
2473
284
                                { (yyval.blk).b = (yyvsp[0].blk).b; (yyval.blk).q = qerr; }
2474
284
#line 2475 "/src/libpcap/build/grammar.c"
2475
284
    break;
2476
2477
976
  case 48:
2478
976
#line 618 "/src/libpcap/build/grammar.y"
2479
976
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_mtp2type_abbrev(cstate, (yyvsp[0].i)))); (yyval.blk).q = qerr; }
2480
0
#line 2481 "/src/libpcap/build/grammar.c"
2481
0
    break;
2482
2483
292
  case 49:
2484
292
#line 619 "/src/libpcap/build/grammar.y"
2485
292
                                { (yyval.blk).b = (yyvsp[0].blk).b; (yyval.blk).q = qerr; }
2486
292
#line 2487 "/src/libpcap/build/grammar.c"
2487
292
    break;
2488
2489
3.30k
  case 51:
2490
3.30k
#line 623 "/src/libpcap/build/grammar.y"
2491
3.30k
                                { (yyval.i) = Q_DEFAULT; }
2492
3.30k
#line 2493 "/src/libpcap/build/grammar.c"
2493
3.30k
    break;
2494
2495
190
  case 52:
2496
190
#line 626 "/src/libpcap/build/grammar.y"
2497
190
                                { (yyval.i) = Q_SRC; }
2498
190
#line 2499 "/src/libpcap/build/grammar.c"
2499
190
    break;
2500
2501
183
  case 53:
2502
183
#line 627 "/src/libpcap/build/grammar.y"
2503
183
                                { (yyval.i) = Q_DST; }
2504
183
#line 2505 "/src/libpcap/build/grammar.c"
2505
183
    break;
2506
2507
12
  case 54:
2508
12
#line 628 "/src/libpcap/build/grammar.y"
2509
12
                                { (yyval.i) = Q_OR; }
2510
12
#line 2511 "/src/libpcap/build/grammar.c"
2511
12
    break;
2512
2513
90
  case 55:
2514
90
#line 629 "/src/libpcap/build/grammar.y"
2515
90
                                { (yyval.i) = Q_OR; }
2516
90
#line 2517 "/src/libpcap/build/grammar.c"
2517
90
    break;
2518
2519
12
  case 56:
2520
12
#line 630 "/src/libpcap/build/grammar.y"
2521
12
                                { (yyval.i) = Q_AND; }
2522
12
#line 2523 "/src/libpcap/build/grammar.c"
2523
12
    break;
2524
2525
124
  case 57:
2526
124
#line 631 "/src/libpcap/build/grammar.y"
2527
124
                                { (yyval.i) = Q_AND; }
2528
124
#line 2529 "/src/libpcap/build/grammar.c"
2529
124
    break;
2530
2531
24
  case 58:
2532
24
#line 632 "/src/libpcap/build/grammar.y"
2533
24
                                { (yyval.i) = Q_ADDR1; }
2534
24
#line 2535 "/src/libpcap/build/grammar.c"
2535
24
    break;
2536
2537
34
  case 59:
2538
34
#line 633 "/src/libpcap/build/grammar.y"
2539
34
                                { (yyval.i) = Q_ADDR2; }
2540
34
#line 2541 "/src/libpcap/build/grammar.c"
2541
34
    break;
2542
2543
30
  case 60:
2544
30
#line 634 "/src/libpcap/build/grammar.y"
2545
30
                                { (yyval.i) = Q_ADDR3; }
2546
30
#line 2547 "/src/libpcap/build/grammar.c"
2547
30
    break;
2548
2549
29
  case 61:
2550
29
#line 635 "/src/libpcap/build/grammar.y"
2551
29
                                { (yyval.i) = Q_ADDR4; }
2552
29
#line 2553 "/src/libpcap/build/grammar.c"
2553
29
    break;
2554
2555
178
  case 62:
2556
178
#line 636 "/src/libpcap/build/grammar.y"
2557
178
                                { (yyval.i) = Q_RA; }
2558
178
#line 2559 "/src/libpcap/build/grammar.c"
2559
178
    break;
2560
2561
91
  case 63:
2562
91
#line 637 "/src/libpcap/build/grammar.y"
2563
91
                                { (yyval.i) = Q_TA; }
2564
91
#line 2565 "/src/libpcap/build/grammar.c"
2565
91
    break;
2566
2567
117
  case 64:
2568
117
#line 640 "/src/libpcap/build/grammar.y"
2569
117
                                { (yyval.i) = Q_HOST; }
2570
117
#line 2571 "/src/libpcap/build/grammar.c"
2571
117
    break;
2572
2573
1.09k
  case 65:
2574
1.09k
#line 641 "/src/libpcap/build/grammar.y"
2575
1.09k
                                { (yyval.i) = Q_NET; }
2576
1.09k
#line 2577 "/src/libpcap/build/grammar.c"
2577
1.09k
    break;
2578
2579
828
  case 66:
2580
828
#line 642 "/src/libpcap/build/grammar.y"
2581
828
                                { (yyval.i) = Q_PORT; }
2582
828
#line 2583 "/src/libpcap/build/grammar.c"
2583
828
    break;
2584
2585
0
  case 67:
2586
0
#line 643 "/src/libpcap/build/grammar.y"
2587
0
                                { (yyval.i) = Q_PORTRANGE; }
2588
0
#line 2589 "/src/libpcap/build/grammar.c"
2589
0
    break;
2590
2591
0
  case 68:
2592
0
#line 646 "/src/libpcap/build/grammar.y"
2593
0
                                { (yyval.i) = Q_GATEWAY; }
2594
0
#line 2595 "/src/libpcap/build/grammar.c"
2595
0
    break;
2596
2597
2.86k
  case 69:
2598
2.86k
#line 648 "/src/libpcap/build/grammar.y"
2599
2.86k
                                { (yyval.i) = Q_LINK; }
2600
2.86k
#line 2601 "/src/libpcap/build/grammar.c"
2601
2.86k
    break;
2602
2603
989
  case 70:
2604
989
#line 649 "/src/libpcap/build/grammar.y"
2605
989
                                { (yyval.i) = Q_IP; }
2606
989
#line 2607 "/src/libpcap/build/grammar.c"
2607
989
    break;
2608
2609
154
  case 71:
2610
154
#line 650 "/src/libpcap/build/grammar.y"
2611
154
                                { (yyval.i) = Q_ARP; }
2612
154
#line 2613 "/src/libpcap/build/grammar.c"
2613
154
    break;
2614
2615
82
  case 72:
2616
82
#line 651 "/src/libpcap/build/grammar.y"
2617
82
                                { (yyval.i) = Q_RARP; }
2618
82
#line 2619 "/src/libpcap/build/grammar.c"
2619
82
    break;
2620
2621
173
  case 73:
2622
173
#line 652 "/src/libpcap/build/grammar.y"
2623
173
                                { (yyval.i) = Q_SCTP; }
2624
173
#line 2625 "/src/libpcap/build/grammar.c"
2625
173
    break;
2626
2627
308
  case 74:
2628
308
#line 653 "/src/libpcap/build/grammar.y"
2629
308
                                { (yyval.i) = Q_TCP; }
2630
308
#line 2631 "/src/libpcap/build/grammar.c"
2631
308
    break;
2632
2633
406
  case 75:
2634
406
#line 654 "/src/libpcap/build/grammar.y"
2635
406
                                { (yyval.i) = Q_UDP; }
2636
406
#line 2637 "/src/libpcap/build/grammar.c"
2637
406
    break;
2638
2639
114
  case 76:
2640
114
#line 655 "/src/libpcap/build/grammar.y"
2641
114
                                { (yyval.i) = Q_ICMP; }
2642
114
#line 2643 "/src/libpcap/build/grammar.c"
2643
114
    break;
2644
2645
130
  case 77:
2646
130
#line 656 "/src/libpcap/build/grammar.y"
2647
130
                                { (yyval.i) = Q_IGMP; }
2648
130
#line 2649 "/src/libpcap/build/grammar.c"
2649
130
    break;
2650
2651
92
  case 78:
2652
92
#line 657 "/src/libpcap/build/grammar.y"
2653
92
                                { (yyval.i) = Q_IGRP; }
2654
92
#line 2655 "/src/libpcap/build/grammar.c"
2655
92
    break;
2656
2657
384
  case 79:
2658
384
#line 658 "/src/libpcap/build/grammar.y"
2659
384
                                { (yyval.i) = Q_PIM; }
2660
384
#line 2661 "/src/libpcap/build/grammar.c"
2661
384
    break;
2662
2663
67
  case 80:
2664
67
#line 659 "/src/libpcap/build/grammar.y"
2665
67
                                { (yyval.i) = Q_VRRP; }
2666
67
#line 2667 "/src/libpcap/build/grammar.c"
2667
67
    break;
2668
2669
69
  case 81:
2670
69
#line 660 "/src/libpcap/build/grammar.y"
2671
69
                                { (yyval.i) = Q_CARP; }
2672
69
#line 2673 "/src/libpcap/build/grammar.c"
2673
69
    break;
2674
2675
309
  case 82:
2676
309
#line 661 "/src/libpcap/build/grammar.y"
2677
309
                                { (yyval.i) = Q_ATALK; }
2678
309
#line 2679 "/src/libpcap/build/grammar.c"
2679
309
    break;
2680
2681
78
  case 83:
2682
78
#line 662 "/src/libpcap/build/grammar.y"
2683
78
                                { (yyval.i) = Q_AARP; }
2684
78
#line 2685 "/src/libpcap/build/grammar.c"
2685
78
    break;
2686
2687
129
  case 84:
2688
129
#line 663 "/src/libpcap/build/grammar.y"
2689
129
                                { (yyval.i) = Q_DECNET; }
2690
129
#line 2691 "/src/libpcap/build/grammar.c"
2691
129
    break;
2692
2693
87
  case 85:
2694
87
#line 664 "/src/libpcap/build/grammar.y"
2695
87
                                { (yyval.i) = Q_LAT; }
2696
87
#line 2697 "/src/libpcap/build/grammar.c"
2697
87
    break;
2698
2699
180
  case 86:
2700
180
#line 665 "/src/libpcap/build/grammar.y"
2701
180
                                { (yyval.i) = Q_SCA; }
2702
180
#line 2703 "/src/libpcap/build/grammar.c"
2703
180
    break;
2704
2705
64
  case 87:
2706
64
#line 666 "/src/libpcap/build/grammar.y"
2707
64
                                { (yyval.i) = Q_MOPDL; }
2708
64
#line 2709 "/src/libpcap/build/grammar.c"
2709
64
    break;
2710
2711
109
  case 88:
2712
109
#line 667 "/src/libpcap/build/grammar.y"
2713
109
                                { (yyval.i) = Q_MOPRC; }
2714
109
#line 2715 "/src/libpcap/build/grammar.c"
2715
109
    break;
2716
2717
231
  case 89:
2718
231
#line 668 "/src/libpcap/build/grammar.y"
2719
231
                                { (yyval.i) = Q_IPV6; }
2720
231
#line 2721 "/src/libpcap/build/grammar.c"
2721
231
    break;
2722
2723
249
  case 90:
2724
249
#line 669 "/src/libpcap/build/grammar.y"
2725
249
                                { (yyval.i) = Q_ICMPV6; }
2726
249
#line 2727 "/src/libpcap/build/grammar.c"
2727
249
    break;
2728
2729
211
  case 91:
2730
211
#line 670 "/src/libpcap/build/grammar.y"
2731
211
                                { (yyval.i) = Q_AH; }
2732
211
#line 2733 "/src/libpcap/build/grammar.c"
2733
211
    break;
2734
2735
42
  case 92:
2736
42
#line 671 "/src/libpcap/build/grammar.y"
2737
42
                                { (yyval.i) = Q_ESP; }
2738
42
#line 2739 "/src/libpcap/build/grammar.c"
2739
42
    break;
2740
2741
166
  case 93:
2742
166
#line 672 "/src/libpcap/build/grammar.y"
2743
166
                                { (yyval.i) = Q_ISO; }
2744
166
#line 2745 "/src/libpcap/build/grammar.c"
2745
166
    break;
2746
2747
83
  case 94:
2748
83
#line 673 "/src/libpcap/build/grammar.y"
2749
83
                                { (yyval.i) = Q_ESIS; }
2750
83
#line 2751 "/src/libpcap/build/grammar.c"
2751
83
    break;
2752
2753
79
  case 95:
2754
79
#line 674 "/src/libpcap/build/grammar.y"
2755
79
                                { (yyval.i) = Q_ISIS; }
2756
79
#line 2757 "/src/libpcap/build/grammar.c"
2757
79
    break;
2758
2759
572
  case 96:
2760
572
#line 675 "/src/libpcap/build/grammar.y"
2761
572
                                { (yyval.i) = Q_ISIS_L1; }
2762
572
#line 2763 "/src/libpcap/build/grammar.c"
2763
572
    break;
2764
2765
464
  case 97:
2766
464
#line 676 "/src/libpcap/build/grammar.y"
2767
464
                                { (yyval.i) = Q_ISIS_L2; }
2768
464
#line 2769 "/src/libpcap/build/grammar.c"
2769
464
    break;
2770
2771
121
  case 98:
2772
121
#line 677 "/src/libpcap/build/grammar.y"
2773
121
                                { (yyval.i) = Q_ISIS_IIH; }
2774
121
#line 2775 "/src/libpcap/build/grammar.c"
2775
121
    break;
2776
2777
80
  case 99:
2778
80
#line 678 "/src/libpcap/build/grammar.y"
2779
80
                                { (yyval.i) = Q_ISIS_LSP; }
2780
80
#line 2781 "/src/libpcap/build/grammar.c"
2781
80
    break;
2782
2783
87
  case 100:
2784
87
#line 679 "/src/libpcap/build/grammar.y"
2785
87
                                { (yyval.i) = Q_ISIS_SNP; }
2786
87
#line 2787 "/src/libpcap/build/grammar.c"
2787
87
    break;
2788
2789
54
  case 101:
2790
54
#line 680 "/src/libpcap/build/grammar.y"
2791
54
                                { (yyval.i) = Q_ISIS_PSNP; }
2792
54
#line 2793 "/src/libpcap/build/grammar.c"
2793
54
    break;
2794
2795
23
  case 102:
2796
23
#line 681 "/src/libpcap/build/grammar.y"
2797
23
                                { (yyval.i) = Q_ISIS_CSNP; }
2798
23
#line 2799 "/src/libpcap/build/grammar.c"
2799
23
    break;
2800
2801
16
  case 103:
2802
16
#line 682 "/src/libpcap/build/grammar.y"
2803
16
                                { (yyval.i) = Q_CLNP; }
2804
16
#line 2805 "/src/libpcap/build/grammar.c"
2805
16
    break;
2806
2807
217
  case 104:
2808
217
#line 683 "/src/libpcap/build/grammar.y"
2809
217
                                { (yyval.i) = Q_STP; }
2810
217
#line 2811 "/src/libpcap/build/grammar.c"
2811
217
    break;
2812
2813
391
  case 105:
2814
391
#line 684 "/src/libpcap/build/grammar.y"
2815
391
                                { (yyval.i) = Q_IPX; }
2816
391
#line 2817 "/src/libpcap/build/grammar.c"
2817
391
    break;
2818
2819
49
  case 106:
2820
49
#line 685 "/src/libpcap/build/grammar.y"
2821
49
                                { (yyval.i) = Q_NETBEUI; }
2822
49
#line 2823 "/src/libpcap/build/grammar.c"
2823
49
    break;
2824
2825
138
  case 107:
2826
138
#line 686 "/src/libpcap/build/grammar.y"
2827
138
                                { (yyval.i) = Q_RADIO; }
2828
138
#line 2829 "/src/libpcap/build/grammar.c"
2829
138
    break;
2830
2831
0
  case 108:
2832
0
#line 688 "/src/libpcap/build/grammar.y"
2833
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_broadcast(cstate, (yyvsp[-1].i)))); }
2834
0
#line 2835 "/src/libpcap/build/grammar.c"
2835
0
    break;
2836
2837
0
  case 109:
2838
0
#line 689 "/src/libpcap/build/grammar.y"
2839
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_multicast(cstate, (yyvsp[-1].i)))); }
2840
0
#line 2841 "/src/libpcap/build/grammar.c"
2841
0
    break;
2842
2843
56
  case 110:
2844
56
#line 690 "/src/libpcap/build/grammar.y"
2845
56
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_less(cstate, (yyvsp[0].h)))); }
2846
56
#line 2847 "/src/libpcap/build/grammar.c"
2847
56
    break;
2848
2849
56
  case 111:
2850
0
#line 691 "/src/libpcap/build/grammar.y"
2851
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_greater(cstate, (yyvsp[0].h)))); }
2852
0
#line 2853 "/src/libpcap/build/grammar.c"
2853
0
    break;
2854
2855
155
  case 112:
2856
155
#line 692 "/src/libpcap/build/grammar.y"
2857
155
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_byteop(cstate, (yyvsp[-1].i), (yyvsp[-2].h), (yyvsp[0].h)))); }
2858
155
#line 2859 "/src/libpcap/build/grammar.c"
2859
155
    break;
2860
2861
155
  case 113:
2862
0
#line 693 "/src/libpcap/build/grammar.y"
2863
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_inbound(cstate, 0))); }
2864
0
#line 2865 "/src/libpcap/build/grammar.c"
2865
0
    break;
2866
2867
0
  case 114:
2868
0
#line 694 "/src/libpcap/build/grammar.y"
2869
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_inbound(cstate, 1))); }
2870
0
#line 2871 "/src/libpcap/build/grammar.c"
2871
0
    break;
2872
2873
0
  case 115:
2874
0
#line 695 "/src/libpcap/build/grammar.y"
2875
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_ifindex(cstate, (yyvsp[0].h)))); }
2876
0
#line 2877 "/src/libpcap/build/grammar.c"
2877
0
    break;
2878
2879
71
  case 116:
2880
71
#line 696 "/src/libpcap/build/grammar.y"
2881
71
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_vlan(cstate, (yyvsp[0].h), 1))); }
2882
41
#line 2883 "/src/libpcap/build/grammar.c"
2883
41
    break;
2884
2885
512
  case 117:
2886
512
#line 697 "/src/libpcap/build/grammar.y"
2887
512
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_vlan(cstate, 0, 0))); }
2888
509
#line 2889 "/src/libpcap/build/grammar.c"
2889
509
    break;
2890
2891
509
  case 118:
2892
86
#line 698 "/src/libpcap/build/grammar.y"
2893
86
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_mpls(cstate, (yyvsp[0].h), 1))); }
2894
64
#line 2895 "/src/libpcap/build/grammar.c"
2895
64
    break;
2896
2897
87
  case 119:
2898
87
#line 699 "/src/libpcap/build/grammar.y"
2899
87
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_mpls(cstate, 0, 0))); }
2900
85
#line 2901 "/src/libpcap/build/grammar.c"
2901
85
    break;
2902
2903
85
  case 120:
2904
46
#line 700 "/src/libpcap/build/grammar.y"
2905
46
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pppoed(cstate))); }
2906
45
#line 2907 "/src/libpcap/build/grammar.c"
2907
45
    break;
2908
2909
53
  case 121:
2910
53
#line 701 "/src/libpcap/build/grammar.y"
2911
53
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pppoes(cstate, (yyvsp[0].h), 1))); }
2912
29
#line 2913 "/src/libpcap/build/grammar.c"
2913
29
    break;
2914
2915
265
  case 122:
2916
265
#line 702 "/src/libpcap/build/grammar.y"
2917
265
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pppoes(cstate, 0, 0))); }
2918
264
#line 2919 "/src/libpcap/build/grammar.c"
2919
264
    break;
2920
2921
264
  case 123:
2922
0
#line 703 "/src/libpcap/build/grammar.y"
2923
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_geneve(cstate, (yyvsp[0].h), 1))); }
2924
0
#line 2925 "/src/libpcap/build/grammar.c"
2925
0
    break;
2926
2927
0
  case 124:
2928
0
#line 704 "/src/libpcap/build/grammar.y"
2929
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_geneve(cstate, 0, 0))); }
2930
0
#line 2931 "/src/libpcap/build/grammar.c"
2931
0
    break;
2932
2933
84
  case 125:
2934
84
#line 705 "/src/libpcap/build/grammar.y"
2935
84
                                { (yyval.rblk) = (yyvsp[0].rblk); }
2936
84
#line 2937 "/src/libpcap/build/grammar.c"
2937
84
    break;
2938
2939
384
  case 126:
2940
384
#line 706 "/src/libpcap/build/grammar.y"
2941
384
                                { (yyval.rblk) = (yyvsp[0].rblk); }
2942
384
#line 2943 "/src/libpcap/build/grammar.c"
2943
384
    break;
2944
2945
1.12k
  case 127:
2946
1.12k
#line 707 "/src/libpcap/build/grammar.y"
2947
1.12k
                                { (yyval.rblk) = (yyvsp[0].rblk); }
2948
1.12k
#line 2949 "/src/libpcap/build/grammar.c"
2949
1.12k
    break;
2950
2951
49
  case 128:
2952
49
#line 710 "/src/libpcap/build/grammar.y"
2953
49
                                { CHECK_PTR_VAL((yyvsp[0].s)); CHECK_PTR_VAL(((yyval.rblk) = gen_pf_ifname(cstate, (yyvsp[0].s)))); }
2954
39
#line 2955 "/src/libpcap/build/grammar.c"
2955
39
    break;
2956
2957
39
  case 129:
2958
30
#line 711 "/src/libpcap/build/grammar.y"
2959
30
                                { CHECK_PTR_VAL((yyvsp[0].s)); CHECK_PTR_VAL(((yyval.rblk) = gen_pf_ruleset(cstate, (yyvsp[0].s)))); }
2960
18
#line 2961 "/src/libpcap/build/grammar.c"
2961
18
    break;
2962
2963
18
  case 130:
2964
14
#line 712 "/src/libpcap/build/grammar.y"
2965
14
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pf_rnr(cstate, (yyvsp[0].h)))); }
2966
4
#line 2967 "/src/libpcap/build/grammar.c"
2967
4
    break;
2968
2969
18
  case 131:
2970
18
#line 713 "/src/libpcap/build/grammar.y"
2971
18
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pf_srnr(cstate, (yyvsp[0].h)))); }
2972
12
#line 2973 "/src/libpcap/build/grammar.c"
2973
12
    break;
2974
2975
20
  case 132:
2976
20
#line 714 "/src/libpcap/build/grammar.y"
2977
20
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pf_reason(cstate, (yyvsp[0].i)))); }
2978
10
#line 2979 "/src/libpcap/build/grammar.c"
2979
10
    break;
2980
2981
10
  case 133:
2982
8
#line 715 "/src/libpcap/build/grammar.y"
2983
8
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pf_action(cstate, (yyvsp[0].i)))); }
2984
1
#line 2985 "/src/libpcap/build/grammar.c"
2985
1
    break;
2986
2987
35
  case 134:
2988
35
#line 719 "/src/libpcap/build/grammar.y"
2989
35
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_p80211_type(cstate, (yyvsp[-2].i) | (yyvsp[0].i),
2990
35
          IEEE80211_FC0_TYPE_MASK |
2991
35
          IEEE80211_FC0_SUBTYPE_MASK)));
2992
35
        }
2993
34
#line 2994 "/src/libpcap/build/grammar.c"
2994
34
    break;
2995
2996
138
  case 135:
2997
138
#line 723 "/src/libpcap/build/grammar.y"
2998
138
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_p80211_type(cstate, (yyvsp[0].i),
2999
138
          IEEE80211_FC0_TYPE_MASK)));
3000
138
        }
3001
135
#line 3002 "/src/libpcap/build/grammar.c"
3002
135
    break;
3003
3004
135
  case 136:
3005
52
#line 726 "/src/libpcap/build/grammar.y"
3006
52
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_p80211_type(cstate, (yyvsp[0].i),
3007
52
          IEEE80211_FC0_TYPE_MASK |
3008
52
          IEEE80211_FC0_SUBTYPE_MASK)));
3009
52
        }
3010
48
#line 3011 "/src/libpcap/build/grammar.c"
3011
48
    break;
3012
3013
170
  case 137:
3014
170
#line 730 "/src/libpcap/build/grammar.y"
3015
170
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_p80211_fcdir(cstate, (yyvsp[0].i)))); }
3016
167
#line 3017 "/src/libpcap/build/grammar.c"
3017
167
    break;
3018
3019
167
  case 138:
3020
154
#line 733 "/src/libpcap/build/grammar.y"
3021
154
                                { if (((yyvsp[0].h) & (~IEEE80211_FC0_TYPE_MASK)) != 0) {
3022
32
          bpf_set_error(cstate, "invalid 802.11 type value 0x%02x", (yyvsp[0].h));
3023
32
          YYABORT;
3024
32
          }
3025
122
          (yyval.i) = (int)(yyvsp[0].h);
3026
122
        }
3027
0
#line 3028 "/src/libpcap/build/grammar.c"
3028
0
    break;
3029
3030
72
  case 139:
3031
72
#line 739 "/src/libpcap/build/grammar.y"
3032
72
                                { CHECK_PTR_VAL((yyvsp[0].s));
3033
72
          (yyval.i) = str2tok((yyvsp[0].s), ieee80211_types);
3034
72
          if ((yyval.i) == -1) {
3035
9
          bpf_set_error(cstate, "unknown 802.11 type name \"%s\"", (yyvsp[0].s));
3036
9
          YYABORT;
3037
9
          }
3038
72
        }
3039
63
#line 3040 "/src/libpcap/build/grammar.c"
3040
63
    break;
3041
3042
63
  case 140:
3043
28
#line 748 "/src/libpcap/build/grammar.y"
3044
28
                                { if (((yyvsp[0].h) & (~IEEE80211_FC0_SUBTYPE_MASK)) != 0) {
3045
6
          bpf_set_error(cstate, "invalid 802.11 subtype value 0x%02x", (yyvsp[0].h));
3046
6
          YYABORT;
3047
6
          }
3048
22
          (yyval.i) = (int)(yyvsp[0].h);
3049
22
        }
3050
0
#line 3051 "/src/libpcap/build/grammar.c"
3051
0
    break;
3052
3053
19
  case 141:
3054
19
#line 754 "/src/libpcap/build/grammar.y"
3055
19
                                { const struct tok *types = NULL;
3056
19
          int i;
3057
19
          CHECK_PTR_VAL((yyvsp[0].s));
3058
42
          for (i = 0;; i++) {
3059
42
          if (ieee80211_type_subtypes[i].tok == NULL) {
3060
            /* Ran out of types */
3061
1
            bpf_set_error(cstate, "unknown 802.11 type");
3062
1
            YYABORT;
3063
1
          }
3064
41
          if ((yyvsp[(-1) - (1)].i) == ieee80211_type_subtypes[i].type) {
3065
18
            types = ieee80211_type_subtypes[i].tok;
3066
18
            break;
3067
18
          }
3068
41
          }
3069
3070
18
          (yyval.i) = str2tok((yyvsp[0].s), types);
3071
18
          if ((yyval.i) == -1) {
3072
5
          bpf_set_error(cstate, "unknown 802.11 subtype name \"%s\"", (yyvsp[0].s));
3073
5
          YYABORT;
3074
5
          }
3075
18
        }
3076
13
#line 3077 "/src/libpcap/build/grammar.c"
3077
13
    break;
3078
3079
62
  case 142:
3080
62
#line 777 "/src/libpcap/build/grammar.y"
3081
62
                                { int i;
3082
62
          CHECK_PTR_VAL((yyvsp[0].s));
3083
152
          for (i = 0;; i++) {
3084
152
          if (ieee80211_type_subtypes[i].tok == NULL) {
3085
            /* Ran out of types */
3086
10
            bpf_set_error(cstate, "unknown 802.11 type name");
3087
10
            YYABORT;
3088
10
          }
3089
142
          (yyval.i) = str2tok((yyvsp[0].s), ieee80211_type_subtypes[i].tok);
3090
142
          if ((yyval.i) != -1) {
3091
52
            (yyval.i) |= ieee80211_type_subtypes[i].type;
3092
52
            break;
3093
52
          }
3094
142
          }
3095
62
        }
3096
52
#line 3097 "/src/libpcap/build/grammar.c"
3097
52
    break;
3098
3099
685
  case 143:
3100
685
#line 794 "/src/libpcap/build/grammar.y"
3101
685
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_llc(cstate))); }
3102
680
#line 3103 "/src/libpcap/build/grammar.c"
3103
680
    break;
3104
3105
680
  case 144:
3106
452
#line 795 "/src/libpcap/build/grammar.y"
3107
452
                                { CHECK_PTR_VAL((yyvsp[0].s));
3108
452
          if (pcapint_strcasecmp((yyvsp[0].s), "i") == 0) {
3109
78
          CHECK_PTR_VAL(((yyval.rblk) = gen_llc_i(cstate)));
3110
374
          } else if (pcapint_strcasecmp((yyvsp[0].s), "s") == 0) {
3111
86
          CHECK_PTR_VAL(((yyval.rblk) = gen_llc_s(cstate)));
3112
288
          } else if (pcapint_strcasecmp((yyvsp[0].s), "u") == 0) {
3113
90
          CHECK_PTR_VAL(((yyval.rblk) = gen_llc_u(cstate)));
3114
198
          } else {
3115
198
          int subtype;
3116
3117
198
          subtype = str2tok((yyvsp[0].s), llc_s_subtypes);
3118
198
          if (subtype != -1) {
3119
73
            CHECK_PTR_VAL(((yyval.rblk) = gen_llc_s_subtype(cstate, subtype)));
3120
125
          } else {
3121
125
            subtype = str2tok((yyvsp[0].s), llc_u_subtypes);
3122
125
            if (subtype == -1) {
3123
31
              bpf_set_error(cstate, "unknown LLC type name \"%s\"", (yyvsp[0].s));
3124
31
              YYABORT;
3125
31
            }
3126
94
            CHECK_PTR_VAL(((yyval.rblk) = gen_llc_u_subtype(cstate, subtype)));
3127
94
          }
3128
198
          }
3129
452
        }
3130
416
#line 3131 "/src/libpcap/build/grammar.c"
3131
416
    break;
3132
3133
416
  case 145:
3134
26
#line 819 "/src/libpcap/build/grammar.y"
3135
26
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_llc_s_subtype(cstate, LLC_RNR))); }
3136
25
#line 3137 "/src/libpcap/build/grammar.c"
3137
25
    break;
3138
3139
144
  case 146:
3140
144
#line 822 "/src/libpcap/build/grammar.y"
3141
144
                                { (yyval.i) = (int)(yyvsp[0].h); }
3142
144
#line 3143 "/src/libpcap/build/grammar.c"
3143
144
    break;
3144
3145
54
  case 147:
3146
54
#line 823 "/src/libpcap/build/grammar.y"
3147
54
                                { CHECK_PTR_VAL((yyvsp[0].s));
3148
54
          if (pcapint_strcasecmp((yyvsp[0].s), "nods") == 0)
3149
10
          (yyval.i) = IEEE80211_FC1_DIR_NODS;
3150
44
          else if (pcapint_strcasecmp((yyvsp[0].s), "tods") == 0)
3151
6
          (yyval.i) = IEEE80211_FC1_DIR_TODS;
3152
38
          else if (pcapint_strcasecmp((yyvsp[0].s), "fromds") == 0)
3153
0
          (yyval.i) = IEEE80211_FC1_DIR_FROMDS;
3154
38
          else if (pcapint_strcasecmp((yyvsp[0].s), "dstods") == 0)
3155
10
          (yyval.i) = IEEE80211_FC1_DIR_DSTODS;
3156
28
          else {
3157
28
          bpf_set_error(cstate, "unknown 802.11 direction");
3158
28
          YYABORT;
3159
28
          }
3160
54
        }
3161
26
#line 3162 "/src/libpcap/build/grammar.c"
3162
26
    break;
3163
3164
26
  case 148:
3165
20
#line 839 "/src/libpcap/build/grammar.y"
3166
20
                                { (yyval.i) = (yyvsp[0].h); }
3167
20
#line 3168 "/src/libpcap/build/grammar.c"
3168
20
    break;
3169
3170
3
  case 149:
3171
3
#line 840 "/src/libpcap/build/grammar.y"
3172
3
                                { CHECK_PTR_VAL((yyvsp[0].s)); CHECK_INT_VAL(((yyval.i) = pfreason_to_num(cstate, (yyvsp[0].s)))); }
3173
0
#line 3174 "/src/libpcap/build/grammar.c"
3174
0
    break;
3175
3176
12
  case 150:
3177
12
#line 843 "/src/libpcap/build/grammar.y"
3178
12
                                { CHECK_PTR_VAL((yyvsp[0].s)); CHECK_INT_VAL(((yyval.i) = pfaction_to_num(cstate, (yyvsp[0].s)))); }
3179
8
#line 3180 "/src/libpcap/build/grammar.c"
3180
8
    break;
3181
3182
1.22k
  case 151:
3183
1.22k
#line 846 "/src/libpcap/build/grammar.y"
3184
1.22k
                                { (yyval.i) = BPF_JGT; }
3185
1.22k
#line 3186 "/src/libpcap/build/grammar.c"
3186
1.22k
    break;
3187
3188
89
  case 152:
3189
89
#line 847 "/src/libpcap/build/grammar.y"
3190
89
                                { (yyval.i) = BPF_JGE; }
3191
89
#line 3192 "/src/libpcap/build/grammar.c"
3192
89
    break;
3193
3194
1.68k
  case 153:
3195
1.68k
#line 848 "/src/libpcap/build/grammar.y"
3196
1.68k
                                { (yyval.i) = BPF_JEQ; }
3197
1.68k
#line 3198 "/src/libpcap/build/grammar.c"
3198
1.68k
    break;
3199
3200
146
  case 154:
3201
146
#line 850 "/src/libpcap/build/grammar.y"
3202
146
                                { (yyval.i) = BPF_JGT; }
3203
146
#line 3204 "/src/libpcap/build/grammar.c"
3204
146
    break;
3205
3206
1.58k
  case 155:
3207
1.58k
#line 851 "/src/libpcap/build/grammar.y"
3208
1.58k
                                { (yyval.i) = BPF_JGE; }
3209
1.58k
#line 3210 "/src/libpcap/build/grammar.c"
3210
1.58k
    break;
3211
3212
146
  case 156:
3213
146
#line 852 "/src/libpcap/build/grammar.y"
3214
146
                                { (yyval.i) = BPF_JEQ; }
3215
146
#line 3216 "/src/libpcap/build/grammar.c"
3216
146
    break;
3217
3218
21.1k
  case 157:
3219
21.1k
#line 854 "/src/libpcap/build/grammar.y"
3220
21.1k
                                { CHECK_PTR_VAL(((yyval.a) = gen_loadi(cstate, (yyvsp[0].h)))); }
3221
21.1k
#line 3222 "/src/libpcap/build/grammar.c"
3222
21.1k
    break;
3223
3224
21.1k
  case 159:
3225
3.27k
#line 857 "/src/libpcap/build/grammar.y"
3226
3.27k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_load(cstate, (yyvsp[-3].i), (yyvsp[-1].a), 1))); }
3227
3.24k
#line 3228 "/src/libpcap/build/grammar.c"
3228
3.24k
    break;
3229
3230
3.24k
  case 160:
3231
456
#line 858 "/src/libpcap/build/grammar.y"
3232
456
                                        { CHECK_PTR_VAL(((yyval.a) = gen_load(cstate, (yyvsp[-5].i), (yyvsp[-3].a), (yyvsp[-1].h)))); }
3233
455
#line 3234 "/src/libpcap/build/grammar.c"
3234
455
    break;
3235
3236
2.07k
  case 161:
3237
2.07k
#line 859 "/src/libpcap/build/grammar.y"
3238
2.07k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_ADD, (yyvsp[-2].a), (yyvsp[0].a)))); }
3239
2.07k
#line 3240 "/src/libpcap/build/grammar.c"
3240
2.07k
    break;
3241
3242
2.07k
  case 162:
3243
1.00k
#line 860 "/src/libpcap/build/grammar.y"
3244
1.00k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_SUB, (yyvsp[-2].a), (yyvsp[0].a)))); }
3245
1.00k
#line 3246 "/src/libpcap/build/grammar.c"
3246
1.00k
    break;
3247
3248
2.51k
  case 163:
3249
2.51k
#line 861 "/src/libpcap/build/grammar.y"
3250
2.51k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_MUL, (yyvsp[-2].a), (yyvsp[0].a)))); }
3251
2.51k
#line 3252 "/src/libpcap/build/grammar.c"
3252
2.51k
    break;
3253
3254
2.51k
  case 164:
3255
1.51k
#line 862 "/src/libpcap/build/grammar.y"
3256
1.51k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_DIV, (yyvsp[-2].a), (yyvsp[0].a)))); }
3257
1.51k
#line 3258 "/src/libpcap/build/grammar.c"
3258
1.51k
    break;
3259
3260
1.51k
  case 165:
3261
1.32k
#line 863 "/src/libpcap/build/grammar.y"
3262
1.32k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_MOD, (yyvsp[-2].a), (yyvsp[0].a)))); }
3263
1.31k
#line 3264 "/src/libpcap/build/grammar.c"
3264
1.31k
    break;
3265
3266
1.98k
  case 166:
3267
1.98k
#line 864 "/src/libpcap/build/grammar.y"
3268
1.98k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_AND, (yyvsp[-2].a), (yyvsp[0].a)))); }
3269
1.98k
#line 3270 "/src/libpcap/build/grammar.c"
3270
1.98k
    break;
3271
3272
1.98k
  case 167:
3273
1.60k
#line 865 "/src/libpcap/build/grammar.y"
3274
1.60k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_OR, (yyvsp[-2].a), (yyvsp[0].a)))); }
3275
1.60k
#line 3276 "/src/libpcap/build/grammar.c"
3276
1.60k
    break;
3277
3278
1.60k
  case 168:
3279
655
#line 866 "/src/libpcap/build/grammar.y"
3280
655
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_XOR, (yyvsp[-2].a), (yyvsp[0].a)))); }
3281
655
#line 3282 "/src/libpcap/build/grammar.c"
3282
655
    break;
3283
3284
1.01k
  case 169:
3285
1.01k
#line 867 "/src/libpcap/build/grammar.y"
3286
1.01k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_LSH, (yyvsp[-2].a), (yyvsp[0].a)))); }
3287
969
#line 3288 "/src/libpcap/build/grammar.c"
3288
969
    break;
3289
3290
969
  case 170:
3291
581
#line 868 "/src/libpcap/build/grammar.y"
3292
581
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_RSH, (yyvsp[-2].a), (yyvsp[0].a)))); }
3293
580
#line 3294 "/src/libpcap/build/grammar.c"
3294
580
    break;
3295
3296
15.7k
  case 171:
3297
15.7k
#line 869 "/src/libpcap/build/grammar.y"
3298
15.7k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_neg(cstate, (yyvsp[0].a)))); }
3299
15.7k
#line 3300 "/src/libpcap/build/grammar.c"
3300
15.7k
    break;
3301
3302
15.7k
  case 172:
3303
138
#line 870 "/src/libpcap/build/grammar.y"
3304
138
                                        { (yyval.a) = (yyvsp[-1].a); }
3305
138
#line 3306 "/src/libpcap/build/grammar.c"
3306
138
    break;
3307
3308
2.69k
  case 173:
3309
2.69k
#line 871 "/src/libpcap/build/grammar.y"
3310
2.69k
                                        { CHECK_PTR_VAL(((yyval.a) = gen_loadlen(cstate))); }
3311
2.69k
#line 3312 "/src/libpcap/build/grammar.c"
3312
2.69k
    break;
3313
3314
2.69k
  case 174:
3315
33
#line 873 "/src/libpcap/build/grammar.y"
3316
33
                                { (yyval.i) = '&'; }
3317
33
#line 3318 "/src/libpcap/build/grammar.c"
3318
33
    break;
3319
3320
36
  case 175:
3321
36
#line 874 "/src/libpcap/build/grammar.y"
3322
36
                                { (yyval.i) = '|'; }
3323
36
#line 3324 "/src/libpcap/build/grammar.c"
3324
36
    break;
3325
3326
27
  case 176:
3327
27
#line 875 "/src/libpcap/build/grammar.y"
3328
27
                                { (yyval.i) = '<'; }
3329
27
#line 3330 "/src/libpcap/build/grammar.c"
3330
27
    break;
3331
3332
43
  case 177:
3333
43
#line 876 "/src/libpcap/build/grammar.y"
3334
43
                                { (yyval.i) = '>'; }
3335
43
#line 3336 "/src/libpcap/build/grammar.c"
3336
43
    break;
3337
3338
20
  case 178:
3339
20
#line 877 "/src/libpcap/build/grammar.y"
3340
20
                                { (yyval.i) = '='; }
3341
20
#line 3342 "/src/libpcap/build/grammar.c"
3342
20
    break;
3343
3344
80
  case 180:
3345
80
#line 880 "/src/libpcap/build/grammar.y"
3346
80
                                { (yyval.h) = (yyvsp[-1].h); }
3347
80
#line 3348 "/src/libpcap/build/grammar.c"
3348
80
    break;
3349
3350
49
  case 181:
3351
49
#line 882 "/src/libpcap/build/grammar.y"
3352
49
                                { (yyval.i) = A_LANE; }
3353
49
#line 3354 "/src/libpcap/build/grammar.c"
3354
49
    break;
3355
3356
11
  case 182:
3357
11
#line 883 "/src/libpcap/build/grammar.y"
3358
11
                                { (yyval.i) = A_METAC; }
3359
11
#line 3360 "/src/libpcap/build/grammar.c"
3360
11
    break;
3361
3362
14
  case 183:
3363
14
#line 884 "/src/libpcap/build/grammar.y"
3364
14
                                { (yyval.i) = A_BCC; }
3365
14
#line 3366 "/src/libpcap/build/grammar.c"
3366
14
    break;
3367
3368
11
  case 184:
3369
11
#line 885 "/src/libpcap/build/grammar.y"
3370
11
                                { (yyval.i) = A_OAMF4EC; }
3371
11
#line 3372 "/src/libpcap/build/grammar.c"
3372
11
    break;
3373
3374
12
  case 185:
3375
12
#line 886 "/src/libpcap/build/grammar.y"
3376
12
                                { (yyval.i) = A_OAMF4SC; }
3377
12
#line 3378 "/src/libpcap/build/grammar.c"
3378
12
    break;
3379
3380
32
  case 186:
3381
32
#line 887 "/src/libpcap/build/grammar.y"
3382
32
                                { (yyval.i) = A_SC; }
3383
32
#line 3384 "/src/libpcap/build/grammar.c"
3384
32
    break;
3385
3386
2
  case 187:
3387
2
#line 888 "/src/libpcap/build/grammar.y"
3388
2
                                { (yyval.i) = A_ILMIC; }
3389
2
#line 3390 "/src/libpcap/build/grammar.c"
3390
2
    break;
3391
3392
19
  case 188:
3393
19
#line 890 "/src/libpcap/build/grammar.y"
3394
19
                                { (yyval.i) = A_OAM; }
3395
19
#line 3396 "/src/libpcap/build/grammar.c"
3396
19
    break;
3397
3398
11
  case 189:
3399
11
#line 891 "/src/libpcap/build/grammar.y"
3400
11
                                { (yyval.i) = A_OAMF4; }
3401
11
#line 3402 "/src/libpcap/build/grammar.c"
3402
11
    break;
3403
3404
0
  case 190:
3405
0
#line 892 "/src/libpcap/build/grammar.y"
3406
0
                                { (yyval.i) = A_CONNECTMSG; }
3407
0
#line 3408 "/src/libpcap/build/grammar.c"
3408
0
    break;
3409
3410
0
  case 191:
3411
0
#line 893 "/src/libpcap/build/grammar.y"
3412
0
                                { (yyval.i) = A_METACONNECT; }
3413
0
#line 3414 "/src/libpcap/build/grammar.c"
3414
0
    break;
3415
3416
200
  case 192:
3417
200
#line 896 "/src/libpcap/build/grammar.y"
3418
200
                                { (yyval.blk).atmfieldtype = A_VPI; }
3419
200
#line 3420 "/src/libpcap/build/grammar.c"
3420
200
    break;
3421
3422
107
  case 193:
3423
107
#line 897 "/src/libpcap/build/grammar.y"
3424
107
                                { (yyval.blk).atmfieldtype = A_VCI; }
3425
107
#line 3426 "/src/libpcap/build/grammar.c"
3426
107
    break;
3427
3428
78
  case 195:
3429
78
#line 900 "/src/libpcap/build/grammar.y"
3430
78
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_atmfield_code(cstate, (yyvsp[-2].blk).atmfieldtype, (yyvsp[0].h), (yyvsp[-1].i), 0))); }
3431
77
#line 3432 "/src/libpcap/build/grammar.c"
3432
77
    break;
3433
3434
200
  case 196:
3435
200
#line 901 "/src/libpcap/build/grammar.y"
3436
200
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_atmfield_code(cstate, (yyvsp[-2].blk).atmfieldtype, (yyvsp[0].h), (yyvsp[-1].i), 1))); }
3437
199
#line 3438 "/src/libpcap/build/grammar.c"
3438
199
    break;
3439
3440
199
  case 197:
3441
8
#line 902 "/src/libpcap/build/grammar.y"
3442
8
                                 { (yyval.blk).b = (yyvsp[-1].blk).b; (yyval.blk).q = qerr; }
3443
8
#line 3444 "/src/libpcap/build/grammar.c"
3444
8
    break;
3445
3446
163
  case 198:
3447
163
#line 904 "/src/libpcap/build/grammar.y"
3448
163
                   {
3449
163
  (yyval.blk).atmfieldtype = (yyvsp[-1].blk).atmfieldtype;
3450
163
  if ((yyval.blk).atmfieldtype == A_VPI ||
3451
163
      (yyval.blk).atmfieldtype == A_VCI)
3452
163
    CHECK_PTR_VAL(((yyval.blk).b = gen_atmfield_code(cstate, (yyval.blk).atmfieldtype, (yyvsp[0].h), BPF_JEQ, 0)));
3453
163
  }
3454
161
#line 3455 "/src/libpcap/build/grammar.c"
3455
161
    break;
3456
3457
161
  case 200:
3458
142
#line 912 "/src/libpcap/build/grammar.y"
3459
142
                                        { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
3460
142
#line 3461 "/src/libpcap/build/grammar.c"
3461
142
    break;
3462
3463
132
  case 201:
3464
132
#line 915 "/src/libpcap/build/grammar.y"
3465
132
                                { (yyval.i) = M_FISU; }
3466
132
#line 3467 "/src/libpcap/build/grammar.c"
3467
132
    break;
3468
3469
288
  case 202:
3470
288
#line 916 "/src/libpcap/build/grammar.y"
3471
288
                                { (yyval.i) = M_LSSU; }
3472
288
#line 3473 "/src/libpcap/build/grammar.c"
3473
288
    break;
3474
3475
160
  case 203:
3476
160
#line 917 "/src/libpcap/build/grammar.y"
3477
160
                                { (yyval.i) = M_MSU; }
3478
160
#line 3479 "/src/libpcap/build/grammar.c"
3479
160
    break;
3480
3481
123
  case 204:
3482
123
#line 918 "/src/libpcap/build/grammar.y"
3483
123
                                { (yyval.i) = MH_FISU; }
3484
123
#line 3485 "/src/libpcap/build/grammar.c"
3485
123
    break;
3486
3487
132
  case 205:
3488
132
#line 919 "/src/libpcap/build/grammar.y"
3489
132
                                { (yyval.i) = MH_LSSU; }
3490
132
#line 3491 "/src/libpcap/build/grammar.c"
3491
132
    break;
3492
3493
141
  case 206:
3494
141
#line 920 "/src/libpcap/build/grammar.y"
3495
141
                                { (yyval.i) = MH_MSU; }
3496
141
#line 3497 "/src/libpcap/build/grammar.c"
3497
141
    break;
3498
3499
86
  case 207:
3500
86
#line 923 "/src/libpcap/build/grammar.y"
3501
86
                                { (yyval.blk).mtp3fieldtype = M_SIO; }
3502
86
#line 3503 "/src/libpcap/build/grammar.c"
3503
86
    break;
3504
3505
47
  case 208:
3506
47
#line 924 "/src/libpcap/build/grammar.y"
3507
47
                                { (yyval.blk).mtp3fieldtype = M_OPC; }
3508
47
#line 3509 "/src/libpcap/build/grammar.c"
3509
47
    break;
3510
3511
107
  case 209:
3512
107
#line 925 "/src/libpcap/build/grammar.y"
3513
107
                                { (yyval.blk).mtp3fieldtype = M_DPC; }
3514
107
#line 3515 "/src/libpcap/build/grammar.c"
3515
107
    break;
3516
3517
67
  case 210:
3518
67
#line 926 "/src/libpcap/build/grammar.y"
3519
67
                                { (yyval.blk).mtp3fieldtype = M_SLS; }
3520
67
#line 3521 "/src/libpcap/build/grammar.c"
3521
67
    break;
3522
3523
72
  case 211:
3524
72
#line 927 "/src/libpcap/build/grammar.y"
3525
72
                                { (yyval.blk).mtp3fieldtype = MH_SIO; }
3526
72
#line 3527 "/src/libpcap/build/grammar.c"
3527
72
    break;
3528
3529
51
  case 212:
3530
51
#line 928 "/src/libpcap/build/grammar.y"
3531
51
                                { (yyval.blk).mtp3fieldtype = MH_OPC; }
3532
51
#line 3533 "/src/libpcap/build/grammar.c"
3533
51
    break;
3534
3535
65
  case 213:
3536
65
#line 929 "/src/libpcap/build/grammar.y"
3537
65
                                { (yyval.blk).mtp3fieldtype = MH_DPC; }
3538
65
#line 3539 "/src/libpcap/build/grammar.c"
3539
65
    break;
3540
3541
10
  case 214:
3542
10
#line 930 "/src/libpcap/build/grammar.y"
3543
10
                                { (yyval.blk).mtp3fieldtype = MH_SLS; }
3544
10
#line 3545 "/src/libpcap/build/grammar.c"
3545
10
    break;
3546
3547
103
  case 216:
3548
103
#line 933 "/src/libpcap/build/grammar.y"
3549
103
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_mtp3field_code(cstate, (yyvsp[-2].blk).mtp3fieldtype, (yyvsp[0].h), (yyvsp[-1].i), 0))); }
3550
92
#line 3551 "/src/libpcap/build/grammar.c"
3551
92
    break;
3552
3553
152
  case 217:
3554
152
#line 934 "/src/libpcap/build/grammar.y"
3555
152
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_mtp3field_code(cstate, (yyvsp[-2].blk).mtp3fieldtype, (yyvsp[0].h), (yyvsp[-1].i), 1))); }
3556
144
#line 3557 "/src/libpcap/build/grammar.c"
3557
144
    break;
3558
3559
144
  case 218:
3560
15
#line 935 "/src/libpcap/build/grammar.y"
3561
15
                                  { (yyval.blk).b = (yyvsp[-1].blk).b; (yyval.blk).q = qerr; }
3562
15
#line 3563 "/src/libpcap/build/grammar.c"
3563
15
    break;
3564
3565
717
  case 219:
3566
717
#line 937 "/src/libpcap/build/grammar.y"
3567
717
                    {
3568
717
  (yyval.blk).mtp3fieldtype = (yyvsp[-1].blk).mtp3fieldtype;
3569
717
  if ((yyval.blk).mtp3fieldtype == M_SIO ||
3570
717
      (yyval.blk).mtp3fieldtype == M_OPC ||
3571
717
      (yyval.blk).mtp3fieldtype == M_DPC ||
3572
717
      (yyval.blk).mtp3fieldtype == M_SLS ||
3573
717
      (yyval.blk).mtp3fieldtype == MH_SIO ||
3574
717
      (yyval.blk).mtp3fieldtype == MH_OPC ||
3575
717
      (yyval.blk).mtp3fieldtype == MH_DPC ||
3576
717
      (yyval.blk).mtp3fieldtype == MH_SLS)
3577
717
    CHECK_PTR_VAL(((yyval.blk).b = gen_mtp3field_code(cstate, (yyval.blk).mtp3fieldtype, (yyvsp[0].h), BPF_JEQ, 0)));
3578
717
  }
3579
611
#line 3580 "/src/libpcap/build/grammar.c"
3580
611
    break;
3581
3582
611
  case 221:
3583
497
#line 951 "/src/libpcap/build/grammar.y"
3584
497
                                          { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
3585
497
#line 3586 "/src/libpcap/build/grammar.c"
3586
497
    break;
3587
3588
3589
0
#line 3590 "/src/libpcap/build/grammar.c"
3590
3591
106k
      default: break;
3592
303k
    }
3593
  /* User semantic actions sometimes alter yychar, and that requires
3594
     that yytoken be updated with the new translation.  We take the
3595
     approach of translating immediately before every use of yytoken.
3596
     One alternative is translating here after every semantic action,
3597
     but that translation would be missed if the semantic action invokes
3598
     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3599
     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
3600
     incorrect destructor might then be invoked immediately.  In the
3601
     case of YYERROR or YYBACKUP, subsequent parser actions might lead
3602
     to an incorrect destructor call or verbose syntax error message
3603
     before the lookahead is translated.  */
3604
301k
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3605
3606
301k
  YYPOPSTACK (yylen);
3607
301k
  yylen = 0;
3608
301k
  YY_STACK_PRINT (yyss, yyssp);
3609
3610
301k
  *++yyvsp = yyval;
3611
3612
  /* Now 'shift' the result of the reduction.  Determine what state
3613
     that goes to, based on the state we popped back to and the rule
3614
     number reduced by.  */
3615
301k
  {
3616
301k
    const int yylhs = yyr1[yyn] - YYNTOKENS;
3617
301k
    const int yyi = yypgoto[yylhs] + *yyssp;
3618
301k
    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3619
301k
               ? yytable[yyi]
3620
301k
               : yydefgoto[yylhs]);
3621
301k
  }
3622
3623
301k
  goto yynewstate;
3624
3625
3626
/*--------------------------------------.
3627
| yyerrlab -- here on detecting error.  |
3628
`--------------------------------------*/
3629
1.77k
yyerrlab:
3630
  /* Make sure we have latest lookahead translation.  See comments at
3631
     user semantic actions for why this is necessary.  */
3632
1.77k
  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3633
3634
  /* If not already recovering from an error, report this error.  */
3635
1.77k
  if (!yyerrstatus)
3636
1.77k
    {
3637
1.77k
      ++yynerrs;
3638
1.77k
#if ! YYERROR_VERBOSE
3639
1.77k
      yyerror (yyscanner, cstate, YY_("syntax error"));
3640
#else
3641
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3642
                                        yyssp, yytoken)
3643
      {
3644
        char const *yymsgp = YY_("syntax error");
3645
        int yysyntax_error_status;
3646
        yysyntax_error_status = YYSYNTAX_ERROR;
3647
        if (yysyntax_error_status == 0)
3648
          yymsgp = yymsg;
3649
        else if (yysyntax_error_status == 1)
3650
          {
3651
            if (yymsg != yymsgbuf)
3652
              YYSTACK_FREE (yymsg);
3653
            yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
3654
            if (!yymsg)
3655
              {
3656
                yymsg = yymsgbuf;
3657
                yymsg_alloc = sizeof yymsgbuf;
3658
                yysyntax_error_status = 2;
3659
              }
3660
            else
3661
              {
3662
                yysyntax_error_status = YYSYNTAX_ERROR;
3663
                yymsgp = yymsg;
3664
              }
3665
          }
3666
        yyerror (yyscanner, cstate, yymsgp);
3667
        if (yysyntax_error_status == 2)
3668
          goto yyexhaustedlab;
3669
      }
3670
# undef YYSYNTAX_ERROR
3671
#endif
3672
1.77k
    }
3673
3674
3675
3676
1.77k
  if (yyerrstatus == 3)
3677
0
    {
3678
      /* If just tried and failed to reuse lookahead token after an
3679
         error, discard it.  */
3680
3681
0
      if (yychar <= YYEOF)
3682
0
        {
3683
          /* Return failure if at end of input.  */
3684
0
          if (yychar == YYEOF)
3685
0
            YYABORT;
3686
0
        }
3687
0
      else
3688
0
        {
3689
0
          yydestruct ("Error: discarding",
3690
0
                      yytoken, &yylval, yyscanner, cstate);
3691
0
          yychar = YYEMPTY;
3692
0
        }
3693
0
    }
3694
3695
  /* Else will try to reuse lookahead token after shifting the error
3696
     token.  */
3697
1.77k
  goto yyerrlab1;
3698
3699
3700
/*---------------------------------------------------.
3701
| yyerrorlab -- error raised explicitly by YYERROR.  |
3702
`---------------------------------------------------*/
3703
1.77k
yyerrorlab:
3704
  /* Pacify compilers when the user code never invokes YYERROR and the
3705
     label yyerrorlab therefore never appears in user code.  */
3706
0
  if (0)
3707
0
    YYERROR;
3708
3709
  /* Do not reclaim the symbols of the rule whose action triggered
3710
     this YYERROR.  */
3711
0
  YYPOPSTACK (yylen);
3712
0
  yylen = 0;
3713
0
  YY_STACK_PRINT (yyss, yyssp);
3714
0
  yystate = *yyssp;
3715
0
  goto yyerrlab1;
3716
3717
3718
/*-------------------------------------------------------------.
3719
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
3720
`-------------------------------------------------------------*/
3721
1.77k
yyerrlab1:
3722
1.77k
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3723
3724
1.77k
  for (;;)
3725
9.35k
    {
3726
9.35k
      yyn = yypact[yystate];
3727
9.35k
      if (!yypact_value_is_default (yyn))
3728
7.57k
        {
3729
7.57k
          yyn += YYTERROR;
3730
7.57k
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3731
0
            {
3732
0
              yyn = yytable[yyn];
3733
0
              if (0 < yyn)
3734
0
                break;
3735
0
            }
3736
7.57k
        }
3737
3738
      /* Pop the current state because it cannot handle the error token.  */
3739
9.35k
      if (yyssp == yyss)
3740
1.77k
        YYABORT;
3741
3742
3743
7.57k
      yydestruct ("Error: popping",
3744
7.57k
                  yystos[yystate], yyvsp, yyscanner, cstate);
3745
7.57k
      YYPOPSTACK (1);
3746
7.57k
      yystate = *yyssp;
3747
7.57k
      YY_STACK_PRINT (yyss, yyssp);
3748
7.57k
    }
3749
3750
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3751
0
  *++yyvsp = yylval;
3752
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
3753
3754
3755
  /* Shift the error token.  */
3756
0
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3757
3758
0
  yystate = yyn;
3759
0
  goto yynewstate;
3760
3761
3762
/*-------------------------------------.
3763
| yyacceptlab -- YYACCEPT comes here.  |
3764
`-------------------------------------*/
3765
9.26k
yyacceptlab:
3766
9.26k
  yyresult = 0;
3767
9.26k
  goto yyreturn;
3768
3769
3770
/*-----------------------------------.
3771
| yyabortlab -- YYABORT comes here.  |
3772
`-----------------------------------*/
3773
3.73k
yyabortlab:
3774
3.73k
  yyresult = 1;
3775
3.73k
  goto yyreturn;
3776
3777
3778
0
#if !defined yyoverflow || YYERROR_VERBOSE
3779
/*-------------------------------------------------.
3780
| yyexhaustedlab -- memory exhaustion comes here.  |
3781
`-------------------------------------------------*/
3782
0
yyexhaustedlab:
3783
0
  yyerror (yyscanner, cstate, YY_("memory exhausted"));
3784
0
  yyresult = 2;
3785
  /* Fall through.  */
3786
0
#endif
3787
3788
3789
/*-----------------------------------------------------.
3790
| yyreturn -- parsing is finished, return the result.  |
3791
`-----------------------------------------------------*/
3792
13.0k
yyreturn:
3793
13.0k
  if (yychar != YYEMPTY)
3794
2.01k
    {
3795
      /* Make sure we have latest lookahead translation.  See comments at
3796
         user semantic actions for why this is necessary.  */
3797
2.01k
      yytoken = YYTRANSLATE (yychar);
3798
2.01k
      yydestruct ("Cleanup: discarding lookahead",
3799
2.01k
                  yytoken, &yylval, yyscanner, cstate);
3800
2.01k
    }
3801
  /* Do not reclaim the symbols of the rule whose action triggered
3802
     this YYABORT or YYACCEPT.  */
3803
13.0k
  YYPOPSTACK (yylen);
3804
13.0k
  YY_STACK_PRINT (yyss, yyssp);
3805
36.4k
  while (yyssp != yyss)
3806
23.4k
    {
3807
23.4k
      yydestruct ("Cleanup: popping",
3808
23.4k
                  yystos[+*yyssp], yyvsp, yyscanner, cstate);
3809
23.4k
      YYPOPSTACK (1);
3810
23.4k
    }
3811
13.0k
#ifndef yyoverflow
3812
13.0k
  if (yyss != yyssa)
3813
15
    YYSTACK_FREE (yyss);
3814
13.0k
#endif
3815
#if YYERROR_VERBOSE
3816
  if (yymsg != yymsgbuf)
3817
    YYSTACK_FREE (yymsg);
3818
#endif
3819
13.0k
  return yyresult;
3820
0
}
3821
#line 953 "/src/libpcap/build/grammar.y"
3822