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

📄 initscan.c

📁 操作系统源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
BEGIN(NUM); return ( '{' );	YY_BREAKcase 55:# line 274 "scan.l"BEGIN(BRACEERROR);	YY_BREAKcase 56:*yy_cp = yy_hold_char; /* undo effects of setting up yytext */yy_c_buf_p = yy_cp = yy_bp + 1;YY_DO_BEFORE_ACTION; /* set up yytext again */# line 275 "scan.l"return ( '$' );	YY_BREAKcase 57:# line 277 "scan.l"{			bracelevel = 1;			BEGIN(PERCENT_BRACE_ACTION);			return ( '\n' );			}	YY_BREAKcase 58:# line 282 "scan.l"continued_action = true; ++linenum; return ( '\n' );	YY_BREAKcase 59:# line 284 "scan.l"{			/* this rule is separate from the one below because			 * otherwise we get variable trailing context, so			 * we can't build the scanner using -{f,F}			 */			bracelevel = 0;			continued_action = false;			BEGIN(ACTION);			return ( '\n' );			}	YY_BREAKcase 60:*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 */# line 295 "scan.l"{			bracelevel = 0;			continued_action = false;			BEGIN(ACTION);			return ( '\n' );			}	YY_BREAKcase 61:# line 302 "scan.l"++linenum; return ( '\n' );	YY_BREAKcase 62:# line 304 "scan.l"return ( EOF_OP );	YY_BREAKcase 63:# line 306 "scan.l"{			sectnum = 3;			BEGIN(SECT3);			return ( EOF ); /* to stop the parser */			}	YY_BREAKcase 64:# line 312 "scan.l"{			int cclval;			(void) strcpy( nmstr, (char *) yytext );			/* check to see if we've already encountered this ccl */			if ( (cclval = ccllookup( (Char *) nmstr )) )			    {			    yylval = cclval;			    ++cclreuse;			    return ( PREVCCL );			    }			else			    {			    /* we fudge a bit.  We know that this ccl will			     * soon be numbered as lastccl + 1 by cclinit			     */			    cclinstal( (Char *) nmstr, lastccl + 1 );			    /* push back everything but the leading bracket			     * so the ccl can be rescanned			     */			    PUT_BACK_STRING((Char *) nmstr, 1);			    BEGIN(FIRSTCCL);			    return ( '[' );			    }			}	YY_BREAKcase 65:# line 341 "scan.l"{			register Char *nmdefptr;			Char *ndlookup();			(void) strcpy( nmstr, (char *) yytext );			nmstr[yyleng - 1] = '\0';  /* chop trailing brace */			/* lookup from "nmstr + 1" to chop leading brace */			if ( ! (nmdefptr = ndlookup( nmstr + 1 )) )			    synerr( "undefined {name}" );			else			    { /* push back name surrounded by ()'s */			    unput(')');			    PUT_BACK_STRING(nmdefptr, 0);			    unput('(');			    }			}	YY_BREAKcase 66:# line 360 "scan.l"return ( yytext[0] );	YY_BREAKcase 67:# line 361 "scan.l"RETURNCHAR;	YY_BREAKcase 68:# line 362 "scan.l"++linenum; return ( '\n' );	YY_BREAKcase 69:# line 365 "scan.l"return ( ',' );	YY_BREAKcase 70:# line 366 "scan.l"BEGIN(SECT2); return ( '>' );	YY_BREAKcase 71:*yy_cp = yy_hold_char; /* undo effects of setting up yytext */yy_c_buf_p = yy_cp = yy_bp + 1;YY_DO_BEFORE_ACTION; /* set up yytext again */# line 367 "scan.l"BEGIN(CARETISBOL); return ( '>' );	YY_BREAKcase 72:# line 368 "scan.l"RETURNNAME;	YY_BREAKcase 73:# line 369 "scan.l"synerr( "bad start condition name" );	YY_BREAKcase 74:# line 371 "scan.l"BEGIN(SECT2); return ( '^' );	YY_BREAKcase 75:# line 374 "scan.l"RETURNCHAR;	YY_BREAKcase 76:# line 375 "scan.l"BEGIN(SECT2); return ( '"' );	YY_BREAKcase 77:# line 377 "scan.l"{			synerr( "missing quote" );			BEGIN(SECT2);			++linenum;			return ( '"' );			}	YY_BREAKcase 78:*yy_cp = yy_hold_char; /* undo effects of setting up yytext */yy_c_buf_p = yy_cp = yy_bp + 1;YY_DO_BEFORE_ACTION; /* set up yytext again */# line 385 "scan.l"BEGIN(CCL); return ( '^' );	YY_BREAKcase 79:*yy_cp = yy_hold_char; /* undo effects of setting up yytext */yy_c_buf_p = yy_cp = yy_bp + 1;YY_DO_BEFORE_ACTION; /* set up yytext again */# line 386 "scan.l"return ( '^' );	YY_BREAKcase 80:# line 387 "scan.l"BEGIN(CCL); yylval = '-'; return ( CHAR );	YY_BREAKcase 81:# line 388 "scan.l"BEGIN(CCL); RETURNCHAR;	YY_BREAKcase 82:*yy_cp = yy_hold_char; /* undo effects of setting up yytext */yy_c_buf_p = yy_cp = yy_bp + 1;YY_DO_BEFORE_ACTION; /* set up yytext again */# line 390 "scan.l"return ( '-' );	YY_BREAKcase 83:# line 391 "scan.l"RETURNCHAR;	YY_BREAKcase 84:# line 392 "scan.l"BEGIN(SECT2); return ( ']' );	YY_BREAKcase 85:# line 395 "scan.l"{			yylval = myctoi( yytext );			return ( NUMBER );			}	YY_BREAKcase 86:# line 400 "scan.l"return ( ',' );	YY_BREAKcase 87:# line 401 "scan.l"BEGIN(SECT2); return ( '}' );	YY_BREAKcase 88:# line 403 "scan.l"{			synerr( "bad character inside {}'s" );			BEGIN(SECT2);			return ( '}' );			}	YY_BREAKcase 89:# line 409 "scan.l"{			synerr( "missing }" );			BEGIN(SECT2);			++linenum;			return ( '}' );			}	YY_BREAKcase 90:# line 417 "scan.l"synerr( "bad name in {}'s" ); BEGIN(SECT2);	YY_BREAKcase 91:# line 418 "scan.l"synerr( "missing }" ); ++linenum; BEGIN(SECT2);	YY_BREAKcase 92:# line 421 "scan.l"bracelevel = 0;	YY_BREAKcase 93:# line 422 "scan.l"{			ACTION_ECHO;			CHECK_REJECT(yytext);			}	YY_BREAKcase 94:# line 426 "scan.l"{			ACTION_ECHO;			CHECK_YYMORE(yytext);			}	YY_BREAKcase 95:# line 430 "scan.l"ACTION_ECHO;	YY_BREAKcase 96:# line 431 "scan.l"{			++linenum;			ACTION_ECHO;			if ( bracelevel == 0 ||			     (doing_codeblock && indented_code) )			    {			    if ( ! doing_codeblock )				fputs( "\tYY_BREAK\n", temp_action_file );			    			    doing_codeblock = false;			    BEGIN(SECT2);			    }			}	YY_BREAK	/* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */case 97:# line 447 "scan.l"ACTION_ECHO; ++bracelevel;	YY_BREAKcase 98:# line 448 "scan.l"ACTION_ECHO; --bracelevel;	YY_BREAKcase 99:# line 449 "scan.l"ACTION_ECHO;	YY_BREAKcase 100:# line 450 "scan.l"ACTION_ECHO;	YY_BREAKcase 101:# line 451 "scan.l"ACTION_ECHO; BEGIN(ACTION_COMMENT);	YY_BREAKcase 102:# line 452 "scan.l"ACTION_ECHO; /* character constant */	YY_BREAKcase 103:# line 453 "scan.l"ACTION_ECHO; BEGIN(ACTION_STRING);	YY_BREAKcase 104:# line 454 "scan.l"{			++linenum;			ACTION_ECHO;			if ( bracelevel == 0 )			    {			    fputs( "\tYY_BREAK\n", temp_action_file );			    BEGIN(SECT2);			    }			}	YY_BREAKcase 105:# line 463 "scan.l"ACTION_ECHO;	YY_BREAKcase 106:# line 465 "scan.l"ACTION_ECHO; BEGIN(ACTION);	YY_BREAKcase 107:# line 466 "scan.l"ACTION_ECHO;	YY_BREAKcase 108:# line 467 "scan.l"ACTION_ECHO;	YY_BREAKcase 109:# line 468 "scan.l"++linenum; ACTION_ECHO;	YY_BREAKcase 110:# line 469 "scan.l"ACTION_ECHO;	YY_BREAKcase 111:# line 471 "scan.l"ACTION_ECHO;	YY_BREAKcase 112:# line 472 "scan.l"ACTION_ECHO;	YY_BREAKcase 113:# line 473 "scan.l"++linenum; ACTION_ECHO;	YY_BREAKcase 114:# line 474 "scan.l"ACTION_ECHO; BEGIN(ACTION);	YY_BREAKcase 115:# line 475 "scan.l"ACTION_ECHO;	YY_BREAKcase YY_STATE_EOF(ACTION):case YY_STATE_EOF(ACTION_COMMENT):case YY_STATE_EOF(ACTION_STRING):# line 477 "scan.l"{			synerr( "EOF encountered inside an action" );			yyterminate();			}	YY_BREAKcase 117:# line 483 "scan.l"{			yylval = myesc( yytext );			return ( CHAR );			}	YY_BREAKcase 118:# line 488 "scan.l"{			yylval = myesc( yytext );			BEGIN(CCL);			return ( CHAR );			}	YY_BREAKcase 119:# line 495 "scan.l"ECHO;	YY_BREAKcase 120:# line 496 "scan.l"YY_FATAL_ERROR( "flex scanner jammed" );	YY_BREAKcase YY_STATE_EOF(INITIAL):case YY_STATE_EOF(SECT2):case YY_STATE_EOF(SECT3):case YY_STATE_EOF(CODEBLOCK):case YY_STATE_EOF(PICKUPDEF):case YY_STATE_EOF(SC):case YY_STATE_EOF(CARETISBOL):case YY_STATE_EOF(NUM):case YY_STATE_EOF(QUOTE):case YY_STATE_EOF(FIRSTCCL):case YY_STATE_EOF(CCL):case YY_STATE_EOF(RECOVER):case YY_STATE_EOF(BRACEERROR):case YY_STATE_EOF(C_COMMENT):case YY_STATE_EOF(PERCENT_BRACE_ACTION):case YY_STATE_EOF(USED_LIST):case YY_STATE_EOF(CODEBLOCK_2):case YY_STATE_EOF(XLATION):    yyterminate();	    case YY_END_OF_BUFFER:		{		/* amount of text matched not including the EOB char */		int yy_amount_of_matched_text = yy_cp - yytext - 1;		/* undo the effects of YY_DO_BEFORE_ACTION */		*yy_cp = yy_hold_char;		/* note that here we test for yy_c_buf_p "<=" to the position

⌨️ 快捷键说明

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