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

📄 scan-gram.c

📁 GNU的词法/语法分析器bison源码
💻 C
📖 第 1 页 / 共 5 页
字号:
			else if ( yy_act < 106 )				fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",				         (long)yy_rule_linenum[yy_act], gram_text );			else if ( yy_act == 106 )				fprintf( stderr, "--accepting default rule (\"%s\")\n",				         gram_text );			else if ( yy_act == 107 )				fprintf( stderr, "--(end of buffer or a NUL)\n" );			else				fprintf( stderr, "--EOF (start condition %d)\n", YY_START );			}		switch ( yy_act )	{ /* beginning of action switch *//* %% [13.0] actions go here */			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;/* Comments and white space.  */case 1:YY_RULE_SETUP#line 176 "scan-gram.l"warn_at (*loc, _("stray `,' treated as white space"));	YY_BREAKcase 2:/* rule 2 can match eol */#line 178 "scan-gram.l"case 3:/* rule 3 can match eol */YY_RULE_SETUP#line 178 "scan-gram.l";	YY_BREAKcase 4:YY_RULE_SETUP#line 179 "scan-gram.l"{    token_start = loc->start;    context_state = YY_START;    BEGIN SC_YACC_COMMENT;  }	YY_BREAK/* #line directives are not documented, and may be withdrawn or     modified in future versions of Bison.  */case 5:/* rule 5 can match eol */YY_RULE_SETUP#line 187 "scan-gram.l"{    handle_syncline (gram_text + sizeof "#line " - 1);  }	YY_BREAK/*----------------------------.  | Scanning Bison directives.  |  `----------------------------*/case 6:YY_RULE_SETUP#line 198 "scan-gram.l"return PERCENT_NONASSOC;	YY_BREAKcase 7:YY_RULE_SETUP#line 199 "scan-gram.l"return PERCENT_DEBUG;	YY_BREAKcase 8:YY_RULE_SETUP#line 200 "scan-gram.l"return PERCENT_DEFAULT_PREC;	YY_BREAKcase 9:YY_RULE_SETUP#line 201 "scan-gram.l"return PERCENT_DEFINE;	YY_BREAKcase 10:YY_RULE_SETUP#line 202 "scan-gram.l"return PERCENT_DEFINES;	YY_BREAKcase 11:YY_RULE_SETUP#line 203 "scan-gram.l"token_type = PERCENT_DESTRUCTOR; BEGIN SC_PRE_CODE;	YY_BREAKcase 12:YY_RULE_SETUP#line 204 "scan-gram.l"return PERCENT_DPREC;	YY_BREAKcase 13:YY_RULE_SETUP#line 205 "scan-gram.l"return PERCENT_ERROR_VERBOSE;	YY_BREAKcase 14:YY_RULE_SETUP#line 206 "scan-gram.l"return PERCENT_EXPECT;	YY_BREAKcase 15:YY_RULE_SETUP#line 207 "scan-gram.l"return PERCENT_EXPECT_RR;	YY_BREAKcase 16:YY_RULE_SETUP#line 208 "scan-gram.l"return PERCENT_FILE_PREFIX;	YY_BREAKcase 17:YY_RULE_SETUP#line 209 "scan-gram.l"return PERCENT_YACC;	YY_BREAKcase 18:YY_RULE_SETUP#line 210 "scan-gram.l"token_type = PERCENT_INITIAL_ACTION; BEGIN SC_PRE_CODE;	YY_BREAKcase 19:YY_RULE_SETUP#line 211 "scan-gram.l"return PERCENT_GLR_PARSER;	YY_BREAKcase 20:YY_RULE_SETUP#line 212 "scan-gram.l"return PERCENT_LEFT;	YY_BREAKcase 21:YY_RULE_SETUP#line 213 "scan-gram.l"token_type = PERCENT_LEX_PARAM; BEGIN SC_PRE_CODE;	YY_BREAKcase 22:YY_RULE_SETUP#line 214 "scan-gram.l"return PERCENT_LOCATIONS;	YY_BREAKcase 23:YY_RULE_SETUP#line 215 "scan-gram.l"return PERCENT_MERGE;	YY_BREAKcase 24:YY_RULE_SETUP#line 216 "scan-gram.l"return PERCENT_NAME_PREFIX;	YY_BREAKcase 25:YY_RULE_SETUP#line 217 "scan-gram.l"return PERCENT_NO_DEFAULT_PREC;	YY_BREAKcase 26:YY_RULE_SETUP#line 218 "scan-gram.l"return PERCENT_NO_LINES;	YY_BREAKcase 27:YY_RULE_SETUP#line 219 "scan-gram.l"return PERCENT_NONASSOC;	YY_BREAKcase 28:YY_RULE_SETUP#line 220 "scan-gram.l"return PERCENT_NONDETERMINISTIC_PARSER;	YY_BREAKcase 29:YY_RULE_SETUP#line 221 "scan-gram.l"return PERCENT_NTERM;	YY_BREAKcase 30:YY_RULE_SETUP#line 222 "scan-gram.l"return PERCENT_OUTPUT;	YY_BREAKcase 31:YY_RULE_SETUP#line 223 "scan-gram.l"token_type = PERCENT_PARSE_PARAM; BEGIN SC_PRE_CODE;	YY_BREAKcase 32:YY_RULE_SETUP#line 224 "scan-gram.l"rule_length--; return PERCENT_PREC;	YY_BREAKcase 33:YY_RULE_SETUP#line 225 "scan-gram.l"token_type = PERCENT_PRINTER; BEGIN SC_PRE_CODE;	YY_BREAKcase 34:YY_RULE_SETUP#line 226 "scan-gram.l"return PERCENT_PURE_PARSER;	YY_BREAKcase 35:YY_RULE_SETUP#line 227 "scan-gram.l"return PERCENT_RIGHT;	YY_BREAKcase 36:YY_RULE_SETUP#line 228 "scan-gram.l"return PERCENT_SKELETON;	YY_BREAKcase 37:YY_RULE_SETUP#line 229 "scan-gram.l"return PERCENT_START;	YY_BREAKcase 38:YY_RULE_SETUP#line 230 "scan-gram.l"return PERCENT_TOKEN;	YY_BREAKcase 39:YY_RULE_SETUP#line 231 "scan-gram.l"return PERCENT_TOKEN;	YY_BREAKcase 40:YY_RULE_SETUP#line 232 "scan-gram.l"return PERCENT_TOKEN_TABLE;	YY_BREAKcase 41:YY_RULE_SETUP#line 233 "scan-gram.l"return PERCENT_TYPE;	YY_BREAKcase 42:YY_RULE_SETUP#line 234 "scan-gram.l"token_type = PERCENT_UNION; BEGIN SC_PRE_CODE;	YY_BREAKcase 43:YY_RULE_SETUP#line 235 "scan-gram.l"return PERCENT_VERBOSE;	YY_BREAKcase 44:YY_RULE_SETUP#line 236 "scan-gram.l"return PERCENT_YACC;	YY_BREAKcase 45:YY_RULE_SETUP#line 238 "scan-gram.l"{    complain_at (*loc, _("invalid directive: %s"), quote (gram_text));  }	YY_BREAKcase 46:YY_RULE_SETUP#line 242 "scan-gram.l"return EQUAL;	YY_BREAKcase 47:YY_RULE_SETUP#line 243 "scan-gram.l"rule_length = 0; return PIPE;	YY_BREAKcase 48:YY_RULE_SETUP#line 244 "scan-gram.l"return SEMICOLON;	YY_BREAKcase 49:YY_RULE_SETUP#line 246 "scan-gram.l"{    val->symbol = symbol_get (gram_text, *loc);    id_loc = *loc;    rule_length++;    BEGIN SC_AFTER_IDENTIFIER;  }	YY_BREAKcase 50:YY_RULE_SETUP#line 253 "scan-gram.l"{    val->integer = scan_integer (gram_text, 10, *loc);    return INT;  }	YY_BREAKcase 51:YY_RULE_SETUP#line 257 "scan-gram.l"{    val->integer = scan_integer (gram_text, 16, *loc);    return INT;  }	YY_BREAK/* Characters.  We don't check there is only one.  */case 52:YY_RULE_SETUP#line 263 "scan-gram.l"STRING_GROW; token_start = loc->start; BEGIN SC_ESCAPED_CHARACTER;	YY_BREAK/* Strings. */case 53:YY_RULE_SETUP#line 266 "scan-gram.l"token_start = loc->start; BEGIN SC_ESCAPED_STRING;	YY_BREAK/* Prologue. */case 54:YY_RULE_SETUP#line 269 "scan-gram.l"code_start = loc->start; BEGIN SC_PROLOGUE;	YY_BREAK/* Code in between braces.  */case 55:YY_RULE_SETUP#line 272 "scan-gram.l"{    STRING_GROW;    token_type = BRACED_CODE;    braces_level = 0;    code_start = loc->start;    BEGIN SC_BRACED_CODE;  }	YY_BREAK/* A type. */case 56:YY_RULE_SETUP#line 281 "scan-gram.l"{    obstack_grow (&obstack_for_string, gram_text + 1, gram_leng - 2);    STRING_FINISH;    val->uniqstr = uniqstr_new (last_string);    STRING_FREE;    return TYPE;  }	YY_BREAKcase 57:YY_RULE_SETUP#line 289 "scan-gram.l"{    static int percent_percent_count;    if (++percent_percent_count == 2)      BEGIN SC_EPILOGUE;    return PERCENT_PERCENT;  }	YY_BREAKcase 58:YY_RULE_SETUP#line 296 "scan-gram.l"{    complain_at (*loc, _("invalid character: %s"), quote (gram_text));  }	YY_BREAKcase YY_STATE_EOF(INITIAL):#line 300 "scan-gram.l"{    loc->start = loc->end = scanner_cursor;    yyterminate ();  }	YY_BREAK/*-----------------------------------------------------------------.  | Scanning after an identifier, checking whether a colon is next.  |  `-----------------------------------------------------------------*/case 59:YY_RULE_SETUP#line 313 "scan-gram.l"{    rule_length = 0;    *loc = id_loc;    BEGIN INITIAL;    return ID_COLON;  }	YY_BREAKcase 60:YY_RULE_SETUP#line 319 "scan-gram.l"{    scanner_cursor.column -= mbsnwidth (gram_text, gram_leng, 0);    yyless (0);    *loc = id_loc;    BEGIN INITIAL;    return ID;  }	YY_BREAKcase YY_STATE_EOF(SC_AFTER_IDENTIFIER):#line 326 "scan-gram.l"{    *loc = id_loc;    BEGIN INITIAL;    return ID;  }	YY_BREAK/*---------------------------------------------------------------.  | Scanning a Yacc comment.  The initial `/ *' is already eaten.  |  `---------------------------------------------------------------*/case 61:YY_RULE_SETUP#line 340 "scan-gram.l"BEGIN context_state;	YY_BREAKcase 62:/* rule 62 can match eol */YY_RULE_SETUP#line 341 "scan-gram.l";	YY_BREAKcase YY_STATE_EOF(SC_YACC_COMMENT):#line 342 "scan-gram.l"unexpected_eof (token_start, "*/"); BEGIN context_state;	YY_BREAK/*------------------------------------------------------------.  | Scanning a C comment.  The initial `/ *' is already eaten.  |  `------------------------------------------------------------*/case 63:/* rule 63 can match eol */YY_RULE_SETUP#line 352 "scan-gram.l"STRING_GROW; BEGIN context_state;	YY_BREAKcase YY_STATE_EOF(SC_COMMENT):#line 353 "scan-gram.l"unexpected_eof (token_start, "*/"); BEGIN context_state;

⌨️ 快捷键说明

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