📄 grammar.tab.c
字号:
270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, 257, 258, 259, 260, 261, 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, 258, 259, 260, 261, 262, 263, 291, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, 284, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 258, 259, 260, 261, 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,};#define YYFINAL 33#ifndef YYDEBUG#define YYDEBUG 0#endif#define YYMAXTOKEN 291#if YYDEBUGchar *yyname[] = {"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'&'",0,"'('","')'","'*'",0,"','",0,0,0,0,0,0,0,0,0,0,0,0,0,0,"';'",0,"'='",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"T_IDENTIFIER","T_TYPEDEF_NAME","T_DEFINE_NAME","T_AUTO","T_EXTERN","T_REGISTER","T_STATIC","T_TYPEDEF","T_INLINE","T_EXTENSION","T_CHAR","T_DOUBLE","T_FLOAT","T_INT","T_VOID","T_LONG","T_SHORT","T_SIGNED","T_UNSIGNED","T_ENUM","T_STRUCT","T_UNION","T_Bool","T_Complex","T_Imaginary","T_TYPE_QUALIFIER","T_BRACKETS","T_LBRACE","T_MATCHRBRACE","T_ELLIPSIS","T_INITIALIZER","T_STRING_LITERAL","T_ASM","T_ASMARG","T_VA_DCL",};char *yyrule[] = {"$accept : program","program :","program : translation_unit","translation_unit : external_declaration","translation_unit : translation_unit external_declaration","external_declaration : declaration","external_declaration : function_definition","external_declaration : ';'","external_declaration : linkage_specification","external_declaration : T_ASM T_ASMARG ';'","external_declaration : error T_MATCHRBRACE","external_declaration : error ';'","braces : T_LBRACE T_MATCHRBRACE","linkage_specification : T_EXTERN T_STRING_LITERAL braces","linkage_specification : T_EXTERN T_STRING_LITERAL declaration","declaration : decl_specifiers ';'","declaration : decl_specifiers init_declarator_list ';'","$$1 :","declaration : any_typedef decl_specifiers $$1 opt_declarator_list ';'","any_typedef : T_EXTENSION T_TYPEDEF","any_typedef : T_TYPEDEF","opt_declarator_list :","opt_declarator_list : declarator_list","declarator_list : declarator","declarator_list : declarator_list ',' declarator","$$2 :","$$3 :","function_definition : decl_specifiers declarator $$2 opt_declaration_list T_LBRACE $$3 T_MATCHRBRACE","$$4 :","function_definition : declarator $$4 opt_declaration_list T_LBRACE T_MATCHRBRACE","opt_declaration_list :","opt_declaration_list : T_VA_DCL","opt_declaration_list : declaration_list","declaration_list : declaration","declaration_list : declaration_list declaration","decl_specifiers : decl_specifier","decl_specifiers : decl_specifiers decl_specifier","decl_specifier : storage_class","decl_specifier : type_specifier","decl_specifier : type_qualifier","storage_class : T_AUTO","storage_class : T_EXTERN","storage_class : T_REGISTER","storage_class : T_STATIC","storage_class : T_INLINE","storage_class : T_EXTENSION","type_specifier : T_CHAR","type_specifier : T_DOUBLE","type_specifier : T_FLOAT","type_specifier : T_INT","type_specifier : T_LONG","type_specifier : T_SHORT","type_specifier : T_SIGNED","type_specifier : T_UNSIGNED","type_specifier : T_VOID","type_specifier : T_Bool","type_specifier : T_Complex","type_specifier : T_Imaginary","type_specifier : T_TYPEDEF_NAME","type_specifier : struct_or_union_specifier","type_specifier : enum_specifier","type_qualifier : T_TYPE_QUALIFIER","type_qualifier : T_DEFINE_NAME","struct_or_union_specifier : struct_or_union any_id braces","struct_or_union_specifier : struct_or_union braces","struct_or_union_specifier : struct_or_union any_id","struct_or_union : T_STRUCT","struct_or_union : T_UNION","init_declarator_list : init_declarator","init_declarator_list : init_declarator_list ',' init_declarator","init_declarator : declarator","$$5 :","init_declarator : declarator '=' $$5 T_INITIALIZER","enum_specifier : enumeration any_id braces","enum_specifier : enumeration braces","enum_specifier : enumeration any_id","enumeration : T_ENUM","any_id : T_IDENTIFIER","any_id : T_TYPEDEF_NAME","declarator : pointer direct_declarator","declarator : direct_declarator","direct_declarator : identifier_or_ref","direct_declarator : '(' declarator ')'","direct_declarator : direct_declarator T_BRACKETS","direct_declarator : direct_declarator '(' parameter_type_list ')'","direct_declarator : direct_declarator '(' opt_identifier_list ')'","pointer : '*' opt_type_qualifiers","pointer : '*' opt_type_qualifiers pointer","opt_type_qualifiers :","opt_type_qualifiers : type_qualifier_list","type_qualifier_list : type_qualifier","type_qualifier_list : type_qualifier_list type_qualifier","parameter_type_list : parameter_list","parameter_type_list : parameter_list ',' T_ELLIPSIS","parameter_list : parameter_declaration","parameter_list : parameter_list ',' parameter_declaration","parameter_declaration : decl_specifiers declarator","parameter_declaration : decl_specifiers abs_declarator","parameter_declaration : decl_specifiers","opt_identifier_list :","opt_identifier_list : identifier_list","identifier_list : any_id","identifier_list : identifier_list ',' any_id","identifier_or_ref : any_id","identifier_or_ref : '&' any_id","abs_declarator : pointer","abs_declarator : pointer direct_abs_declarator","abs_declarator : direct_abs_declarator","direct_abs_declarator : '(' abs_declarator ')'","direct_abs_declarator : direct_abs_declarator T_BRACKETS","direct_abs_declarator : T_BRACKETS","direct_abs_declarator : direct_abs_declarator '(' parameter_type_list ')'","direct_abs_declarator : direct_abs_declarator '(' ')'","direct_abs_declarator : '(' parameter_type_list ')'","direct_abs_declarator : '(' ')'",};#endif#ifdef YYSTACKSIZE#undef YYMAXDEPTH#define YYMAXDEPTH YYSTACKSIZE#else#ifdef YYMAXDEPTH#define YYSTACKSIZE YYMAXDEPTH#else#define YYSTACKSIZE 500#define YYMAXDEPTH 500#endif#endifint yydebug;int yynerrs;int yyerrflag;int yychar;short *yyssp;YYSTYPE *yyvsp;YYSTYPE yyval;YYSTYPE yylval;short yyss[YYSTACKSIZE];YYSTYPE yyvs[YYSTACKSIZE];#define yystacksize YYSTACKSIZE#line 816 "grammar.y"#if defined(__EMX__) || defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(vms)# ifdef USE_flex# include "lexyy.c"# else# include "lex_yy.c"# endif#else# include "lex.yy.c"#endifstatic voidyaccError (char *msg){ func_params = NULL; put_error(); /* tell what line we're on, and what file */ fprintf(stderr, "%s at token '%s'\n", msg, yytext);}/* Initialize the table of type qualifier keywords recognized by the lexical * analyzer. */voidinit_parser (void){ static char *keywords[] = { "const", "restrict", "volatile", "interrupt",#ifdef vms "noshare", "readonly",#endif#if defined(MSDOS) || defined(OS2) "__cdecl", "__export", "__far", "__fastcall", "__fortran", "__huge", "__inline", "__interrupt", "__loadds", "__near", "__pascal", "__saveregs", "__segment", "__stdcall", "__syscall", "_cdecl", "_cs", "_ds", "_es", "_export", "_far", "_fastcall", "_fortran", "_huge", "_interrupt", "_loadds", "_near", "_pascal", "_saveregs", "_seg", "_segment", "_ss", "cdecl", "far", "huge", "near", "pascal",#ifdef OS2 "__far16",#endif#endif#ifdef __GNUC__ /* gcc aliases */ "__builtin_va_arg", "__builtin_va_list", "__const", "__const__", "__inline", "__inline__", "__restrict", "__restrict__", "__volatile", "__volatile__",#endif }; unsigned i; /* Initialize type qualifier table. */ type_qualifiers = new_symbol_table(); for (i = 0; i < sizeof(keywords)/sizeof(keywords[0]); ++i) { new_symbol(type_qualifiers, keywords[i], NULL, DS_NONE); }}/* Process the C source file. Write function prototypes to the standard * output. Convert function definitions and write the converted source * code to a temporary file. */voidprocess_file (FILE *infile, char *name){ char *s; if (strlen(name) > 2) { s = name + strlen(name) - 2; if (*s == '.') { ++s; if (*s == 'l' || *s == 'y') BEGIN LEXYACC;#if defined(MSDOS) || defined(OS2) if (*s == 'L' || *s == 'Y') BEGIN LEXYACC;#endif } } included_files = new_symbol_table(); typedef_names = new_symbol_table(); define_names = new_symbol_table(); inc_depth = -1; curly = 0; ly_count = 0; func_params = NULL; yyin = infile; include_file(strcpy(base_file, name), func_style != FUNC_NONE); if (file_comments) {#if OPT_LINTLIBRARY if (lintLibrary()) { put_blankline(stdout); begin_tracking(); }#endif put_string(stdout, "/* "); put_string(stdout, cur_file_name()); put_string(stdout, " */\n"); } yyparse(); free_symbol_table(define_names); free_symbol_table(typedef_names); free_symbol_table(included_files);}#ifdef NO_LEAKSvoidfree_parser(void){ free_symbol_table (type_qualifiers);#ifdef FLEX_SCANNER if (yy_current_buffer != 0) yy_delete_buffer(yy_current_buffer);#endif}#endif#line 745 "grammar.tab.c"#define YYABORT goto yyabort#define YYREJECT goto yyabort#define YYACCEPT goto yyaccept#define YYERROR goto yyerrlabintyyparse(void){ register int yym, yyn, yystate;#if YYDEBUG register char *yys; extern char *getenv(); if (yys = getenv("YYDEBUG")) { yyn = *yys; if (yyn >= '0' && yyn <= '9') yydebug = yyn - '0'; }#endif yynerrs = 0; yyerrflag = 0; yychar = (-1); yyssp = yyss; yyvsp = yyvs; *yyssp = yystate = 0;yyloop: if ((yyn = yydefred[yystate]) != 0) goto yyreduce; if (yychar < 0) { if ((yychar = yylex()) < 0) yychar = 0;#if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, reading %d (%s)\n", YYPREFIX, yystate, yychar, yys); }#endif } if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {#if YYDEBUG if (yydebug) printf("%sdebug: state %d, shifting to state %d\n", YYPREFIX, yystate, yytable[yyn]);#endif if (yyssp >= yyss + yystacksize - 1) { goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; *++yyvsp = yylval; yychar = (-1); if (yyerrflag > 0) --yyerrflag; goto yyloop; } if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -