Coverage Report

Created: 2023-06-07 06:26

/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
0
#define yylex           pcap_lex
69
0
#define yyerror         pcap_error
70
#define yydebug         pcap_debug
71
0
#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
0
#define QSET(q, p, d, a) (q).proto = (unsigned char)(p),\
173
0
       (q).dir = (unsigned char)(d),\
174
0
       (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
0
{
272
0
  int i;
273
274
0
  for (i = 0; toks[i].s != NULL; i++) {
275
0
    if (pcap_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
0
      if (toks[i].v == -1)
283
0
        abort();
284
0
      return (toks[i].v);
285
0
    }
286
0
  }
287
0
  return (-1);
288
0
}
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
0
{
295
0
  bpf_set_error(cstate, "can't parse filter expression: %s", msg);
296
0
}
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
0
{
330
0
  int i;
331
332
0
  i = str2tok(reason, pflog_reasons);
333
0
  if (i == -1)
334
0
    bpf_set_error(cstate, "unknown PF reason \"%s\"", reason);
335
0
  return (i);
336
0
}
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
0
{
372
0
  int i;
373
374
0
  i = str2tok(action, pflog_actions);
375
0
  if (i == -1)
376
0
    bpf_set_error(cstate, "unknown PF action \"%s\"", action);
377
0
  return (i);
378
0
}
379
380
/*
381
 * For calls that might return an "an error occurred" value.
382
 */
383
0
#define CHECK_INT_VAL(val)  if (val == -1) YYABORT
384
0
#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
0
#   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
0
#  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
0
#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
0
#  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
0
# 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
0
# 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
0
#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
0
#  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
0
#   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
0
# 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
0
    do                                                                  \
863
0
      {                                                                 \
864
0
        YYPTRDIFF_T yynewbytes;                                         \
865
0
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
866
0
        Stack = &yyptr->Stack_alloc;                                    \
867
0
        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
868
0
        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
869
0
      }                                                                 \
870
0
    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
0
      __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
0
#define YYFINAL  3
896
/* YYLAST -- Last index in YYTABLE.  */
897
0
#define YYLAST   800
898
899
/* YYNTOKENS -- Number of terminals.  */
900
0
#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
0
#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
0
  (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
0
#define YYPACT_NINF (-217)
1047
1048
#define yypact_value_is_default(Yyn) \
1049
0
  ((Yyn) == YYPACT_NINF)
1050
1051
#define YYTABLE_NINF (-42)
1052
1053
#define yytable_value_is_error(Yyn) \
1054
0
  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
0
#define YYEMPTY         (-2)
1418
0
#define YYEOF           0
1419
1420
0
#define YYACCEPT        goto yyacceptlab
1421
0
#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
0
#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
0
# 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
0
# 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
0
{
1840
0
  YYUSE (yyvaluep);
1841
0
  YYUSE (yyscanner);
1842
0
  YYUSE (cstate);
1843
0
  if (!yymsg)
1844
0
    yymsg = "Deleting";
1845
0
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1846
1847
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1848
0
  YYUSE (yytype);
1849
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
1850
0
}
1851
1852
1853
1854
1855
/*----------.
1856
| yyparse.  |
1857
`----------*/
1858
1859
int
1860
yyparse (void *yyscanner, compiler_state_t *cstate)
1861
0
{
1862
/* The lookahead symbol.  */
1863
0
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
0
YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1870
0
YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
1871
1872
    /* Number of syntax errors so far.  */
1873
0
    int yynerrs;
1874
1875
0
    yy_state_fast_t yystate;
1876
    /* Number of tokens to shift before error messages enabled.  */
1877
0
    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
0
    yy_state_t yyssa[YYINITDEPTH];
1888
0
    yy_state_t *yyss;
1889
0
    yy_state_t *yyssp;
1890
1891
    /* The semantic value stack.  */
1892
0
    YYSTYPE yyvsa[YYINITDEPTH];
1893
0
    YYSTYPE *yyvs;
1894
0
    YYSTYPE *yyvsp;
1895
1896
0
    YYPTRDIFF_T yystacksize;
1897
1898
0
  int yyn;
1899
0
  int yyresult;
1900
  /* Lookahead token as an internal (translated) token number.  */
1901
0
  int yytoken = 0;
1902
  /* The variables used to return semantic value and location from the
1903
     action routines.  */
1904
0
  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
0
#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
0
  int yylen = 0;
1918
1919
0
  yyssp = yyss = yyssa;
1920
0
  yyvsp = yyvs = yyvsa;
1921
0
  yystacksize = YYINITDEPTH;
1922
1923
0
  YYDPRINTF ((stderr, "Starting parse\n"));
1924
1925
0
  yystate = 0;
1926
0
  yyerrstatus = 0;
1927
0
  yynerrs = 0;
1928
0
  yychar = YYEMPTY; /* Cause a token to be read.  */
1929
0
  goto yysetstate;
1930
1931
1932
/*------------------------------------------------------------.
1933
| yynewstate -- push a new state, which is found in yystate.  |
1934
`------------------------------------------------------------*/
1935
0
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
0
  yyssp++;
1939
1940
1941
/*--------------------------------------------------------------------.
1942
| yysetstate -- set current state (the top of the stack) to yystate.  |
1943
`--------------------------------------------------------------------*/
1944
0
yysetstate:
1945
0
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1946
0
  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1947
0
  YY_IGNORE_USELESS_CAST_BEGIN
1948
0
  *yyssp = YY_CAST (yy_state_t, yystate);
1949
0
  YY_IGNORE_USELESS_CAST_END
1950
1951
0
  if (yyss + yystacksize - 1 <= yyssp)
1952
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
1953
    goto yyexhaustedlab;
1954
#else
1955
0
    {
1956
      /* Get the current used size of the three stacks, in elements.  */
1957
0
      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
0
      if (YYMAXDEPTH <= yystacksize)
1981
0
        goto yyexhaustedlab;
1982
0
      yystacksize *= 2;
1983
0
      if (YYMAXDEPTH < yystacksize)
1984
0
        yystacksize = YYMAXDEPTH;
1985
1986
0
      {
1987
0
        yy_state_t *yyss1 = yyss;
1988
0
        union yyalloc *yyptr =
1989
0
          YY_CAST (union yyalloc *,
1990
0
                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1991
0
        if (! yyptr)
1992
0
          goto yyexhaustedlab;
1993
0
        YYSTACK_RELOCATE (yyss_alloc, yyss);
1994
0
        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1995
0
# undef YYSTACK_RELOCATE
1996
0
        if (yyss1 != yyssa)
1997
0
          YYSTACK_FREE (yyss1);
1998
0
      }
1999
0
# endif
2000
2001
0
      yyssp = yyss + yysize - 1;
2002
0
      yyvsp = yyvs + yysize - 1;
2003
2004
0
      YY_IGNORE_USELESS_CAST_BEGIN
2005
0
      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
2006
0
                  YY_CAST (long, yystacksize)));
2007
0
      YY_IGNORE_USELESS_CAST_END
2008
2009
0
      if (yyss + yystacksize - 1 <= yyssp)
2010
0
        YYABORT;
2011
0
    }
2012
0
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2013
2014
0
  if (yystate == YYFINAL)
2015
0
    YYACCEPT;
2016
2017
0
  goto yybackup;
2018
2019
2020
/*-----------.
2021
| yybackup.  |
2022
`-----------*/
2023
0
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
0
  yyn = yypact[yystate];
2029
0
  if (yypact_value_is_default (yyn))
2030
0
    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
0
  if (yychar == YYEMPTY)
2036
0
    {
2037
0
      YYDPRINTF ((stderr, "Reading a token: "));
2038
0
      yychar = yylex (&yylval, yyscanner);
2039
0
    }
2040
2041
0
  if (yychar <= YYEOF)
2042
0
    {
2043
0
      yychar = yytoken = YYEOF;
2044
0
      YYDPRINTF ((stderr, "Now at end of input.\n"));
2045
0
    }
2046
0
  else
2047
0
    {
2048
0
      yytoken = YYTRANSLATE (yychar);
2049
0
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2050
0
    }
2051
2052
  /* If the proper action on seeing token YYTOKEN is to reduce or to
2053
     detect an error, take that action.  */
2054
0
  yyn += yytoken;
2055
0
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2056
0
    goto yydefault;
2057
0
  yyn = yytable[yyn];
2058
0
  if (yyn <= 0)
2059
0
    {
2060
0
      if (yytable_value_is_error (yyn))
2061
0
        goto yyerrlab;
2062
0
      yyn = -yyn;
2063
0
      goto yyreduce;
2064
0
    }
2065
2066
  /* Count tokens shifted since error; after three, turn off error
2067
     status.  */
2068
0
  if (yyerrstatus)
2069
0
    yyerrstatus--;
2070
2071
  /* Shift the lookahead token.  */
2072
0
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2073
0
  yystate = yyn;
2074
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2075
0
  *++yyvsp = yylval;
2076
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2077
2078
  /* Discard the shifted token.  */
2079
0
  yychar = YYEMPTY;
2080
0
  goto yynewstate;
2081
2082
2083
/*-----------------------------------------------------------.
2084
| yydefault -- do the default action for the current state.  |
2085
`-----------------------------------------------------------*/
2086
0
yydefault:
2087
0
  yyn = yydefact[yystate];
2088
0
  if (yyn == 0)
2089
0
    goto yyerrlab;
2090
0
  goto yyreduce;
2091
2092
2093
/*-----------------------------.
2094
| yyreduce -- do a reduction.  |
2095
`-----------------------------*/
2096
0
yyreduce:
2097
  /* yyn is the number of a rule to reduce with.  */
2098
0
  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
0
  yyval = yyvsp[1-yylen];
2109
2110
2111
0
  YY_REDUCE_PRINT (yyn);
2112
0
  switch (yyn)
2113
0
    {
2114
0
  case 2:
2115
0
#line 436 "/src/libpcap/build/grammar.y"
2116
0
{
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 tha 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
0
  (void) yynerrs;
2125
0
  CHECK_INT_VAL(finish_parse(cstate, (yyvsp[0].blk).b));
2126
0
}
2127
0
#line 2128 "/src/libpcap/build/grammar.c"
2128
0
    break;
2129
2130
0
  case 4:
2131
0
#line 449 "/src/libpcap/build/grammar.y"
2132
0
                                { (yyval.blk).q = qerr; }
2133
0
#line 2134 "/src/libpcap/build/grammar.c"
2134
0
    break;
2135
2136
0
  case 6:
2137
0
#line 452 "/src/libpcap/build/grammar.y"
2138
0
                                { gen_and((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2139
0
#line 2140 "/src/libpcap/build/grammar.c"
2140
0
    break;
2141
2142
0
  case 7:
2143
0
#line 453 "/src/libpcap/build/grammar.y"
2144
0
                                { gen_and((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2145
0
#line 2146 "/src/libpcap/build/grammar.c"
2146
0
    break;
2147
2148
0
  case 8:
2149
0
#line 454 "/src/libpcap/build/grammar.y"
2150
0
                                { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2151
0
#line 2152 "/src/libpcap/build/grammar.c"
2152
0
    break;
2153
2154
0
  case 9:
2155
0
#line 455 "/src/libpcap/build/grammar.y"
2156
0
                                { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2157
0
#line 2158 "/src/libpcap/build/grammar.c"
2158
0
    break;
2159
2160
0
  case 10:
2161
0
#line 457 "/src/libpcap/build/grammar.y"
2162
0
                                { (yyval.blk) = (yyvsp[-1].blk); }
2163
0
#line 2164 "/src/libpcap/build/grammar.c"
2164
0
    break;
2165
2166
0
  case 11:
2167
0
#line 459 "/src/libpcap/build/grammar.y"
2168
0
                                { (yyval.blk) = (yyvsp[-1].blk); }
2169
0
#line 2170 "/src/libpcap/build/grammar.c"
2170
0
    break;
2171
2172
0
  case 13:
2173
0
#line 462 "/src/libpcap/build/grammar.y"
2174
0
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_ncode(cstate, NULL, (yyvsp[0].h),
2175
0
               (yyval.blk).q = (yyvsp[-1].blk).q))); }
2176
0
#line 2177 "/src/libpcap/build/grammar.c"
2177
0
    break;
2178
2179
0
  case 14:
2180
0
#line 464 "/src/libpcap/build/grammar.y"
2181
0
                                { (yyval.blk) = (yyvsp[-1].blk); }
2182
0
#line 2183 "/src/libpcap/build/grammar.c"
2183
0
    break;
2184
2185
0
  case 15:
2186
0
#line 466 "/src/libpcap/build/grammar.y"
2187
0
                                { 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
0
#line 2189 "/src/libpcap/build/grammar.c"
2189
0
    break;
2190
2191
0
  case 16:
2192
0
#line 467 "/src/libpcap/build/grammar.y"
2193
0
                                {
2194
0
          CHECK_PTR_VAL((yyvsp[-2].s));
2195
          /* Check whether HID/NUM is being used when appropriate */
2196
0
          (yyval.blk).q = (yyvsp[-3].blk).q;
2197
0
          if ((yyval.blk).q.addr == Q_PORT) {
2198
0
          bpf_set_error(cstate, "'port' modifier applied to IP address and prefix length");
2199
0
          YYABORT;
2200
0
          } 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
0
          } else if ((yyval.blk).q.addr == Q_PROTO) {
2204
0
          bpf_set_error(cstate, "'proto' modifier applied to IP address and prefix length");
2205
0
          YYABORT;
2206
0
          } else if ((yyval.blk).q.addr == Q_PROTOCHAIN) {
2207
0
          bpf_set_error(cstate, "'protochain' modifier applied to IP address and prefix length");
2208
0
          YYABORT;
2209
0
          }
2210
0
          CHECK_PTR_VAL(((yyval.blk).b = gen_mcode(cstate, (yyvsp[-2].s), NULL, (yyvsp[0].h), (yyval.blk).q)));
2211
0
        }
2212
0
#line 2213 "/src/libpcap/build/grammar.c"
2213
0
    break;
2214
2215
0
  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 maesk 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
0
  case 18:
2240
0
#line 505 "/src/libpcap/build/grammar.y"
2241
0
                                {
2242
0
          CHECK_PTR_VAL((yyvsp[0].s));
2243
          /* Check whether HID is being used when appropriate */
2244
0
          (yyval.blk).q = (yyvsp[-1].blk).q;
2245
0
          if ((yyval.blk).q.addr == Q_PORT) {
2246
0
          bpf_set_error(cstate, "'port' modifier applied to IP address");
2247
0
          YYABORT;
2248
0
          } else if ((yyval.blk).q.addr == Q_PORTRANGE) {
2249
0
          bpf_set_error(cstate, "'portrange' modifier applied to IP address");
2250
0
          YYABORT;
2251
0
          } else if ((yyval.blk).q.addr == Q_PROTO) {
2252
0
          bpf_set_error(cstate, "'proto' modifier applied to IP address");
2253
0
          YYABORT;
2254
0
          } else if ((yyval.blk).q.addr == Q_PROTOCHAIN) {
2255
0
          bpf_set_error(cstate, "'protochain' modifier applied to IP address");
2256
0
          YYABORT;
2257
0
          }
2258
0
          CHECK_PTR_VAL(((yyval.blk).b = gen_ncode(cstate, (yyvsp[0].s), 0, (yyval.blk).q)));
2259
0
        }
2260
0
#line 2261 "/src/libpcap/build/grammar.c"
2261
0
    break;
2262
2263
0
  case 19:
2264
0
#line 524 "/src/libpcap/build/grammar.y"
2265
0
                                {
2266
0
          CHECK_PTR_VAL((yyvsp[-2].s));
2267
0
#ifdef INET6
2268
          /* Check whether HID6/NUM is being used when appropriate */
2269
0
          (yyval.blk).q = (yyvsp[-3].blk).q;
2270
0
          if ((yyval.blk).q.addr == Q_PORT) {
2271
0
          bpf_set_error(cstate, "'port' modifier applied to IP address and prefix length");
2272
0
          YYABORT;
2273
0
          } 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
0
          } else if ((yyval.blk).q.addr == Q_PROTO) {
2277
0
          bpf_set_error(cstate, "'proto' modifier applied to IP address and prefix length ");
2278
0
          YYABORT;
2279
0
          } else if ((yyval.blk).q.addr == Q_PROTOCHAIN) {
2280
0
          bpf_set_error(cstate, "'protochain' modifier applied to IP address and prefix length");
2281
0
          YYABORT;
2282
0
          }
2283
0
          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
0
        }
2290
0
#line 2291 "/src/libpcap/build/grammar.c"
2291
0
    break;
2292
2293
0
  case 20:
2294
0
#line 549 "/src/libpcap/build/grammar.y"
2295
0
                                {
2296
0
          CHECK_PTR_VAL((yyvsp[0].s));
2297
0
#ifdef INET6
2298
          /* Check whether HID6 is being used when appropriate */
2299
0
          (yyval.blk).q = (yyvsp[-1].blk).q;
2300
0
          if ((yyval.blk).q.addr == Q_PORT) {
2301
0
          bpf_set_error(cstate, "'port' modifier applied to IP address");
2302
0
          YYABORT;
2303
0
          } else if ((yyval.blk).q.addr == Q_PORTRANGE) {
2304
0
          bpf_set_error(cstate, "'portrange' modifier applied to IP address");
2305
0
          YYABORT;
2306
0
          } else if ((yyval.blk).q.addr == Q_PROTO) {
2307
0
          bpf_set_error(cstate, "'proto' modifier applied to 'ip6addr/prefixlen");
2308
0
          YYABORT;
2309
0
          } else if ((yyval.blk).q.addr == Q_PROTOCHAIN) {
2310
0
          bpf_set_error(cstate, "'protochain' modifier applied to IP address");
2311
0
          YYABORT;
2312
0
          }
2313
0
          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
0
        }
2320
0
#line 2321 "/src/libpcap/build/grammar.c"
2321
0
    break;
2322
2323
0
  case 21:
2324
0
#line 574 "/src/libpcap/build/grammar.y"
2325
0
                                { 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
0
#line 2327 "/src/libpcap/build/grammar.c"
2327
0
    break;
2328
2329
0
  case 22:
2330
0
#line 575 "/src/libpcap/build/grammar.y"
2331
0
                                { 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
0
#line 2333 "/src/libpcap/build/grammar.c"
2333
0
    break;
2334
2335
0
  case 23:
2336
0
#line 576 "/src/libpcap/build/grammar.y"
2337
0
                                { gen_not((yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2338
0
#line 2339 "/src/libpcap/build/grammar.c"
2339
0
    break;
2340
2341
0
  case 24:
2342
0
#line 578 "/src/libpcap/build/grammar.y"
2343
0
                                { (yyval.blk) = (yyvsp[-1].blk); }
2344
0
#line 2345 "/src/libpcap/build/grammar.c"
2345
0
    break;
2346
2347
0
  case 25:
2348
0
#line 580 "/src/libpcap/build/grammar.y"
2349
0
                                { (yyval.blk) = (yyvsp[-1].blk); }
2350
0
#line 2351 "/src/libpcap/build/grammar.c"
2351
0
    break;
2352
2353
0
  case 27:
2354
0
#line 583 "/src/libpcap/build/grammar.y"
2355
0
                                { gen_and((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2356
0
#line 2357 "/src/libpcap/build/grammar.c"
2357
0
    break;
2358
2359
0
  case 28:
2360
0
#line 584 "/src/libpcap/build/grammar.y"
2361
0
                                { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2362
0
#line 2363 "/src/libpcap/build/grammar.c"
2363
0
    break;
2364
2365
0
  case 29:
2366
0
#line 586 "/src/libpcap/build/grammar.y"
2367
0
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_ncode(cstate, NULL, (yyvsp[0].h),
2368
0
               (yyval.blk).q = (yyvsp[-1].blk).q))); }
2369
0
#line 2370 "/src/libpcap/build/grammar.c"
2370
0
    break;
2371
2372
0
  case 32:
2373
0
#line 591 "/src/libpcap/build/grammar.y"
2374
0
                                { gen_not((yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2375
0
#line 2376 "/src/libpcap/build/grammar.c"
2376
0
    break;
2377
2378
0
  case 33:
2379
0
#line 593 "/src/libpcap/build/grammar.y"
2380
0
                                { QSET((yyval.blk).q, (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i)); }
2381
0
#line 2382 "/src/libpcap/build/grammar.c"
2382
0
    break;
2383
2384
0
  case 34:
2385
0
#line 594 "/src/libpcap/build/grammar.y"
2386
0
                                { QSET((yyval.blk).q, (yyvsp[-1].i), (yyvsp[0].i), Q_DEFAULT); }
2387
0
#line 2388 "/src/libpcap/build/grammar.c"
2388
0
    break;
2389
2390
0
  case 35:
2391
0
#line 595 "/src/libpcap/build/grammar.y"
2392
0
                                { QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, (yyvsp[0].i)); }
2393
0
#line 2394 "/src/libpcap/build/grammar.c"
2394
0
    break;
2395
2396
0
  case 36:
2397
0
#line 596 "/src/libpcap/build/grammar.y"
2398
0
                                { QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, Q_PROTO); }
2399
0
#line 2400 "/src/libpcap/build/grammar.c"
2400
0
    break;
2401
2402
0
  case 37:
2403
0
#line 597 "/src/libpcap/build/grammar.y"
2404
0
                                {
2405
#ifdef NO_PROTOCHAIN
2406
          bpf_set_error(cstate, "protochain not supported");
2407
          YYABORT;
2408
#else
2409
0
          QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, Q_PROTOCHAIN);
2410
0
#endif
2411
0
        }
2412
0
#line 2413 "/src/libpcap/build/grammar.c"
2413
0
    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
0
  case 39:
2422
0
#line 607 "/src/libpcap/build/grammar.y"
2423
0
                                { (yyval.blk) = (yyvsp[0].blk); }
2424
0
#line 2425 "/src/libpcap/build/grammar.c"
2425
0
    break;
2426
2427
0
  case 40:
2428
0
#line 608 "/src/libpcap/build/grammar.y"
2429
0
                                { (yyval.blk).b = (yyvsp[-1].blk).b; (yyval.blk).q = (yyvsp[-2].blk).q; }
2430
0
#line 2431 "/src/libpcap/build/grammar.c"
2431
0
    break;
2432
2433
0
  case 41:
2434
0
#line 609 "/src/libpcap/build/grammar.y"
2435
0
                                { 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
0
  case 42:
2440
0
#line 610 "/src/libpcap/build/grammar.y"
2441
0
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_relation(cstate, (yyvsp[-1].i), (yyvsp[-2].a), (yyvsp[0].a), 0)));
2442
0
          (yyval.blk).q = qerr; }
2443
0
#line 2444 "/src/libpcap/build/grammar.c"
2444
0
    break;
2445
2446
0
  case 43:
2447
0
#line 612 "/src/libpcap/build/grammar.y"
2448
0
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_relation(cstate, (yyvsp[-1].i), (yyvsp[-2].a), (yyvsp[0].a), 1)));
2449
0
          (yyval.blk).q = qerr; }
2450
0
#line 2451 "/src/libpcap/build/grammar.c"
2451
0
    break;
2452
2453
0
  case 44:
2454
0
#line 614 "/src/libpcap/build/grammar.y"
2455
0
                                { (yyval.blk).b = (yyvsp[0].rblk); (yyval.blk).q = qerr; }
2456
0
#line 2457 "/src/libpcap/build/grammar.c"
2457
0
    break;
2458
2459
0
  case 45:
2460
0
#line 615 "/src/libpcap/build/grammar.y"
2461
0
                                { 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
0
  case 46:
2466
0
#line 616 "/src/libpcap/build/grammar.y"
2467
0
                                { 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
0
  case 47:
2472
0
#line 617 "/src/libpcap/build/grammar.y"
2473
0
                                { (yyval.blk).b = (yyvsp[0].blk).b; (yyval.blk).q = qerr; }
2474
0
#line 2475 "/src/libpcap/build/grammar.c"
2475
0
    break;
2476
2477
0
  case 48:
2478
0
#line 618 "/src/libpcap/build/grammar.y"
2479
0
                                { 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
0
  case 49:
2484
0
#line 619 "/src/libpcap/build/grammar.y"
2485
0
                                { (yyval.blk).b = (yyvsp[0].blk).b; (yyval.blk).q = qerr; }
2486
0
#line 2487 "/src/libpcap/build/grammar.c"
2487
0
    break;
2488
2489
0
  case 51:
2490
0
#line 623 "/src/libpcap/build/grammar.y"
2491
0
                                { (yyval.i) = Q_DEFAULT; }
2492
0
#line 2493 "/src/libpcap/build/grammar.c"
2493
0
    break;
2494
2495
0
  case 52:
2496
0
#line 626 "/src/libpcap/build/grammar.y"
2497
0
                                { (yyval.i) = Q_SRC; }
2498
0
#line 2499 "/src/libpcap/build/grammar.c"
2499
0
    break;
2500
2501
0
  case 53:
2502
0
#line 627 "/src/libpcap/build/grammar.y"
2503
0
                                { (yyval.i) = Q_DST; }
2504
0
#line 2505 "/src/libpcap/build/grammar.c"
2505
0
    break;
2506
2507
0
  case 54:
2508
0
#line 628 "/src/libpcap/build/grammar.y"
2509
0
                                { (yyval.i) = Q_OR; }
2510
0
#line 2511 "/src/libpcap/build/grammar.c"
2511
0
    break;
2512
2513
0
  case 55:
2514
0
#line 629 "/src/libpcap/build/grammar.y"
2515
0
                                { (yyval.i) = Q_OR; }
2516
0
#line 2517 "/src/libpcap/build/grammar.c"
2517
0
    break;
2518
2519
0
  case 56:
2520
0
#line 630 "/src/libpcap/build/grammar.y"
2521
0
                                { (yyval.i) = Q_AND; }
2522
0
#line 2523 "/src/libpcap/build/grammar.c"
2523
0
    break;
2524
2525
0
  case 57:
2526
0
#line 631 "/src/libpcap/build/grammar.y"
2527
0
                                { (yyval.i) = Q_AND; }
2528
0
#line 2529 "/src/libpcap/build/grammar.c"
2529
0
    break;
2530
2531
0
  case 58:
2532
0
#line 632 "/src/libpcap/build/grammar.y"
2533
0
                                { (yyval.i) = Q_ADDR1; }
2534
0
#line 2535 "/src/libpcap/build/grammar.c"
2535
0
    break;
2536
2537
0
  case 59:
2538
0
#line 633 "/src/libpcap/build/grammar.y"
2539
0
                                { (yyval.i) = Q_ADDR2; }
2540
0
#line 2541 "/src/libpcap/build/grammar.c"
2541
0
    break;
2542
2543
0
  case 60:
2544
0
#line 634 "/src/libpcap/build/grammar.y"
2545
0
                                { (yyval.i) = Q_ADDR3; }
2546
0
#line 2547 "/src/libpcap/build/grammar.c"
2547
0
    break;
2548
2549
0
  case 61:
2550
0
#line 635 "/src/libpcap/build/grammar.y"
2551
0
                                { (yyval.i) = Q_ADDR4; }
2552
0
#line 2553 "/src/libpcap/build/grammar.c"
2553
0
    break;
2554
2555
0
  case 62:
2556
0
#line 636 "/src/libpcap/build/grammar.y"
2557
0
                                { (yyval.i) = Q_RA; }
2558
0
#line 2559 "/src/libpcap/build/grammar.c"
2559
0
    break;
2560
2561
0
  case 63:
2562
0
#line 637 "/src/libpcap/build/grammar.y"
2563
0
                                { (yyval.i) = Q_TA; }
2564
0
#line 2565 "/src/libpcap/build/grammar.c"
2565
0
    break;
2566
2567
0
  case 64:
2568
0
#line 640 "/src/libpcap/build/grammar.y"
2569
0
                                { (yyval.i) = Q_HOST; }
2570
0
#line 2571 "/src/libpcap/build/grammar.c"
2571
0
    break;
2572
2573
0
  case 65:
2574
0
#line 641 "/src/libpcap/build/grammar.y"
2575
0
                                { (yyval.i) = Q_NET; }
2576
0
#line 2577 "/src/libpcap/build/grammar.c"
2577
0
    break;
2578
2579
0
  case 66:
2580
0
#line 642 "/src/libpcap/build/grammar.y"
2581
0
                                { (yyval.i) = Q_PORT; }
2582
0
#line 2583 "/src/libpcap/build/grammar.c"
2583
0
    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
0
  case 69:
2598
0
#line 648 "/src/libpcap/build/grammar.y"
2599
0
                                { (yyval.i) = Q_LINK; }
2600
0
#line 2601 "/src/libpcap/build/grammar.c"
2601
0
    break;
2602
2603
0
  case 70:
2604
0
#line 649 "/src/libpcap/build/grammar.y"
2605
0
                                { (yyval.i) = Q_IP; }
2606
0
#line 2607 "/src/libpcap/build/grammar.c"
2607
0
    break;
2608
2609
0
  case 71:
2610
0
#line 650 "/src/libpcap/build/grammar.y"
2611
0
                                { (yyval.i) = Q_ARP; }
2612
0
#line 2613 "/src/libpcap/build/grammar.c"
2613
0
    break;
2614
2615
0
  case 72:
2616
0
#line 651 "/src/libpcap/build/grammar.y"
2617
0
                                { (yyval.i) = Q_RARP; }
2618
0
#line 2619 "/src/libpcap/build/grammar.c"
2619
0
    break;
2620
2621
0
  case 73:
2622
0
#line 652 "/src/libpcap/build/grammar.y"
2623
0
                                { (yyval.i) = Q_SCTP; }
2624
0
#line 2625 "/src/libpcap/build/grammar.c"
2625
0
    break;
2626
2627
0
  case 74:
2628
0
#line 653 "/src/libpcap/build/grammar.y"
2629
0
                                { (yyval.i) = Q_TCP; }
2630
0
#line 2631 "/src/libpcap/build/grammar.c"
2631
0
    break;
2632
2633
0
  case 75:
2634
0
#line 654 "/src/libpcap/build/grammar.y"
2635
0
                                { (yyval.i) = Q_UDP; }
2636
0
#line 2637 "/src/libpcap/build/grammar.c"
2637
0
    break;
2638
2639
0
  case 76:
2640
0
#line 655 "/src/libpcap/build/grammar.y"
2641
0
                                { (yyval.i) = Q_ICMP; }
2642
0
#line 2643 "/src/libpcap/build/grammar.c"
2643
0
    break;
2644
2645
0
  case 77:
2646
0
#line 656 "/src/libpcap/build/grammar.y"
2647
0
                                { (yyval.i) = Q_IGMP; }
2648
0
#line 2649 "/src/libpcap/build/grammar.c"
2649
0
    break;
2650
2651
0
  case 78:
2652
0
#line 657 "/src/libpcap/build/grammar.y"
2653
0
                                { (yyval.i) = Q_IGRP; }
2654
0
#line 2655 "/src/libpcap/build/grammar.c"
2655
0
    break;
2656
2657
0
  case 79:
2658
0
#line 658 "/src/libpcap/build/grammar.y"
2659
0
                                { (yyval.i) = Q_PIM; }
2660
0
#line 2661 "/src/libpcap/build/grammar.c"
2661
0
    break;
2662
2663
0
  case 80:
2664
0
#line 659 "/src/libpcap/build/grammar.y"
2665
0
                                { (yyval.i) = Q_VRRP; }
2666
0
#line 2667 "/src/libpcap/build/grammar.c"
2667
0
    break;
2668
2669
0
  case 81:
2670
0
#line 660 "/src/libpcap/build/grammar.y"
2671
0
                                { (yyval.i) = Q_CARP; }
2672
0
#line 2673 "/src/libpcap/build/grammar.c"
2673
0
    break;
2674
2675
0
  case 82:
2676
0
#line 661 "/src/libpcap/build/grammar.y"
2677
0
                                { (yyval.i) = Q_ATALK; }
2678
0
#line 2679 "/src/libpcap/build/grammar.c"
2679
0
    break;
2680
2681
0
  case 83:
2682
0
#line 662 "/src/libpcap/build/grammar.y"
2683
0
                                { (yyval.i) = Q_AARP; }
2684
0
#line 2685 "/src/libpcap/build/grammar.c"
2685
0
    break;
2686
2687
0
  case 84:
2688
0
#line 663 "/src/libpcap/build/grammar.y"
2689
0
                                { (yyval.i) = Q_DECNET; }
2690
0
#line 2691 "/src/libpcap/build/grammar.c"
2691
0
    break;
2692
2693
0
  case 85:
2694
0
#line 664 "/src/libpcap/build/grammar.y"
2695
0
                                { (yyval.i) = Q_LAT; }
2696
0
#line 2697 "/src/libpcap/build/grammar.c"
2697
0
    break;
2698
2699
0
  case 86:
2700
0
#line 665 "/src/libpcap/build/grammar.y"
2701
0
                                { (yyval.i) = Q_SCA; }
2702
0
#line 2703 "/src/libpcap/build/grammar.c"
2703
0
    break;
2704
2705
0
  case 87:
2706
0
#line 666 "/src/libpcap/build/grammar.y"
2707
0
                                { (yyval.i) = Q_MOPDL; }
2708
0
#line 2709 "/src/libpcap/build/grammar.c"
2709
0
    break;
2710
2711
0
  case 88:
2712
0
#line 667 "/src/libpcap/build/grammar.y"
2713
0
                                { (yyval.i) = Q_MOPRC; }
2714
0
#line 2715 "/src/libpcap/build/grammar.c"
2715
0
    break;
2716
2717
0
  case 89:
2718
0
#line 668 "/src/libpcap/build/grammar.y"
2719
0
                                { (yyval.i) = Q_IPV6; }
2720
0
#line 2721 "/src/libpcap/build/grammar.c"
2721
0
    break;
2722
2723
0
  case 90:
2724
0
#line 669 "/src/libpcap/build/grammar.y"
2725
0
                                { (yyval.i) = Q_ICMPV6; }
2726
0
#line 2727 "/src/libpcap/build/grammar.c"
2727
0
    break;
2728
2729
0
  case 91:
2730
0
#line 670 "/src/libpcap/build/grammar.y"
2731
0
                                { (yyval.i) = Q_AH; }
2732
0
#line 2733 "/src/libpcap/build/grammar.c"
2733
0
    break;
2734
2735
0
  case 92:
2736
0
#line 671 "/src/libpcap/build/grammar.y"
2737
0
                                { (yyval.i) = Q_ESP; }
2738
0
#line 2739 "/src/libpcap/build/grammar.c"
2739
0
    break;
2740
2741
0
  case 93:
2742
0
#line 672 "/src/libpcap/build/grammar.y"
2743
0
                                { (yyval.i) = Q_ISO; }
2744
0
#line 2745 "/src/libpcap/build/grammar.c"
2745
0
    break;
2746
2747
0
  case 94:
2748
0
#line 673 "/src/libpcap/build/grammar.y"
2749
0
                                { (yyval.i) = Q_ESIS; }
2750
0
#line 2751 "/src/libpcap/build/grammar.c"
2751
0
    break;
2752
2753
0
  case 95:
2754
0
#line 674 "/src/libpcap/build/grammar.y"
2755
0
                                { (yyval.i) = Q_ISIS; }
2756
0
#line 2757 "/src/libpcap/build/grammar.c"
2757
0
    break;
2758
2759
0
  case 96:
2760
0
#line 675 "/src/libpcap/build/grammar.y"
2761
0
                                { (yyval.i) = Q_ISIS_L1; }
2762
0
#line 2763 "/src/libpcap/build/grammar.c"
2763
0
    break;
2764
2765
0
  case 97:
2766
0
#line 676 "/src/libpcap/build/grammar.y"
2767
0
                                { (yyval.i) = Q_ISIS_L2; }
2768
0
#line 2769 "/src/libpcap/build/grammar.c"
2769
0
    break;
2770
2771
0
  case 98:
2772
0
#line 677 "/src/libpcap/build/grammar.y"
2773
0
                                { (yyval.i) = Q_ISIS_IIH; }
2774
0
#line 2775 "/src/libpcap/build/grammar.c"
2775
0
    break;
2776
2777
0
  case 99:
2778
0
#line 678 "/src/libpcap/build/grammar.y"
2779
0
                                { (yyval.i) = Q_ISIS_LSP; }
2780
0
#line 2781 "/src/libpcap/build/grammar.c"
2781
0
    break;
2782
2783
0
  case 100:
2784
0
#line 679 "/src/libpcap/build/grammar.y"
2785
0
                                { (yyval.i) = Q_ISIS_SNP; }
2786
0
#line 2787 "/src/libpcap/build/grammar.c"
2787
0
    break;
2788
2789
0
  case 101:
2790
0
#line 680 "/src/libpcap/build/grammar.y"
2791
0
                                { (yyval.i) = Q_ISIS_PSNP; }
2792
0
#line 2793 "/src/libpcap/build/grammar.c"
2793
0
    break;
2794
2795
0
  case 102:
2796
0
#line 681 "/src/libpcap/build/grammar.y"
2797
0
                                { (yyval.i) = Q_ISIS_CSNP; }
2798
0
#line 2799 "/src/libpcap/build/grammar.c"
2799
0
    break;
2800
2801
0
  case 103:
2802
0
#line 682 "/src/libpcap/build/grammar.y"
2803
0
                                { (yyval.i) = Q_CLNP; }
2804
0
#line 2805 "/src/libpcap/build/grammar.c"
2805
0
    break;
2806
2807
0
  case 104:
2808
0
#line 683 "/src/libpcap/build/grammar.y"
2809
0
                                { (yyval.i) = Q_STP; }
2810
0
#line 2811 "/src/libpcap/build/grammar.c"
2811
0
    break;
2812
2813
0
  case 105:
2814
0
#line 684 "/src/libpcap/build/grammar.y"
2815
0
                                { (yyval.i) = Q_IPX; }
2816
0
#line 2817 "/src/libpcap/build/grammar.c"
2817
0
    break;
2818
2819
0
  case 106:
2820
0
#line 685 "/src/libpcap/build/grammar.y"
2821
0
                                { (yyval.i) = Q_NETBEUI; }
2822
0
#line 2823 "/src/libpcap/build/grammar.c"
2823
0
    break;
2824
2825
0
  case 107:
2826
0
#line 686 "/src/libpcap/build/grammar.y"
2827
0
                                { (yyval.i) = Q_RADIO; }
2828
0
#line 2829 "/src/libpcap/build/grammar.c"
2829
0
    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
0
  case 110:
2844
0
#line 690 "/src/libpcap/build/grammar.y"
2845
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_less(cstate, (yyvsp[0].h)))); }
2846
0
#line 2847 "/src/libpcap/build/grammar.c"
2847
0
    break;
2848
2849
0
  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
0
  case 112:
2856
0
#line 692 "/src/libpcap/build/grammar.y"
2857
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_byteop(cstate, (yyvsp[-1].i), (yyvsp[-2].h), (yyvsp[0].h)))); }
2858
0
#line 2859 "/src/libpcap/build/grammar.c"
2859
0
    break;
2860
2861
0
  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
0
  case 116:
2880
0
#line 696 "/src/libpcap/build/grammar.y"
2881
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_vlan(cstate, (yyvsp[0].h), 1))); }
2882
0
#line 2883 "/src/libpcap/build/grammar.c"
2883
0
    break;
2884
2885
0
  case 117:
2886
0
#line 697 "/src/libpcap/build/grammar.y"
2887
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_vlan(cstate, 0, 0))); }
2888
0
#line 2889 "/src/libpcap/build/grammar.c"
2889
0
    break;
