YY_STR
| '(' YY_STR ')' { memset(&($$), 0, sizeof($$));
| '(' YY_STR ')' '/'
| '(' YY_STR ':' YY_NUMBER ')' '/'
| YY_STR { memset(&($$), 0, sizeof($$));
%token <str> YY_STR
| IPFY_RPC IPFY_IN YY_STR
| YY_STR { $$ = geticmptype(frc->fr_family, $1);
YY_STR { $$ = $1; }
name: YY_STR { $$ = $1; }
IPFY_SET YY_STR YY_NUMBER ';' { do_tuneint($2, $3); }
| IPFY_SET YY_STR YY_HEX ';' { do_tuneint($2, $3); }
| IPFY_SET YY_STR YY_STR ';' { do_tunestr($2, $3); }
assign: YY_STR assigning YY_STR ';' { set_variable($1, $3);
IPFY_BPFV4 '{' YY_STR '}' { dobpf(4, $3); free($3); }
| IPFY_BPFV6 '{' YY_STR '}' { dobpf(6, $3); free($3); }
IPFY_IPFEXPR '{' YY_STR '}' { doipfexpr($3); }
| IPFY_DECAPS IPFY_L5AS '(' YY_STR ')'
func: YY_STR '/' YY_NUMBER
YY_STR { $$ = $1;
nattag: IPFY_NAT '=' YY_STR { DOALL(strncpy(fr->fr_nattag.ipt_tag,\
| IPFY_COMMENT YY_STR { DOALL(fr->fr_comment = addname(&fr, \
| YY_STR { if (!strcmp($1, "tcp-udp")) {
| YY_STR nextstring YY_STR
YY_STR { $$ = tcpflags($1); free($1); }
| pool '/' YY_STR { pooled = 1;
| hash '/' YY_STR { hashed = 1;
rval = YY_STR;
rval = YY_STR;
if (rval == YY_STR) {
case YY_STR :
} else if (yytokentype == YY_STR || yytokentype == YY_HEX ||
assign: YY_STR assigning YY_STR { set_variable($1, $3);
YY_STR { if (find_doing($1) != IPM_DOING)
'(' YY_STR ')' { $$ = build_doing($1, $4);
| YY_STR { if (find_doing($1) == IPM_DOING)
| IPM_DSTPORT '=' YY_STR { $$ = new_opt(IPM_DSTPORT);
| IPM_GROUP '=' YY_STR { $$ = new_opt(IPM_GROUP);
IPM_INTERFACE '=' YY_STR { $$ = new_opt(IPM_INTERFACE);
nattag: IPM_NATTAG '=' YY_STR { $$ = new_opt(IPM_NATTAG);
| IPM_PROTOCOL '=' YY_STR { $$ = new_opt(IPM_PROTOCOL);
result: IPM_RESULT '=' YY_STR { $$ = new_opt(IPM_RESULT);
| IPM_SRCPORT '=' YY_STR { $$ = new_opt(IPM_SRCPORT);
%token <str> YY_STR
| IPM_LOADACTION YY_STR YY_STR { if (install_saver($2, $3))
%token <str> YY_STR
| pool slash YY_STR { bzero(&$$, sizeof($$));
| hash slash YY_STR { bzero(&$$, sizeof($$));
nattag: | IPNY_TAG YY_STR { strncpy(nat->in_tag.ipt_tag, $2,
IPNY_PROXY YY_STR
| YY_STR { $$ = getproto($1);
YY_STR { i6addr_t addr;
assign: YY_STR assigning YY_STR ';' { set_variable($1, $3);
IPNY_DNS '/' proto IPNY_CONFIG YY_STR '{'
IPNY_ALLOW YY_STR { $$ = proxy_dns_add_pass(NULL, $2); }
| IPNY_DENY YY_STR { $$ = proxy_dns_add_block(NULL, $2); }
| IPNY_ALLOW '.' YY_STR { $$ = proxy_dns_add_pass(".", $3); }
| IPNY_DENY '.' YY_STR { $$ = proxy_dns_add_block(".", $3); }
proxy: | IPNY_PROXY port portspec YY_STR '/' proto
| IPNY_PROXY port YY_STR YY_STR '/' proto
| IPNY_PROXY port portspec YY_STR '/' proto IPNY_CONFIG YY_STR
| IPNY_PROXY port YY_STR YY_STR '/' proto IPNY_CONFIG YY_STR
| IPNY_DSTLIST '/' YY_STR { $$.t = FRI_LOOKUP;
| YY_STR { if (getport(NULL, $1,
ifname: YY_STR { setifname(&nat, 0, $1);
YY_STR { setifname(&nat, 1, $1);
| IPNY_ICMPIDMAP YY_STR portpair sequential
assign: YY_STR assigning YY_STR ';' { set_variable($1, $3);
| IPT_NAME '=' YY_STR { strncpy(poolname, $3,
IPT_GROUP '=' YY_STR { char tmp[FR_GROUPLEN+1];
| YY_STR { $$ = add_htablehosts($1);
| YY_STR { $$ = add_poolhosts($1);
| IPT_WHOIS IPT_FILE YY_STR { $$ = read_whoisfile($3);
| YY_STR { $$ = add_htablehosts($1);
name: IPT_NAME YY_STR { $$ = $2; }
YY_STR ':' ipaddr { int size = sizeof(*$$) + strlen($1) + 1;
%token <str> YY_STR
glist: YY_STR
| glist ',' YY_STR
tag: YY_STR { $$ = $1; }
'(' YY_STR ')' { $$ = makepair($2, NULL); }
'(' YY_STR ',' YY_STR ')' { $$ = makepair($2, $4); }
| YY_STR { $$ = gethostip($1);
| YY_STR { $$ = getportnum($1);
%token <str> YY_STR
gline: YY_STR ':' glist '=' action
assign: YY_STR assigning YY_STR