grammar.c

来自「Ubuntu packages of security software。 相」· C语言 代码 · 共 1,792 行 · 第 1/4 页

C
1,792
字号
case 86:#line 312 "grammar.y"{ yyval.i = Q_ISIS; }break;case 87:#line 313 "grammar.y"{ yyval.i = Q_ISIS_L1; }break;case 88:#line 314 "grammar.y"{ yyval.i = Q_ISIS_L2; }break;case 89:#line 315 "grammar.y"{ yyval.i = Q_ISIS_IIH; }break;case 90:#line 316 "grammar.y"{ yyval.i = Q_ISIS_LSP; }break;case 91:#line 317 "grammar.y"{ yyval.i = Q_ISIS_SNP; }break;case 92:#line 318 "grammar.y"{ yyval.i = Q_ISIS_PSNP; }break;case 93:#line 319 "grammar.y"{ yyval.i = Q_ISIS_CSNP; }break;case 94:#line 320 "grammar.y"{ yyval.i = Q_CLNP; }break;case 95:#line 321 "grammar.y"{ yyval.i = Q_STP; }break;case 96:#line 322 "grammar.y"{ yyval.i = Q_IPX; }break;case 97:#line 323 "grammar.y"{ yyval.i = Q_NETBEUI; }break;case 98:#line 324 "grammar.y"{ yyval.i = Q_RADIO; }break;case 99:#line 326 "grammar.y"{ yyval.rblk = gen_broadcast(yyvsp[-1].i); }break;case 100:#line 327 "grammar.y"{ yyval.rblk = gen_multicast(yyvsp[-1].i); }break;case 101:#line 328 "grammar.y"{ yyval.rblk = gen_less(yyvsp[0].i); }break;case 102:#line 329 "grammar.y"{ yyval.rblk = gen_greater(yyvsp[0].i); }break;case 103:#line 330 "grammar.y"{ yyval.rblk = gen_byteop(yyvsp[-1].i, yyvsp[-2].i, yyvsp[0].i); }break;case 104:#line 331 "grammar.y"{ yyval.rblk = gen_inbound(0); }break;case 105:#line 332 "grammar.y"{ yyval.rblk = gen_inbound(1); }break;case 106:#line 333 "grammar.y"{ yyval.rblk = gen_vlan(yyvsp[0].i); }break;case 107:#line 334 "grammar.y"{ yyval.rblk = gen_vlan(-1); }break;case 108:#line 335 "grammar.y"{ yyval.rblk = gen_mpls(yyvsp[0].i); }break;case 109:#line 336 "grammar.y"{ yyval.rblk = gen_mpls(-1); }break;case 110:#line 337 "grammar.y"{ yyval.rblk = gen_pppoed(); }break;case 111:#line 338 "grammar.y"{ yyval.rblk = gen_pppoes(); }break;case 112:#line 339 "grammar.y"{ yyval.rblk = yyvsp[0].rblk; }break;case 113:#line 342 "grammar.y"{ yyval.rblk = gen_pf_ifname(yyvsp[0].s); }break;case 114:#line 343 "grammar.y"{ yyval.rblk = gen_pf_ruleset(yyvsp[0].s); }break;case 115:#line 344 "grammar.y"{ yyval.rblk = gen_pf_rnr(yyvsp[0].i); }break;case 116:#line 345 "grammar.y"{ yyval.rblk = gen_pf_srnr(yyvsp[0].i); }break;case 117:#line 346 "grammar.y"{ yyval.rblk = gen_pf_reason(yyvsp[0].i); }break;case 118:#line 347 "grammar.y"{ yyval.rblk = gen_pf_action(yyvsp[0].i); }break;case 119:#line 350 "grammar.y"{ yyval.i = yyvsp[0].i; }break;case 120:#line 351 "grammar.y"{ const char *reasons[] = PFRES_NAMES;				  int i;				  for (i = 0; reasons[i]; i++) {					  if (pcap_strcasecmp(yyvsp[0].s, reasons[i]) == 0) {						  yyval.i = i;						  break;					  }				  }				  if (reasons[i] == NULL)					  bpf_error("unknown PF reason");				}break;case 121:#line 364 "grammar.y"{ if (pcap_strcasecmp(yyvsp[0].s, "pass") == 0 ||				      pcap_strcasecmp(yyvsp[0].s, "accept") == 0)					yyval.i = PF_PASS;				  else if (pcap_strcasecmp(yyvsp[0].s, "drop") == 0 ||				      pcap_strcasecmp(yyvsp[0].s, "block") == 0)					yyval.i = PF_DROP;				  else					  bpf_error("unknown PF action");				}break;case 122:#line 375 "grammar.y"{ yyval.i = BPF_JGT; }break;case 123:#line 376 "grammar.y"{ yyval.i = BPF_JGE; }break;case 124:#line 377 "grammar.y"{ yyval.i = BPF_JEQ; }break;case 125:#line 379 "grammar.y"{ yyval.i = BPF_JGT; }break;case 126:#line 380 "grammar.y"{ yyval.i = BPF_JGE; }break;case 127:#line 381 "grammar.y"{ yyval.i = BPF_JEQ; }break;case 128:#line 383 "grammar.y"{ yyval.a = gen_loadi(yyvsp[0].i); }break;case 130:#line 386 "grammar.y"{ yyval.a = gen_load(yyvsp[-3].i, yyvsp[-1].a, 1); }break;case 131:#line 387 "grammar.y"{ yyval.a = gen_load(yyvsp[-5].i, yyvsp[-3].a, yyvsp[-1].i); }break;case 132:#line 388 "grammar.y"{ yyval.a = gen_arth(BPF_ADD, yyvsp[-2].a, yyvsp[0].a); }break;case 133:#line 389 "grammar.y"{ yyval.a = gen_arth(BPF_SUB, yyvsp[-2].a, yyvsp[0].a); }break;case 134:#line 390 "grammar.y"{ yyval.a = gen_arth(BPF_MUL, yyvsp[-2].a, yyvsp[0].a); }break;case 135:#line 391 "grammar.y"{ yyval.a = gen_arth(BPF_DIV, yyvsp[-2].a, yyvsp[0].a); }break;case 136:#line 392 "grammar.y"{ yyval.a = gen_arth(BPF_AND, yyvsp[-2].a, yyvsp[0].a); }break;case 137:#line 393 "grammar.y"{ yyval.a = gen_arth(BPF_OR, yyvsp[-2].a, yyvsp[0].a); }break;case 138:#line 394 "grammar.y"{ yyval.a = gen_arth(BPF_LSH, yyvsp[-2].a, yyvsp[0].a); }break;case 139:#line 395 "grammar.y"{ yyval.a = gen_arth(BPF_RSH, yyvsp[-2].a, yyvsp[0].a); }break;case 140:#line 396 "grammar.y"{ yyval.a = gen_neg(yyvsp[0].a); }break;case 141:#line 397 "grammar.y"{ yyval.a = yyvsp[-1].a; }break;case 142:#line 398 "grammar.y"{ yyval.a = gen_loadlen(); }break;case 143:#line 400 "grammar.y"{ yyval.i = '&'; }break;case 144:#line 401 "grammar.y"{ yyval.i = '|'; }break;case 145:#line 402 "grammar.y"{ yyval.i = '<'; }break;case 146:#line 403 "grammar.y"{ yyval.i = '>'; }break;case 147:#line 404 "grammar.y"{ yyval.i = '='; }break;case 149:#line 407 "grammar.y"{ yyval.i = yyvsp[-1].i; }break;case 150:#line 409 "grammar.y"{ yyval.i = A_LANE; }break;case 151:#line 410 "grammar.y"{ yyval.i = A_LLC; }break;case 152:#line 411 "grammar.y"{ yyval.i = A_METAC;	}break;case 153:#line 412 "grammar.y"{ yyval.i = A_BCC; }break;case 154:#line 413 "grammar.y"{ yyval.i = A_OAMF4EC; }break;case 155:#line 414 "grammar.y"{ yyval.i = A_OAMF4SC; }break;case 156:#line 415 "grammar.y"{ yyval.i = A_SC; }break;case 157:#line 416 "grammar.y"{ yyval.i = A_ILMIC; }break;case 158:#line 418 "grammar.y"{ yyval.i = A_OAM; }break;case 159:#line 419 "grammar.y"{ yyval.i = A_OAMF4; }break;case 160:#line 420 "grammar.y"{ yyval.i = A_CONNECTMSG; }break;case 161:#line 421 "grammar.y"{ yyval.i = A_METACONNECT; }break;case 162:#line 424 "grammar.y"{ yyval.blk.atmfieldtype = A_VPI; }break;case 163:#line 425 "grammar.y"{ yyval.blk.atmfieldtype = A_VCI; }break;case 165:#line 428 "grammar.y"{ yyval.blk.b = gen_atmfield_code(yyvsp[-2].blk.atmfieldtype, (bpf_int32)yyvsp[0].i, (bpf_u_int32)yyvsp[-1].i, 0); }break;case 166:#line 429 "grammar.y"{ yyval.blk.b = gen_atmfield_code(yyvsp[-2].blk.atmfieldtype, (bpf_int32)yyvsp[0].i, (bpf_u_int32)yyvsp[-1].i, 1); }break;case 167:#line 430 "grammar.y"{ yyval.blk.b = yyvsp[-1].blk.b; yyval.blk.q = qerr; }break;case 168:#line 432 "grammar.y"{	yyval.blk.atmfieldtype = yyvsp[-1].blk.atmfieldtype;	if (yyval.blk.atmfieldtype == A_VPI ||	    yyval.blk.atmfieldtype == A_VCI)		yyval.blk.b = gen_atmfield_code(yyval.blk.atmfieldtype, (bpf_int32) yyvsp[0].i, BPF_JEQ, 0);	}break;case 170:#line 440 "grammar.y"{ gen_or(yyvsp[-2].blk.b, yyvsp[0].blk.b); yyval.blk = yyvsp[0].blk; }break;case 171:#line 443 "grammar.y"{ yyval.blk.mtp3fieldtype = M_SIO; }break;case 172:#line 444 "grammar.y"{ yyval.blk.mtp3fieldtype = M_OPC; }break;case 173:#line 445 "grammar.y"{ yyval.blk.mtp3fieldtype = M_DPC; }break;case 174:#line 446 "grammar.y"{ yyval.blk.mtp3fieldtype = M_SLS; }break;case 176:#line 449 "grammar.y"{ yyval.blk.b = gen_mtp3field_code(yyvsp[-2].blk.mtp3fieldtype, (u_int)yyvsp[0].i, (u_int)yyvsp[-1].i, 0); }break;case 177:#line 450 "grammar.y"{ yyval.blk.b = gen_mtp3field_code(yyvsp[-2].blk.mtp3fieldtype, (u_int)yyvsp[0].i, (u_int)yyvsp[-1].i, 1); }break;case 178:#line 451 "grammar.y"{ yyval.blk.b = yyvsp[-1].blk.b; yyval.blk.q = qerr; }break;case 179:#line 453 "grammar.y"{	yyval.blk.mtp3fieldtype = yyvsp[-1].blk.mtp3fieldtype;	if (yyval.blk.mtp3fieldtype == M_SIO ||	    yyval.blk.mtp3fieldtype == M_OPC ||	    yyval.blk.mtp3fieldtype == M_DPC ||	    yyval.blk.mtp3fieldtype == M_SLS )		yyval.blk.b = gen_mtp3field_code(yyval.blk.mtp3fieldtype, (u_int) yyvsp[0].i, BPF_JEQ, 0);	}break;case 181:#line 463 "grammar.y"{ gen_or(yyvsp[-2].blk.b, yyvsp[0].blk.b); yyval.blk = yyvsp[0].blk; }break;#line 1736 "y.tab.c"    }    yyssp -= yym;    yystate = *yyssp;    yyvsp -= yym;    yym = yylhs[yyn];    if (yystate == 0 && yym == 0)    {#if YYDEBUG        if (yydebug)            printf("%sdebug: after reduction, shifting from state 0 to\ state %d\n", YYPREFIX, YYFINAL);#endif        yystate = YYFINAL;        *++yyssp = YYFINAL;        *++yyvsp = yyval;        if (yychar < 0)        {            if ((yychar = yylex()) < 0) yychar = 0;#if YYDEBUG            if (yydebug)            {                yys = 0;                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];                if (!yys) yys = "illegal-symbol";                printf("%sdebug: state %d, reading %d (%s)\n",                        YYPREFIX, YYFINAL, yychar, yys);            }#endif        }        if (yychar == 0) goto yyaccept;        goto yyloop;    }    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)        yystate = yytable[yyn];    else        yystate = yydgoto[yym];#if YYDEBUG    if (yydebug)        printf("%sdebug: after reduction, shifting from state %d \to state %d\n", YYPREFIX, *yyssp, yystate);#endif    if (yyssp >= yysslim && yygrowstack())    {        goto yyoverflow;    }    *++yyssp = yystate;    *++yyvsp = yyval;    goto yyloop;yyoverflow:    yyerror("yacc stack overflow");yyabort:    return (1);yyaccept:    return (0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?