⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lexer.c

📁 C程序漏洞检查
💻 C
📖 第 1 页 / 共 5 页
字号:
	YY_BREAKcase 84:YY_RULE_SETUP#line 300 "lexer.l"{ SETPOS_NDE(MINUS_EQ); return(ASSIGN); }	YY_BREAKcase 85:YY_RULE_SETUP#line 301 "lexer.l"{ SETPOS_NDE(STAR_EQ); return(ASSIGN); }	YY_BREAKcase 86:YY_RULE_SETUP#line 302 "lexer.l"{ SETPOS_NDE(DIV_EQ); return(ASSIGN); }	YY_BREAKcase 87:YY_RULE_SETUP#line 303 "lexer.l"{ SETPOS_NDE(MOD_EQ); return(ASSIGN); }	YY_BREAKcase 88:YY_RULE_SETUP#line 305 "lexer.l"{ SETPOS_NDE(NOT); return(NOT); }	YY_BREAKcase 89:YY_RULE_SETUP#line 306 "lexer.l"{ SETPOS_NDE(AND); return(AND); }	YY_BREAKcase 90:YY_RULE_SETUP#line 307 "lexer.l"{ SETPOS_NDE(OR); return(OR); }	YY_BREAKcase 91:YY_RULE_SETUP#line 309 "lexer.l"{ SETPOS_NDE(B_NOT); return(B_NOT); }	YY_BREAKcase 92:YY_RULE_SETUP#line 310 "lexer.l"{ SETPOS_NDE(B_AND); return(B_AND); }	YY_BREAKcase 93:YY_RULE_SETUP#line 311 "lexer.l"{ SETPOS_NDE(B_OR); return(B_OR); }	YY_BREAKcase 94:YY_RULE_SETUP#line 312 "lexer.l"{ SETPOS_NDE(B_XOR); return(B_XOR); }	YY_BREAKcase 95:YY_RULE_SETUP#line 314 "lexer.l"{ SETPOS_NDE(B_NOT_EQ); return(ASSIGN); }	YY_BREAKcase 96:YY_RULE_SETUP#line 315 "lexer.l"{ SETPOS_NDE(B_AND_EQ); return(ASSIGN); }	YY_BREAKcase 97:YY_RULE_SETUP#line 316 "lexer.l"{ SETPOS_NDE(B_OR_EQ); return(ASSIGN); }	YY_BREAKcase 98:YY_RULE_SETUP#line 317 "lexer.l"{ SETPOS_NDE(B_XOR_EQ); return(ASSIGN); }	YY_BREAKcase 99:YY_RULE_SETUP#line 319 "lexer.l"{ SETPOS_NDE(L_SHIFT); return(L_SHIFT); }	YY_BREAKcase 100:YY_RULE_SETUP#line 320 "lexer.l"{ SETPOS_NDE(R_SHIFT); return(R_SHIFT); }	YY_BREAKcase 101:YY_RULE_SETUP#line 321 "lexer.l"{ SETPOS_NDE(L_SHIFT_EQ); return(ASSIGN); }	YY_BREAKcase 102:YY_RULE_SETUP#line 322 "lexer.l"{ SETPOS_NDE(R_SHIFT_EQ); return(ASSIGN); }	YY_BREAKcase 103:YY_RULE_SETUP#line 324 "lexer.l"{ SETPOS_NDE(EQUAL); return(COMP_EQ); }	YY_BREAKcase 104:YY_RULE_SETUP#line 325 "lexer.l"{ SETPOS_NDE(LESS); return(COMP_ARITH); }	YY_BREAKcase 105:YY_RULE_SETUP#line 326 "lexer.l"{ SETPOS_NDE(LESS); return(LESS); }	YY_BREAKcase 106:YY_RULE_SETUP#line 327 "lexer.l"{ SETPOS_NDE(LESS_EQ); return(COMP_ARITH); }	YY_BREAKcase 107:YY_RULE_SETUP#line 328 "lexer.l"{ SETPOS_NDE(GRTR); return(COMP_ARITH); }	YY_BREAKcase 108:YY_RULE_SETUP#line 329 "lexer.l"{ SETPOS_NDE(GRTR); return(GRTR); }	YY_BREAKcase 109:YY_RULE_SETUP#line 330 "lexer.l"{ SETPOS_NDE(GRTR_EQ); return(COMP_ARITH); }	YY_BREAKcase 110:YY_RULE_SETUP#line 331 "lexer.l"{ SETPOS_NDE(NOT_EQ); return(COMP_EQ); }	YY_BREAKcase 111:YY_RULE_SETUP#line 333 "lexer.l"{ SETPOS_NDE(EQ); return(EQ); }	YY_BREAKcase 112:YY_RULE_SETUP#line 334 "lexer.l"{ SETPOS_NDE(INCR); return(INCR); }	YY_BREAKcase 113:YY_RULE_SETUP#line 335 "lexer.l"{ SETPOS_NDE(DECR); return(DECR); }	YY_BREAKcase 114:YY_RULE_SETUP#line 337 "lexer.l"{ SETPOS_NDE(LPAREN); return(LPAREN); }	YY_BREAKcase 115:YY_RULE_SETUP#line 338 "lexer.l"{ SETPOS_NDE(RPAREN); return(RPAREN); }	YY_BREAKcase 116:YY_RULE_SETUP#line 339 "lexer.l"{ SETPOS_NDE(LBRCKT); return(LBRCKT); }	YY_BREAKcase 117:YY_RULE_SETUP#line 340 "lexer.l"{ SETPOS_NDE(RBRCKT); return(RBRCKT); }	YY_BREAKcase 118:YY_RULE_SETUP#line 341 "lexer.l"{ SETPOS_NDE(LBRACE); return(LBRACE); }	YY_BREAKcase 119:YY_RULE_SETUP#line 342 "lexer.l"{ SETPOS_NDE(RBRACE); return(RBRACE); }	YY_BREAKcase 120:YY_RULE_SETUP#line 344 "lexer.l"{ SETPOS_NDE(DOT); return(DOT); }	YY_BREAKcase 121:YY_RULE_SETUP#line 345 "lexer.l"{ SETPOS_NDE(ARROW); return(ARROW); }	YY_BREAKcase 122:YY_RULE_SETUP#line 347 "lexer.l"{ SETPOS_NDE(QUESTMARK); return(QUESTMARK); }	YY_BREAKcase 123:YY_RULE_SETUP#line 348 "lexer.l"{ SETPOS_NDE(COLON); return(COLON); }	YY_BREAKcase 124:YY_RULE_SETUP#line 349 "lexer.l"{ SETPOS_NDE(SEMICOLON); return(SEMICOLON); }	YY_BREAKcase 125:YY_RULE_SETUP#line 350 "lexer.l"{ SETPOS_NDE(COMMA); return(COMMA); }	YY_BREAKcase 126:YY_RULE_SETUP#line 351 "lexer.l"{ SETPOS_LEAF(ELLIPSIS,TN_ELLIPSIS); return(ELLIPSIS); }	YY_BREAK/* Unused (invalid) characters */case 127:YY_RULE_SETUP#line 354 "lexer.l"{ SETPOS_NDE(BACKQUOTE); return(BACKQUOTE); }	YY_BREAKcase 128:YY_RULE_SETUP#line 355 "lexer.l"{ SETPOS_NDE(AT); return(AT); }	YY_BREAKcase 129:YY_RULE_SETUP#line 356 "lexer.l"{ SETPOS_NDE(DOLLAR); return(DOLLAR); }	YY_BREAK/* Preprocessor Stuff */case 130:YY_RULE_SETUP#line 359 "lexer.l"{ Parse_TOS->yylineno++; Parse_TOS->yynxtcol = 0; }	YY_BREAKcase 131:*yy_cp = yy_hold_char; /* undo effects of setting up yytext */yy_c_buf_p = yy_cp -= 1;YY_DO_BEFORE_ACTION; /* set up yytext again */YY_RULE_SETUP#line 360 "lexer.l"{ BEGIN_PP(); get_lineno(); }	YY_BREAKcase 132:YY_RULE_SETUP#line 361 "lexer.l"{                             int n = yyleng;                             BEGIN_PP();                             tokn_ptr = tokn_buff;                             if (tokn_ptr + n < tokn_end) {                                 memcpy(tokn_ptr,yytext,n);                                 tokn_ptr += n;                             } else                                 yywarn("Preprocessor line too long");                             SETPOS_LEAF(PP_DEFINE,TN_CPP);                           }	YY_BREAKcase 133:YY_RULE_SETUP#line 372 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 134:YY_RULE_SETUP#line 373 "lexer.l"{ BEGIN_PP(); get_lineno(); }	YY_BREAKcase 135:YY_RULE_SETUP#line 374 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 136:YY_RULE_SETUP#line 375 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 137:YY_RULE_SETUP#line 376 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 138:YY_RULE_SETUP#line 377 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 139:YY_RULE_SETUP#line 378 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 140:YY_RULE_SETUP#line 379 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 141:YY_RULE_SETUP#line 380 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 142:YY_RULE_SETUP#line 381 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 143:YY_RULE_SETUP#line 382 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 144:YY_RULE_SETUP#line 383 "lexer.l"{ BEGIN_PP(); }	YY_BREAKcase 145:YY_RULE_SETUP#line 385 "lexer.l"{ SETPOS_NDE(LB_SIGN); return(LB_SIGN); }	YY_BREAKcase 146:YY_RULE_SETUP#line 386 "lexer.l"{ SETPOS_NDE(DOUB_LB_SIGN); return(DOUB_LB_SIGN); }	YY_BREAKcase 147:YY_RULE_SETUP#line 388 "lexer.l"{  /* Preprocessor continuation line */                         Parse_TOS->yylineno++;                         Parse_TOS->yynxtcol = 0;                       }	YY_BREAKcase 148:YY_RULE_SETUP#line 393 "lexer.l"{  /* End of this preprocessor logical line */                         lvalp->node = (treenode *) NULL;                         in_preprocess = 0;                         yyless(0);    /* Hack! */                         BEGIN(INITIAL);                       }	YY_BREAKcase 149:YY_RULE_SETUP#line 400 "lexer.l"{ /* Swallow cpp junk to prevent it being echo'd */                       }	YY_BREAKcase 150:YY_RULE_SETUP#line 403 "lexer.l"{    /* Identifier */                         int last_was_type = (err_type == TN_TYPE)                                          && (err_tok != TYPEDEF)                                          && (err_tok != AUTO)                                          && (err_tok != EXTRN)                                          && (err_tok != STATIC)                                          && (err_tok != VOLATILE)                                          && (err_tok != CONST)                                          && (err_tok != REGISTR);                         SETPOS_LEAF(IDENT,TN_IDENT);                         lvalp->leaf->data.sval = nmelook(yytext,yyleng+1);                         /* Check symbol table and insert */                         /* ptr back to definition.       */                         {	symentry_t *se;				if (DBG)	printf("%s:%d lookup %s <%s>\n",						lvalp->leaf->hdr.fnm,						lvalp->leaf->hdr.line,						yytext, lvalp->leaf->data.sval->str);				se = symtab_lookup(ParseStack->contxt->syms,                                              lvalp->leaf->data.sval);				if (DBG)				{ if (!se) printf("	new\n");				  else				  {	extern void show_hashtab(hashtab_t *that, int, FILE *fp);					printf("	old (%u) -- owner %s %u\n", se,					se->nes && se->nes->owner ? se->nes->owner : "no owner",					se && se->nes? se->nes : 0);					if (se && se->nes && se->nes->htab)					show_hashtab(se->nes->htab, 1, stdout);				  }				}				lvalp->leaf->syment = se;				if (! last_was_type)				{	if (se && is_typedef(se))					{	err_type = lvalp->leaf->hdr.type = TN_TYPE;						err_tok = lvalp->leaf->hdr.tok = TYPEDEF_NAME;						return(TYPEDEF_NAME);					}				}                         }                         return(IDENT);                       }	YY_BREAKcase 151:#line 454 "lexer.l"case 152:#line 455 "lexer.l"case 153:YY_RULE_SETUP#line 455 "lexer.l"{  /* An integer */                         SETPOS_LEAF(INUM,TN_INT);                   

⌨️ 快捷键说明

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