📄 initscan.c
字号:
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 + -