2890
2891
0
  case 118:
2892
0
#line 698 "/src/libpcap/build/grammar.y"
2893
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_mpls(cstate, (yyvsp[0].h), 1))); }
2894
0
#line 2895 "/src/libpcap/build/grammar.c"
2895
0
    break;
2896
2897
0
  case 119:
2898
0
#line 699 "/src/libpcap/build/grammar.y"
2899
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_mpls(cstate, 0, 0))); }
2900
0
#line 2901 "/src/libpcap/build/grammar.c"
2901
0
    break;
2902
2903
0
  case 120:
2904
0
#line 700 "/src/libpcap/build/grammar.y"
2905
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pppoed(cstate))); }
2906
0
#line 2907 "/src/libpcap/build/grammar.c"
2907
0
    break;
2908
2909
0
  case 121:
2910
0
#line 701 "/src/libpcap/build/grammar.y"
2911
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pppoes(cstate, (yyvsp[0].h), 1))); }
2912
0
#line 2913 "/src/libpcap/build/grammar.c"
2913
0
    break;
2914
2915
0
  case 122:
2916
0
#line 702 "/src/libpcap/build/grammar.y"
2917
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pppoes(cstate, 0, 0))); }
2918
0
#line 2919 "/src/libpcap/build/grammar.c"
2919
0
    break;
