📄 initscan.c
字号:
case 28:YY_USER_ACTION# line 171 "scan.l"/* separates name and definition */ YY_BREAKcase 29:YY_USER_ACTION# line 173 "scan.l"{ strcpy( (char *) nmdef, yytext ); /* Skip trailing whitespace. */ for ( i = strlen( (char *) nmdef ) - 1; i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t'); --i ) ; nmdef[i + 1] = '\0'; ndinstal( nmstr, nmdef ); didadef = true; } YY_BREAKcase 30:YY_USER_ACTION# line 188 "scan.l"{ if ( ! didadef ) synerr( "incomplete name definition" ); BEGIN(INITIAL); ++linenum; } YY_BREAKcase 31:YY_USER_ACTION# line 195 "scan.l"++linenum; BEGIN(INITIAL); RETURNNAME; YY_BREAKcase 32:YY_USER_ACTION# line 198 "scan.l"++linenum; BEGIN(INITIAL); YY_BREAKcase 33:YY_USER_ACTION# line 199 "scan.l" YY_BREAKcase 34:YY_USER_ACTION# line 200 "scan.l"{ if ( all_upper( yytext ) ) reject_really_used = checking_used; else synerr( "unrecognized %used/%unused construct" ); } YY_BREAKcase 35:YY_USER_ACTION# line 207 "scan.l"{ if ( all_lower( yytext ) ) yymore_really_used = checking_used; else synerr( "unrecognized %used/%unused construct" ); } YY_BREAKcase 36:YY_USER_ACTION# line 214 "scan.l"synerr( "unrecognized %used/%unused construct" ); YY_BREAKcase 37:YY_USER_ACTION# line 217 "scan.l"++bracelevel; yyless( 2 ); /* eat only %{ */ YY_BREAKcase 38:YY_USER_ACTION# line 218 "scan.l"--bracelevel; yyless( 2 ); /* eat only %} */ YY_BREAKcase 39:YY_USER_ACTION# line 220 "scan.l"ACTION_ECHO; /* indented code in prolog */ YY_BREAKcase 40:YY_USER_ACTION# line 222 "scan.l"{ /* non-indented code */ if ( bracelevel <= 0 ) { /* not in %{ ... %} */ yyless( 0 ); /* put it all back */ mark_prolog(); BEGIN(SECT2); } else ACTION_ECHO; } YY_BREAKcase 41:YY_USER_ACTION# line 233 "scan.l"ACTION_ECHO; YY_BREAKcase 42:YY_USER_ACTION# line 234 "scan.l"++linenum; ACTION_ECHO; YY_BREAKcase YY_STATE_EOF(SECT2PROLOG):# line 236 "scan.l"{ mark_prolog(); sectnum = 0; yyterminate(); /* to stop the parser */ } YY_BREAKcase 43:YY_USER_ACTION# line 242 "scan.l"++linenum; /* allow blank lines in section 2 */ YY_BREAKcase 44:YY_USER_ACTION# line 244 "scan.l"{ indented_code = (yytext[0] != '%'); doing_codeblock = true; bracelevel = 1; if ( indented_code ) ACTION_ECHO; BEGIN(CODEBLOCK_2); } YY_BREAKcase 45:YY_USER_ACTION# line 255 "scan.l"BEGIN(SC); return '<'; YY_BREAKcase 46:YY_USER_ACTION# line 256 "scan.l"return '^'; YY_BREAKcase 47:YY_USER_ACTION# line 257 "scan.l"BEGIN(QUOTE); return '"'; YY_BREAKcase 48:*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 */YY_USER_ACTION# line 258 "scan.l"BEGIN(NUM); return '{'; YY_BREAKcase 49:YY_USER_ACTION# line 259 "scan.l"BEGIN(BRACEERROR); YY_BREAKcase 50:*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 */YY_USER_ACTION# line 260 "scan.l"return '$'; YY_BREAKcase 51:YY_USER_ACTION# line 262 "scan.l"{ bracelevel = 1; BEGIN(PERCENT_BRACE_ACTION); return '\n'; } YY_BREAKcase 52:YY_USER_ACTION# line 267 "scan.l"continued_action = true; ++linenum; return '\n'; YY_BREAKcase 53:YY_USER_ACTION# line 269 "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 54:YY_USER_ACTION# line 280 "scan.l"{ bracelevel = 0; continued_action = false; BEGIN(ACTION); unput( '\n' ); /* so <ACTION> sees it */ return '\n'; } YY_BREAKcase 55:YY_USER_ACTION# line 288 "scan.l"return EOF_OP; YY_BREAKcase 56:YY_USER_ACTION# line 290 "scan.l"{ sectnum = 3; BEGIN(SECT3); yyterminate(); /* to stop the parser */ } YY_BREAKcase 57:YY_USER_ACTION# line 296 "scan.l"{ int cclval; strcpy( nmstr, yytext ); /* Check to see if we've already encountered this * ccl. */ if ( (cclval = ccllookup( (Char *) nmstr )) ) { if ( input() != ']' ) synerr( "bad character class" ); 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. */ yyless( 1 ); BEGIN(FIRSTCCL); return '['; } } YY_BREAKcase 58:YY_USER_ACTION# line 330 "scan.l"{ register Char *nmdefptr; Char *ndlookup(); strcpy( nmstr, yytext + 1 ); nmstr[yyleng - 2] = '\0'; /* chop trailing brace */ if ( ! (nmdefptr = ndlookup( nmstr )) ) format_synerr( "undefined definition {%s}", nmstr ); else { /* push back name surrounded by ()'s */ int len = strlen( (char *) nmdefptr ); if ( lex_compat || nmdefptr[0] == '^' || (len > 0 && nmdefptr[len - 1] == '$') ) { /* don't use ()'s after all */ PUT_BACK_STRING((char *) nmdefptr, 0); if ( nmdefptr[0] == '^' ) BEGIN(CARETISBOL); } else { unput(')'); PUT_BACK_STRING((char *) nmdefptr, 0); unput('('); } } } YY_BREAKcase 59:YY_USER_ACTION# line 363 "scan.l"return (unsigned char) yytext[0]; YY_BREAKcase 60:YY_USER_ACTION# line 364 "scan.l"RETURNCHAR; YY_BREAKcase 61:YY_USER_ACTION# line 367 "scan.l"return (unsigned char) yytext[0]; YY_BREAKcase 62:YY_USER_ACTION# line 368 "scan.l"BEGIN(SECT2); return '>'; YY_BREAKcase 63:*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 */YY_USER_ACTION# line 369 "scan.l"BEGIN(CARETISBOL); return '>'; YY_BREAKcase 64:YY_USER_ACTION# line 370 "scan.l"RETURNNAME; YY_BREAKcase 65:YY_USER_ACTION# line 371 "scan.l"{ format_synerr( "bad <start condition>: %s", yytext ); } YY_BREAKcase 66:YY_USER_ACTION# line 375 "scan.l"BEGIN(SECT2); return '^'; YY_BREAKcase 67:YY_USER_ACTION# line 378 "scan.l"RETURNCHAR; YY_BREAKcase 68:YY_USER_ACTION# line 379 "scan.l"BEGIN(SECT2); return '"'; YY_BREAKcase 69:YY_USER_ACTION# line 381 "scan.l"{ synerr( "missing quote" ); BEGIN(SECT2); ++linenum; return '"'; } YY_BREAKcase 70:*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 */YY_USER_ACTION# line 389 "scan.l"BEGIN(CCL); 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 */YY_USER_ACTION# line 390 "scan.l"return '^'; YY_BREAKcase 72:YY_USER_ACTION# line 391 "scan.l"BEGIN(CCL); RETURNCHAR; YY_BREAKcase 73:*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 */YY_USER_ACTION# line 393 "scan.l"return '-'; YY_BREAKcase 74:YY_USER_ACTION# line 394 "scan.l"RETURNCHAR; YY_BREAKcase 75:YY_USER_ACTION# line 395 "scan.l"BEGIN(SECT2); return ']'; YY_BREAKcase 76:YY_USER_ACTION# line 396 "scan.l"{ synerr( "bad character class" ); BEGIN(SECT2); return ']'; } YY_BREAKcase 77:YY_USER_ACTION# line 403 "scan.l"{ yylval = myctoi( yytext ); return NUMBER; } YY_BREAKcase 78:YY_USER_ACTION
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -