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

📄 lexer.c

📁 linux 下的源代码分析阅读器 red hat公司新版
💻 C
📖 第 1 页 / 共 5 页
字号:
		/* Support of yytext. */		*yy_cp = yy_hold_char;		/* yy_bp points to the position in yy_ch_buf of the start of		 * the current run.		 */		yy_bp = yy_cp;		yy_current_state = yy_start;		yy_current_state += YY_AT_BOL();yy_match:		do			{			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];			if ( yy_accept[yy_current_state] )				{				yy_last_accepting_state = yy_current_state;				yy_last_accepting_cpos = yy_cp;				}			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )				{				yy_current_state = (int) yy_def[yy_current_state];				if ( yy_current_state >= 797 )					yy_c = yy_meta[(unsigned int) yy_c];				}			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];			++yy_cp;			}		while ( yy_base[yy_current_state] != 1163 );yy_find_action:		yy_act = yy_accept[yy_current_state];		if ( yy_act == 0 )			{ /* have to back up */			yy_cp = yy_last_accepting_cpos;			yy_current_state = yy_last_accepting_state;			yy_act = yy_accept[yy_current_state];			}		YY_DO_BEFORE_ACTION;do_action:	/* This label is used only to access EOF actions. */		switch ( yy_act )	{ /* beginning of action switch */			case 0: /* must back up */			/* undo the effects of YY_DO_BEFORE_ACTION */			*yy_cp = yy_hold_char;			yy_cp = yy_last_accepting_cpos;			yy_current_state = yy_last_accepting_state;			goto yy_find_action;case 1:YY_RULE_SETUP#line 121 "lexer.l"{ BEGIN(COMMENT); sn_advance_column(2); }	YY_BREAKcase 2:*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 123 "lexer.l"{ sn_advance_column(yyleng); }	YY_BREAKcase 3:YY_RULE_SETUP#line 125 "lexer.l"{  char *filename, *end;  filename = strchr(yytext, '\"');  if (!filename)  {     filename = strchr(yytext, '<');  }   /* Skip the leading delimiter. */  filename++;  end = strchr(filename, '\"');  if (!end)  {     end = strchr(filename, '>');  }  /* Lop off the trailing delimiter. */  *end = 0;  include(filename);  emit_include(filename, sn_line(), sn_column() + (filename - yytext - 1), 	 		 sn_line(), sn_column() + strlen(filename) + 1);  sn_advance_column(yyleng);}	YY_BREAKcase 4:YY_RULE_SETUP#line 153 "lexer.l"{  sn_advance_line();  sn_reset_column();  ifdef_nesting++;}	YY_BREAKcase 5:YY_RULE_SETUP#line 159 "lexer.l"{  sn_advance_line();  sn_reset_column();  BEGIN(ELSEDIRECTIVE);}	YY_BREAKcase 6:YY_RULE_SETUP#line 165 "lexer.l"{  assert(ifdef_nesting >= 0);  sn_advance_line();  sn_reset_column();  /* Just left a non-nested #ifdef. */  ifdef_nesting--;}	YY_BREAKcase 7:YY_RULE_SETUP#line 175 "lexer.l"{  assert(ifdef_nesting >= 0);  sn_advance_line();  sn_reset_column();  ifdef_nesting--;  if (ifdef_nesting == 0)  {    /* Just fallen out of the nesting with this #endif. */    BEGIN(INITIAL);  }}	YY_BREAKcase 8:YY_RULE_SETUP#line 189 "lexer.l"{  /* Eat conditional code. */  sn_advance_column(1);}	YY_BREAKcase 9:YY_RULE_SETUP#line 194 "lexer.l"{  /* Ditto. */  sn_advance_line();  sn_reset_column();}	YY_BREAKcase 10:*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 200 "lexer.l"{  /* Ignore all other C preprocessor directives. */  sn_advance_column(yyleng);}	YY_BREAKcase 11:YY_RULE_SETUP#line 205 "lexer.l"{  sn_advance_column(2);  BEGIN(PREDIRECTIVE);}	YY_BREAKcase 12:YY_RULE_SETUP#line 210 "lexer.l"{  sn_advance_column(yyleng);}	YY_BREAKcase 13:YY_RULE_SETUP#line 214 "lexer.l"{  sn_advance_line();  sn_reset_column();}	YY_BREAKcase 14:YY_RULE_SETUP#line 219 "lexer.l"{  unput(yytext[0]);  BEGIN(DIRECTIVE);}	YY_BREAKcase 15:YY_RULE_SETUP#line 224 "lexer.l"{  char *filename, *end;  /* Skip leading text. */   filename = strchr(yytext, '\'');  if (!filename)  {    filename = strchr(yytext, '"');  }  /* Skip the leading quote marker. */  filename++;    /* Lop off the trailing quote marker. */  end = strchr(filename, '\'');  if (!end)  {    end = strchr(filename, '"');  }  *end = 0;  include(filename);  emit_include(filename, sn_line(), sn_column() + (filename - yytext - 1), 			sn_line(), sn_column() + strlen(filename) + 1);  sn_advance_column(yyleng);  BEGIN(POSTDIRECTIVE);}	YY_BREAKcase 16:YY_RULE_SETUP#line 253 "lexer.l"{  sn_advance_column(yyleng);  BEGIN(POSTDIRECTIVE);}	YY_BREAKcase 17:YY_RULE_SETUP#line 258 "lexer.l"{  sn_advance_column(2);  BEGIN(INITIAL);}	YY_BREAKcase 18:YY_RULE_SETUP#line 263 "lexer.l"{  sn_advance_column(yyleng);}	YY_BREAKcase 19:YY_RULE_SETUP#line 267 "lexer.l"{  sn_advance_line();  sn_reset_column();  BEGIN(INITIAL);}	YY_BREAKcase 20:YY_RULE_SETUP#line 273 "lexer.l"{ sn_advance_column(1); /* eat junk we don't expect */ }	YY_BREAKcase 21:YY_RULE_SETUP#line 275 "lexer.l"{   literal("bitstring", yytext);   sn_advance_column(yyleng);   return BITLITERAL;}	YY_BREAKcase 22:YY_RULE_SETUP#line 281 "lexer.l"{    literal("boolean", yytext);    sn_advance_column(yyleng);     return BOOLITERAL;}	YY_BREAKcase 23:YY_RULE_SETUP#line 287 "lexer.l"{    literal("char", yytext);    sn_advance_column(yyleng);     return CHARLITERAL;}	YY_BREAKcase 24:YY_RULE_SETUP#line 293 "lexer.l"{    literal("empty", yytext);    sn_advance_column(yyleng);    return EMPTYLITERAL;}	YY_BREAKcase 25:YY_RULE_SETUP#line 299 "lexer.l"{    literal("float", yytext);    sn_advance_column(yyleng);     return FLOATLITERAL;}	YY_BREAKcase 26:YY_RULE_SETUP#line 305 "lexer.l"{    literal("integer", yytext);    sn_advance_column(yyleng);    return INTLITERAL;}	YY_BREAKcase 27:YY_RULE_SETUP#line 311 "lexer.l"{    literal("string", yytext);    sn_advance_column(yyleng);    return STRINGLITERAL;}	YY_BREAKcase 28:YY_RULE_SETUP#line 317 "lexer.l"{ symbol("dot"); sn_advance_column(1); return '.'; }	YY_BREAKcase 29:YY_RULE_SETUP#line 318 "lexer.l"{ symbol("assignment"); sn_advance_column(2); return ASSIGN; }	YY_BREAKcase 30:YY_RULE_SETUP#line 319 "lexer.l"{ symbol("less-than-or-equal"); sn_advance_column(2); return LESSTHANEQ; }	YY_BREAKcase 31:YY_RULE_SETUP#line 320 "lexer.l"{ symbol("greater-than-or-equal"); sn_advance_column(2); return GREATERTHANEQ; }	YY_BREAKcase 32:YY_RULE_SETUP#line 321 "lexer.l"{ symbol("less-than"); sn_advance_column(1); return '<'; }	YY_BREAKcase 33:YY_RULE_SETUP#line 322 "lexer.l"{ symbol("greater-than"); sn_advance_column(1); return '>'; }	YY_BREAKcase 34:YY_RULE_SETUP#line 323 "lexer.l"{ symbol("not-equal"); sn_advance_column(2); return NOTEQ; }	YY_BREAKcase 35:YY_RULE_SETUP#line 324 "lexer.l"{ symbol("equal"); sn_advance_column(1); return '='; }	YY_BREAKcase 36:YY_RULE_SETUP#line 325 "lexer.l"{ symbol("colon"); sn_advance_column(1); return ':'; }	YY_BREAKcase 37:YY_RULE_SETUP#line 327 "lexer.l"{			symbol("semicolon"); 			yylval.punct.line = sn_line();			yylval.punct.startcol = sn_column();			sn_advance_column(1); 			yylval.punct.endcol = sn_column();			return ';';

⌨️ 快捷键说明

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