2920
2921
0
  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
0
  case 125:
2934
0
#line 705 "/src/libpcap/build/grammar.y"
2935
0
                                { (yyval.rblk) = (yyvsp[0].rblk); }
2936
0
#line 2937 "/src/libpcap/build/grammar.c"
2937
0
    break;
2938
2939
0
  case 126:
2940
0
#line 706 "/src/libpcap/build/grammar.y"
2941
0
                                { (yyval.rblk) = (yyvsp[0].rblk); }
2942
0
#line 2943 "/src/libpcap/build/grammar.c"
2943
0
    break;
2944
2945
0
  case 127:
2946
0
#line 707 "/src/libpcap/build/grammar.y"
2947
0
                                { (yyval.rblk) = (yyvsp[0].rblk); }
2948
0
#line 2949 "/src/libpcap/build/grammar.c"
2949
0
    break;
2950
2951
0
  case 128:
2952
0
#line 710 "/src/libpcap/build/grammar.y"
2953
0
                                { CHECK_PTR_VAL((yyvsp[0].s)); CHECK_PTR_VAL(((yyval.rblk) = gen_pf_ifname(cstate, (yyvsp[0].s)))); }
2954
0
#line 2955 "/src/libpcap/build/grammar.c"
2955
0
    break;
2956
2957
0
  case 129:
2958
0
#line 711 "/src/libpcap/build/grammar.y"
2959
0
                                { CHECK_PTR_VAL((yyvsp[0].s)); CHECK_PTR_VAL(((yyval.rblk) = gen_pf_ruleset(cstate, (yyvsp[0].s)))); }
2960
0
#line 2961 "/src/libpcap/build/grammar.c"
2961
0
    break;
2962
2963
0
  case 130:
2964
0
#line 712 "/src/libpcap/build/grammar.y"
2965
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pf_rnr(cstate, (yyvsp[0].h)))); }
2966
0
#line 2967 "/src/libpcap/build/grammar.c"
2967
0
    break;
2968
2969
0
  case 131:
2970
0
#line 713 "/src/libpcap/build/grammar.y"
2971
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pf_srnr(cstate, (yyvsp[0].h)))); }
2972
0
#line 2973 "/src/libpcap/build/grammar.c"
2973
0
    break;
2974
2975
0
  case 132:
2976
0
#line 714 "/src/libpcap/build/grammar.y"
2977
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pf_reason(cstate, (yyvsp[0].i)))); }
2978
0
#line 2979 "/src/libpcap/build/grammar.c"
2979
0
    break;
2980
2981
0
  case 133:
2982
0
#line 715 "/src/libpcap/build/grammar.y"
2983
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_pf_action(cstate, (yyvsp[0].i)))); }
2984
0
#line 2985 "/src/libpcap/build/grammar.c"
2985
0
    break;
2986
2987
0
  case 134:
2988
0
#line 719 "/src/libpcap/build/grammar.y"
2989
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_p80211_type(cstate, (yyvsp[-2].i) | (yyvsp[0].i),
2990
0
          IEEE80211_FC0_TYPE_MASK |
2991
0
          IEEE80211_FC0_SUBTYPE_MASK)));
2992
0
        }
2993
0
#line 2994 "/src/libpcap/build/grammar.c"
2994
0
    break;
2995
2996
0
  case 135:
2997
0
#line 723 "/src/libpcap/build/grammar.y"
2998
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_p80211_type(cstate, (yyvsp[0].i),
2999
0
          IEEE80211_FC0_TYPE_MASK)));
3000
0
        }
3001
0
#line 3002 "/src/libpcap/build/grammar.c"
3002
0
    break;
3003
3004
0
  case 136:
3005
0
#line 726 "/src/libpcap/build/grammar.y"
3006
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_p80211_type(cstate, (yyvsp[0].i),
3007
0
          IEEE80211_FC0_TYPE_MASK |
3008
0
          IEEE80211_FC0_SUBTYPE_MASK)));
3009
0
        }
3010
0
#line 3011 "/src/libpcap/build/grammar.c"
3011
0
    break;
3012
3013
0
  case 137:
3014
0
#line 730 "/src/libpcap/build/grammar.y"
3015
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_p80211_fcdir(cstate, (yyvsp[0].i)))); }
3016
0
#line 3017 "/src/libpcap/build/grammar.c"
3017
0
    break;
3018
3019
0
  case 138:
3020
0
#line 733 "/src/libpcap/build/grammar.y"
3021
0
                                { if (((yyvsp[0].h) & (~IEEE80211_FC0_TYPE_MASK)) != 0) {
3022
0
          bpf_set_error(cstate, "invalid 802.11 type value 0x%02x", (yyvsp[0].h));
3023
0
          YYABORT;
3024
0
          }
3025
0
          (yyval.i) = (int)(yyvsp[0].h);
3026
0
        }
3027
0
#line 3028 "/src/libpcap/build/grammar.c"
3028
0
    break;
3029
3030
0
  case 139:
3031
0
#line 739 "/src/libpcap/build/grammar.y"
3032
0
                                { CHECK_PTR_VAL((yyvsp[0].s));
3033
0
          (yyval.i) = str2tok((yyvsp[0].s), ieee80211_types);
3034
0
          if ((yyval.i) == -1) {
3035
0
          bpf_set_error(cstate, "unknown 802.11 type name \"%s\"", (yyvsp[0].s));
3036
0
          YYABORT;
3037
0
          }
3038
0
        }
3039
0
#line 3040 "/src/libpcap/build/grammar.c"
3040
0
    break;
3041
3042
0
  case 140:
3043
0
#line 748 "/src/libpcap/build/grammar.y"
3044
0
                                { if (((yyvsp[0].h) & (~IEEE80211_FC0_SUBTYPE_MASK)) != 0) {
3045
0
          bpf_set_error(cstate, "invalid 802.11 subtype value 0x%02x", (yyvsp[0].h));
3046
0
          YYABORT;
3047
0
          }
3048
0
          (yyval.i) = (int)(yyvsp[0].h);
3049
0
        }
3050
0
#line 3051 "/src/libpcap/build/grammar.c"
3051
0
    break;
3052
3053
0
  case 141:
3054
0
#line 754 "/src/libpcap/build/grammar.y"
3055
0
                                { const struct tok *types = NULL;
3056
0
          int i;
3057
0
          CHECK_PTR_VAL((yyvsp[0].s));
3058
0
          for (i = 0;; i++) {
3059
0
          if (ieee80211_type_subtypes[i].tok == NULL) {
3060
            /* Ran out of types */
3061
0
            bpf_set_error(cstate, "unknown 802.11 type");
3062
0
            YYABORT;
3063
0
          }
3064
0
          if ((yyvsp[(-1) - (1)].i) == ieee80211_type_subtypes[i].type) {
3065
0
            types = ieee80211_type_subtypes[i].tok;
3066
0
            break;
3067
0
          }
3068
0
          }
3069
3070
0
          (yyval.i) = str2tok((yyvsp[0].s), types);
3071
0
          if ((yyval.i) == -1) {
3072
0
          bpf_set_error(cstate, "unknown 802.11 subtype name \"%s\"", (yyvsp[0].s));
3073
0
          YYABORT;
3074
0
          }
3075
0
        }
3076
0
#line 3077 "/src/libpcap/build/grammar.c"
3077
0
    break;
3078
3079
0
  case 142:
3080
0
#line 777 "/src/libpcap/build/grammar.y"
3081
0
                                { int i;
3082
0
          CHECK_PTR_VAL((yyvsp[0].s));
3083
0
          for (i = 0;; i++) {
3084
0
          if (ieee80211_type_subtypes[i].tok == NULL) {
3085
            /* Ran out of types */
3086
0
            bpf_set_error(cstate, "unknown 802.11 type name");
3087
0
            YYABORT;
3088
0
          }
3089
0
          (yyval.i) = str2tok((yyvsp[0].s), ieee80211_type_subtypes[i].tok);
3090
0
          if ((yyval.i) != -1) {
3091
0
            (yyval.i) |= ieee80211_type_subtypes[i].type;
3092
0
            break;
3093
0
          }
3094
0
          }
3095
0
        }
3096
0
#line 3097 "/src/libpcap/build/grammar.c"
3097
0
    break;
3098
3099
0
  case 143:
3100
0
#line 794 "/src/libpcap/build/grammar.y"
3101
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_llc(cstate))); }
3102
0
#line 3103 "/src/libpcap/build/grammar.c"
3103
0
    break;
3104
3105
0
  case 144:
3106
0
#line 795 "/src/libpcap/build/grammar.y"
3107
0
                                { CHECK_PTR_VAL((yyvsp[0].s));
3108
0
          if (pcap_strcasecmp((yyvsp[0].s), "i") == 0) {
3109
0
          CHECK_PTR_VAL(((yyval.rblk) = gen_llc_i(cstate)));
3110
0
          } else if (pcap_strcasecmp((yyvsp[0].s), "s") == 0) {
3111
0
          CHECK_PTR_VAL(((yyval.rblk) = gen_llc_s(cstate)));
3112
0
          } else if (pcap_strcasecmp((yyvsp[0].s), "u") == 0) {
3113
0
          CHECK_PTR_VAL(((yyval.rblk) = gen_llc_u(cstate)));
3114
0
          } else {
3115
0
          int subtype;
3116
3117
0
          subtype = str2tok((yyvsp[0].s), llc_s_subtypes);
3118
0
          if (subtype != -1) {
3119
0
            CHECK_PTR_VAL(((yyval.rblk) = gen_llc_s_subtype(cstate, subtype)));
3120
0
          } else {
3121
0
            subtype = str2tok((yyvsp[0].s), llc_u_subtypes);
3122
0
            if (subtype == -1) {
3123
0
              bpf_set_error(cstate, "unknown LLC type name \"%s\"", (yyvsp[0].s));
3124
0
              YYABORT;
3125
0
            }
3126
0
            CHECK_PTR_VAL(((yyval.rblk) = gen_llc_u_subtype(cstate, subtype)));
3127
0
          }
3128
0
          }
3129
0
        }
3130
0
#line 3131 "/src/libpcap/build/grammar.c"
3131
0
    break;
3132
3133
0
  case 145:
3134
0
#line 819 "/src/libpcap/build/grammar.y"
3135
0
                                { CHECK_PTR_VAL(((yyval.rblk) = gen_llc_s_subtype(cstate, LLC_RNR))); }
3136
0
#line 3137 "/src/libpcap/build/grammar.c"
3137
0
    break;
3138
3139
0
  case 146:
3140
0
#line 822 "/src/libpcap/build/grammar.y"
3141
0
                                { (yyval.i) = (int)(yyvsp[0].h); }
3142
0
#line 3143 "/src/libpcap/build/grammar.c"
3143
0
    break;
3144
3145
0
  case 147:
3146
0
#line 823 "/src/libpcap/build/grammar.y"
3147
0
                                { CHECK_PTR_VAL((yyvsp[0].s));
3148
0
          if (pcap_strcasecmp((yyvsp[0].s), "nods") == 0)
3149
0
          (yyval.i) = IEEE80211_FC1_DIR_NODS;
3150
0
          else if (pcap_strcasecmp((yyvsp[0].s), "tods") == 0)
3151
0
          (yyval.i) = IEEE80211_FC1_DIR_TODS;
3152
0
          else if (pcap_strcasecmp((yyvsp[0].s), "fromds") == 0)
3153
0
          (yyval.i) = IEEE80211_FC1_DIR_FROMDS;
3154
0
          else if (pcap_strcasecmp((yyvsp[0].s), "dstods") == 0)
3155
0
          (yyval.i) = IEEE80211_FC1_DIR_DSTODS;
3156
0
          else {
3157
0
          bpf_set_error(cstate, "unknown 802.11 direction");
3158
0
          YYABORT;
3159
0
          }
3160
0
        }
3161
0
#line 3162 "/src/libpcap/build/grammar.c"
3162
0
    break;
3163
3164
0
  case 148:
3165
0
#line 839 "/src/libpcap/build/grammar.y"
3166
0
                                { (yyval.i) = (yyvsp[0].h); }
3167
0
#line 3168 "/src/libpcap/build/grammar.c"
3168
0
    break;
3169
3170
0
  case 149:
3171
0
#line 840 "/src/libpcap/build/grammar.y"
3172
0
                                { 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
0
  case 150:
3177
0
#line 843 "/src/libpcap/build/grammar.y"
3178
0
                                { CHECK_PTR_VAL((yyvsp[0].s)); CHECK_INT_VAL(((yyval.i) = pfaction_to_num(cstate, (yyvsp[0].s)))); }
3179
0
#line 3180 "/src/libpcap/build/grammar.c"
3180
0
    break;
3181
3182
0
  case 151:
3183
0
#line 846 "/src/libpcap/build/grammar.y"
3184
0
                                { (yyval.i) = BPF_JGT; }
3185
0
#line 3186 "/src/libpcap/build/grammar.c"
3186
0
    break;
3187
3188
0
  case 152:
3189
0
#line 847 "/src/libpcap/build/grammar.y"
3190
0
                                { (yyval.i) = BPF_JGE; }
3191
0
#line 3192 "/src/libpcap/build/grammar.c"
3192
0
    break;
3193
3194
0
  case 153:
3195
0
#line 848 "/src/libpcap/build/grammar.y"
3196
0
                                { (yyval.i) = BPF_JEQ; }
3197
0
#line 3198 "/src/libpcap/build/grammar.c"
3198
0
    break;
3199
3200
0
  case 154:
3201
0
#line 850 "/src/libpcap/build/grammar.y"
3202
0
                                { (yyval.i) = BPF_JGT; }
3203
0
#line 3204 "/src/libpcap/build/grammar.c"
3204
0
    break;
3205
3206
0
  case 155:
3207
0
#line 851 "/src/libpcap/build/grammar.y"
3208
0
                                { (yyval.i) = BPF_JGE; }
3209
0
#line 3210 "/src/libpcap/build/grammar.c"
3210
0
    break;
3211
3212
0
  case 156:
3213
0
#line 852 "/src/libpcap/build/grammar.y"
3214
0
                                { (yyval.i) = BPF_JEQ; }
3215
0
#line 3216 "/src/libpcap/build/grammar.c"
3216
0
    break;
3217
3218
0
  case 157:
3219
0
#line 854 "/src/libpcap/build/grammar.y"
3220
0
                                { CHECK_PTR_VAL(((yyval.a) = gen_loadi(cstate, (yyvsp[0].h)))); }
3221
0
#line 3222 "/src/libpcap/build/grammar.c"
3222
0
    break;
3223
3224
0
  case 159:
3225
0
#line 857 "/src/libpcap/build/grammar.y"
3226
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_load(cstate, (yyvsp[-3].i), (yyvsp[-1].a), 1))); }
3227
0
#line 3228 "/src/libpcap/build/grammar.c"
3228
0
    break;
3229
3230
0
  case 160:
3231
0
#line 858 "/src/libpcap/build/grammar.y"
3232
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_load(cstate, (yyvsp[-5].i), (yyvsp[-3].a), (yyvsp[-1].h)))); }
3233
0
#line 3234 "/src/libpcap/build/grammar.c"
3234
0
    break;
3235
3236
0
  case 161:
3237
0
#line 859 "/src/libpcap/build/grammar.y"
3238
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_ADD, (yyvsp[-2].a), (yyvsp[0].a)))); }
3239
0
#line 3240 "/src/libpcap/build/grammar.c"
3240
0
    break;
3241
3242
0
  case 162:
3243
0
#line 860 "/src/libpcap/build/grammar.y"
3244
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_SUB, (yyvsp[-2].a), (yyvsp[0].a)))); }
3245
0
#line 3246 "/src/libpcap/build/grammar.c"
3246
0
    break;
3247
3248
0
  case 163:
3249
0
#line 861 "/src/libpcap/build/grammar.y"
3250
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_MUL, (yyvsp[-2].a), (yyvsp[0].a)))); }
3251
0
#line 3252 "/src/libpcap/build/grammar.c"
3252
0
    break;
3253
3254
0
  case 164:
3255
0
#line 862 "/src/libpcap/build/grammar.y"
3256
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_DIV, (yyvsp[-2].a), (yyvsp[0].a)))); }
3257
0
#line 3258 "/src/libpcap/build/grammar.c"
3258
0
    break;
3259
3260
0
  case 165:
