grammar.y (26178) | grammar.y (56891) |
---|---|
1%{ 2/* 3 * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996 4 * The Regents of the University of California. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that: (1) source code distributions 8 * retain the above copyright notice and this paragraph in its entirety, (2) --- 5 unchanged lines hidden (view full) --- 14 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of 15 * the University nor the names of its contributors may be used to endorse 16 * or promote products derived from this software without specific prior 17 * written permission. 18 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 19 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 20 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 21 * | 1%{ 2/* 3 * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996 4 * The Regents of the University of California. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that: (1) source code distributions 8 * retain the above copyright notice and this paragraph in its entirety, (2) --- 5 unchanged lines hidden (view full) --- 14 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of 15 * the University nor the names of its contributors may be used to endorse 16 * or promote products derived from this software without specific prior 17 * written permission. 18 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 19 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 20 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 21 * |
22 * $FreeBSD: head/contrib/libpcap/grammar.y 56891 2000-01-30 00:43:38Z fenner $ |
|
22 */ 23#ifndef lint 24static const char rcsid[] = | 23 */ 24#ifndef lint 25static const char rcsid[] = |
25 "@(#) $Header: grammar.y,v 1.56 96/11/02 21:54:55 leres Exp $ (LBL)"; | 26 "@(#) $Header: /tcpdump/master/libpcap/grammar.y,v 1.57 1999/10/19 15:18:30 itojun Exp $ (LBL)"; |
26#endif 27 28#include <sys/types.h> 29#include <sys/time.h> 30#include <sys/socket.h> 31 32#if __STDC__ 33struct mbuf; --- 63 unchanged lines hidden (view full) --- 97%type <blk> head 98%type <i> pqual dqual aqual ndaqual 99%type <a> arth narth 100%type <i> byteop pname pnum relop irelop 101%type <blk> and or paren not null prog 102%type <rblk> other 103 104%token DST SRC HOST GATEWAY | 27#endif 28 29#include <sys/types.h> 30#include <sys/time.h> 31#include <sys/socket.h> 32 33#if __STDC__ 34struct mbuf; --- 63 unchanged lines hidden (view full) --- 98%type <blk> head 99%type <i> pqual dqual aqual ndaqual 100%type <a> arth narth 101%type <i> byteop pname pnum relop irelop 102%type <blk> and or paren not null prog 103%type <rblk> other 104 105%token DST SRC HOST GATEWAY |
105%token NET MASK PORT LESS GREATER PROTO BYTE 106%token ARP RARP IP TCP UDP ICMP IGMP IGRP | 106%token NET MASK PORT LESS GREATER PROTO PROTOCHAIN BYTE 107%token ARP RARP IP TCP UDP ICMP IGMP IGRP PIM |
107%token ATALK DECNET LAT SCA MOPRC MOPDL 108%token TK_BROADCAST TK_MULTICAST 109%token NUM INBOUND OUTBOUND 110%token LINK 111%token GEQ LEQ NEQ | 108%token ATALK DECNET LAT SCA MOPRC MOPDL 109%token TK_BROADCAST TK_MULTICAST 110%token NUM INBOUND OUTBOUND 111%token LINK 112%token GEQ LEQ NEQ |
112%token ID EID HID | 113%token ID EID HID HID6 |
113%token LSH RSH 114%token LEN 115%token ISO ESIS ISIS | 114%token LSH RSH 115%token LEN 116%token ISO ESIS ISIS |
117%token IPV6 ICMPV6 AH ESP |
|
116 117%type <s> ID 118%type <e> EID | 118 119%type <s> ID 120%type <e> EID |
119%type | 121%type <s> HID HID6 |
120%type <i> NUM 121 122%left OR AND 123%nonassoc '!' 124%left '|' 125%left '&' 126%left LSH RSH 127%left '+' '-' --- 35 unchanged lines hidden (view full) --- 163 case Q_DECNET: 164 $$.b = gen_ncode($1, 0, $$.q); 165 break; 166 default: 167 $$.b = gen_ncode($1, 0, $$.q); 168 break; 169 } 170 } | 122%type <i> NUM 123 124%left OR AND 125%nonassoc '!' 126%left '|' 127%left '&' 128%left LSH RSH 129%left '+' '-' --- 35 unchanged lines hidden (view full) --- 165 case Q_DECNET: 166 $$.b = gen_ncode($1, 0, $$.q); 167 break; 168 default: 169 $$.b = gen_ncode($1, 0, $$.q); 170 break; 171 } 172 } |
173 | HID6 '/' NUM { 174#ifdef INET6 175 $$.b = gen_mcode6($1, NULL, $3, 176 $$.q = $<blk>0.q); 177#else 178 bpf_error("'ip6addr/prefixlen' not supported " 179 "in this configuration"); 180#endif /*INET6*/ 181 } 182 | HID6 { 183#ifdef INET6 184 $$.b = gen_mcode6($1, 0, 128, 185 $$.q = $<blk>0.q); 186#else 187 bpf_error("'ip6addr' not supported " 188 "in this configuration"); 189#endif /*INET6*/ 190 } |
|
171 | EID { $$.b = gen_ecode($1, $$.q = $<blk>0.q); } 172 | not id { gen_not($2.b); $$ = $2; } 173 ; 174not: '!' { $$ = $<blk>0; } 175 ; 176paren: '(' { $$ = $<blk>0; } 177 ; 178pid: nid --- 6 unchanged lines hidden (view full) --- 185 ; 186term: rterm 187 | not term { gen_not($2.b); $$ = $2; } 188 ; 189head: pqual dqual aqual { QSET($$.q, $1, $2, $3); } 190 | pqual dqual { QSET($$.q, $1, $2, Q_DEFAULT); } 191 | pqual aqual { QSET($$.q, $1, Q_DEFAULT, $2); } 192 | pqual PROTO { QSET($$.q, $1, Q_DEFAULT, Q_PROTO); } | 191 | EID { $$.b = gen_ecode($1, $$.q = $<blk>0.q); } 192 | not id { gen_not($2.b); $$ = $2; } 193 ; 194not: '!' { $$ = $<blk>0; } 195 ; 196paren: '(' { $$ = $<blk>0; } 197 ; 198pid: nid --- 6 unchanged lines hidden (view full) --- 205 ; 206term: rterm 207 | not term { gen_not($2.b); $$ = $2; } 208 ; 209head: pqual dqual aqual { QSET($$.q, $1, $2, $3); } 210 | pqual dqual { QSET($$.q, $1, $2, Q_DEFAULT); } 211 | pqual aqual { QSET($$.q, $1, Q_DEFAULT, $2); } 212 | pqual PROTO { QSET($$.q, $1, Q_DEFAULT, Q_PROTO); } |
213 | pqual PROTOCHAIN { QSET($$.q, $1, Q_DEFAULT, Q_PROTOCHAIN); } |
|
193 | pqual ndaqual { QSET($$.q, $1, Q_DEFAULT, $2); } 194 ; 195rterm: head id { $$ = $2; } 196 | paren expr ')' { $$.b = $2.b; $$.q = $1.q; } 197 | pname { $$.b = gen_proto_abbrev($1); $$.q = qerr; } 198 | arth relop arth { $$.b = gen_relation($2, $1, $3, 0); 199 $$.q = qerr; } 200 | arth irelop arth { $$.b = gen_relation($2, $1, $3, 1); --- 24 unchanged lines hidden (view full) --- 225 | IP { $$ = Q_IP; } 226 | ARP { $$ = Q_ARP; } 227 | RARP { $$ = Q_RARP; } 228 | TCP { $$ = Q_TCP; } 229 | UDP { $$ = Q_UDP; } 230 | ICMP { $$ = Q_ICMP; } 231 | IGMP { $$ = Q_IGMP; } 232 | IGRP { $$ = Q_IGRP; } | 214 | pqual ndaqual { QSET($$.q, $1, Q_DEFAULT, $2); } 215 ; 216rterm: head id { $$ = $2; } 217 | paren expr ')' { $$.b = $2.b; $$.q = $1.q; } 218 | pname { $$.b = gen_proto_abbrev($1); $$.q = qerr; } 219 | arth relop arth { $$.b = gen_relation($2, $1, $3, 0); 220 $$.q = qerr; } 221 | arth irelop arth { $$.b = gen_relation($2, $1, $3, 1); --- 24 unchanged lines hidden (view full) --- 246 | IP { $$ = Q_IP; } 247 | ARP { $$ = Q_ARP; } 248 | RARP { $$ = Q_RARP; } 249 | TCP { $$ = Q_TCP; } 250 | UDP { $$ = Q_UDP; } 251 | ICMP { $$ = Q_ICMP; } 252 | IGMP { $$ = Q_IGMP; } 253 | IGRP { $$ = Q_IGRP; } |
254 | PIM { $$ = Q_PIM; } |
|
233 | ATALK { $$ = Q_ATALK; } 234 | DECNET { $$ = Q_DECNET; } 235 | LAT { $$ = Q_LAT; } 236 | SCA { $$ = Q_SCA; } 237 | MOPDL { $$ = Q_MOPDL; } 238 | MOPRC { $$ = Q_MOPRC; } | 255 | ATALK { $$ = Q_ATALK; } 256 | DECNET { $$ = Q_DECNET; } 257 | LAT { $$ = Q_LAT; } 258 | SCA { $$ = Q_SCA; } 259 | MOPDL { $$ = Q_MOPDL; } 260 | MOPRC { $$ = Q_MOPRC; } |
261 | IPV6 { $$ = Q_IPV6; } 262 | ICMPV6 { $$ = Q_ICMPV6; } 263 | AH { $$ = Q_AH; } 264 | ESP { $$ = Q_ESP; } |
|
239 | ISO { $$ = Q_ISO; } 240 | ESIS { $$ = Q_ESIS; } 241 | ISIS { $$ = Q_ISIS; } 242 ; 243other: pqual TK_BROADCAST { $$ = gen_broadcast($1); } 244 | pqual TK_MULTICAST { $$ = gen_multicast($1); } 245 | LESS NUM { $$ = gen_less($2); } 246 | GREATER NUM { $$ = gen_greater($2); } --- 39 unchanged lines hidden --- | 265 | ISO { $$ = Q_ISO; } 266 | ESIS { $$ = Q_ESIS; } 267 | ISIS { $$ = Q_ISIS; } 268 ; 269other: pqual TK_BROADCAST { $$ = gen_broadcast($1); } 270 | pqual TK_MULTICAST { $$ = gen_multicast($1); } 271 | LESS NUM { $$ = gen_less($2); } 272 | GREATER NUM { $$ = gen_greater($2); } --- 39 unchanged lines hidden --- |