blob: f5aa791cabe079d59ec738ea7db956a6218ef030 [file] [log] [blame]
Elliott Hughesd8845d72015-10-19 18:07:04 -07001/* A Bison parser, made by GNU Bison 3.0.2. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002
3/* Bison implementation for Yacc-like parsers in C
Elliott Hughesd8845d72015-10-19 18:07:04 -07004
5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6
JP Abgrallaa5c5f32014-02-10 20:23:42 -08007 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
Elliott Hughesd8845d72015-10-19 18:07:04 -070011
JP Abgrallaa5c5f32014-02-10 20:23:42 -080012 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
Elliott Hughesd8845d72015-10-19 18:07:04 -070016
JP Abgrallaa5c5f32014-02-10 20:23:42 -080017 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20/* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
Elliott Hughesd8845d72015-10-19 18:07:04 -070029
JP Abgrallaa5c5f32014-02-10 20:23:42 -080030 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33/* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36/* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43/* Identify Bison output. */
44#define YYBISON 1
45
46/* Bison version. */
Elliott Hughesd8845d72015-10-19 18:07:04 -070047#define YYBISON_VERSION "3.0.2"
JP Abgrallaa5c5f32014-02-10 20:23:42 -080048
49/* Skeleton name. */
50#define YYSKELETON_NAME "yacc.c"
51
52/* Pure parsers. */
53#define YYPURE 0
54
55/* Push parsers. */
56#define YYPUSH 0
57
58/* Pull parsers. */
59#define YYPULL 1
60
JP Abgrallaa5c5f32014-02-10 20:23:42 -080061
62/* Substitute the variable and function names. */
63#define yyparse pcap_parse
64#define yylex pcap_lex
65#define yyerror pcap_error
JP Abgrallaa5c5f32014-02-10 20:23:42 -080066#define yydebug pcap_debug
67#define yynerrs pcap_nerrs
68
Elliott Hughesd8845d72015-10-19 18:07:04 -070069#define yylval pcap_lval
70#define yychar pcap_char
JP Abgrallaa5c5f32014-02-10 20:23:42 -080071
72/* Copy the first part of user declarations. */
Elliott Hughesd8845d72015-10-19 18:07:04 -070073#line 1 "grammar.y" /* yacc.c:339 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -080074
75/*
76 * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
77 * The Regents of the University of California. All rights reserved.
78 *
79 * Redistribution and use in source and binary forms, with or without
80 * modification, are permitted provided that: (1) source code distributions
81 * retain the above copyright notice and this paragraph in its entirety, (2)
82 * distributions including binary code include the above copyright notice and
83 * this paragraph in its entirety in the documentation or other materials
84 * provided with the distribution, and (3) all advertising materials mentioning
85 * features or use of this software display the following acknowledgement:
86 * ``This product includes software developed by the University of California,
87 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
88 * the University nor the names of its contributors may be used to endorse
89 * or promote products derived from this software without specific prior
90 * written permission.
91 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
92 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
93 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
94 *
95 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -080096
97#ifdef HAVE_CONFIG_H
98#include "config.h"
99#endif
100
101#ifdef WIN32
102#include <pcap-stdinc.h>
103#else /* WIN32 */
104#include <sys/types.h>
105#include <sys/socket.h>
106#endif /* WIN32 */
107
108#include <stdlib.h>
109
110#ifndef WIN32
111#if __STDC__
112struct mbuf;
113struct rtentry;
114#endif
115
116#include <netinet/in.h>
117#include <arpa/inet.h>
118#endif /* WIN32 */
119
120#include <stdio.h>
121
122#include "pcap-int.h"
123
124#include "gencode.h"
125#ifdef HAVE_NET_PFVAR_H
126#include <net/if.h>
127#include <net/pfvar.h>
128#include <net/if_pflog.h>
129#endif
Elliott Hughesd8845d72015-10-19 18:07:04 -0700130#include "llc.h"
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800131#include "ieee80211.h"
132#include <pcap/namedb.h>
133
134#ifdef HAVE_OS_PROTO_H
135#include "os-proto.h"
136#endif
137
138#define QSET(q, p, d, a) (q).proto = (p),\
139 (q).dir = (d),\
140 (q).addr = (a)
141
142struct tok {
143 int v; /* value */
144 const char *s; /* string */
145};
146
147static const struct tok ieee80211_types[] = {
148 { IEEE80211_FC0_TYPE_DATA, "data" },
149 { IEEE80211_FC0_TYPE_MGT, "mgt" },
150 { IEEE80211_FC0_TYPE_MGT, "management" },
151 { IEEE80211_FC0_TYPE_CTL, "ctl" },
152 { IEEE80211_FC0_TYPE_CTL, "control" },
153 { 0, NULL }
154};
155static const struct tok ieee80211_mgt_subtypes[] = {
156 { IEEE80211_FC0_SUBTYPE_ASSOC_REQ, "assocreq" },
157 { IEEE80211_FC0_SUBTYPE_ASSOC_REQ, "assoc-req" },
158 { IEEE80211_FC0_SUBTYPE_ASSOC_RESP, "assocresp" },
159 { IEEE80211_FC0_SUBTYPE_ASSOC_RESP, "assoc-resp" },
160 { IEEE80211_FC0_SUBTYPE_REASSOC_REQ, "reassocreq" },
161 { IEEE80211_FC0_SUBTYPE_REASSOC_REQ, "reassoc-req" },
162 { IEEE80211_FC0_SUBTYPE_REASSOC_RESP, "reassocresp" },
163 { IEEE80211_FC0_SUBTYPE_REASSOC_RESP, "reassoc-resp" },
164 { IEEE80211_FC0_SUBTYPE_PROBE_REQ, "probereq" },
165 { IEEE80211_FC0_SUBTYPE_PROBE_REQ, "probe-req" },
166 { IEEE80211_FC0_SUBTYPE_PROBE_RESP, "proberesp" },
167 { IEEE80211_FC0_SUBTYPE_PROBE_RESP, "probe-resp" },
168 { IEEE80211_FC0_SUBTYPE_BEACON, "beacon" },
169 { IEEE80211_FC0_SUBTYPE_ATIM, "atim" },
170 { IEEE80211_FC0_SUBTYPE_DISASSOC, "disassoc" },
171 { IEEE80211_FC0_SUBTYPE_DISASSOC, "disassociation" },
172 { IEEE80211_FC0_SUBTYPE_AUTH, "auth" },
173 { IEEE80211_FC0_SUBTYPE_AUTH, "authentication" },
174 { IEEE80211_FC0_SUBTYPE_DEAUTH, "deauth" },
175 { IEEE80211_FC0_SUBTYPE_DEAUTH, "deauthentication" },
176 { 0, NULL }
177};
178static const struct tok ieee80211_ctl_subtypes[] = {
179 { IEEE80211_FC0_SUBTYPE_PS_POLL, "ps-poll" },
180 { IEEE80211_FC0_SUBTYPE_RTS, "rts" },
181 { IEEE80211_FC0_SUBTYPE_CTS, "cts" },
182 { IEEE80211_FC0_SUBTYPE_ACK, "ack" },
183 { IEEE80211_FC0_SUBTYPE_CF_END, "cf-end" },
184 { IEEE80211_FC0_SUBTYPE_CF_END_ACK, "cf-end-ack" },
185 { 0, NULL }
186};
187static const struct tok ieee80211_data_subtypes[] = {
188 { IEEE80211_FC0_SUBTYPE_DATA, "data" },
189 { IEEE80211_FC0_SUBTYPE_CF_ACK, "data-cf-ack" },
190 { IEEE80211_FC0_SUBTYPE_CF_POLL, "data-cf-poll" },
191 { IEEE80211_FC0_SUBTYPE_CF_ACPL, "data-cf-ack-poll" },
192 { IEEE80211_FC0_SUBTYPE_NODATA, "null" },
193 { IEEE80211_FC0_SUBTYPE_NODATA_CF_ACK, "cf-ack" },
194 { IEEE80211_FC0_SUBTYPE_NODATA_CF_POLL, "cf-poll" },
195 { IEEE80211_FC0_SUBTYPE_NODATA_CF_ACPL, "cf-ack-poll" },
196 { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_DATA, "qos-data" },
197 { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_CF_ACK, "qos-data-cf-ack" },
198 { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_CF_POLL, "qos-data-cf-poll" },
199 { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_CF_ACPL, "qos-data-cf-ack-poll" },
200 { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_NODATA, "qos" },
201 { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_NODATA_CF_POLL, "qos-cf-poll" },
202 { IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_SUBTYPE_NODATA_CF_ACPL, "qos-cf-ack-poll" },
203 { 0, NULL }
204};
Elliott Hughesd8845d72015-10-19 18:07:04 -0700205static const struct tok llc_s_subtypes[] = {
206 { LLC_RR, "rr" },
207 { LLC_RNR, "rnr" },
208 { LLC_REJ, "rej" },
209 { 0, NULL }
210};
211static const struct tok llc_u_subtypes[] = {
212 { LLC_UI, "ui" },
213 { LLC_UA, "ua" },
214 { LLC_DISC, "disc" },
215 { LLC_DM, "dm" },
216 { LLC_SABME, "sabme" },
217 { LLC_TEST, "test" },
218 { LLC_XID, "xid" },
219 { LLC_FRMR, "frmr" },
220 { 0, NULL }
221};
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800222struct type2tok {
223 int type;
224 const struct tok *tok;
225};
226static const struct type2tok ieee80211_type_subtypes[] = {
227 { IEEE80211_FC0_TYPE_MGT, ieee80211_mgt_subtypes },
228 { IEEE80211_FC0_TYPE_CTL, ieee80211_ctl_subtypes },
229 { IEEE80211_FC0_TYPE_DATA, ieee80211_data_subtypes },
230 { 0, NULL }
231};
232
233static int
234str2tok(const char *str, const struct tok *toks)
235{
236 int i;
237
238 for (i = 0; toks[i].s != NULL; i++) {
239 if (pcap_strcasecmp(toks[i].s, str) == 0)
240 return (toks[i].v);
241 }
242 return (-1);
243}
244
245int n_errors = 0;
246
247static struct qual qerr = { Q_UNDEF, Q_UNDEF, Q_UNDEF, Q_UNDEF };
248
249static void
250yyerror(const char *msg)
251{
252 ++n_errors;
253 bpf_error("%s", msg);
254 /* NOTREACHED */
255}
256
257#ifdef NEED_YYPARSE_WRAPPER
258int yyparse(void);
259
260int
261pcap_parse()
262{
263 return (yyparse());
264}
265#endif
266
267#ifdef HAVE_NET_PFVAR_H
268static int
269pfreason_to_num(const char *reason)
270{
271 const char *reasons[] = PFRES_NAMES;
272 int i;
273
274 for (i = 0; reasons[i]; i++) {
275 if (pcap_strcasecmp(reason, reasons[i]) == 0)
276 return (i);
277 }
278 bpf_error("unknown PF reason");
279 /*NOTREACHED*/
280}
281
282static int
283pfaction_to_num(const char *action)
284{
285 if (pcap_strcasecmp(action, "pass") == 0 ||
286 pcap_strcasecmp(action, "accept") == 0)
287 return (PF_PASS);
288 else if (pcap_strcasecmp(action, "drop") == 0 ||
289 pcap_strcasecmp(action, "block") == 0)
290 return (PF_DROP);
291#if HAVE_PF_NAT_THROUGH_PF_NORDR
292 else if (pcap_strcasecmp(action, "rdr") == 0)
293 return (PF_RDR);
294 else if (pcap_strcasecmp(action, "nat") == 0)
295 return (PF_NAT);
296 else if (pcap_strcasecmp(action, "binat") == 0)
297 return (PF_BINAT);
298 else if (pcap_strcasecmp(action, "nordr") == 0)
299 return (PF_NORDR);
300#endif
301 else {
302 bpf_error("unknown PF action");
303 /*NOTREACHED*/
304 }
305}
306#else /* !HAVE_NET_PFVAR_H */
307static int
308pfreason_to_num(const char *reason)
309{
310 bpf_error("libpcap was compiled on a machine without pf support");
311 /*NOTREACHED*/
312
313 /* this is to make the VC compiler happy */
314 return -1;
315}
316
317static int
318pfaction_to_num(const char *action)
319{
320 bpf_error("libpcap was compiled on a machine without pf support");
321 /*NOTREACHED*/
322
323 /* this is to make the VC compiler happy */
324 return -1;
325}
326#endif /* HAVE_NET_PFVAR_H */
327
Elliott Hughesd8845d72015-10-19 18:07:04 -0700328#line 329 "y.tab.c" /* yacc.c:339 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800329
Elliott Hughesd8845d72015-10-19 18:07:04 -0700330# ifndef YY_NULLPTR
331# if defined __cplusplus && 201103L <= __cplusplus
332# define YY_NULLPTR nullptr
333# else
334# define YY_NULLPTR 0
335# endif
336# endif
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800337
338/* Enabling verbose error messages. */
339#ifdef YYERROR_VERBOSE
340# undef YYERROR_VERBOSE
341# define YYERROR_VERBOSE 1
342#else
343# define YYERROR_VERBOSE 0
344#endif
345
Elliott Hughesd8845d72015-10-19 18:07:04 -0700346/* In a future release of Bison, this section will be replaced
347 by #include "y.tab.h". */
348#ifndef YY_PCAP_Y_TAB_H_INCLUDED
349# define YY_PCAP_Y_TAB_H_INCLUDED
350/* Debug traces. */
351#ifndef YYDEBUG
352# define YYDEBUG 0
353#endif
354#if YYDEBUG
355extern int pcap_debug;
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800356#endif
357
Elliott Hughesd8845d72015-10-19 18:07:04 -0700358/* Token type. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800359#ifndef YYTOKENTYPE
360# define YYTOKENTYPE
Elliott Hughesd8845d72015-10-19 18:07:04 -0700361 enum yytokentype
362 {
363 DST = 258,
364 SRC = 259,
365 HOST = 260,
366 GATEWAY = 261,
367 NET = 262,
368 NETMASK = 263,
369 PORT = 264,
370 PORTRANGE = 265,
371 LESS = 266,
372 GREATER = 267,
373 PROTO = 268,
374 PROTOCHAIN = 269,
375 CBYTE = 270,
376 ARP = 271,
377 RARP = 272,
378 IP = 273,
379 SCTP = 274,
380 TCP = 275,
381 UDP = 276,
382 ICMP = 277,
383 IGMP = 278,
384 IGRP = 279,
385 PIM = 280,
386 VRRP = 281,
387 CARP = 282,
388 ATALK = 283,
389 AARP = 284,
390 DECNET = 285,
391 LAT = 286,
392 SCA = 287,
393 MOPRC = 288,
394 MOPDL = 289,
395 TK_BROADCAST = 290,
396 TK_MULTICAST = 291,
397 NUM = 292,
398 INBOUND = 293,
399 OUTBOUND = 294,
400 PF_IFNAME = 295,
401 PF_RSET = 296,
402 PF_RNR = 297,
403 PF_SRNR = 298,
404 PF_REASON = 299,
405 PF_ACTION = 300,
406 TYPE = 301,
407 SUBTYPE = 302,
408 DIR = 303,
409 ADDR1 = 304,
410 ADDR2 = 305,
411 ADDR3 = 306,
412 ADDR4 = 307,
413 RA = 308,
414 TA = 309,
415 LINK = 310,
416 GEQ = 311,
417 LEQ = 312,
418 NEQ = 313,
419 ID = 314,
420 EID = 315,
421 HID = 316,
422 HID6 = 317,
423 AID = 318,
424 LSH = 319,
425 RSH = 320,
426 LEN = 321,
427 IPV6 = 322,
428 ICMPV6 = 323,
429 AH = 324,
430 ESP = 325,
431 VLAN = 326,
432 MPLS = 327,
433 PPPOED = 328,
434 PPPOES = 329,
435 GENEVE = 330,
436 ISO = 331,
437 ESIS = 332,
438 CLNP = 333,
439 ISIS = 334,
440 L1 = 335,
441 L2 = 336,
442 IIH = 337,
443 LSP = 338,
444 SNP = 339,
445 CSNP = 340,
446 PSNP = 341,
447 STP = 342,
448 IPX = 343,
449 NETBEUI = 344,
450 LANE = 345,
451 LLC = 346,
452 METAC = 347,
453 BCC = 348,
454 SC = 349,
455 ILMIC = 350,
456 OAMF4EC = 351,
457 OAMF4SC = 352,
458 OAM = 353,
459 OAMF4 = 354,
460 CONNECTMSG = 355,
461 METACONNECT = 356,
462 VPI = 357,
463 VCI = 358,
464 RADIO = 359,
465 FISU = 360,
466 LSSU = 361,
467 MSU = 362,
468 HFISU = 363,
469 HLSSU = 364,
470 HMSU = 365,
471 SIO = 366,
472 OPC = 367,
473 DPC = 368,
474 SLS = 369,
475 HSIO = 370,
476 HOPC = 371,
477 HDPC = 372,
478 HSLS = 373,
479 OR = 374,
480 AND = 375,
481 UMINUS = 376
482 };
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800483#endif
484/* Tokens. */
485#define DST 258
486#define SRC 259
487#define HOST 260
488#define GATEWAY 261
489#define NET 262
490#define NETMASK 263
491#define PORT 264
492#define PORTRANGE 265
493#define LESS 266
494#define GREATER 267
495#define PROTO 268
496#define PROTOCHAIN 269
497#define CBYTE 270
498#define ARP 271
499#define RARP 272
500#define IP 273
501#define SCTP 274
502#define TCP 275
503#define UDP 276
504#define ICMP 277
505#define IGMP 278
506#define IGRP 279
507#define PIM 280
508#define VRRP 281
509#define CARP 282
510#define ATALK 283
511#define AARP 284
512#define DECNET 285
513#define LAT 286
514#define SCA 287
515#define MOPRC 288
516#define MOPDL 289
517#define TK_BROADCAST 290
518#define TK_MULTICAST 291
519#define NUM 292
520#define INBOUND 293
521#define OUTBOUND 294
522#define PF_IFNAME 295
523#define PF_RSET 296
524#define PF_RNR 297
525#define PF_SRNR 298
526#define PF_REASON 299
527#define PF_ACTION 300
528#define TYPE 301
529#define SUBTYPE 302
530#define DIR 303
531#define ADDR1 304
532#define ADDR2 305
533#define ADDR3 306
534#define ADDR4 307
535#define RA 308
536#define TA 309
537#define LINK 310
538#define GEQ 311
539#define LEQ 312
540#define NEQ 313
541#define ID 314
542#define EID 315
543#define HID 316
544#define HID6 317
545#define AID 318
546#define LSH 319
547#define RSH 320
548#define LEN 321
549#define IPV6 322
550#define ICMPV6 323
551#define AH 324
552#define ESP 325
553#define VLAN 326
554#define MPLS 327
555#define PPPOED 328
556#define PPPOES 329
Elliott Hughesd8845d72015-10-19 18:07:04 -0700557#define GENEVE 330
558#define ISO 331
559#define ESIS 332
560#define CLNP 333
561#define ISIS 334
562#define L1 335
563#define L2 336
564#define IIH 337
565#define LSP 338
566#define SNP 339
567#define CSNP 340
568#define PSNP 341
569#define STP 342
570#define IPX 343
571#define NETBEUI 344
572#define LANE 345
573#define LLC 346
574#define METAC 347
575#define BCC 348
576#define SC 349
577#define ILMIC 350
578#define OAMF4EC 351
579#define OAMF4SC 352
580#define OAM 353
581#define OAMF4 354
582#define CONNECTMSG 355
583#define METACONNECT 356
584#define VPI 357
585#define VCI 358
586#define RADIO 359
587#define FISU 360
588#define LSSU 361
589#define MSU 362
590#define HFISU 363
591#define HLSSU 364
592#define HMSU 365
593#define SIO 366
594#define OPC 367
595#define DPC 368
596#define SLS 369
597#define HSIO 370
598#define HOPC 371
599#define HDPC 372
600#define HSLS 373
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800601#define OR 374
Elliott Hughesd8845d72015-10-19 18:07:04 -0700602#define AND 375
603#define UMINUS 376
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800604
Elliott Hughesd8845d72015-10-19 18:07:04 -0700605/* Value type. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800606#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
Elliott Hughesd8845d72015-10-19 18:07:04 -0700607typedef union YYSTYPE YYSTYPE;
608union YYSTYPE
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800609{
Elliott Hughesd8845d72015-10-19 18:07:04 -0700610#line 256 "grammar.y" /* yacc.c:355 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800611
612 int i;
613 bpf_u_int32 h;
614 u_char *e;
615 char *s;
616 struct stmt *stmt;
617 struct arth *a;
618 struct {
619 struct qual q;
620 int atmfieldtype;
621 int mtp3fieldtype;
622 struct block *b;
623 } blk;
624 struct block *rblk;
625
Elliott Hughesd8845d72015-10-19 18:07:04 -0700626#line 627 "y.tab.c" /* yacc.c:355 */
627};
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800628# define YYSTYPE_IS_TRIVIAL 1
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800629# define YYSTYPE_IS_DECLARED 1
630#endif
631
632
Elliott Hughesd8845d72015-10-19 18:07:04 -0700633extern YYSTYPE pcap_lval;
634
635int pcap_parse (void);
636
637#endif /* !YY_PCAP_Y_TAB_H_INCLUDED */
638
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800639/* Copy the second part of user declarations. */
640
Elliott Hughesd8845d72015-10-19 18:07:04 -0700641#line 642 "y.tab.c" /* yacc.c:358 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800642
643#ifdef short
644# undef short
645#endif
646
647#ifdef YYTYPE_UINT8
648typedef YYTYPE_UINT8 yytype_uint8;
649#else
650typedef unsigned char yytype_uint8;
651#endif
652
653#ifdef YYTYPE_INT8
654typedef YYTYPE_INT8 yytype_int8;
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800655#else
Elliott Hughesd8845d72015-10-19 18:07:04 -0700656typedef signed char yytype_int8;
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800657#endif
658
659#ifdef YYTYPE_UINT16
660typedef YYTYPE_UINT16 yytype_uint16;
661#else
662typedef unsigned short int yytype_uint16;
663#endif
664
665#ifdef YYTYPE_INT16
666typedef YYTYPE_INT16 yytype_int16;
667#else
668typedef short int yytype_int16;
669#endif
670
671#ifndef YYSIZE_T
672# ifdef __SIZE_TYPE__
673# define YYSIZE_T __SIZE_TYPE__
674# elif defined size_t
675# define YYSIZE_T size_t
Elliott Hughesd8845d72015-10-19 18:07:04 -0700676# elif ! defined YYSIZE_T
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800677# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
678# define YYSIZE_T size_t
679# else
680# define YYSIZE_T unsigned int
681# endif
682#endif
683
684#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
685
686#ifndef YY_
687# if defined YYENABLE_NLS && YYENABLE_NLS
688# if ENABLE_NLS
689# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
Elliott Hughesd8845d72015-10-19 18:07:04 -0700690# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800691# endif
692# endif
693# ifndef YY_
Elliott Hughesd8845d72015-10-19 18:07:04 -0700694# define YY_(Msgid) Msgid
695# endif
696#endif
697
698#ifndef YY_ATTRIBUTE
699# if (defined __GNUC__ \
700 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
701 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
702# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
703# else
704# define YY_ATTRIBUTE(Spec) /* empty */
705# endif
706#endif
707
708#ifndef YY_ATTRIBUTE_PURE
709# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
710#endif
711
712#ifndef YY_ATTRIBUTE_UNUSED
713# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
714#endif
715
716#if !defined _Noreturn \
717 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
718# if defined _MSC_VER && 1200 <= _MSC_VER
719# define _Noreturn __declspec (noreturn)
720# else
721# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800722# endif
723#endif
724
725/* Suppress unused-variable warnings by "using" E. */
726#if ! defined lint || defined __GNUC__
Elliott Hughesd8845d72015-10-19 18:07:04 -0700727# define YYUSE(E) ((void) (E))
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800728#else
Elliott Hughesd8845d72015-10-19 18:07:04 -0700729# define YYUSE(E) /* empty */
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800730#endif
731
Elliott Hughesd8845d72015-10-19 18:07:04 -0700732#if defined __GNUC__ && 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")
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800740#else
Elliott Hughesd8845d72015-10-19 18:07:04 -0700741# define YY_INITIAL_VALUE(Value) Value
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800742#endif
Elliott Hughesd8845d72015-10-19 18:07:04 -0700743#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
744# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
745# define YY_IGNORE_MAYBE_UNINITIALIZED_END
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800746#endif
Elliott Hughesd8845d72015-10-19 18:07:04 -0700747#ifndef YY_INITIAL_VALUE
748# define YY_INITIAL_VALUE(Value) /* Nothing. */
749#endif
750
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800751
752#if ! defined yyoverflow || YYERROR_VERBOSE
753
754/* The parser invokes alloca or malloc; define the necessary symbols. */
755
756# ifdef YYSTACK_USE_ALLOCA
757# if YYSTACK_USE_ALLOCA
758# ifdef __GNUC__
759# define YYSTACK_ALLOC __builtin_alloca
760# elif defined __BUILTIN_VA_ARG_INCR
761# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
762# elif defined _AIX
763# define YYSTACK_ALLOC __alloca
764# elif defined _MSC_VER
765# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
766# define alloca _alloca
767# else
768# define YYSTACK_ALLOC alloca
Elliott Hughesd8845d72015-10-19 18:07:04 -0700769# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800770# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
Elliott Hughesd8845d72015-10-19 18:07:04 -0700771 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800772# ifndef EXIT_SUCCESS
773# define EXIT_SUCCESS 0
774# endif
775# endif
776# endif
777# endif
778# endif
779
780# ifdef YYSTACK_ALLOC
Elliott Hughesd8845d72015-10-19 18:07:04 -0700781 /* Pacify GCC's 'empty if-body' warning. */
782# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800783# ifndef YYSTACK_ALLOC_MAXIMUM
784 /* The OS might guarantee only one guard page at the bottom of the stack,
785 and a page size can be as small as 4096 bytes. So we cannot safely
786 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
787 to allow for a few compiler-allocated temporary stack slots. */
788# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
789# endif
790# else
791# define YYSTACK_ALLOC YYMALLOC
792# define YYSTACK_FREE YYFREE
793# ifndef YYSTACK_ALLOC_MAXIMUM
794# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
795# endif
796# if (defined __cplusplus && ! defined EXIT_SUCCESS \
797 && ! ((defined YYMALLOC || defined malloc) \
Elliott Hughesd8845d72015-10-19 18:07:04 -0700798 && (defined YYFREE || defined free)))
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800799# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
800# ifndef EXIT_SUCCESS
801# define EXIT_SUCCESS 0
802# endif
803# endif
804# ifndef YYMALLOC
805# define YYMALLOC malloc
Elliott Hughesd8845d72015-10-19 18:07:04 -0700806# if ! defined malloc && ! defined EXIT_SUCCESS
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800807void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
808# endif
809# endif
810# ifndef YYFREE
811# define YYFREE free
Elliott Hughesd8845d72015-10-19 18:07:04 -0700812# if ! defined free && ! defined EXIT_SUCCESS
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800813void free (void *); /* INFRINGES ON USER NAME SPACE */
814# endif
815# endif
816# endif
817#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
818
819
820#if (! defined yyoverflow \
821 && (! defined __cplusplus \
Elliott Hughesd8845d72015-10-19 18:07:04 -0700822 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800823
824/* A type that is properly aligned for any stack member. */
825union yyalloc
826{
827 yytype_int16 yyss_alloc;
828 YYSTYPE yyvs_alloc;
829};
830
831/* The size of the maximum gap between one aligned stack and the next. */
832# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
833
834/* The size of an array large to enough to hold all stacks, each with
835 N elements. */
836# define YYSTACK_BYTES(N) \
837 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
838 + YYSTACK_GAP_MAXIMUM)
839
840# define YYCOPY_NEEDED 1
841
842/* Relocate STACK from its old location to the new one. The
843 local variables YYSIZE and YYSTACKSIZE give the old and new number of
844 elements in the stack, and YYPTR gives the new location of the
845 stack. Advance YYPTR to a properly aligned location for the next
846 stack. */
Elliott Hughesd8845d72015-10-19 18:07:04 -0700847# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
848 do \
849 { \
850 YYSIZE_T yynewbytes; \
851 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
852 Stack = &yyptr->Stack_alloc; \
853 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
854 yyptr += yynewbytes / sizeof (*yyptr); \
855 } \
856 while (0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800857
858#endif
859
860#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
Elliott Hughesd8845d72015-10-19 18:07:04 -0700861/* Copy COUNT objects from SRC to DST. The source and destination do
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800862 not overlap. */
863# ifndef YYCOPY
864# if defined __GNUC__ && 1 < __GNUC__
Elliott Hughesd8845d72015-10-19 18:07:04 -0700865# define YYCOPY(Dst, Src, Count) \
866 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800867# else
Elliott Hughesd8845d72015-10-19 18:07:04 -0700868# define YYCOPY(Dst, Src, Count) \
869 do \
870 { \
871 YYSIZE_T yyi; \
872 for (yyi = 0; yyi < (Count); yyi++) \
873 (Dst)[yyi] = (Src)[yyi]; \
874 } \
875 while (0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800876# endif
877# endif
878#endif /* !YYCOPY_NEEDED */
879
880/* YYFINAL -- State number of the termination state. */
881#define YYFINAL 3
882/* YYLAST -- Last index in YYTABLE. */
Elliott Hughesd8845d72015-10-19 18:07:04 -0700883#define YYLAST 788
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800884
885/* YYNTOKENS -- Number of terminals. */
Elliott Hughesd8845d72015-10-19 18:07:04 -0700886#define YYNTOKENS 139
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800887/* YYNNTS -- Number of nonterminals. */
Elliott Hughesd8845d72015-10-19 18:07:04 -0700888#define YYNNTS 47
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800889/* YYNRULES -- Number of rules. */
Elliott Hughesd8845d72015-10-19 18:07:04 -0700890#define YYNRULES 220
891/* YYNSTATES -- Number of states. */
892#define YYNSTATES 294
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800893
Elliott Hughesd8845d72015-10-19 18:07:04 -0700894/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
895 by yylex, with out-of-bounds checking. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800896#define YYUNDEFTOK 2
Elliott Hughesd8845d72015-10-19 18:07:04 -0700897#define YYMAXUTOK 376
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800898
Elliott Hughesd8845d72015-10-19 18:07:04 -0700899#define YYTRANSLATE(YYX) \
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800900 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
901
Elliott Hughesd8845d72015-10-19 18:07:04 -0700902/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
903 as returned by yylex, without out-of-bounds checking. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800904static const yytype_uint8 yytranslate[] =
905{
906 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
907 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
908 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Elliott Hughesd8845d72015-10-19 18:07:04 -0700909 2, 2, 2, 121, 2, 2, 2, 137, 123, 2,
910 130, 129, 126, 124, 2, 125, 2, 127, 2, 2,
911 2, 2, 2, 2, 2, 2, 2, 2, 136, 2,
912 133, 132, 131, 2, 2, 2, 2, 2, 2, 2,
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800913 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
914 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Elliott Hughesd8845d72015-10-19 18:07:04 -0700915 2, 134, 2, 135, 138, 2, 2, 2, 2, 2,
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800916 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
917 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Elliott Hughesd8845d72015-10-19 18:07:04 -0700918 2, 2, 2, 2, 122, 2, 2, 2, 2, 2,
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800919 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
920 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
921 2, 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, 2, 2, 2, 2, 2, 2, 2,
925 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
926 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
927 2, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2,
931 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
932 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
933 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
934 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
935 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
936 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
937 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
938 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
939 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
940 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
941 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
942 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
Elliott Hughesd8845d72015-10-19 18:07:04 -0700943 115, 116, 117, 118, 119, 120, 128
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800944};
945
946#if YYDEBUG
Elliott Hughesd8845d72015-10-19 18:07:04 -0700947 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800948static const yytype_uint16 yyrline[] =
949{
Elliott Hughesd8845d72015-10-19 18:07:04 -0700950 0, 330, 330, 334, 336, 338, 339, 340, 341, 342,
951 344, 346, 348, 349, 351, 353, 354, 356, 358, 371,
952 380, 389, 398, 407, 409, 411, 413, 414, 415, 417,
953 419, 421, 422, 424, 425, 426, 427, 428, 429, 431,
954 432, 433, 434, 436, 438, 439, 440, 441, 442, 443,
955 446, 447, 450, 451, 452, 453, 454, 455, 456, 457,
956 458, 459, 460, 461, 464, 465, 466, 467, 470, 472,
957 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
958 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
959 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
960 503, 504, 505, 506, 507, 508, 509, 510, 512, 513,
961 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
962 524, 525, 526, 527, 528, 529, 530, 533, 534, 535,
963 536, 537, 538, 541, 546, 549, 553, 556, 557, 563,
964 564, 584, 600, 601, 622, 625, 626, 639, 640, 643,
965 646, 647, 648, 650, 651, 652, 654, 655, 657, 658,
966 659, 660, 661, 662, 663, 664, 665, 666, 667, 668,
967 669, 670, 671, 673, 674, 675, 676, 677, 679, 680,
968 682, 683, 684, 685, 686, 687, 688, 690, 691, 692,
969 693, 696, 697, 699, 700, 701, 702, 704, 711, 712,
970 715, 716, 717, 718, 719, 720, 723, 724, 725, 726,
971 727, 728, 729, 730, 732, 733, 734, 735, 737, 750,
972 751
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800973};
974#endif
975
Elliott Hughesd8845d72015-10-19 18:07:04 -0700976#if YYDEBUG || YYERROR_VERBOSE || 0
JP Abgrallaa5c5f32014-02-10 20:23:42 -0800977/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
978 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
979static const char *const yytname[] =
980{
981 "$end", "error", "$undefined", "DST", "SRC", "HOST", "GATEWAY", "NET",
982 "NETMASK", "PORT", "PORTRANGE", "LESS", "GREATER", "PROTO", "PROTOCHAIN",
983 "CBYTE", "ARP", "RARP", "IP", "SCTP", "TCP", "UDP", "ICMP", "IGMP",
984 "IGRP", "PIM", "VRRP", "CARP", "ATALK", "AARP", "DECNET", "LAT", "SCA",
985 "MOPRC", "MOPDL", "TK_BROADCAST", "TK_MULTICAST", "NUM", "INBOUND",
986 "OUTBOUND", "PF_IFNAME", "PF_RSET", "PF_RNR", "PF_SRNR", "PF_REASON",
987 "PF_ACTION", "TYPE", "SUBTYPE", "DIR", "ADDR1", "ADDR2", "ADDR3",
988 "ADDR4", "RA", "TA", "LINK", "GEQ", "LEQ", "NEQ", "ID", "EID", "HID",
989 "HID6", "AID", "LSH", "RSH", "LEN", "IPV6", "ICMPV6", "AH", "ESP",
Elliott Hughesd8845d72015-10-19 18:07:04 -0700990 "VLAN", "MPLS", "PPPOED", "PPPOES", "GENEVE", "ISO", "ESIS", "CLNP",
991 "ISIS", "L1", "L2", "IIH", "LSP", "SNP", "CSNP", "PSNP", "STP", "IPX",
992 "NETBEUI", "LANE", "LLC", "METAC", "BCC", "SC", "ILMIC", "OAMF4EC",
993 "OAMF4SC", "OAM", "OAMF4", "CONNECTMSG", "METACONNECT", "VPI", "VCI",
994 "RADIO", "FISU", "LSSU", "MSU", "HFISU", "HLSSU", "HMSU", "SIO", "OPC",
995 "DPC", "SLS", "HSIO", "HOPC", "HDPC", "HSLS", "OR", "AND", "'!'", "'|'",
996 "'&'", "'+'", "'-'", "'*'", "'/'", "UMINUS", "')'", "'('", "'>'", "'='",
997 "'<'", "'['", "']'", "':'", "'%'", "'^'", "$accept", "prog", "null",
998 "expr", "and", "or", "id", "nid", "not", "paren", "pid", "qid", "term",
999 "head", "rterm", "pqual", "dqual", "aqual", "ndaqual", "pname", "other",
1000 "pfvar", "p80211", "type", "subtype", "type_subtype", "pllc", "dir",
1001 "reason", "action", "relop", "irelop", "arth", "narth", "byteop", "pnum",
1002 "atmtype", "atmmultitype", "atmfield", "atmvalue", "atmfieldvalue",
1003 "atmlistvalue", "mtp2type", "mtp3field", "mtp3value", "mtp3fieldvalue",
1004 "mtp3listvalue", YY_NULLPTR
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001005};
1006#endif
1007
1008# ifdef YYPRINT
Elliott Hughesd8845d72015-10-19 18:07:04 -07001009/* YYTOKNUM[NUM] -- (External) token number corresponding to the
1010 (internal) symbol number NUM (which must be that of a token). */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001011static const yytype_uint16 yytoknum[] =
1012{
1013 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1014 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1015 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1016 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1017 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1018 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1019 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1020 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1021 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1022 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1023 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1024 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
Elliott Hughesd8845d72015-10-19 18:07:04 -07001025 375, 33, 124, 38, 43, 45, 42, 47, 376, 41,
1026 40, 62, 61, 60, 91, 93, 58, 37, 94
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001027};
1028# endif
1029
Elliott Hughesd8845d72015-10-19 18:07:04 -07001030#define YYPACT_NINF -216
1031
1032#define yypact_value_is_default(Yystate) \
1033 (!!((Yystate) == (-216)))
1034
1035#define YYTABLE_NINF -42
1036
1037#define yytable_value_is_error(Yytable_value) \
1038 0
1039
1040 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1041 STATE-NUM. */
1042static const yytype_int16 yypact[] =
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001043{
Elliott Hughesd8845d72015-10-19 18:07:04 -07001044 -216, 24, 257, -216, 0, 12, 17, -216, -216, -216,
1045 -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
1046 -216, -216, -216, -216, -216, -216, -216, -216, -216, 16,
1047 25, 29, 72, -18, 55, -216, -216, -216, -216, -216,
1048 -216, -25, -25, -216, -25, -25, -216, -216, -216, -216,
1049 -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
1050 -216, -24, -216, -216, -216, -216, -216, -216, -216, -216,
1051 -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
1052 -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
1053 604, -216, -30, 489, 489, -216, 125, -216, 734, 3,
1054 -216, -216, -216, 183, -216, -216, -216, -216, -5, -216,
1055 39, -216, -216, -54, -216, -216, -216, -216, -216, -216,
1056 -216, -216, -216, -25, -216, -216, -216, -216, -216, -216,
1057 604, -16, -108, -216, -216, 373, 373, -216, -103, -10,
1058 2, -216, -216, -7, 11, -216, -216, -216, 125, 125,
1059 -216, -3, 21, -216, -216, -216, -216, -216, -216, -216,
1060 -216, -216, -12, 77, -9, -216, -216, -216, -216, -216,
1061 -216, 78, -216, -216, -216, 604, -216, -216, -216, 604,
1062 604, 604, 604, 604, 604, 604, 604, -216, -216, -216,
1063 604, 604, 604, 604, -216, 111, 113, 114, -216, -216,
1064 -216, 115, 124, 126, -216, -216, -216, -216, -216, -216,
1065 -216, 131, 2, 575, -216, 373, 373, -216, 10, -216,
1066 -216, -216, -216, -216, 112, 137, 138, -216, -216, 47,
1067 -30, 2, 173, 176, 178, 186, -216, -216, 143, -216,
1068 -216, -216, -216, -216, -216, 127, -64, -64, 580, 598,
1069 -104, -104, -108, -108, 575, 575, 575, 575, -216, -98,
1070 -216, -216, -216, -47, -216, -216, -216, -49, -216, -216,
1071 -216, -216, 125, 125, -216, -216, -216, -216, -1, -216,
1072 156, -216, 111, -216, 115, -216, -216, -216, -216, -216,
1073 59, -216, -216, -216
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001074};
1075
Elliott Hughesd8845d72015-10-19 18:07:04 -07001076 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1077 Performed when YYTABLE does not specify something else to do. Zero
1078 means the default is an error. */
1079static const yytype_uint8 yydefact[] =
1080{
1081 4, 0, 51, 1, 0, 0, 0, 71, 72, 70,
1082 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1083 83, 84, 85, 86, 88, 87, 178, 113, 114, 0,
1084 0, 0, 0, 0, 0, 69, 172, 89, 90, 91,
1085 92, 116, 118, 119, 121, 123, 93, 94, 103, 95,
1086 96, 97, 98, 99, 100, 102, 101, 104, 105, 106,
1087 180, 142, 181, 182, 185, 186, 183, 184, 187, 188,
1088 189, 190, 191, 192, 107, 200, 201, 202, 203, 204,
1089 205, 206, 207, 208, 209, 210, 211, 212, 213, 24,
1090 0, 25, 2, 51, 51, 5, 0, 31, 0, 50,
1091 44, 124, 126, 0, 157, 156, 45, 46, 0, 48,
1092 0, 110, 111, 0, 127, 128, 129, 130, 147, 148,
1093 131, 149, 132, 0, 115, 117, 120, 122, 144, 143,
1094 0, 0, 170, 11, 10, 51, 51, 32, 0, 157,
1095 156, 15, 21, 18, 20, 22, 39, 12, 0, 0,
1096 13, 53, 52, 64, 68, 65, 66, 67, 36, 37,
1097 108, 109, 0, 0, 0, 58, 59, 60, 61, 62,
1098 63, 34, 35, 38, 125, 0, 151, 153, 155, 0,
1099 0, 0, 0, 0, 0, 0, 0, 150, 152, 154,
1100 0, 0, 0, 0, 197, 0, 0, 0, 47, 193,
1101 218, 0, 0, 0, 49, 214, 174, 173, 176, 177,
1102 175, 0, 0, 0, 7, 51, 51, 6, 156, 9,
1103 8, 40, 171, 179, 0, 0, 0, 23, 26, 30,
1104 0, 29, 0, 0, 0, 0, 137, 138, 134, 141,
1105 135, 145, 146, 136, 33, 0, 168, 169, 166, 165,
1106 160, 161, 162, 163, 164, 167, 42, 43, 198, 0,
1107 194, 195, 219, 0, 215, 216, 112, 156, 17, 16,
1108 19, 14, 0, 0, 55, 57, 54, 56, 0, 158,
1109 0, 196, 0, 217, 0, 27, 28, 139, 140, 133,
1110 0, 199, 220, 159
1111};
1112
1113 /* YYPGOTO[NTERM-NUM]. */
1114static const yytype_int16 yypgoto[] =
1115{
1116 -216, -216, -216, 193, -34, -215, -90, -135, 7, -2,
1117 -216, -216, -80, -216, -216, -216, -216, 26, -216, 9,
1118 -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
1119 -43, 5, -26, -92, -216, -37, -216, -216, -216, -216,
1120 -175, -216, -216, -216, -216, -174, -216
1121};
1122
1123 /* YYDEFGOTO[NTERM-NUM]. */
1124static const yytype_int16 yydefgoto[] =
1125{
1126 -1, 1, 2, 138, 135, 136, 227, 147, 148, 130,
1127 229, 230, 95, 96, 97, 98, 171, 172, 173, 131,
1128 100, 101, 174, 238, 289, 240, 102, 243, 120, 122,
1129 192, 193, 103, 104, 211, 105, 106, 107, 108, 198,
1130 199, 259, 109, 110, 204, 205, 263
1131};
1132
1133 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1134 positive, shift that token. If negative, reduce the rule whose
1135 number is the opposite. If YYTABLE_NINF, syntax error. */
1136static const yytype_int16 yytable[] =
1137{
1138 94, 224, 139, -41, 124, 125, 146, 126, 127, 93,
1139 -13, 99, 26, 137, 228, 273, 133, 134, 128, 118,
1140 258, 133, 185, 186, 3, 236, 221, 262, 241, 190,
1141 191, 281, 194, 190, 191, 129, 287, 111, 139, 123,
1142 123, 119, 123, 123, 282, 214, 219, 237, 284, 112,
1143 242, 176, 177, 178, 113, 217, 220, 140, 288, 150,
1144 183, 184, 185, 186, 132, 196, 116, 202, 206, 207,
1145 -29, -29, 133, 190, 191, 114, 200, 208, 209, 210,
1146 223, 228, 283, 153, 115, 155, 212, 156, 157, 133,
1147 134, 94, 94, 140, 149, 176, 177, 178, 218, 218,
1148 93, 93, 99, 99, 213, 91, 195, 291, 201, 117,
1149 292, 150, 231, 197, 121, 203, 232, 233, 175, 222,
1150 225, 123, -41, -41, 139, 91, 187, 188, 189, -13,
1151 -13, 223, -41, 216, 216, 137, 239, 175, 226, -13,
1152 234, 235, 215, 215, 99, 99, 149, 123, 194, 245,
1153 260, 261, 200, 246, 247, 248, 249, 250, 251, 252,
1154 253, 264, 26, 265, 254, 255, 256, 257, 266, 91,
1155 187, 188, 189, 268, 269, 270, 271, 274, 218, 267,
1156 275, 276, 285, 286, 141, 142, 143, 144, 145, 277,
1157 278, 179, 180, 290, 293, 92, 272, 244, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1159 0, 0, 0, 216, 94, 0, 0, 0, 0, 0,
1160 0, 0, 215, 215, 99, 99, 0, 0, 0, 0,
1161 0, 0, 0, 0, 0, 150, 150, 0, 0, 176,
1162 177, 178, 0, 0, 0, 0, 89, 179, 180, 181,
1163 182, 183, 184, 185, 186, 91, 0, -3, 0, 0,
1164 0, 0, 279, 280, 190, 191, 0, 0, 4, 5,
1165 149, 149, 6, 7, 8, 9, 10, 11, 12, 13,
1166 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1167 24, 25, 0, 0, 26, 27, 28, 29, 30, 31,
1168 32, 33, 34, 0, 0, 181, 182, 183, 184, 185,
1169 186, 0, 35, 0, 187, 188, 189, 0, 0, 0,
1170 190, 191, 0, 36, 37, 38, 39, 40, 41, 42,
1171 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1172 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1173 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1174 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1175 83, 84, 85, 86, 87, 88, 0, 0, 89, 0,
1176 0, 0, 90, 0, 4, 5, 0, 91, 6, 7,
1177 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1178 18, 19, 20, 21, 22, 23, 24, 25, 0, 0,
1179 26, 27, 28, 29, 30, 31, 32, 33, 34, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0, 35, 0,
1181 0, 0, 141, 142, 143, 144, 145, 0, 0, 36,
1182 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1183 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1184 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1185 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1186 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1187 87, 88, 0, 0, 89, 0, 0, 0, 90, 0,
1188 4, 5, 0, 91, 6, 7, 8, 9, 10, 11,
1189 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1190 22, 23, 24, 25, 0, 0, 26, 27, 28, 29,
1191 30, 31, 32, 33, 34, 0, 0, 0, 0, 0,
1192 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 36, 37, 38, 39, 40,
1194 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1195 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1196 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1197 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1198 81, 82, 83, 84, 85, 86, 87, 88, 0, 0,
1199 89, 0, 0, 0, 90, 0, 0, 0, 0, 91,
1200 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1201 17, 18, 19, 20, 21, 22, 23, 24, 25, 179,
1202 180, 26, 0, 0, 179, 180, 0, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,
1204 0, 0, 179, 180, 0, 0, 0, 0, 0, 0,
1205 36, 37, 38, 39, 40, 0, 0, 0, 0, 0,
1206 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1207 56, 57, 58, 59, 0, 0, 0, 181, 182, 183,
1208 184, 185, 186, 182, 183, 184, 185, 186, 74, 0,
1209 0, 0, 190, 191, 0, 0, 0, 190, 191, 0,
1210 0, 0, 183, 184, 185, 186, 0, 0, 0, 90,
1211 0, 0, 0, 0, 91, 190, 191, 151, 152, 153,
1212 154, 155, 0, 156, 157, 0, 0, 158, 159, 0,
1213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1214 0, 0, 0, 0, 0, 0, 0, 0, 0, 160,
1215 161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1216 162, 163, 164, 165, 166, 167, 168, 169, 170
1217};
1218
1219static const yytype_int16 yycheck[] =
1220{
1221 2, 8, 94, 0, 41, 42, 96, 44, 45, 2,
1222 0, 2, 37, 93, 149, 230, 119, 120, 42, 37,
1223 195, 119, 126, 127, 0, 37, 129, 201, 37, 137,
1224 138, 129, 37, 137, 138, 59, 37, 37, 130, 41,
1225 42, 59, 44, 45, 259, 135, 136, 59, 263, 37,
1226 59, 56, 57, 58, 37, 135, 136, 94, 59, 96,
1227 124, 125, 126, 127, 90, 108, 37, 110, 122, 123,
1228 119, 120, 119, 137, 138, 59, 37, 131, 132, 133,
1229 129, 216, 129, 5, 59, 7, 123, 9, 10, 119,
1230 120, 93, 94, 130, 96, 56, 57, 58, 135, 136,
1231 93, 94, 93, 94, 130, 130, 108, 282, 110, 37,
1232 284, 148, 149, 108, 59, 110, 119, 120, 134, 129,
1233 127, 123, 119, 120, 216, 130, 131, 132, 133, 119,
1234 120, 129, 129, 135, 136, 215, 59, 134, 127, 129,
1235 119, 120, 135, 136, 135, 136, 148, 149, 37, 175,
1236 37, 37, 37, 179, 180, 181, 182, 183, 184, 185,
1237 186, 37, 37, 37, 190, 191, 192, 193, 37, 130,
1238 131, 132, 133, 61, 37, 37, 129, 4, 215, 216,
1239 4, 3, 272, 273, 59, 60, 61, 62, 63, 3,
1240 47, 64, 65, 37, 135, 2, 230, 171, -1, -1,
1241 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1242 -1, -1, -1, 215, 216, -1, -1, -1, -1, -1,
1243 -1, -1, 215, 216, 215, 216, -1, -1, -1, -1,
1244 -1, -1, -1, -1, -1, 272, 273, -1, -1, 56,
1245 57, 58, -1, -1, -1, -1, 121, 64, 65, 122,
1246 123, 124, 125, 126, 127, 130, -1, 0, -1, -1,
1247 -1, -1, 135, 136, 137, 138, -1, -1, 11, 12,
1248 272, 273, 15, 16, 17, 18, 19, 20, 21, 22,
1249 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1250 33, 34, -1, -1, 37, 38, 39, 40, 41, 42,
1251 43, 44, 45, -1, -1, 122, 123, 124, 125, 126,
1252 127, -1, 55, -1, 131, 132, 133, -1, -1, -1,
1253 137, 138, -1, 66, 67, 68, 69, 70, 71, 72,
1254 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1255 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1256 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1257 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1258 113, 114, 115, 116, 117, 118, -1, -1, 121, -1,
1259 -1, -1, 125, -1, 11, 12, -1, 130, 15, 16,
1260 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1261 27, 28, 29, 30, 31, 32, 33, 34, -1, -1,
1262 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
1263 -1, -1, -1, -1, -1, -1, -1, -1, 55, -1,
1264 -1, -1, 59, 60, 61, 62, 63, -1, -1, 66,
1265 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1266 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1267 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1268 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1269 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1270 117, 118, -1, -1, 121, -1, -1, -1, 125, -1,
1271 11, 12, -1, 130, 15, 16, 17, 18, 19, 20,
1272 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1273 31, 32, 33, 34, -1, -1, 37, 38, 39, 40,
1274 41, 42, 43, 44, 45, -1, -1, -1, -1, -1,
1275 -1, -1, -1, -1, 55, -1, -1, -1, -1, -1,
1276 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1277 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1278 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1279 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1280 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1281 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
1282 121, -1, -1, -1, 125, -1, -1, -1, -1, 130,
1283 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1284 26, 27, 28, 29, 30, 31, 32, 33, 34, 64,
1285 65, 37, -1, -1, 64, 65, -1, -1, -1, -1,
1286 -1, -1, -1, -1, -1, -1, -1, -1, -1, 55,
1287 -1, -1, 64, 65, -1, -1, -1, -1, -1, -1,
1288 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1289 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1290 86, 87, 88, 89, -1, -1, -1, 122, 123, 124,
1291 125, 126, 127, 123, 124, 125, 126, 127, 104, -1,
1292 -1, -1, 137, 138, -1, -1, -1, 137, 138, -1,
1293 -1, -1, 124, 125, 126, 127, -1, -1, -1, 125,
1294 -1, -1, -1, -1, 130, 137, 138, 3, 4, 5,
1295 6, 7, -1, 9, 10, -1, -1, 13, 14, -1,
1296 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1297 -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
1298 36, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1299 46, 47, 48, 49, 50, 51, 52, 53, 54
1300};
1301
1302 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1303 symbol of state STATE-NUM. */
1304static const yytype_uint8 yystos[] =
1305{
1306 0, 140, 141, 0, 11, 12, 15, 16, 17, 18,
1307 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1308 29, 30, 31, 32, 33, 34, 37, 38, 39, 40,
1309 41, 42, 43, 44, 45, 55, 66, 67, 68, 69,
1310 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1311 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1312 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1313 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1314 110, 111, 112, 113, 114, 115, 116, 117, 118, 121,
1315 125, 130, 142, 147, 148, 151, 152, 153, 154, 158,
1316 159, 160, 165, 171, 172, 174, 175, 176, 177, 181,
1317 182, 37, 37, 37, 59, 59, 37, 37, 37, 59,
1318 167, 59, 168, 148, 174, 174, 174, 174, 42, 59,
1319 148, 158, 171, 119, 120, 143, 144, 151, 142, 172,
1320 174, 59, 60, 61, 62, 63, 145, 146, 147, 148,
1321 174, 3, 4, 5, 6, 7, 9, 10, 13, 14,
1322 35, 36, 46, 47, 48, 49, 50, 51, 52, 53,
1323 54, 155, 156, 157, 161, 134, 56, 57, 58, 64,
1324 65, 122, 123, 124, 125, 126, 127, 131, 132, 133,
1325 137, 138, 169, 170, 37, 148, 169, 170, 178, 179,
1326 37, 148, 169, 170, 183, 184, 122, 123, 131, 132,
1327 133, 173, 174, 171, 145, 147, 148, 151, 174, 145,
1328 151, 129, 129, 129, 8, 127, 127, 145, 146, 149,
1329 150, 174, 119, 120, 119, 120, 37, 59, 162, 59,
1330 164, 37, 59, 166, 156, 171, 171, 171, 171, 171,
1331 171, 171, 171, 171, 171, 171, 171, 171, 179, 180,
1332 37, 37, 184, 185, 37, 37, 37, 174, 61, 37,
1333 37, 129, 143, 144, 4, 4, 3, 3, 47, 135,
1334 136, 129, 144, 129, 144, 145, 145, 37, 59, 163,
1335 37, 179, 184, 135
1336};
1337
1338 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1339static const yytype_uint8 yyr1[] =
1340{
1341 0, 139, 140, 140, 141, 142, 142, 142, 142, 142,
1342 143, 144, 145, 145, 145, 146, 146, 146, 146, 146,
1343 146, 146, 146, 146, 147, 148, 149, 149, 149, 150,
1344 150, 151, 151, 152, 152, 152, 152, 152, 152, 153,
1345 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
1346 154, 154, 155, 155, 155, 155, 155, 155, 155, 155,
1347 155, 155, 155, 155, 156, 156, 156, 156, 157, 158,
1348 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1349 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1350 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1351 158, 158, 158, 158, 158, 158, 158, 158, 159, 159,
1352 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
1353 159, 159, 159, 159, 159, 159, 159, 160, 160, 160,
1354 160, 160, 160, 161, 161, 161, 161, 162, 162, 163,
1355 163, 164, 165, 165, 165, 166, 166, 167, 167, 168,
1356 169, 169, 169, 170, 170, 170, 171, 171, 172, 172,
1357 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
1358 172, 172, 172, 173, 173, 173, 173, 173, 174, 174,
1359 175, 175, 175, 175, 175, 175, 175, 176, 176, 176,
1360 176, 177, 177, 178, 178, 178, 178, 179, 180, 180,
1361 181, 181, 181, 181, 181, 181, 182, 182, 182, 182,
1362 182, 182, 182, 182, 183, 183, 183, 183, 184, 185,
1363 185
1364};
1365
1366 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001367static const yytype_uint8 yyr2[] =
1368{
1369 0, 2, 2, 1, 0, 1, 3, 3, 3, 3,
1370 1, 1, 1, 1, 3, 1, 3, 3, 1, 3,
1371 1, 1, 1, 2, 1, 1, 1, 3, 3, 1,
1372 1, 1, 2, 3, 2, 2, 2, 2, 2, 2,
1373 3, 1, 3, 3, 1, 1, 1, 2, 1, 2,
1374 1, 0, 1, 1, 3, 3, 3, 3, 1, 1,
1375 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1376 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1377 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1378 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1379 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
1380 2, 2, 4, 1, 1, 2, 1, 2, 1, 1,
Elliott Hughesd8845d72015-10-19 18:07:04 -07001381 2, 1, 2, 1, 1, 2, 1, 2, 2, 2,
1382 2, 2, 2, 4, 2, 2, 2, 1, 1, 1,
1383 1, 1, 1, 2, 2, 1, 1, 1, 1, 1,
1384 1, 1, 1, 1, 1, 1, 1, 1, 4, 6,
1385 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1386 2, 3, 1, 1, 1, 1, 1, 1, 1, 3,
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001387 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Elliott Hughesd8845d72015-10-19 18:07:04 -07001388 1, 1, 1, 1, 2, 2, 3, 1, 1, 3,
1389 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1390 1, 1, 1, 1, 1, 2, 2, 3, 1, 1,
1391 3
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001392};
1393
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001394
Elliott Hughesd8845d72015-10-19 18:07:04 -07001395#define yyerrok (yyerrstatus = 0)
1396#define yyclearin (yychar = YYEMPTY)
1397#define YYEMPTY (-2)
1398#define YYEOF 0
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001399
Elliott Hughesd8845d72015-10-19 18:07:04 -07001400#define YYACCEPT goto yyacceptlab
1401#define YYABORT goto yyabortlab
1402#define YYERROR goto yyerrorlab
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001403
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001404
1405#define YYRECOVERING() (!!yyerrstatus)
1406
Elliott Hughesd8845d72015-10-19 18:07:04 -07001407#define YYBACKUP(Token, Value) \
1408do \
1409 if (yychar == YYEMPTY) \
1410 { \
1411 yychar = (Token); \
1412 yylval = (Value); \
1413 YYPOPSTACK (yylen); \
1414 yystate = *yyssp; \
1415 goto yybackup; \
1416 } \
1417 else \
1418 { \
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001419 yyerror (YY_("syntax error: cannot back up")); \
Elliott Hughesd8845d72015-10-19 18:07:04 -07001420 YYERROR; \
1421 } \
1422while (0)
1423
1424/* Error token number */
1425#define YYTERROR 1
1426#define YYERRCODE 256
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001427
1428
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001429
1430/* Enable debugging if requested. */
1431#if YYDEBUG
1432
1433# ifndef YYFPRINTF
1434# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1435# define YYFPRINTF fprintf
1436# endif
1437
Elliott Hughesd8845d72015-10-19 18:07:04 -07001438# define YYDPRINTF(Args) \
1439do { \
1440 if (yydebug) \
1441 YYFPRINTF Args; \
1442} while (0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001443
Elliott Hughesd8845d72015-10-19 18:07:04 -07001444/* This macro is provided for backward compatibility. */
1445#ifndef YY_LOCATION_PRINT
1446# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1447#endif
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001448
1449
Elliott Hughesd8845d72015-10-19 18:07:04 -07001450# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1451do { \
1452 if (yydebug) \
1453 { \
1454 YYFPRINTF (stderr, "%s ", Title); \
1455 yy_symbol_print (stderr, \
1456 Type, Value); \
1457 YYFPRINTF (stderr, "\n"); \
1458 } \
1459} while (0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001460
Elliott Hughesd8845d72015-10-19 18:07:04 -07001461
1462/*----------------------------------------.
1463| Print this symbol's value on YYOUTPUT. |
1464`----------------------------------------*/
1465
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001466static void
1467yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001468{
Elliott Hughesd8845d72015-10-19 18:07:04 -07001469 FILE *yyo = yyoutput;
1470 YYUSE (yyo);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001471 if (!yyvaluep)
1472 return;
1473# ifdef YYPRINT
1474 if (yytype < YYNTOKENS)
1475 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001476# endif
Elliott Hughesd8845d72015-10-19 18:07:04 -07001477 YYUSE (yytype);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001478}
1479
1480
1481/*--------------------------------.
1482| Print this symbol on YYOUTPUT. |
1483`--------------------------------*/
1484
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001485static void
1486yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001487{
Elliott Hughesd8845d72015-10-19 18:07:04 -07001488 YYFPRINTF (yyoutput, "%s %s (",
1489 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001490
1491 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1492 YYFPRINTF (yyoutput, ")");
1493}
1494
1495/*------------------------------------------------------------------.
1496| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1497| TOP (included). |
1498`------------------------------------------------------------------*/
1499
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001500static void
1501yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001502{
1503 YYFPRINTF (stderr, "Stack now");
1504 for (; yybottom <= yytop; yybottom++)
1505 {
1506 int yybot = *yybottom;
1507 YYFPRINTF (stderr, " %d", yybot);
1508 }
1509 YYFPRINTF (stderr, "\n");
1510}
1511
Elliott Hughesd8845d72015-10-19 18:07:04 -07001512# define YY_STACK_PRINT(Bottom, Top) \
1513do { \
1514 if (yydebug) \
1515 yy_stack_print ((Bottom), (Top)); \
1516} while (0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001517
1518
1519/*------------------------------------------------.
1520| Report that the YYRULE is going to be reduced. |
1521`------------------------------------------------*/
1522
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001523static void
Elliott Hughesd8845d72015-10-19 18:07:04 -07001524yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001525{
Elliott Hughesd8845d72015-10-19 18:07:04 -07001526 unsigned long int yylno = yyrline[yyrule];
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001527 int yynrhs = yyr2[yyrule];
1528 int yyi;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001529 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
Elliott Hughesd8845d72015-10-19 18:07:04 -07001530 yyrule - 1, yylno);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001531 /* The symbols being reduced. */
1532 for (yyi = 0; yyi < yynrhs; yyi++)
1533 {
1534 YYFPRINTF (stderr, " $%d = ", yyi + 1);
Elliott Hughesd8845d72015-10-19 18:07:04 -07001535 yy_symbol_print (stderr,
1536 yystos[yyssp[yyi + 1 - yynrhs]],
1537 &(yyvsp[(yyi + 1) - (yynrhs)])
1538 );
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001539 YYFPRINTF (stderr, "\n");
1540 }
1541}
1542
Elliott Hughesd8845d72015-10-19 18:07:04 -07001543# define YY_REDUCE_PRINT(Rule) \
1544do { \
1545 if (yydebug) \
1546 yy_reduce_print (yyssp, yyvsp, Rule); \
1547} while (0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001548
1549/* Nonzero means print parse trace. It is left uninitialized so that
1550 multiple parsers can coexist. */
1551int yydebug;
1552#else /* !YYDEBUG */
1553# define YYDPRINTF(Args)
1554# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1555# define YY_STACK_PRINT(Bottom, Top)
1556# define YY_REDUCE_PRINT(Rule)
1557#endif /* !YYDEBUG */
1558
1559
1560/* YYINITDEPTH -- initial size of the parser's stacks. */
Elliott Hughesd8845d72015-10-19 18:07:04 -07001561#ifndef YYINITDEPTH
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001562# define YYINITDEPTH 200
1563#endif
1564
1565/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1566 if the built-in stack extension method is used).
1567
1568 Do not make this value too large; the results are undefined if
1569 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1570 evaluated with infinite-precision integer arithmetic. */
1571
1572#ifndef YYMAXDEPTH
1573# define YYMAXDEPTH 10000
1574#endif
1575
1576
1577#if YYERROR_VERBOSE
1578
1579# ifndef yystrlen
1580# if defined __GLIBC__ && defined _STRING_H
1581# define yystrlen strlen
1582# else
1583/* Return the length of YYSTR. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001584static YYSIZE_T
1585yystrlen (const char *yystr)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001586{
1587 YYSIZE_T yylen;
1588 for (yylen = 0; yystr[yylen]; yylen++)
1589 continue;
1590 return yylen;
1591}
1592# endif
1593# endif
1594
1595# ifndef yystpcpy
1596# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1597# define yystpcpy stpcpy
1598# else
1599/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1600 YYDEST. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001601static char *
1602yystpcpy (char *yydest, const char *yysrc)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001603{
1604 char *yyd = yydest;
1605 const char *yys = yysrc;
1606
1607 while ((*yyd++ = *yys++) != '\0')
1608 continue;
1609
1610 return yyd - 1;
1611}
1612# endif
1613# endif
1614
1615# ifndef yytnamerr
1616/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1617 quotes and backslashes, so that it's suitable for yyerror. The
1618 heuristic is that double-quoting is unnecessary unless the string
1619 contains an apostrophe, a comma, or backslash (other than
1620 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1621 null, do not copy; instead, return the length of what the result
1622 would have been. */
1623static YYSIZE_T
1624yytnamerr (char *yyres, const char *yystr)
1625{
1626 if (*yystr == '"')
1627 {
1628 YYSIZE_T yyn = 0;
1629 char const *yyp = yystr;
1630
1631 for (;;)
Elliott Hughesd8845d72015-10-19 18:07:04 -07001632 switch (*++yyp)
1633 {
1634 case '\'':
1635 case ',':
1636 goto do_not_strip_quotes;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001637
Elliott Hughesd8845d72015-10-19 18:07:04 -07001638 case '\\':
1639 if (*++yyp != '\\')
1640 goto do_not_strip_quotes;
1641 /* Fall through. */
1642 default:
1643 if (yyres)
1644 yyres[yyn] = *yyp;
1645 yyn++;
1646 break;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001647
Elliott Hughesd8845d72015-10-19 18:07:04 -07001648 case '"':
1649 if (yyres)
1650 yyres[yyn] = '\0';
1651 return yyn;
1652 }
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001653 do_not_strip_quotes: ;
1654 }
1655
1656 if (! yyres)
1657 return yystrlen (yystr);
1658
1659 return yystpcpy (yyres, yystr) - yyres;
1660}
1661# endif
1662
1663/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1664 about the unexpected token YYTOKEN for the state stack whose top is
1665 YYSSP.
1666
1667 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1668 not large enough to hold the message. In that case, also set
1669 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1670 required number of bytes is too large to store. */
1671static int
1672yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1673 yytype_int16 *yyssp, int yytoken)
1674{
Elliott Hughesd8845d72015-10-19 18:07:04 -07001675 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001676 YYSIZE_T yysize = yysize0;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001677 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1678 /* Internationalized format string. */
Elliott Hughesd8845d72015-10-19 18:07:04 -07001679 const char *yyformat = YY_NULLPTR;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001680 /* Arguments of yyformat. */
1681 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1682 /* Number of reported tokens (one for the "unexpected", one per
1683 "expected"). */
1684 int yycount = 0;
1685
1686 /* There are many possibilities here to consider:
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001687 - If this state is a consistent state with a default action, then
1688 the only way this function was invoked is if the default action
1689 is an error action. In that case, don't check for expected
1690 tokens because there are none.
1691 - The only way there can be no lookahead present (in yychar) is if
1692 this state is a consistent state with a default action. Thus,
1693 detecting the absence of a lookahead is sufficient to determine
1694 that there is no unexpected or expected token to report. In that
1695 case, just report a simple "syntax error".
1696 - Don't assume there isn't a lookahead just because this state is a
1697 consistent state with a default action. There might have been a
1698 previous inconsistent state, consistent state with a non-default
1699 action, or user semantic action that manipulated yychar.
1700 - Of course, the expected token list depends on states to have
1701 correct lookahead information, and it depends on the parser not
1702 to perform extra reductions after fetching a lookahead from the
1703 scanner and before detecting a syntax error. Thus, state merging
1704 (from LALR or IELR) and default reductions corrupt the expected
1705 token list. However, the list is correct for canonical LR with
1706 one exception: it will still contain any token that will not be
1707 accepted due to an error action in a later state.
1708 */
1709 if (yytoken != YYEMPTY)
1710 {
1711 int yyn = yypact[*yyssp];
1712 yyarg[yycount++] = yytname[yytoken];
1713 if (!yypact_value_is_default (yyn))
1714 {
1715 /* Start YYX at -YYN if negative to avoid negative indexes in
1716 YYCHECK. In other words, skip the first -YYN actions for
1717 this state because they are default actions. */
1718 int yyxbegin = yyn < 0 ? -yyn : 0;
1719 /* Stay within bounds of both yycheck and yytname. */
1720 int yychecklim = YYLAST - yyn + 1;
1721 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1722 int yyx;
1723
1724 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1725 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1726 && !yytable_value_is_error (yytable[yyx + yyn]))
1727 {
1728 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1729 {
1730 yycount = 1;
1731 yysize = yysize0;
1732 break;
1733 }
1734 yyarg[yycount++] = yytname[yyx];
Elliott Hughesd8845d72015-10-19 18:07:04 -07001735 {
1736 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1737 if (! (yysize <= yysize1
1738 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1739 return 2;
1740 yysize = yysize1;
1741 }
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001742 }
1743 }
1744 }
1745
1746 switch (yycount)
1747 {
1748# define YYCASE_(N, S) \
1749 case N: \
1750 yyformat = S; \
1751 break
1752 YYCASE_(0, YY_("syntax error"));
1753 YYCASE_(1, YY_("syntax error, unexpected %s"));
1754 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1755 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1756 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1757 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1758# undef YYCASE_
1759 }
1760
Elliott Hughesd8845d72015-10-19 18:07:04 -07001761 {
1762 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1763 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1764 return 2;
1765 yysize = yysize1;
1766 }
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001767
1768 if (*yymsg_alloc < yysize)
1769 {
1770 *yymsg_alloc = 2 * yysize;
1771 if (! (yysize <= *yymsg_alloc
1772 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1773 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1774 return 1;
1775 }
1776
1777 /* Avoid sprintf, as that infringes on the user's name space.
1778 Don't have undefined behavior even if the translation
1779 produced a string with the wrong number of "%s"s. */
1780 {
1781 char *yyp = *yymsg;
1782 int yyi = 0;
1783 while ((*yyp = *yyformat) != '\0')
1784 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1785 {
1786 yyp += yytnamerr (yyp, yyarg[yyi++]);
1787 yyformat += 2;
1788 }
1789 else
1790 {
1791 yyp++;
1792 yyformat++;
1793 }
1794 }
1795 return 0;
1796}
1797#endif /* YYERROR_VERBOSE */
1798
1799/*-----------------------------------------------.
1800| Release the memory associated to this symbol. |
1801`-----------------------------------------------*/
1802
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001803static void
1804yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001805{
1806 YYUSE (yyvaluep);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001807 if (!yymsg)
1808 yymsg = "Deleting";
1809 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1810
Elliott Hughesd8845d72015-10-19 18:07:04 -07001811 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1812 YYUSE (yytype);
1813 YY_IGNORE_MAYBE_UNINITIALIZED_END
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001814}
1815
1816
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001817
1818
1819/* The lookahead symbol. */
1820int yychar;
1821
1822/* The semantic value of the lookahead symbol. */
1823YYSTYPE yylval;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001824/* Number of syntax errors so far. */
1825int yynerrs;
1826
1827
1828/*----------.
1829| yyparse. |
1830`----------*/
1831
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001832int
1833yyparse (void)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001834{
1835 int yystate;
1836 /* Number of tokens to shift before error messages enabled. */
1837 int yyerrstatus;
1838
1839 /* The stacks and their tools:
Elliott Hughesd8845d72015-10-19 18:07:04 -07001840 'yyss': related to states.
1841 'yyvs': related to semantic values.
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001842
Elliott Hughesd8845d72015-10-19 18:07:04 -07001843 Refer to the stacks through separate pointers, to allow yyoverflow
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001844 to reallocate them elsewhere. */
1845
1846 /* The state stack. */
1847 yytype_int16 yyssa[YYINITDEPTH];
1848 yytype_int16 *yyss;
1849 yytype_int16 *yyssp;
1850
1851 /* The semantic value stack. */
1852 YYSTYPE yyvsa[YYINITDEPTH];
1853 YYSTYPE *yyvs;
1854 YYSTYPE *yyvsp;
1855
1856 YYSIZE_T yystacksize;
1857
1858 int yyn;
1859 int yyresult;
1860 /* Lookahead token as an internal (translated) token number. */
Elliott Hughesd8845d72015-10-19 18:07:04 -07001861 int yytoken = 0;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001862 /* The variables used to return semantic value and location from the
1863 action routines. */
1864 YYSTYPE yyval;
1865
1866#if YYERROR_VERBOSE
1867 /* Buffer for error messages, and its allocated size. */
1868 char yymsgbuf[128];
1869 char *yymsg = yymsgbuf;
1870 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1871#endif
1872
1873#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1874
1875 /* The number of symbols on the RHS of the reduced rule.
1876 Keep to zero when no symbol should be popped. */
1877 int yylen = 0;
1878
Elliott Hughesd8845d72015-10-19 18:07:04 -07001879 yyssp = yyss = yyssa;
1880 yyvsp = yyvs = yyvsa;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001881 yystacksize = YYINITDEPTH;
1882
1883 YYDPRINTF ((stderr, "Starting parse\n"));
1884
1885 yystate = 0;
1886 yyerrstatus = 0;
1887 yynerrs = 0;
1888 yychar = YYEMPTY; /* Cause a token to be read. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001889 goto yysetstate;
1890
1891/*------------------------------------------------------------.
1892| yynewstate -- Push a new state, which is found in yystate. |
1893`------------------------------------------------------------*/
1894 yynewstate:
1895 /* In all cases, when you get here, the value and location stacks
1896 have just been pushed. So pushing a state here evens the stacks. */
1897 yyssp++;
1898
1899 yysetstate:
1900 *yyssp = yystate;
1901
1902 if (yyss + yystacksize - 1 <= yyssp)
1903 {
1904 /* Get the current used size of the three stacks, in elements. */
1905 YYSIZE_T yysize = yyssp - yyss + 1;
1906
1907#ifdef yyoverflow
1908 {
Elliott Hughesd8845d72015-10-19 18:07:04 -07001909 /* Give user a chance to reallocate the stack. Use copies of
1910 these so that the &'s don't force the real ones into
1911 memory. */
1912 YYSTYPE *yyvs1 = yyvs;
1913 yytype_int16 *yyss1 = yyss;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001914
Elliott Hughesd8845d72015-10-19 18:07:04 -07001915 /* Each stack pointer address is followed by the size of the
1916 data in use in that stack, in bytes. This used to be a
1917 conditional around just the two extra args, but that might
1918 be undefined if yyoverflow is a macro. */
1919 yyoverflow (YY_("memory exhausted"),
1920 &yyss1, yysize * sizeof (*yyssp),
1921 &yyvs1, yysize * sizeof (*yyvsp),
1922 &yystacksize);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001923
Elliott Hughesd8845d72015-10-19 18:07:04 -07001924 yyss = yyss1;
1925 yyvs = yyvs1;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001926 }
1927#else /* no yyoverflow */
1928# ifndef YYSTACK_RELOCATE
1929 goto yyexhaustedlab;
1930# else
1931 /* Extend the stack our own way. */
1932 if (YYMAXDEPTH <= yystacksize)
Elliott Hughesd8845d72015-10-19 18:07:04 -07001933 goto yyexhaustedlab;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001934 yystacksize *= 2;
1935 if (YYMAXDEPTH < yystacksize)
Elliott Hughesd8845d72015-10-19 18:07:04 -07001936 yystacksize = YYMAXDEPTH;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001937
1938 {
Elliott Hughesd8845d72015-10-19 18:07:04 -07001939 yytype_int16 *yyss1 = yyss;
1940 union yyalloc *yyptr =
1941 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1942 if (! yyptr)
1943 goto yyexhaustedlab;
1944 YYSTACK_RELOCATE (yyss_alloc, yyss);
1945 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001946# undef YYSTACK_RELOCATE
Elliott Hughesd8845d72015-10-19 18:07:04 -07001947 if (yyss1 != yyssa)
1948 YYSTACK_FREE (yyss1);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001949 }
1950# endif
1951#endif /* no yyoverflow */
1952
1953 yyssp = yyss + yysize - 1;
1954 yyvsp = yyvs + yysize - 1;
1955
1956 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
Elliott Hughesd8845d72015-10-19 18:07:04 -07001957 (unsigned long int) yystacksize));
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001958
1959 if (yyss + yystacksize - 1 <= yyssp)
Elliott Hughesd8845d72015-10-19 18:07:04 -07001960 YYABORT;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001961 }
1962
1963 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1964
1965 if (yystate == YYFINAL)
1966 YYACCEPT;
1967
1968 goto yybackup;
1969
1970/*-----------.
1971| yybackup. |
1972`-----------*/
1973yybackup:
1974
1975 /* Do appropriate processing given the current state. Read a
1976 lookahead token if we need one and don't already have one. */
1977
1978 /* First try to decide what to do without reference to lookahead token. */
1979 yyn = yypact[yystate];
1980 if (yypact_value_is_default (yyn))
1981 goto yydefault;
1982
1983 /* Not known => get a lookahead token if don't already have one. */
1984
1985 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1986 if (yychar == YYEMPTY)
1987 {
1988 YYDPRINTF ((stderr, "Reading a token: "));
Elliott Hughesd8845d72015-10-19 18:07:04 -07001989 yychar = yylex ();
JP Abgrallaa5c5f32014-02-10 20:23:42 -08001990 }
1991
1992 if (yychar <= YYEOF)
1993 {
1994 yychar = yytoken = YYEOF;
1995 YYDPRINTF ((stderr, "Now at end of input.\n"));
1996 }
1997 else
1998 {
1999 yytoken = YYTRANSLATE (yychar);
2000 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2001 }
2002
2003 /* If the proper action on seeing token YYTOKEN is to reduce or to
2004 detect an error, take that action. */
2005 yyn += yytoken;
2006 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2007 goto yydefault;
2008 yyn = yytable[yyn];
2009 if (yyn <= 0)
2010 {
2011 if (yytable_value_is_error (yyn))
2012 goto yyerrlab;
2013 yyn = -yyn;
2014 goto yyreduce;
2015 }
2016
2017 /* Count tokens shifted since error; after three, turn off error
2018 status. */
2019 if (yyerrstatus)
2020 yyerrstatus--;
2021
2022 /* Shift the lookahead token. */
2023 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2024
2025 /* Discard the shifted token. */
2026 yychar = YYEMPTY;
2027
2028 yystate = yyn;
Elliott Hughesd8845d72015-10-19 18:07:04 -07002029 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002030 *++yyvsp = yylval;
Elliott Hughesd8845d72015-10-19 18:07:04 -07002031 YY_IGNORE_MAYBE_UNINITIALIZED_END
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002032
2033 goto yynewstate;
2034
2035
2036/*-----------------------------------------------------------.
2037| yydefault -- do the default action for the current state. |
2038`-----------------------------------------------------------*/
2039yydefault:
2040 yyn = yydefact[yystate];
2041 if (yyn == 0)
2042 goto yyerrlab;
2043 goto yyreduce;
2044
2045
2046/*-----------------------------.
2047| yyreduce -- Do a reduction. |
2048`-----------------------------*/
2049yyreduce:
2050 /* yyn is the number of a rule to reduce with. */
2051 yylen = yyr2[yyn];
2052
2053 /* If YYLEN is nonzero, implement the default value of the action:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002054 '$$ = $1'.
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002055
2056 Otherwise, the following line sets YYVAL to garbage.
2057 This behavior is undocumented and Bison
2058 users should not rely upon it. Assigning to YYVAL
2059 unconditionally makes the parser a bit smaller, and it avoids a
2060 GCC warning that YYVAL may be used uninitialized. */
2061 yyval = yyvsp[1-yylen];
2062
2063
2064 YY_REDUCE_PRINT (yyn);
2065 switch (yyn)
2066 {
2067 case 2:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002068#line 331 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002069 {
Elliott Hughesd8845d72015-10-19 18:07:04 -07002070 finish_parse((yyvsp[0].blk).b);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002071}
Elliott Hughesd8845d72015-10-19 18:07:04 -07002072#line 2073 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002073 break;
2074
2075 case 4:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002076#line 336 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002077 { (yyval.blk).q = qerr; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002078#line 2079 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002079 break;
2080
2081 case 6:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002082#line 339 "grammar.y" /* yacc.c:1646 */
2083 { gen_and((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2084#line 2085 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002085 break;
2086
2087 case 7:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002088#line 340 "grammar.y" /* yacc.c:1646 */
2089 { gen_and((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2090#line 2091 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002091 break;
2092
2093 case 8:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002094#line 341 "grammar.y" /* yacc.c:1646 */
2095 { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2096#line 2097 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002097 break;
2098
2099 case 9:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002100#line 342 "grammar.y" /* yacc.c:1646 */
2101 { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2102#line 2103 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002103 break;
2104
2105 case 10:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002106#line 344 "grammar.y" /* yacc.c:1646 */
2107 { (yyval.blk) = (yyvsp[-1].blk); }
2108#line 2109 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002109 break;
2110
2111 case 11:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002112#line 346 "grammar.y" /* yacc.c:1646 */
2113 { (yyval.blk) = (yyvsp[-1].blk); }
2114#line 2115 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002115 break;
2116
2117 case 13:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002118#line 349 "grammar.y" /* yacc.c:1646 */
2119 { (yyval.blk).b = gen_ncode(NULL, (bpf_u_int32)(yyvsp[0].i),
2120 (yyval.blk).q = (yyvsp[-1].blk).q); }
2121#line 2122 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002122 break;
2123
2124 case 14:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002125#line 351 "grammar.y" /* yacc.c:1646 */
2126 { (yyval.blk) = (yyvsp[-1].blk); }
2127#line 2128 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002128 break;
2129
2130 case 15:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002131#line 353 "grammar.y" /* yacc.c:1646 */
2132 { (yyval.blk).b = gen_scode((yyvsp[0].s), (yyval.blk).q = (yyvsp[-1].blk).q); }
2133#line 2134 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002134 break;
2135
2136 case 16:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002137#line 354 "grammar.y" /* yacc.c:1646 */
2138 { (yyval.blk).b = gen_mcode((yyvsp[-2].s), NULL, (yyvsp[0].i),
2139 (yyval.blk).q = (yyvsp[-3].blk).q); }
2140#line 2141 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002141 break;
2142
2143 case 17:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002144#line 356 "grammar.y" /* yacc.c:1646 */
2145 { (yyval.blk).b = gen_mcode((yyvsp[-2].s), (yyvsp[0].s), 0,
2146 (yyval.blk).q = (yyvsp[-3].blk).q); }
2147#line 2148 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002148 break;
2149
2150 case 18:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002151#line 358 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002152 {
2153 /* Decide how to parse HID based on proto */
Elliott Hughesd8845d72015-10-19 18:07:04 -07002154 (yyval.blk).q = (yyvsp[-1].blk).q;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002155 if ((yyval.blk).q.addr == Q_PORT)
2156 bpf_error("'port' modifier applied to ip host");
2157 else if ((yyval.blk).q.addr == Q_PORTRANGE)
2158 bpf_error("'portrange' modifier applied to ip host");
2159 else if ((yyval.blk).q.addr == Q_PROTO)
2160 bpf_error("'proto' modifier applied to ip host");
2161 else if ((yyval.blk).q.addr == Q_PROTOCHAIN)
2162 bpf_error("'protochain' modifier applied to ip host");
Elliott Hughesd8845d72015-10-19 18:07:04 -07002163 (yyval.blk).b = gen_ncode((yyvsp[0].s), 0, (yyval.blk).q);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002164 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002165#line 2166 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002166 break;
2167
2168 case 19:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002169#line 371 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002170 {
2171#ifdef INET6
Elliott Hughesd8845d72015-10-19 18:07:04 -07002172 (yyval.blk).b = gen_mcode6((yyvsp[-2].s), NULL, (yyvsp[0].i),
2173 (yyval.blk).q = (yyvsp[-3].blk).q);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002174#else
2175 bpf_error("'ip6addr/prefixlen' not supported "
2176 "in this configuration");
2177#endif /*INET6*/
2178 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002179#line 2180 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002180 break;
2181
2182 case 20:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002183#line 380 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002184 {
2185#ifdef INET6
Elliott Hughesd8845d72015-10-19 18:07:04 -07002186 (yyval.blk).b = gen_mcode6((yyvsp[0].s), 0, 128,
2187 (yyval.blk).q = (yyvsp[-1].blk).q);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002188#else
2189 bpf_error("'ip6addr' not supported "
2190 "in this configuration");
2191#endif /*INET6*/
2192 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002193#line 2194 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002194 break;
2195
2196 case 21:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002197#line 389 "grammar.y" /* yacc.c:1646 */
2198 {
2199 (yyval.blk).b = gen_ecode((yyvsp[0].e), (yyval.blk).q = (yyvsp[-1].blk).q);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002200 /*
2201 * $1 was allocated by "pcap_ether_aton()",
2202 * so we must free it now that we're done
2203 * with it.
2204 */
Elliott Hughesd8845d72015-10-19 18:07:04 -07002205 free((yyvsp[0].e));
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002206 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002207#line 2208 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002208 break;
2209
2210 case 22:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002211#line 398 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002212 {
Elliott Hughesd8845d72015-10-19 18:07:04 -07002213 (yyval.blk).b = gen_acode((yyvsp[0].e), (yyval.blk).q = (yyvsp[-1].blk).q);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002214 /*
2215 * $1 was allocated by "pcap_ether_aton()",
2216 * so we must free it now that we're done
2217 * with it.
2218 */
Elliott Hughesd8845d72015-10-19 18:07:04 -07002219 free((yyvsp[0].e));
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002220 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002221#line 2222 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002222 break;
2223
2224 case 23:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002225#line 407 "grammar.y" /* yacc.c:1646 */
2226 { gen_not((yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2227#line 2228 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002228 break;
2229
2230 case 24:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002231#line 409 "grammar.y" /* yacc.c:1646 */
2232 { (yyval.blk) = (yyvsp[-1].blk); }
2233#line 2234 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002234 break;
2235
2236 case 25:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002237#line 411 "grammar.y" /* yacc.c:1646 */
2238 { (yyval.blk) = (yyvsp[-1].blk); }
2239#line 2240 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002240 break;
2241
2242 case 27:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002243#line 414 "grammar.y" /* yacc.c:1646 */
2244 { gen_and((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2245#line 2246 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002246 break;
2247
2248 case 28:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002249#line 415 "grammar.y" /* yacc.c:1646 */
2250 { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2251#line 2252 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002252 break;
2253
2254 case 29:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002255#line 417 "grammar.y" /* yacc.c:1646 */
2256 { (yyval.blk).b = gen_ncode(NULL, (bpf_u_int32)(yyvsp[0].i),
2257 (yyval.blk).q = (yyvsp[-1].blk).q); }
2258#line 2259 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002259 break;
2260
2261 case 32:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002262#line 422 "grammar.y" /* yacc.c:1646 */
2263 { gen_not((yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
2264#line 2265 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002265 break;
2266
2267 case 33:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002268#line 424 "grammar.y" /* yacc.c:1646 */
2269 { QSET((yyval.blk).q, (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i)); }
2270#line 2271 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002271 break;
2272
2273 case 34:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002274#line 425 "grammar.y" /* yacc.c:1646 */
2275 { QSET((yyval.blk).q, (yyvsp[-1].i), (yyvsp[0].i), Q_DEFAULT); }
2276#line 2277 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002277 break;
2278
2279 case 35:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002280#line 426 "grammar.y" /* yacc.c:1646 */
2281 { QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, (yyvsp[0].i)); }
2282#line 2283 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002283 break;
2284
2285 case 36:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002286#line 427 "grammar.y" /* yacc.c:1646 */
2287 { QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, Q_PROTO); }
2288#line 2289 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002289 break;
2290
2291 case 37:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002292#line 428 "grammar.y" /* yacc.c:1646 */
2293 { QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, Q_PROTOCHAIN); }
2294#line 2295 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002295 break;
2296
2297 case 38:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002298#line 429 "grammar.y" /* yacc.c:1646 */
2299 { QSET((yyval.blk).q, (yyvsp[-1].i), Q_DEFAULT, (yyvsp[0].i)); }
2300#line 2301 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002301 break;
2302
2303 case 39:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002304#line 431 "grammar.y" /* yacc.c:1646 */
2305 { (yyval.blk) = (yyvsp[0].blk); }
2306#line 2307 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002307 break;
2308
2309 case 40:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002310#line 432 "grammar.y" /* yacc.c:1646 */
2311 { (yyval.blk).b = (yyvsp[-1].blk).b; (yyval.blk).q = (yyvsp[-2].blk).q; }
2312#line 2313 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002313 break;
2314
2315 case 41:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002316#line 433 "grammar.y" /* yacc.c:1646 */
2317 { (yyval.blk).b = gen_proto_abbrev((yyvsp[0].i)); (yyval.blk).q = qerr; }
2318#line 2319 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002319 break;
2320
2321 case 42:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002322#line 434 "grammar.y" /* yacc.c:1646 */
2323 { (yyval.blk).b = gen_relation((yyvsp[-1].i), (yyvsp[-2].a), (yyvsp[0].a), 0);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002324 (yyval.blk).q = qerr; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002325#line 2326 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002326 break;
2327
2328 case 43:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002329#line 436 "grammar.y" /* yacc.c:1646 */
2330 { (yyval.blk).b = gen_relation((yyvsp[-1].i), (yyvsp[-2].a), (yyvsp[0].a), 1);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002331 (yyval.blk).q = qerr; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002332#line 2333 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002333 break;
2334
2335 case 44:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002336#line 438 "grammar.y" /* yacc.c:1646 */
2337 { (yyval.blk).b = (yyvsp[0].rblk); (yyval.blk).q = qerr; }
2338#line 2339 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002339 break;
2340
2341 case 45:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002342#line 439 "grammar.y" /* yacc.c:1646 */
2343 { (yyval.blk).b = gen_atmtype_abbrev((yyvsp[0].i)); (yyval.blk).q = qerr; }
2344#line 2345 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002345 break;
2346
2347 case 46:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002348#line 440 "grammar.y" /* yacc.c:1646 */
2349 { (yyval.blk).b = gen_atmmulti_abbrev((yyvsp[0].i)); (yyval.blk).q = qerr; }
2350#line 2351 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002351 break;
2352
2353 case 47:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002354#line 441 "grammar.y" /* yacc.c:1646 */
2355 { (yyval.blk).b = (yyvsp[0].blk).b; (yyval.blk).q = qerr; }
2356#line 2357 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002357 break;
2358
2359 case 48:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002360#line 442 "grammar.y" /* yacc.c:1646 */
2361 { (yyval.blk).b = gen_mtp2type_abbrev((yyvsp[0].i)); (yyval.blk).q = qerr; }
2362#line 2363 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002363 break;
2364
2365 case 49:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002366#line 443 "grammar.y" /* yacc.c:1646 */
2367 { (yyval.blk).b = (yyvsp[0].blk).b; (yyval.blk).q = qerr; }
2368#line 2369 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002369 break;
2370
2371 case 51:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002372#line 447 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002373 { (yyval.i) = Q_DEFAULT; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002374#line 2375 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002375 break;
2376
2377 case 52:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002378#line 450 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002379 { (yyval.i) = Q_SRC; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002380#line 2381 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002381 break;
2382
2383 case 53:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002384#line 451 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002385 { (yyval.i) = Q_DST; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002386#line 2387 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002387 break;
2388
2389 case 54:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002390#line 452 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002391 { (yyval.i) = Q_OR; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002392#line 2393 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002393 break;
2394
2395 case 55:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002396#line 453 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002397 { (yyval.i) = Q_OR; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002398#line 2399 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002399 break;
2400
2401 case 56:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002402#line 454 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002403 { (yyval.i) = Q_AND; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002404#line 2405 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002405 break;
2406
2407 case 57:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002408#line 455 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002409 { (yyval.i) = Q_AND; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002410#line 2411 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002411 break;
2412
2413 case 58:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002414#line 456 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002415 { (yyval.i) = Q_ADDR1; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002416#line 2417 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002417 break;
2418
2419 case 59:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002420#line 457 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002421 { (yyval.i) = Q_ADDR2; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002422#line 2423 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002423 break;
2424
2425 case 60:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002426#line 458 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002427 { (yyval.i) = Q_ADDR3; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002428#line 2429 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002429 break;
2430
2431 case 61:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002432#line 459 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002433 { (yyval.i) = Q_ADDR4; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002434#line 2435 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002435 break;
2436
2437 case 62:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002438#line 460 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002439 { (yyval.i) = Q_RA; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002440#line 2441 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002441 break;
2442
2443 case 63:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002444#line 461 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002445 { (yyval.i) = Q_TA; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002446#line 2447 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002447 break;
2448
2449 case 64:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002450#line 464 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002451 { (yyval.i) = Q_HOST; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002452#line 2453 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002453 break;
2454
2455 case 65:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002456#line 465 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002457 { (yyval.i) = Q_NET; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002458#line 2459 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002459 break;
2460
2461 case 66:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002462#line 466 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002463 { (yyval.i) = Q_PORT; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002464#line 2465 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002465 break;
2466
2467 case 67:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002468#line 467 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002469 { (yyval.i) = Q_PORTRANGE; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002470#line 2471 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002471 break;
2472
2473 case 68:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002474#line 470 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002475 { (yyval.i) = Q_GATEWAY; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002476#line 2477 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002477 break;
2478
2479 case 69:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002480#line 472 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002481 { (yyval.i) = Q_LINK; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002482#line 2483 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002483 break;
2484
2485 case 70:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002486#line 473 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002487 { (yyval.i) = Q_IP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002488#line 2489 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002489 break;
2490
2491 case 71:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002492#line 474 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002493 { (yyval.i) = Q_ARP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002494#line 2495 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002495 break;
2496
2497 case 72:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002498#line 475 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002499 { (yyval.i) = Q_RARP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002500#line 2501 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002501 break;
2502
2503 case 73:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002504#line 476 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002505 { (yyval.i) = Q_SCTP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002506#line 2507 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002507 break;
2508
2509 case 74:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002510#line 477 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002511 { (yyval.i) = Q_TCP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002512#line 2513 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002513 break;
2514
2515 case 75:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002516#line 478 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002517 { (yyval.i) = Q_UDP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002518#line 2519 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002519 break;
2520
2521 case 76:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002522#line 479 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002523 { (yyval.i) = Q_ICMP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002524#line 2525 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002525 break;
2526
2527 case 77:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002528#line 480 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002529 { (yyval.i) = Q_IGMP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002530#line 2531 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002531 break;
2532
2533 case 78:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002534#line 481 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002535 { (yyval.i) = Q_IGRP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002536#line 2537 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002537 break;
2538
2539 case 79:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002540#line 482 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002541 { (yyval.i) = Q_PIM; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002542#line 2543 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002543 break;
2544
2545 case 80:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002546#line 483 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002547 { (yyval.i) = Q_VRRP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002548#line 2549 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002549 break;
2550
2551 case 81:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002552#line 484 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002553 { (yyval.i) = Q_CARP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002554#line 2555 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002555 break;
2556
2557 case 82:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002558#line 485 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002559 { (yyval.i) = Q_ATALK; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002560#line 2561 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002561 break;
2562
2563 case 83:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002564#line 486 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002565 { (yyval.i) = Q_AARP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002566#line 2567 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002567 break;
2568
2569 case 84:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002570#line 487 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002571 { (yyval.i) = Q_DECNET; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002572#line 2573 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002573 break;
2574
2575 case 85:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002576#line 488 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002577 { (yyval.i) = Q_LAT; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002578#line 2579 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002579 break;
2580
2581 case 86:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002582#line 489 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002583 { (yyval.i) = Q_SCA; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002584#line 2585 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002585 break;
2586
2587 case 87:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002588#line 490 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002589 { (yyval.i) = Q_MOPDL; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002590#line 2591 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002591 break;
2592
2593 case 88:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002594#line 491 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002595 { (yyval.i) = Q_MOPRC; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002596#line 2597 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002597 break;
2598
2599 case 89:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002600#line 492 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002601 { (yyval.i) = Q_IPV6; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002602#line 2603 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002603 break;
2604
2605 case 90:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002606#line 493 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002607 { (yyval.i) = Q_ICMPV6; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002608#line 2609 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002609 break;
2610
2611 case 91:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002612#line 494 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002613 { (yyval.i) = Q_AH; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002614#line 2615 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002615 break;
2616
2617 case 92:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002618#line 495 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002619 { (yyval.i) = Q_ESP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002620#line 2621 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002621 break;
2622
2623 case 93:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002624#line 496 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002625 { (yyval.i) = Q_ISO; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002626#line 2627 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002627 break;
2628
2629 case 94:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002630#line 497 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002631 { (yyval.i) = Q_ESIS; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002632#line 2633 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002633 break;
2634
2635 case 95:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002636#line 498 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002637 { (yyval.i) = Q_ISIS; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002638#line 2639 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002639 break;
2640
2641 case 96:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002642#line 499 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002643 { (yyval.i) = Q_ISIS_L1; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002644#line 2645 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002645 break;
2646
2647 case 97:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002648#line 500 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002649 { (yyval.i) = Q_ISIS_L2; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002650#line 2651 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002651 break;
2652
2653 case 98:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002654#line 501 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002655 { (yyval.i) = Q_ISIS_IIH; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002656#line 2657 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002657 break;
2658
2659 case 99:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002660#line 502 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002661 { (yyval.i) = Q_ISIS_LSP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002662#line 2663 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002663 break;
2664
2665 case 100:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002666#line 503 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002667 { (yyval.i) = Q_ISIS_SNP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002668#line 2669 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002669 break;
2670
2671 case 101:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002672#line 504 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002673 { (yyval.i) = Q_ISIS_PSNP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002674#line 2675 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002675 break;
2676
2677 case 102:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002678#line 505 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002679 { (yyval.i) = Q_ISIS_CSNP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002680#line 2681 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002681 break;
2682
2683 case 103:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002684#line 506 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002685 { (yyval.i) = Q_CLNP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002686#line 2687 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002687 break;
2688
2689 case 104:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002690#line 507 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002691 { (yyval.i) = Q_STP; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002692#line 2693 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002693 break;
2694
2695 case 105:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002696#line 508 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002697 { (yyval.i) = Q_IPX; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002698#line 2699 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002699 break;
2700
2701 case 106:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002702#line 509 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002703 { (yyval.i) = Q_NETBEUI; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002704#line 2705 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002705 break;
2706
2707 case 107:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002708#line 510 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002709 { (yyval.i) = Q_RADIO; }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002710#line 2711 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002711 break;
2712
2713 case 108:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002714#line 512 "grammar.y" /* yacc.c:1646 */
2715 { (yyval.rblk) = gen_broadcast((yyvsp[-1].i)); }
2716#line 2717 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002717 break;
2718
2719 case 109:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002720#line 513 "grammar.y" /* yacc.c:1646 */
2721 { (yyval.rblk) = gen_multicast((yyvsp[-1].i)); }
2722#line 2723 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002723 break;
2724
2725 case 110:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002726#line 514 "grammar.y" /* yacc.c:1646 */
2727 { (yyval.rblk) = gen_less((yyvsp[0].i)); }
2728#line 2729 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002729 break;
2730
2731 case 111:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002732#line 515 "grammar.y" /* yacc.c:1646 */
2733 { (yyval.rblk) = gen_greater((yyvsp[0].i)); }
2734#line 2735 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002735 break;
2736
2737 case 112:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002738#line 516 "grammar.y" /* yacc.c:1646 */
2739 { (yyval.rblk) = gen_byteop((yyvsp[-1].i), (yyvsp[-2].i), (yyvsp[0].i)); }
2740#line 2741 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002741 break;
2742
2743 case 113:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002744#line 517 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002745 { (yyval.rblk) = gen_inbound(0); }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002746#line 2747 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002747 break;
2748
2749 case 114:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002750#line 518 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002751 { (yyval.rblk) = gen_inbound(1); }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002752#line 2753 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002753 break;
2754
2755 case 115:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002756#line 519 "grammar.y" /* yacc.c:1646 */
2757 { (yyval.rblk) = gen_vlan((yyvsp[0].i)); }
2758#line 2759 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002759 break;
2760
2761 case 116:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002762#line 520 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002763 { (yyval.rblk) = gen_vlan(-1); }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002764#line 2765 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002765 break;
2766
2767 case 117:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002768#line 521 "grammar.y" /* yacc.c:1646 */
2769 { (yyval.rblk) = gen_mpls((yyvsp[0].i)); }
2770#line 2771 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002771 break;
2772
2773 case 118:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002774#line 522 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002775 { (yyval.rblk) = gen_mpls(-1); }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002776#line 2777 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002777 break;
2778
2779 case 119:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002780#line 523 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002781 { (yyval.rblk) = gen_pppoed(); }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002782#line 2783 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002783 break;
2784
2785 case 120:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002786#line 524 "grammar.y" /* yacc.c:1646 */
2787 { (yyval.rblk) = gen_pppoes((yyvsp[0].i)); }
2788#line 2789 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002789 break;
2790
2791 case 121:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002792#line 525 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002793 { (yyval.rblk) = gen_pppoes(-1); }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002794#line 2795 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002795 break;
2796
2797 case 122:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002798#line 526 "grammar.y" /* yacc.c:1646 */
2799 { (yyval.rblk) = gen_geneve((yyvsp[0].i)); }
2800#line 2801 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002801 break;
2802
2803 case 123:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002804#line 527 "grammar.y" /* yacc.c:1646 */
2805 { (yyval.rblk) = gen_geneve(-1); }
2806#line 2807 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002807 break;
2808
2809 case 124:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002810#line 528 "grammar.y" /* yacc.c:1646 */
2811 { (yyval.rblk) = (yyvsp[0].rblk); }
2812#line 2813 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002813 break;
2814
2815 case 125:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002816#line 529 "grammar.y" /* yacc.c:1646 */
2817 { (yyval.rblk) = (yyvsp[0].rblk); }
2818#line 2819 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002819 break;
2820
2821 case 126:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002822#line 530 "grammar.y" /* yacc.c:1646 */
2823 { (yyval.rblk) = (yyvsp[0].rblk); }
2824#line 2825 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002825 break;
2826
2827 case 127:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002828#line 533 "grammar.y" /* yacc.c:1646 */
2829 { (yyval.rblk) = gen_pf_ifname((yyvsp[0].s)); }
2830#line 2831 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002831 break;
2832
2833 case 128:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002834#line 534 "grammar.y" /* yacc.c:1646 */
2835 { (yyval.rblk) = gen_pf_ruleset((yyvsp[0].s)); }
2836#line 2837 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002837 break;
2838
2839 case 129:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002840#line 535 "grammar.y" /* yacc.c:1646 */
2841 { (yyval.rblk) = gen_pf_rnr((yyvsp[0].i)); }
2842#line 2843 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002843 break;
2844
2845 case 130:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002846#line 536 "grammar.y" /* yacc.c:1646 */
2847 { (yyval.rblk) = gen_pf_srnr((yyvsp[0].i)); }
2848#line 2849 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002849 break;
2850
2851 case 131:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002852#line 537 "grammar.y" /* yacc.c:1646 */
2853 { (yyval.rblk) = gen_pf_reason((yyvsp[0].i)); }
2854#line 2855 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002855 break;
2856
2857 case 132:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002858#line 538 "grammar.y" /* yacc.c:1646 */
2859 { (yyval.rblk) = gen_pf_action((yyvsp[0].i)); }
2860#line 2861 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002861 break;
2862
2863 case 133:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002864#line 542 "grammar.y" /* yacc.c:1646 */
2865 { (yyval.rblk) = gen_p80211_type((yyvsp[-2].i) | (yyvsp[0].i),
2866 IEEE80211_FC0_TYPE_MASK |
2867 IEEE80211_FC0_SUBTYPE_MASK);
2868 }
2869#line 2870 "y.tab.c" /* yacc.c:1646 */
2870 break;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002871
Elliott Hughesd8845d72015-10-19 18:07:04 -07002872 case 134:
2873#line 546 "grammar.y" /* yacc.c:1646 */
2874 { (yyval.rblk) = gen_p80211_type((yyvsp[0].i),
2875 IEEE80211_FC0_TYPE_MASK);
2876 }
2877#line 2878 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002878 break;
2879
2880 case 135:
Elliott Hughesd8845d72015-10-19 18:07:04 -07002881#line 549 "grammar.y" /* yacc.c:1646 */
2882 { (yyval.rblk) = gen_p80211_type((yyvsp[0].i),
2883 IEEE80211_FC0_TYPE_MASK |
2884 IEEE80211_FC0_SUBTYPE_MASK);
2885 }
2886#line 2887 "y.tab.c" /* yacc.c:1646 */
2887 break;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002888
Elliott Hughesd8845d72015-10-19 18:07:04 -07002889 case 136:
2890#line 553 "grammar.y" /* yacc.c:1646 */
2891 { (yyval.rblk) = gen_p80211_fcdir((yyvsp[0].i)); }
2892#line 2893 "y.tab.c" /* yacc.c:1646 */
2893 break;
2894
2895 case 138:
2896#line 557 "grammar.y" /* yacc.c:1646 */
2897 { (yyval.i) = str2tok((yyvsp[0].s), ieee80211_types);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002898 if ((yyval.i) == -1)
2899 bpf_error("unknown 802.11 type name");
2900 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002901#line 2902 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002902 break;
2903
Elliott Hughesd8845d72015-10-19 18:07:04 -07002904 case 140:
2905#line 564 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002906 { const struct tok *types = NULL;
2907 int i;
2908 for (i = 0;; i++) {
2909 if (ieee80211_type_subtypes[i].tok == NULL) {
2910 /* Ran out of types */
2911 bpf_error("unknown 802.11 type");
2912 break;
2913 }
2914 if ((yyvsp[(-1) - (1)].i) == ieee80211_type_subtypes[i].type) {
2915 types = ieee80211_type_subtypes[i].tok;
2916 break;
2917 }
2918 }
2919
Elliott Hughesd8845d72015-10-19 18:07:04 -07002920 (yyval.i) = str2tok((yyvsp[0].s), types);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002921 if ((yyval.i) == -1)
2922 bpf_error("unknown 802.11 subtype name");
2923 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002924#line 2925 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002925 break;
2926
Elliott Hughesd8845d72015-10-19 18:07:04 -07002927 case 141:
2928#line 584 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002929 { int i;
2930 for (i = 0;; i++) {
2931 if (ieee80211_type_subtypes[i].tok == NULL) {
2932 /* Ran out of types */
2933 bpf_error("unknown 802.11 type name");
2934 break;
2935 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002936 (yyval.i) = str2tok((yyvsp[0].s), ieee80211_type_subtypes[i].tok);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002937 if ((yyval.i) != -1) {
2938 (yyval.i) |= ieee80211_type_subtypes[i].type;
2939 break;
2940 }
2941 }
2942 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002943#line 2944 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002944 break;
2945
Elliott Hughesd8845d72015-10-19 18:07:04 -07002946 case 142:
2947#line 600 "grammar.y" /* yacc.c:1646 */
2948 { (yyval.rblk) = gen_llc(); }
2949#line 2950 "y.tab.c" /* yacc.c:1646 */
2950 break;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002951
Elliott Hughesd8845d72015-10-19 18:07:04 -07002952 case 143:
2953#line 601 "grammar.y" /* yacc.c:1646 */
2954 { if (pcap_strcasecmp((yyvsp[0].s), "i") == 0)
2955 (yyval.rblk) = gen_llc_i();
2956 else if (pcap_strcasecmp((yyvsp[0].s), "s") == 0)
2957 (yyval.rblk) = gen_llc_s();
2958 else if (pcap_strcasecmp((yyvsp[0].s), "u") == 0)
2959 (yyval.rblk) = gen_llc_u();
2960 else {
2961 u_int subtype;
2962
2963 subtype = str2tok((yyvsp[0].s), llc_s_subtypes);
2964 if (subtype != -1)
2965 (yyval.rblk) = gen_llc_s_subtype(subtype);
2966 else {
2967 subtype = str2tok((yyvsp[0].s), llc_u_subtypes);
2968 if (subtype == -1)
2969 bpf_error("unknown LLC type name \"%s\"", (yyvsp[0].s));
2970 (yyval.rblk) = gen_llc_u_subtype(subtype);
2971 }
2972 }
2973 }
2974#line 2975 "y.tab.c" /* yacc.c:1646 */
2975 break;
2976
2977 case 144:
2978#line 622 "grammar.y" /* yacc.c:1646 */
2979 { (yyval.rblk) = gen_llc_s_subtype(LLC_RNR); }
2980#line 2981 "y.tab.c" /* yacc.c:1646 */
2981 break;
2982
2983 case 146:
2984#line 626 "grammar.y" /* yacc.c:1646 */
2985 { if (pcap_strcasecmp((yyvsp[0].s), "nods") == 0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002986 (yyval.i) = IEEE80211_FC1_DIR_NODS;
Elliott Hughesd8845d72015-10-19 18:07:04 -07002987 else if (pcap_strcasecmp((yyvsp[0].s), "tods") == 0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002988 (yyval.i) = IEEE80211_FC1_DIR_TODS;
Elliott Hughesd8845d72015-10-19 18:07:04 -07002989 else if (pcap_strcasecmp((yyvsp[0].s), "fromds") == 0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002990 (yyval.i) = IEEE80211_FC1_DIR_FROMDS;
Elliott Hughesd8845d72015-10-19 18:07:04 -07002991 else if (pcap_strcasecmp((yyvsp[0].s), "dstods") == 0)
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002992 (yyval.i) = IEEE80211_FC1_DIR_DSTODS;
2993 else
2994 bpf_error("unknown 802.11 direction");
2995 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07002996#line 2997 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08002997 break;
2998
2999 case 147:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003000#line 639 "grammar.y" /* yacc.c:1646 */
3001 { (yyval.i) = (yyvsp[0].i); }
3002#line 3003 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003003 break;
3004
3005 case 148:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003006#line 640 "grammar.y" /* yacc.c:1646 */
3007 { (yyval.i) = pfreason_to_num((yyvsp[0].s)); }
3008#line 3009 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003009 break;
3010
3011 case 149:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003012#line 643 "grammar.y" /* yacc.c:1646 */
3013 { (yyval.i) = pfaction_to_num((yyvsp[0].s)); }
3014#line 3015 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003015 break;
3016
3017 case 150:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003018#line 646 "grammar.y" /* yacc.c:1646 */
3019 { (yyval.i) = BPF_JGT; }
3020#line 3021 "y.tab.c" /* yacc.c:1646 */
3021 break;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003022
Elliott Hughesd8845d72015-10-19 18:07:04 -07003023 case 151:
3024#line 647 "grammar.y" /* yacc.c:1646 */
3025 { (yyval.i) = BPF_JGE; }
3026#line 3027 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003027 break;
3028
3029 case 152:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003030#line 648 "grammar.y" /* yacc.c:1646 */
3031 { (yyval.i) = BPF_JEQ; }
3032#line 3033 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003033 break;
3034
3035 case 153:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003036#line 650 "grammar.y" /* yacc.c:1646 */
3037 { (yyval.i) = BPF_JGT; }
3038#line 3039 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003039 break;
3040
3041 case 154:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003042#line 651 "grammar.y" /* yacc.c:1646 */
3043 { (yyval.i) = BPF_JGE; }
3044#line 3045 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003045 break;
3046
3047 case 155:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003048#line 652 "grammar.y" /* yacc.c:1646 */
3049 { (yyval.i) = BPF_JEQ; }
3050#line 3051 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003051 break;
3052
3053 case 156:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003054#line 654 "grammar.y" /* yacc.c:1646 */
3055 { (yyval.a) = gen_loadi((yyvsp[0].i)); }
3056#line 3057 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003057 break;
3058
3059 case 158:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003060#line 657 "grammar.y" /* yacc.c:1646 */
3061 { (yyval.a) = gen_load((yyvsp[-3].i), (yyvsp[-1].a), 1); }
3062#line 3063 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003063 break;
3064
3065 case 159:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003066#line 658 "grammar.y" /* yacc.c:1646 */
3067 { (yyval.a) = gen_load((yyvsp[-5].i), (yyvsp[-3].a), (yyvsp[-1].i)); }
3068#line 3069 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003069 break;
3070
3071 case 160:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003072#line 659 "grammar.y" /* yacc.c:1646 */
3073 { (yyval.a) = gen_arth(BPF_ADD, (yyvsp[-2].a), (yyvsp[0].a)); }
3074#line 3075 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003075 break;
3076
3077 case 161:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003078#line 660 "grammar.y" /* yacc.c:1646 */
3079 { (yyval.a) = gen_arth(BPF_SUB, (yyvsp[-2].a), (yyvsp[0].a)); }
3080#line 3081 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003081 break;
3082
3083 case 162:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003084#line 661 "grammar.y" /* yacc.c:1646 */
3085 { (yyval.a) = gen_arth(BPF_MUL, (yyvsp[-2].a), (yyvsp[0].a)); }
3086#line 3087 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003087 break;
3088
3089 case 163:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003090#line 662 "grammar.y" /* yacc.c:1646 */
3091 { (yyval.a) = gen_arth(BPF_DIV, (yyvsp[-2].a), (yyvsp[0].a)); }
3092#line 3093 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003093 break;
3094
3095 case 164:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003096#line 663 "grammar.y" /* yacc.c:1646 */
3097 { (yyval.a) = gen_arth(BPF_MOD, (yyvsp[-2].a), (yyvsp[0].a)); }
3098#line 3099 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003099 break;
3100
3101 case 165:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003102#line 664 "grammar.y" /* yacc.c:1646 */
3103 { (yyval.a) = gen_arth(BPF_AND, (yyvsp[-2].a), (yyvsp[0].a)); }
3104#line 3105 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003105 break;
3106
3107 case 166:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003108#line 665 "grammar.y" /* yacc.c:1646 */
3109 { (yyval.a) = gen_arth(BPF_OR, (yyvsp[-2].a), (yyvsp[0].a)); }
3110#line 3111 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003111 break;
3112
3113 case 167:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003114#line 666 "grammar.y" /* yacc.c:1646 */
3115 { (yyval.a) = gen_arth(BPF_XOR, (yyvsp[-2].a), (yyvsp[0].a)); }
3116#line 3117 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003117 break;
3118
3119 case 168:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003120#line 667 "grammar.y" /* yacc.c:1646 */
3121 { (yyval.a) = gen_arth(BPF_LSH, (yyvsp[-2].a), (yyvsp[0].a)); }
3122#line 3123 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003123 break;
3124
3125 case 169:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003126#line 668 "grammar.y" /* yacc.c:1646 */
3127 { (yyval.a) = gen_arth(BPF_RSH, (yyvsp[-2].a), (yyvsp[0].a)); }
3128#line 3129 "y.tab.c" /* yacc.c:1646 */
3129 break;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003130
Elliott Hughesd8845d72015-10-19 18:07:04 -07003131 case 170:
3132#line 669 "grammar.y" /* yacc.c:1646 */
3133 { (yyval.a) = gen_neg((yyvsp[0].a)); }
3134#line 3135 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003135 break;
3136
3137 case 171:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003138#line 670 "grammar.y" /* yacc.c:1646 */
3139 { (yyval.a) = (yyvsp[-1].a); }
3140#line 3141 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003141 break;
3142
3143 case 172:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003144#line 671 "grammar.y" /* yacc.c:1646 */
3145 { (yyval.a) = gen_loadlen(); }
3146#line 3147 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003147 break;
3148
3149 case 173:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003150#line 673 "grammar.y" /* yacc.c:1646 */
3151 { (yyval.i) = '&'; }
3152#line 3153 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003153 break;
3154
3155 case 174:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003156#line 674 "grammar.y" /* yacc.c:1646 */
3157 { (yyval.i) = '|'; }
3158#line 3159 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003159 break;
3160
3161 case 175:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003162#line 675 "grammar.y" /* yacc.c:1646 */
3163 { (yyval.i) = '<'; }
3164#line 3165 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003165 break;
3166
3167 case 176:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003168#line 676 "grammar.y" /* yacc.c:1646 */
3169 { (yyval.i) = '>'; }
3170#line 3171 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003171 break;
3172
3173 case 177:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003174#line 677 "grammar.y" /* yacc.c:1646 */
3175 { (yyval.i) = '='; }
3176#line 3177 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003177 break;
3178
3179 case 179:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003180#line 680 "grammar.y" /* yacc.c:1646 */
3181 { (yyval.i) = (yyvsp[-1].i); }
3182#line 3183 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003183 break;
3184
3185 case 180:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003186#line 682 "grammar.y" /* yacc.c:1646 */
3187 { (yyval.i) = A_LANE; }
3188#line 3189 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003189 break;
3190
3191 case 181:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003192#line 683 "grammar.y" /* yacc.c:1646 */
3193 { (yyval.i) = A_METAC; }
3194#line 3195 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003195 break;
3196
3197 case 182:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003198#line 684 "grammar.y" /* yacc.c:1646 */
3199 { (yyval.i) = A_BCC; }
3200#line 3201 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003201 break;
3202
3203 case 183:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003204#line 685 "grammar.y" /* yacc.c:1646 */
3205 { (yyval.i) = A_OAMF4EC; }
3206#line 3207 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003207 break;
3208
3209 case 184:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003210#line 686 "grammar.y" /* yacc.c:1646 */
3211 { (yyval.i) = A_OAMF4SC; }
3212#line 3213 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003213 break;
3214
3215 case 185:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003216#line 687 "grammar.y" /* yacc.c:1646 */
3217 { (yyval.i) = A_SC; }
3218#line 3219 "y.tab.c" /* yacc.c:1646 */
3219 break;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003220
Elliott Hughesd8845d72015-10-19 18:07:04 -07003221 case 186:
3222#line 688 "grammar.y" /* yacc.c:1646 */
3223 { (yyval.i) = A_ILMIC; }
3224#line 3225 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003225 break;
3226
3227 case 187:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003228#line 690 "grammar.y" /* yacc.c:1646 */
3229 { (yyval.i) = A_OAM; }
3230#line 3231 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003231 break;
3232
3233 case 188:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003234#line 691 "grammar.y" /* yacc.c:1646 */
3235 { (yyval.i) = A_OAMF4; }
3236#line 3237 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003237 break;
3238
3239 case 189:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003240#line 692 "grammar.y" /* yacc.c:1646 */
3241 { (yyval.i) = A_CONNECTMSG; }
3242#line 3243 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003243 break;
3244
3245 case 190:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003246#line 693 "grammar.y" /* yacc.c:1646 */
3247 { (yyval.i) = A_METACONNECT; }
3248#line 3249 "y.tab.c" /* yacc.c:1646 */
3249 break;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003250
Elliott Hughesd8845d72015-10-19 18:07:04 -07003251 case 191:
3252#line 696 "grammar.y" /* yacc.c:1646 */
3253 { (yyval.blk).atmfieldtype = A_VPI; }
3254#line 3255 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003255 break;
3256
3257 case 192:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003258#line 697 "grammar.y" /* yacc.c:1646 */
3259 { (yyval.blk).atmfieldtype = A_VCI; }
3260#line 3261 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003261 break;
3262
3263 case 194:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003264#line 700 "grammar.y" /* yacc.c:1646 */
3265 { (yyval.blk).b = gen_atmfield_code((yyvsp[-2].blk).atmfieldtype, (bpf_int32)(yyvsp[0].i), (bpf_u_int32)(yyvsp[-1].i), 0); }
3266#line 3267 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003267 break;
3268
3269 case 195:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003270#line 701 "grammar.y" /* yacc.c:1646 */
3271 { (yyval.blk).b = gen_atmfield_code((yyvsp[-2].blk).atmfieldtype, (bpf_int32)(yyvsp[0].i), (bpf_u_int32)(yyvsp[-1].i), 1); }
3272#line 3273 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003273 break;
3274
3275 case 196:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003276#line 702 "grammar.y" /* yacc.c:1646 */
3277 { (yyval.blk).b = (yyvsp[-1].blk).b; (yyval.blk).q = qerr; }
3278#line 3279 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003279 break;
3280
3281 case 197:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003282#line 704 "grammar.y" /* yacc.c:1646 */
3283 {
3284 (yyval.blk).atmfieldtype = (yyvsp[-1].blk).atmfieldtype;
3285 if ((yyval.blk).atmfieldtype == A_VPI ||
3286 (yyval.blk).atmfieldtype == A_VCI)
3287 (yyval.blk).b = gen_atmfield_code((yyval.blk).atmfieldtype, (bpf_int32) (yyvsp[0].i), BPF_JEQ, 0);
3288 }
3289#line 3290 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003290 break;
3291
3292 case 199:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003293#line 712 "grammar.y" /* yacc.c:1646 */
3294 { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
3295#line 3296 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003296 break;
3297
3298 case 200:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003299#line 715 "grammar.y" /* yacc.c:1646 */
3300 { (yyval.i) = M_FISU; }
3301#line 3302 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003302 break;
3303
3304 case 201:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003305#line 716 "grammar.y" /* yacc.c:1646 */
3306 { (yyval.i) = M_LSSU; }
3307#line 3308 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003308 break;
3309
3310 case 202:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003311#line 717 "grammar.y" /* yacc.c:1646 */
3312 { (yyval.i) = M_MSU; }
3313#line 3314 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003314 break;
3315
3316 case 203:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003317#line 718 "grammar.y" /* yacc.c:1646 */
3318 { (yyval.i) = MH_FISU; }
3319#line 3320 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003320 break;
3321
3322 case 204:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003323#line 719 "grammar.y" /* yacc.c:1646 */
3324 { (yyval.i) = MH_LSSU; }
3325#line 3326 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003326 break;
3327
3328 case 205:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003329#line 720 "grammar.y" /* yacc.c:1646 */
3330 { (yyval.i) = MH_MSU; }
3331#line 3332 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003332 break;
3333
3334 case 206:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003335#line 723 "grammar.y" /* yacc.c:1646 */
3336 { (yyval.blk).mtp3fieldtype = M_SIO; }
3337#line 3338 "y.tab.c" /* yacc.c:1646 */
3338 break;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003339
Elliott Hughesd8845d72015-10-19 18:07:04 -07003340 case 207:
3341#line 724 "grammar.y" /* yacc.c:1646 */
3342 { (yyval.blk).mtp3fieldtype = M_OPC; }
3343#line 3344 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003344 break;
3345
3346 case 208:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003347#line 725 "grammar.y" /* yacc.c:1646 */
3348 { (yyval.blk).mtp3fieldtype = M_DPC; }
3349#line 3350 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003350 break;
3351
3352 case 209:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003353#line 726 "grammar.y" /* yacc.c:1646 */
3354 { (yyval.blk).mtp3fieldtype = M_SLS; }
3355#line 3356 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003356 break;
3357
3358 case 210:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003359#line 727 "grammar.y" /* yacc.c:1646 */
3360 { (yyval.blk).mtp3fieldtype = MH_SIO; }
3361#line 3362 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003362 break;
3363
3364 case 211:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003365#line 728 "grammar.y" /* yacc.c:1646 */
3366 { (yyval.blk).mtp3fieldtype = MH_OPC; }
3367#line 3368 "y.tab.c" /* yacc.c:1646 */
3368 break;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003369
Elliott Hughesd8845d72015-10-19 18:07:04 -07003370 case 212:
3371#line 729 "grammar.y" /* yacc.c:1646 */
3372 { (yyval.blk).mtp3fieldtype = MH_DPC; }
3373#line 3374 "y.tab.c" /* yacc.c:1646 */
3374 break;
3375
3376 case 213:
3377#line 730 "grammar.y" /* yacc.c:1646 */
3378 { (yyval.blk).mtp3fieldtype = MH_SLS; }
3379#line 3380 "y.tab.c" /* yacc.c:1646 */
3380 break;
3381
3382 case 215:
3383#line 733 "grammar.y" /* yacc.c:1646 */
3384 { (yyval.blk).b = gen_mtp3field_code((yyvsp[-2].blk).mtp3fieldtype, (u_int)(yyvsp[0].i), (u_int)(yyvsp[-1].i), 0); }
3385#line 3386 "y.tab.c" /* yacc.c:1646 */
3386 break;
3387
3388 case 216:
3389#line 734 "grammar.y" /* yacc.c:1646 */
3390 { (yyval.blk).b = gen_mtp3field_code((yyvsp[-2].blk).mtp3fieldtype, (u_int)(yyvsp[0].i), (u_int)(yyvsp[-1].i), 1); }
3391#line 3392 "y.tab.c" /* yacc.c:1646 */
3392 break;
3393
3394 case 217:
3395#line 735 "grammar.y" /* yacc.c:1646 */
3396 { (yyval.blk).b = (yyvsp[-1].blk).b; (yyval.blk).q = qerr; }
3397#line 3398 "y.tab.c" /* yacc.c:1646 */
3398 break;
3399
3400 case 218:
3401#line 737 "grammar.y" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003402 {
Elliott Hughesd8845d72015-10-19 18:07:04 -07003403 (yyval.blk).mtp3fieldtype = (yyvsp[-1].blk).mtp3fieldtype;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003404 if ((yyval.blk).mtp3fieldtype == M_SIO ||
3405 (yyval.blk).mtp3fieldtype == M_OPC ||
3406 (yyval.blk).mtp3fieldtype == M_DPC ||
3407 (yyval.blk).mtp3fieldtype == M_SLS ||
3408 (yyval.blk).mtp3fieldtype == MH_SIO ||
3409 (yyval.blk).mtp3fieldtype == MH_OPC ||
3410 (yyval.blk).mtp3fieldtype == MH_DPC ||
3411 (yyval.blk).mtp3fieldtype == MH_SLS)
Elliott Hughesd8845d72015-10-19 18:07:04 -07003412 (yyval.blk).b = gen_mtp3field_code((yyval.blk).mtp3fieldtype, (u_int) (yyvsp[0].i), BPF_JEQ, 0);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003413 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07003414#line 3415 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003415 break;
3416
Elliott Hughesd8845d72015-10-19 18:07:04 -07003417 case 220:
3418#line 751 "grammar.y" /* yacc.c:1646 */
3419 { gen_or((yyvsp[-2].blk).b, (yyvsp[0].blk).b); (yyval.blk) = (yyvsp[0].blk); }
3420#line 3421 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003421 break;
3422
3423
Elliott Hughesd8845d72015-10-19 18:07:04 -07003424#line 3425 "y.tab.c" /* yacc.c:1646 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003425 default: break;
3426 }
3427 /* User semantic actions sometimes alter yychar, and that requires
3428 that yytoken be updated with the new translation. We take the
3429 approach of translating immediately before every use of yytoken.
3430 One alternative is translating here after every semantic action,
3431 but that translation would be missed if the semantic action invokes
3432 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3433 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
3434 incorrect destructor might then be invoked immediately. In the
3435 case of YYERROR or YYBACKUP, subsequent parser actions might lead
3436 to an incorrect destructor call or verbose syntax error message
3437 before the lookahead is translated. */
3438 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3439
3440 YYPOPSTACK (yylen);
3441 yylen = 0;
3442 YY_STACK_PRINT (yyss, yyssp);
3443
3444 *++yyvsp = yyval;
3445
Elliott Hughesd8845d72015-10-19 18:07:04 -07003446 /* Now 'shift' the result of the reduction. Determine what state
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003447 that goes to, based on the state we popped back to and the rule
3448 number reduced by. */
3449
3450 yyn = yyr1[yyn];
3451
3452 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3453 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3454 yystate = yytable[yystate];
3455 else
3456 yystate = yydefgoto[yyn - YYNTOKENS];
3457
3458 goto yynewstate;
3459
3460
Elliott Hughesd8845d72015-10-19 18:07:04 -07003461/*--------------------------------------.
3462| yyerrlab -- here on detecting error. |
3463`--------------------------------------*/
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003464yyerrlab:
3465 /* Make sure we have latest lookahead translation. See comments at
3466 user semantic actions for why this is necessary. */
3467 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3468
3469 /* If not already recovering from an error, report this error. */
3470 if (!yyerrstatus)
3471 {
3472 ++yynerrs;
3473#if ! YYERROR_VERBOSE
3474 yyerror (YY_("syntax error"));
3475#else
3476# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3477 yyssp, yytoken)
3478 {
3479 char const *yymsgp = YY_("syntax error");
3480 int yysyntax_error_status;
3481 yysyntax_error_status = YYSYNTAX_ERROR;
3482 if (yysyntax_error_status == 0)
3483 yymsgp = yymsg;
3484 else if (yysyntax_error_status == 1)
3485 {
3486 if (yymsg != yymsgbuf)
3487 YYSTACK_FREE (yymsg);
3488 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
3489 if (!yymsg)
3490 {
3491 yymsg = yymsgbuf;
3492 yymsg_alloc = sizeof yymsgbuf;
3493 yysyntax_error_status = 2;
3494 }
3495 else
3496 {
3497 yysyntax_error_status = YYSYNTAX_ERROR;
3498 yymsgp = yymsg;
3499 }
3500 }
3501 yyerror (yymsgp);
3502 if (yysyntax_error_status == 2)
3503 goto yyexhaustedlab;
3504 }
3505# undef YYSYNTAX_ERROR
3506#endif
3507 }
3508
3509
3510
3511 if (yyerrstatus == 3)
3512 {
3513 /* If just tried and failed to reuse lookahead token after an
Elliott Hughesd8845d72015-10-19 18:07:04 -07003514 error, discard it. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003515
3516 if (yychar <= YYEOF)
Elliott Hughesd8845d72015-10-19 18:07:04 -07003517 {
3518 /* Return failure if at end of input. */
3519 if (yychar == YYEOF)
3520 YYABORT;
3521 }
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003522 else
Elliott Hughesd8845d72015-10-19 18:07:04 -07003523 {
3524 yydestruct ("Error: discarding",
3525 yytoken, &yylval);
3526 yychar = YYEMPTY;
3527 }
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003528 }
3529
3530 /* Else will try to reuse lookahead token after shifting the error
3531 token. */
3532 goto yyerrlab1;
3533
3534
3535/*---------------------------------------------------.
3536| yyerrorlab -- error raised explicitly by YYERROR. |
3537`---------------------------------------------------*/
3538yyerrorlab:
3539
3540 /* Pacify compilers like GCC when the user code never invokes
3541 YYERROR and the label yyerrorlab therefore never appears in user
3542 code. */
3543 if (/*CONSTCOND*/ 0)
3544 goto yyerrorlab;
3545
Elliott Hughesd8845d72015-10-19 18:07:04 -07003546 /* Do not reclaim the symbols of the rule whose action triggered
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003547 this YYERROR. */
3548 YYPOPSTACK (yylen);
3549 yylen = 0;
3550 YY_STACK_PRINT (yyss, yyssp);
3551 yystate = *yyssp;
3552 goto yyerrlab1;
3553
3554
3555/*-------------------------------------------------------------.
3556| yyerrlab1 -- common code for both syntax error and YYERROR. |
3557`-------------------------------------------------------------*/
3558yyerrlab1:
Elliott Hughesd8845d72015-10-19 18:07:04 -07003559 yyerrstatus = 3; /* Each real token shifted decrements this. */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003560
3561 for (;;)
3562 {
3563 yyn = yypact[yystate];
3564 if (!yypact_value_is_default (yyn))
Elliott Hughesd8845d72015-10-19 18:07:04 -07003565 {
3566 yyn += YYTERROR;
3567 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3568 {
3569 yyn = yytable[yyn];
3570 if (0 < yyn)
3571 break;
3572 }
3573 }
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003574
3575 /* Pop the current state because it cannot handle the error token. */
3576 if (yyssp == yyss)
Elliott Hughesd8845d72015-10-19 18:07:04 -07003577 YYABORT;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003578
3579
3580 yydestruct ("Error: popping",
Elliott Hughesd8845d72015-10-19 18:07:04 -07003581 yystos[yystate], yyvsp);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003582 YYPOPSTACK (1);
3583 yystate = *yyssp;
3584 YY_STACK_PRINT (yyss, yyssp);
3585 }
3586
Elliott Hughesd8845d72015-10-19 18:07:04 -07003587 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003588 *++yyvsp = yylval;
Elliott Hughesd8845d72015-10-19 18:07:04 -07003589 YY_IGNORE_MAYBE_UNINITIALIZED_END
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003590
3591
3592 /* Shift the error token. */
3593 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3594
3595 yystate = yyn;
3596 goto yynewstate;
3597
3598
3599/*-------------------------------------.
3600| yyacceptlab -- YYACCEPT comes here. |
3601`-------------------------------------*/
3602yyacceptlab:
3603 yyresult = 0;
3604 goto yyreturn;
3605
3606/*-----------------------------------.
3607| yyabortlab -- YYABORT comes here. |
3608`-----------------------------------*/
3609yyabortlab:
3610 yyresult = 1;
3611 goto yyreturn;
3612
Elliott Hughesd8845d72015-10-19 18:07:04 -07003613#if !defined yyoverflow || YYERROR_VERBOSE
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003614/*-------------------------------------------------.
3615| yyexhaustedlab -- memory exhaustion comes here. |
3616`-------------------------------------------------*/
3617yyexhaustedlab:
3618 yyerror (YY_("memory exhausted"));
3619 yyresult = 2;
3620 /* Fall through. */
3621#endif
3622
3623yyreturn:
3624 if (yychar != YYEMPTY)
3625 {
3626 /* Make sure we have latest lookahead translation. See comments at
3627 user semantic actions for why this is necessary. */
3628 yytoken = YYTRANSLATE (yychar);
3629 yydestruct ("Cleanup: discarding lookahead",
3630 yytoken, &yylval);
3631 }
Elliott Hughesd8845d72015-10-19 18:07:04 -07003632 /* Do not reclaim the symbols of the rule whose action triggered
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003633 this YYABORT or YYACCEPT. */
3634 YYPOPSTACK (yylen);
3635 YY_STACK_PRINT (yyss, yyssp);
3636 while (yyssp != yyss)
3637 {
3638 yydestruct ("Cleanup: popping",
Elliott Hughesd8845d72015-10-19 18:07:04 -07003639 yystos[*yyssp], yyvsp);
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003640 YYPOPSTACK (1);
3641 }
3642#ifndef yyoverflow
3643 if (yyss != yyssa)
3644 YYSTACK_FREE (yyss);
3645#endif
3646#if YYERROR_VERBOSE
3647 if (yymsg != yymsgbuf)
3648 YYSTACK_FREE (yymsg);
3649#endif
Elliott Hughesd8845d72015-10-19 18:07:04 -07003650 return yyresult;
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003651}
Elliott Hughesd8845d72015-10-19 18:07:04 -07003652#line 753 "grammar.y" /* yacc.c:1906 */
JP Abgrallaa5c5f32014-02-10 20:23:42 -08003653