3261
0
#line 863 "/src/libpcap/build/grammar.y"
3262
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_MOD, (yyvsp[-2].a), (yyvsp[0].a)))); }
3263
0
#line 3264 "/src/libpcap/build/grammar.c"
3264
0
    break;
3265
3266
0
  case 166:
3267
0
#line 864 "/src/libpcap/build/grammar.y"
3268
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_AND, (yyvsp[-2].a), (yyvsp[0].a)))); }
3269
0
#line 3270 "/src/libpcap/build/grammar.c"
3270
0
    break;
3271
3272
0
  case 167:
3273
0
#line 865 "/src/libpcap/build/grammar.y"
3274
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_OR, (yyvsp[-2].a), (yyvsp[0].a)))); }
3275
0
#line 3276 "/src/libpcap/build/grammar.c"
3276
0
    break;
3277
3278
0
  case 168:
3279
0
#line 866 "/src/libpcap/build/grammar.y"
3280
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_XOR, (yyvsp[-2].a), (yyvsp[0].a)))); }
3281
0
#line 3282 "/src/libpcap/build/grammar.c"
3282
0
    break;
3283
3284
0
  case 169:
3285
0
#line 867 "/src/libpcap/build/grammar.y"
3286
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_LSH, (yyvsp[-2].a), (yyvsp[0].a)))); }
3287
0
#line 3288 "/src/libpcap/build/grammar.c"
3288
0
    break;
3289
3290
0
  case 170:
3291
0
#line 868 "/src/libpcap/build/grammar.y"
3292
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_arth(cstate, BPF_RSH, (yyvsp[-2].a), (yyvsp[0].a)))); }
3293
0
#line 3294 "/src/libpcap/build/grammar.c"
3294
0
    break;
3295
3296
0
  case 171:
3297
0
#line 869 "/src/libpcap/build/grammar.y"
3298
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_neg(cstate, (yyvsp[0].a)))); }
3299
0
#line 3300 "/src/libpcap/build/grammar.c"
3300
0
    break;
3301
3302
0
  case 172:
3303
0
#line 870 "/src/libpcap/build/grammar.y"
3304
0
                                        { (yyval.a) = (yyvsp[-1].a); }
3305
0
#line 3306 "/src/libpcap/build/grammar.c"
3306
0
    break;
3307
3308
0
  case 173:
3309
0
#line 871 "/src/libpcap/build/grammar.y"
3310
0
                                        { CHECK_PTR_VAL(((yyval.a) = gen_loadlen(cstate))); }
3311
0
#line 3312 "/src/libpcap/build/grammar.c"
3312
0
    break;
3313
3314
0
  case 174:
3315
0
#line 873 "/src/libpcap/build/grammar.y"
3316
0
                                { (yyval.i) = '&'; }
3317
0
#line 3318 "/src/libpcap/build/grammar.c"
3318
0
    break;
3319
3320
0
  case 175:
3321
0
#line 874 "/src/libpcap/build/grammar.y"
3322
0
                                { (yyval.i) = '|'; }
3323
0
#line 3324 "/src/libpcap/build/grammar.c"
3324
0
    break;
3325
3326
0
  case 176:
3327
0
#line 875 "/src/libpcap/build/grammar.y"
3328
0
                                { (yyval.i) = '<'; }
3329
0
#line 3330 "/src/libpcap/build/grammar.c"
3330
0
    break;
3331
3332
0
  case 177:
3333
0
#line 876 "/src/libpcap/build/grammar.y"
3334
0
                                { (yyval.i) = '>'; }
3335
0
#line 3336 "/src/libpcap/build/grammar.c"
3336
0
    break;
3337
3338
0
  case 178:
3339
0
#line 877 "/src/libpcap/build/grammar.y"
3340
0
                                { (yyval.i) = '='; }
3341
0
#line 3342 "/src/libpcap/build/grammar.c"
3342
0
    break;
3343
3344
0
  case 180:
3345
0
#line 880 "/src/libpcap/build/grammar.y"
3346
0
                                { (yyval.h) = (yyvsp[-1].h); }
3347
0
#line 3348 "/src/libpcap/build/grammar.c"
3348
0
    break;
3349
3350
0
  case 181:
3351
0
#line 882 "/src/libpcap/build/grammar.y"
3352
0
                                { (yyval.i) = A_LANE; }
3353
0
#line 3354 "/src/libpcap/build/grammar.c"
3354
0
    break;
3355
3356
0
  case 182:
3357
0
#line 883 "/src/libpcap/build/grammar.y"
3358
0
                                { (yyval.i) = A_METAC; }
3359
0
#line 3360 "/src/libpcap/build/grammar.c"
3360
0
    break;
3361
3362
0
  case 183:
3363
0
#line 884 "/src/libpcap/build/grammar.y"
3364
0
                                { (yyval.i) = A_BCC; }
3365
0
#line 3366 "/src/libpcap/build/grammar.c"
3366
0
    break;
3367
3368
0
  case 184:
3369
0
#line 885 "/src/libpcap/build/grammar.y"
3370
0
                                { (yyval.i) = A_OAMF4EC; }
3371
0
#line 3372 "/src/libpcap/build/grammar.c"
3372
0
    break;
3373
3374
0
  case 185:
3375
0
#line 886 "/src/libpcap/build/grammar.y"
3376
0
                                { (yyval.i) = A_OAMF4SC; }
3377
0
#line 3378 "/src/libpcap/build/grammar.c"
3378
0
    break;
3379
3380
0
  case 186:
3381
0
#line 887 "/src/libpcap/build/grammar.y"
3382
0
                                { (yyval.i) = A_SC; }
3383
0
#line 3384 "/src/libpcap/build/grammar.c"
3384
0
    break;
3385
3386
0
  case 187:
3387
0
#line 888 "/src/libpcap/build/grammar.y"
3388
0
                                { (yyval.i) = A_ILMIC; }
3389
0
#line 3390 "/src/libpcap/build/grammar.c"
3390
0
    break;
3391
3392
0
  case 188:
3393
0
#line 890 "/src/libpcap/build/grammar.y"
3394
0
                                { (yyval.i) = A_OAM; }
3395
0
#line 3396 "/src/libpcap/build/grammar.c"
3396
0
    break;
3397
3398
0
  case 189:
3399
0
#line 891 "/src/libpcap/build/grammar.y"
3400
0
                                { (yyval.i) = A_OAMF4; }
3401
0
#line 3402 "/src/libpcap/build/grammar.c"
3402
0
    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
0
  case 192:
3417
0
#line 896 "/src/libpcap/build/grammar.y"
3418
0
                                { (yyval.blk).atmfieldtype = A_VPI; }
3419
0
#line 3420 "/src/libpcap/build/grammar.c"
3420
0
    break;
3421
3422
0
  case 193:
3423
0
#line 897 "/src/libpcap/build/grammar.y"
3424
0
                                { (yyval.blk).atmfieldtype = A_VCI; }
3425
0
#line 3426 "/src/libpcap/build/grammar.c"
3426
0
    break;
3427
3428
0
  case 195:
3429
0
#line 900 "/src/libpcap/build/grammar.y"
3430
0
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_atmfield_code(cstate, (yyvsp[-2].blk).atmfieldtype, (yyvsp[0].h), (yyvsp[-1].i), 0))); }
3431
0
#line 3432 "/src/libpcap/build/grammar.c"
3432
0
    break;
3433
3434
0
  case 196:
3435
0
#line 901 "/src/libpcap/build/grammar.y"
3436
0
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_atmfield_code(cstate, (yyvsp[-2].blk).atmfieldtype, (yyvsp[0].h), (yyvsp[-1].i), 1))); }
3437
0
#line 3438 "/src/libpcap/build/grammar.c"
3438
0
    break;
3439
3440
0
  case 197:
3441
0
#line 902 "/src/libpcap/build/grammar.y"
3442
0
                                 { (yyval.blk).b = (yyvsp[-1].blk).b; (yyval.blk).q = qerr; }
3443
0
#line 3444 "/src/libpcap/build/grammar.c"
3444
0
    break;
3445
3446
0
  case 198:
3447
0
#line 904 "/src/libpcap/build/grammar.y"
3448
0
                   {
3449
0
  (yyval.blk).atmfieldtype = (yyvsp[-1].blk).atmfieldtype;
3450
0
  if ((yyval.blk).atmfieldtype == A_VPI ||
3451
0
      (yyval.blk).atmfieldtype == A_VCI)
3452
0
    CHECK_PTR_VAL(((yyval.blk).b = gen_atmfield_code(cstate, (yyval.blk).atmfieldtype, (yyvsp[0].h), BPF_JEQ, 0)));
3453
0
  }
3454
0
#line 3455 "/src/libpcap/build/grammar.c"
3455
0
    break;
3456
3457
0
  case 200:
3458
0
#line 912 "/src/libpcap/build/grammar.y"
3459
0
                                        { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
3460
0
#line 3461 "/src/libpcap/build/grammar.c"
3461
0
    break;
3462
3463
0
  case 201:
3464
0
#line 915 "/src/libpcap/build/grammar.y"
3465
0
                                { (yyval.i) = M_FISU; }
3466
0
#line 3467 "/src/libpcap/build/grammar.c"
3467
0
    break;
3468
3469
0
  case 202:
3470
0
#line 916 "/src/libpcap/build/grammar.y"
3471
0
                                { (yyval.i) = M_LSSU; }
3472
0
#line 3473 "/src/libpcap/build/grammar.c"
3473
0
    break;
3474
3475
0
  case 203:
3476
0
#line 917 "/src/libpcap/build/grammar.y"
3477
0
                                { (yyval.i) = M_MSU; }
3478
0
#line 3479 "/src/libpcap/build/grammar.c"
3479
0
    break;
3480
3481
0
  case 204:
3482
0
#line 918 "/src/libpcap/build/grammar.y"
3483
0
                                { (yyval.i) = MH_FISU; }
3484
0
#line 3485 "/src/libpcap/build/grammar.c"
3485
0
    break;
3486
3487
0
  case 205:
3488
0
#line 919 "/src/libpcap/build/grammar.y"
3489
0
                                { (yyval.i) = MH_LSSU; }
3490
0
#line 3491 "/src/libpcap/build/grammar.c"
3491
0
    break;
3492
3493
0
  case 206:
3494
0
#line 920 "/src/libpcap/build/grammar.y"
3495
0
                                { (yyval.i) = MH_MSU; }
3496
0
#line 3497 "/src/libpcap/build/grammar.c"
3497
0
    break;
3498
3499
0
  case 207:
3500
0
#line 923 "/src/libpcap/build/grammar.y"
3501
0
                                { (yyval.blk).mtp3fieldtype = M_SIO; }
3502
0
#line 3503 "/src/libpcap/build/grammar.c"
3503
0
    break;
3504
3505
0
  case 208:
3506
0
#line 924 "/src/libpcap/build/grammar.y"
3507
0
                                { (yyval.blk).mtp3fieldtype = M_OPC; }
3508
0
#line 3509 "/src/libpcap/build/grammar.c"
3509
0
    break;
3510
3511
0
  case 209:
3512
0
#line 925 "/src/libpcap/build/grammar.y"
3513
0
                                { (yyval.blk).mtp3fieldtype = M_DPC; }
3514
0
#line 3515 "/src/libpcap/build/grammar.c"
3515
0
    break;
3516
3517
0
  case 210:
3518
0
#line 926 "/src/libpcap/build/grammar.y"
3519
0
                                { (yyval.blk).mtp3fieldtype = M_SLS; }
3520
0
#line 3521 "/src/libpcap/build/grammar.c"
3521
0
    break;
3522
3523
0
  case 211:
3524
0
#line 927 "/src/libpcap/build/grammar.y"
3525
0
                                { (yyval.blk).mtp3fieldtype = MH_SIO; }
3526
0
#line 3527 "/src/libpcap/build/grammar.c"
3527
0
    break;
3528
3529
0
  case 212:
3530
0
#line 928 "/src/libpcap/build/grammar.y"
3531
0
                                { (yyval.blk).mtp3fieldtype = MH_OPC; }
3532
0
#line 3533 "/src/libpcap/build/grammar.c"
3533
0
    break;
3534
3535
0
  case 213:
3536
0
#line 929 "/src/libpcap/build/grammar.y"
3537
0
                                { (yyval.blk).mtp3fieldtype = MH_DPC; }
3538
0
#line 3539 "/src/libpcap/build/grammar.c"
3539
0
    break;
3540
3541
0
  case 214:
3542
0
#line 930 "/src/libpcap/build/grammar.y"
3543
0
                                { (yyval.blk).mtp3fieldtype = MH_SLS; }
3544
0
#line 3545 "/src/libpcap/build/grammar.c"
3545
0
    break;
3546
3547
0
  case 216:
3548
0
#line 933 "/src/libpcap/build/grammar.y"
3549
0
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_mtp3field_code(cstate, (yyvsp[-2].blk).mtp3fieldtype, (yyvsp[0].h), (yyvsp[-1].i), 0))); }
3550
0
#line 3551 "/src/libpcap/build/grammar.c"
3551
0
    break;
3552
3553
0
  case 217:
3554
0
#line 934 "/src/libpcap/build/grammar.y"
3555
0
                                { CHECK_PTR_VAL(((yyval.blk).b = gen_mtp3field_code(cstate, (yyvsp[-2].blk).mtp3fieldtype, (yyvsp[0].h), (yyvsp[-1].i), 1))); }
3556
0
#line 3557 "/src/libpcap/build/grammar.c"
3557
0
    break;
3558
3559
0
  case 218:
3560
0
#line 935 "/src/libpcap/build/grammar.y"
3561
0
                                  { (yyval.blk).b = (yyvsp[-1].blk).b; (yyval.blk).q = qerr; }
3562
0
#line 3563 "/src/libpcap/build/grammar.c"
3563
0
    break;
3564
3565
0
  case 219:
3566
0
#line 937 "/src/libpcap/build/grammar.y"
3567
0
                    {
3568
0
  (yyval.blk).mtp3fieldtype = (yyvsp[-1].blk).mtp3fieldtype;
3569
0
  if ((yyval.blk).mtp3fieldtype == M_SIO ||
3570
0
      (yyval.blk).mtp3fieldtype == M_OPC ||
3571
0
      (yyval.blk).mtp3fieldtype == M_DPC ||
3572
0
      (yyval.blk).mtp3fieldtype == M_SLS ||
3573
0
      (yyval.blk).mtp3fieldtype == MH_SIO ||
3574
0
      (yyval.blk).mtp3fieldtype == MH_OPC ||
3575
0
      (yyval.blk).mtp3fieldtype == MH_DPC ||
3576
0
      (yyval.blk).mtp3fieldtype == MH_SLS)
3577
0
    CHECK_PTR_VAL(((yyval.blk).b = gen_mtp3field_code(cstate, (yyval.blk).mtp3fieldtype, (yyvsp[0].h), BPF_JEQ, 0)));
3578
0
  }
3579
0
#line 3580 "/src/libpcap/build/grammar.c"
3580
0
    break;
3581
3582
0
  case 221:
3583
0
#line 951 "/src/libpcap/build/grammar.y"
3584
0
                                          { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
3585
0
#line 3586 "/src/libpcap/build/grammar.c"
3586
0
    break;
3587
3588
3589
0
#line 3590 "/src/libpcap/build/grammar.c"
3590
3591
0
      default: break;
3592
0
    }
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
0
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3605
3606
0
  YYPOPSTACK (yylen);
3607
0
  yylen = 0;
3608
0
  YY_STACK_PRINT (yyss, yyssp);
3609
3610
0
  *++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
0
  {
3616
0
    const int yylhs = yyr1[yyn] - YYNTOKENS;
3617
0
    const int yyi = yypgoto[yylhs] + *yyssp;
3618
0
    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3619
0
               ? yytable[yyi]
3620
0
               : yydefgoto[yylhs]);
3621
0
  }
3622
3623
0
  goto yynewstate;
3624
3625
3626
/*--------------------------------------.
3627
| yyerrlab -- here on detecting error.  |
3628
`--------------------------------------*/
3629
0
yyerrlab:
3630
  /* Make sure we have latest lookahead translation.  See comments at
3631
     user semantic actions for why this is necessary.  */
3632
0
  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3633
3634
  /* If not already recovering from an error, report this error.  */
3635
0
  if (!yyerrstatus)
3636
0
    {
3637
0
      ++yynerrs;
3638
0
#if ! YYERROR_VERBOSE
3639
0
      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
0
    }
3673
3674
3675
3676
0
  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
0
  goto yyerrlab1;
3698
3699
3700
/*---------------------------------------------------.
3701
| yyerrorlab -- error raised explicitly by YYERROR.  |
3702
`---------------------------------------------------*/
3703
0
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
0
yyerrlab1:
3722
0
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3723
3724
0
  for (;;)
3725
0
    {
3726
0
      yyn = yypact[yystate];
3727
0
      if (!yypact_value_is_default (yyn))
3728
0
        {
3729
0
          yyn += YYTERROR;
3730
0
          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
0
        }
3737
3738
      /* Pop the current state because it cannot handle the error token.  */
3739
0
      if (yyssp == yyss)
3740
0
        YYABORT;
3741
3742
3743
0
      yydestruct ("Error: popping",
3744
0
                  yystos[yystate], yyvsp, yyscanner, cstate);
3745
0
      YYPOPSTACK (1);
3746
0
      yystate = *yyssp;
3747
0
      YY_STACK_PRINT (yyss, yyssp);
3748
0
    }
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
0
yyacceptlab:
3766
0
  yyresult = 0;
3767
0
  goto yyreturn;
3768
3769
3770
/*-----------------------------------.
3771
| yyabortlab -- YYABORT comes here.  |
3772
`-----------------------------------*/
3773
0
yyabortlab:
3774
0
  yyresult = 1;
3775
0
  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
0
yyreturn:
3793
0
  if (yychar != YYEMPTY)
3794
0
    {
3795
      /* Make sure we have latest lookahead translation.  See comments at
3796
         user semantic actions for why this is necessary.  */
3797
0
      yytoken = YYTRANSLATE (yychar);
3798
0
      yydestruct ("Cleanup: discarding lookahead",
3799
0
                  yytoken, &yylval, yyscanner, cstate);
3800
0
    }
3801
  /* Do not reclaim the symbols of the rule whose action triggered
3802
     this YYABORT or YYACCEPT.  */
3803
0
  YYPOPSTACK (yylen);
3804
0
  YY_STACK_PRINT (yyss, yyssp);
3805
0
  while (yyssp != yyss)
3806
0
    {
3807
0
      yydestruct ("Cleanup: popping",
3808
0
                  yystos[+*yyssp], yyvsp, yyscanner, cstate);
3809
0
      YYPOPSTACK (1);
3810
0
    }
3811
0
#ifndef yyoverflow
3812
0
  if (yyss != yyssa)
3813
0
    YYSTACK_FREE (yyss);
3814
0
#endif
3815
#if YYERROR_VERBOSE
3816
  if (yymsg != yymsgbuf)
3817
    YYSTACK_FREE (yymsg);
3818
#endif
3819
0
  return yyresult;
3820
0
}
3821
#line 953 "/src/libpcap/build/grammar.y"
3822