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

📄 cpp.c

📁 用YACC实现的一个小的编译工具
💻 C
📖 第 1 页 / 共 5 页
字号:
yy yy_0_1;yy yyv_Id;yy yy_0_1_1;yy yy_0_1_2;yy yy_0_1_3;yy yy_0_1_4;yy yy_1_1;yy yy_2_1;yy yy_3_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 2) goto yyfl_22_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yy_0_1_3 = ((yy)yy_0_1[3]);yy_0_1_4 = ((yy)yy_0_1[4]);yyv_Id = yy_0_1_1;yy_1_1 = ((yy)"#include \"");Put(yy_1_1);yy_2_1 = yyv_Id;PutId(yy_2_1);yy_3_1 = ((yy)".f\"");Put(yy_3_1);Nl();return;yyfl_22_1 : ;}{yy yyb;yy yy_0_1;yy_0_1 = yyin_1;return;yyfl_22_2 : ;}yyErr(2,203);}EmitConstructorDecls_DECL(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yy_0_1_1;yy yyv_Id;yy yy_0_1_1_1;yy yyv_DefList;yy yy_0_1_1_2;yy yy_0_1_1_3;yy yy_0_1_2;yy yy_0_1_3;yy yy_0_1_4;yy yy_1_1;yy yy_1_2;yy_0_1 = yyin_1;if (yy_0_1[0] != 4) goto yyfl_23_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yy_0_1_3 = ((yy)yy_0_1[3]);yy_0_1_4 = ((yy)yy_0_1[4]);if (yy_0_1_1[0] != 1) goto yyfl_23_1;yy_0_1_1_1 = ((yy)yy_0_1_1[1]);yy_0_1_1_2 = ((yy)yy_0_1_1[2]);yy_0_1_1_3 = ((yy)yy_0_1_1[3]);yyv_Id = yy_0_1_1_1;yyv_DefList = yy_0_1_1_2;yy_1_1 = yyv_DefList;yy_1_2 = yyv_Id;EmitConstructorDecls_FUNCTORDEFLIST(yy_1_1, yy_1_2);return;yyfl_23_1 : ;}{yy yyb;yy yy_0_1;yy_0_1 = yyin_1;return;yyfl_23_2 : ;}yyErr(2,215);}EmitConstructorDecls_FUNCTORDEFLIST(yyin_1, yyin_2)yy yyin_1;yy yyin_2;{{yy yyb;yy yy_0_1;yy yyv_H;yy yy_0_1_1;yy yyv_T;yy yy_0_1_2;yy yyv_Id;yy yy_0_2;yy yy_1_1;yy yy_1_2;yy yy_2_1;yy yy_2_2;yy_0_1 = yyin_1;yy_0_2 = yyin_2;if (yy_0_1[0] != 1) goto yyfl_24_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yyv_H = yy_0_1_1;yyv_T = yy_0_1_2;yyv_Id = yy_0_2;yy_1_1 = yyv_H;yy_1_2 = yyv_Id;EmitConstructorDecl(yy_1_1, yy_1_2);yy_2_1 = yyv_T;yy_2_2 = yyv_Id;EmitConstructorDecls_FUNCTORDEFLIST(yy_2_1, yy_2_2);return;yyfl_24_1 : ;}{yy yyb;yy yy_0_1;yy yy_0_2;yy_0_1 = yyin_1;yy_0_2 = yyin_2;if (yy_0_1[0] != 2) goto yyfl_24_2;return;yyfl_24_2 : ;}yyErr(2,220);}EmitConstructorDecl(yyin_1, yyin_2)yy yyin_1;yy yyin_2;{{yy yyb;yy yy_0_1;yy yyv_Functor;yy yy_0_1_1;yy yyv_ArgDefs;yy yy_0_1_2;yy yyv_Pos;yy yy_0_1_3;yy yyv_ResultType;yy yy_0_2;yy yy_1_1;yy yy_2_1;yy yy_3_1;yy yy_4_1;yy yy_5_1;yy yy_6_1;yy yy_8_1;yy yy_9_1;yy yy_11_1;yy yy_13_1;yy yy_14_1;yy yy_15_1;yy yy_17_1;yy yy_18_1;yy yy_20_1;yy yy_21_1;yy yy_22_1;yy yy_23_1;yy yy_25_1;yy yy_26_1;yy yy_28_1;yy yy_30_1;yy yy_31_1;yy yy_32_1;yy yy_34_1;yy yy_35_1;yy yy_37_1;yy_0_1 = yyin_1;yy_0_2 = yyin_2;if (yy_0_1[0] != 1) goto yyfl_25_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yy_0_1_3 = ((yy)yy_0_1[3]);yyv_Functor = yy_0_1_1;yyv_ArgDefs = yy_0_1_2;yyv_Pos = yy_0_1_3;yyv_ResultType = yy_0_2;yy_1_1 = yyv_Functor;PutId(yy_1_1);yy_2_1 = ((yy)"_struct");Put(yy_2_1);yy_3_1 = ((yy)"::");Put(yy_3_1);yy_4_1 = yyv_Functor;PutId(yy_4_1);yy_5_1 = ((yy)"_struct");Put(yy_5_1);yy_6_1 = ((yy)" (");Put(yy_6_1);Nl();yy_8_1 = yyv_ArgDefs;FormalArgs(yy_8_1);yy_9_1 = ((yy)")");Put(yy_9_1);Nl();yy_11_1 = ((yy)"{");Put(yy_11_1);Nl();yy_13_1 = ((yy)"   tag = ");Put(yy_13_1);yy_14_1 = yyv_Functor;PutId(yy_14_1);yy_15_1 = ((yy)"_tag;");Put(yy_15_1);Nl();yy_17_1 = yyv_ArgDefs;SonAssignments(yy_17_1);yy_18_1 = ((yy)"}");Put(yy_18_1);Nl();yy_20_1 = yyv_Functor;PutId(yy_20_1);yy_21_1 = ((yy)"_struct *");Put(yy_21_1);yy_22_1 = yyv_Functor;PutId(yy_22_1);yy_23_1 = ((yy)" (");Put(yy_23_1);Nl();yy_25_1 = yyv_ArgDefs;FormalArgs(yy_25_1);yy_26_1 = ((yy)")");Put(yy_26_1);Nl();yy_28_1 = ((yy)"{");Put(yy_28_1);Nl();yy_30_1 = ((yy)"   return new ");Put(yy_30_1);yy_31_1 = yyv_Functor;PutId(yy_31_1);yy_32_1 = ((yy)"_struct (");Put(yy_32_1);Nl();yy_34_1 = yyv_ArgDefs;ActualArgs(yy_34_1);yy_35_1 = ((yy)"   );");Put(yy_35_1);Nl();yy_37_1 = ((yy)"}");Put(yy_37_1);Nl();return;yyfl_25_1 : ;}yyErr(2,226);}FormalArgs(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_H;yy yy_0_1_1;yy yyv_T;yy yy_0_1_2;yy yy_1_1;yy yy_2_1_1_1;yy yy_2_1_1_2;yy yy_2_1_2_1;yy yy_4_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_26_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yyv_H = yy_0_1_1;yyv_T = yy_0_1_2;yy_1_1 = yyv_H;FormalArg(yy_1_1);{yy yysb = yyb;yy_2_1_1_1 = yyv_T;yy_2_1_1_2 = yy_2_1_1_1;if (yy_2_1_1_2[0] != 1) goto yyfl_26_1_2_1;yy_2_1_2_1 = ((yy)",");Put(yy_2_1_2_1);goto yysl_26_1_2;yyfl_26_1_2_1 : ;goto yysl_26_1_2;yysl_26_1_2 : ;yyb = yysb;}Nl();yy_4_1 = yyv_T;FormalArgs(yy_4_1);return;yyfl_26_1 : ;}{yy yyb;yy yy_0_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 2) goto yyfl_26_2;return;yyfl_26_2 : ;}yyErr(2,252);}FormalArg(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_Type;yy yy_0_1_1;yy yyv_Selector;yy yy_0_1_2;yy yy_0_1_3;yy yy_1_1;yy yy_2_1;yy yy_3_1;yy yy_4_1;yy yy_5_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_27_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yy_0_1_3 = ((yy)yy_0_1[3]);yyv_Type = yy_0_1_1;yyv_Selector = yy_0_1_2;yy_1_1 = ((yy)"   ");Put(yy_1_1);yy_2_1 = yyv_Type;PutId(yy_2_1);yy_3_1 = ((yy)" ");Put(yy_3_1);yy_4_1 = yyv_Selector;PutId(yy_4_1);yy_5_1 = ((yy)"_value");Put(yy_5_1);return;yyfl_27_1 : ;}yyErr(2,263);}ActualArgs(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_H;yy yy_0_1_1;yy yyv_T;yy yy_0_1_2;yy yy_1_1;yy yy_2_1_1_1;yy yy_2_1_1_2;yy yy_2_1_2_1;yy yy_4_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_28_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yyv_H = yy_0_1_1;yyv_T = yy_0_1_2;yy_1_1 = yyv_H;ActualArg(yy_1_1);{yy yysb = yyb;yy_2_1_1_1 = yyv_T;yy_2_1_1_2 = yy_2_1_1_1;if (yy_2_1_1_2[0] != 1) goto yyfl_28_1_2_1;yy_2_1_2_1 = ((yy)",");Put(yy_2_1_2_1);goto yysl_28_1_2;yyfl_28_1_2_1 : ;goto yysl_28_1_2;yysl_28_1_2 : ;yyb = yysb;}Nl();yy_4_1 = yyv_T;ActualArgs(yy_4_1);return;yyfl_28_1 : ;}{yy yyb;yy yy_0_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 2) goto yyfl_28_2;return;yyfl_28_2 : ;}yyErr(2,271);}ActualArg(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_Type;yy yy_0_1_1;yy yyv_Selector;yy yy_0_1_2;yy yy_0_1_3;yy yy_1_1;yy yy_2_1;yy yy_3_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_29_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yy_0_1_3 = ((yy)yy_0_1[3]);yyv_Type = yy_0_1_1;yyv_Selector = yy_0_1_2;yy_1_1 = ((yy)"   ");Put(yy_1_1);yy_2_1 = yyv_Selector;PutId(yy_2_1);yy_3_1 = ((yy)"_value");Put(yy_3_1);return;yyfl_29_1 : ;}yyErr(2,282);}SonAssignments(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_H;yy yy_0_1_1;yy yyv_T;yy yy_0_1_2;yy yy_1_1;yy yy_2_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_30_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yyv_H = yy_0_1_1;yyv_T = yy_0_1_2;yy_1_1 = yyv_H;SonAssignment(yy_1_1);yy_2_1 = yyv_T;SonAssignments(yy_2_1);return;yyfl_30_1 : ;}{yy yyb;yy yy_0_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 2) goto yyfl_30_2;return;yyfl_30_2 : ;}yyErr(2,288);}SonAssignment(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_Type;yy yy_0_1_1;yy yyv_Selector;yy yy_0_1_2;yy yy_0_1_3;yy yy_1_1;yy yy_2_1;yy yy_3_1;yy yy_4_1;yy yy_5_1;yy yy_6_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_31_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yy_0_1_3 = ((yy)yy_0_1[3]);yyv_Type = yy_0_1_1;yyv_Selector = yy_0_1_2;yy_1_1 = ((yy)"   ");Put(yy_1_1);yy_2_1 = yyv_Selector;PutId(yy_2_1);yy_3_1 = ((yy)" = ");Put(yy_3_1);yy_4_1 = yyv_Selector;PutId(yy_4_1);yy_5_1 = ((yy)"_value");Put(yy_5_1);yy_6_1 = ((yy)";");Put(yy_6_1);Nl();return;yyfl_31_1 : ;}yyErr(2,294);}VisitDECLLIST(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_DECL;yy yy_0_1_1;yy yyv_DECLLIST;yy yy_0_1_2;yy yy_1_1;yy yy_2_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_32_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yyv_DECL = yy_0_1_1;yyv_DECLLIST = yy_0_1_2;yy_1_1 = yyv_DECL;VisitDECL(yy_1_1);yy_2_1 = yyv_DECLLIST;VisitDECLLIST(yy_2_1);return;yyfl_32_1 : ;}{yy yyb;yy yy_0_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 2) goto yyfl_32_2;return;yyfl_32_2 : ;}yyErr(2,310);}VisitDECL(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_33_1;return;yyfl_33_1 : ;}{yy yyb;yy yy_0_1;yy yyv_BLOCK;yy yy_0_1_1;yy yy_1_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 3) goto yyfl_33_2;yy_0_1_1 = ((yy)yy_0_1[1]);yyv_BLOCK = yy_0_1_1;yy_1_1 = yyv_BLOCK;VisitBLOCK(yy_1_1);return;yyfl_33_2 : ;}{yy yyb;yy yy_0_1;yy yyv_Id;yy yy_0_1_1;yy yyv_Start;yy yy_0_1_2;yy yyv_Stop;yy yy_0_1_3;yy yyv_SrcPos;yy yy_0_1_4;yy yy_1_1;yy yy_1_1_1;yy yy_1_1_2;yy yy_3_1;yy yy_4_1;yy yy_5_1;yy yy_7_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 2) goto yyfl_33_3;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yy_0_1_3 = ((yy)yy_0_1[3]);yy_0_1_4 = ((yy)yy_0_1[4]);yyv_Id = yy_0_1_1;yyv_Start = yy_0_1_2;yyv_Stop = yy_0_1_3;yyv_SrcPos = yy_0_1_4;yy_1_1_1 = yyv_Start;yy_1_1_2 = ((yy)1);yy_1_1 = (yy)(((long)yy_1_1_1)-((long)yy_1_1_2));EmitUpto(yy_1_1);HeaderAndConstructors();yy_3_1 = ((yy)"#include \"");Put(yy_3_1);yy_4_1 = yyv_Id;PutId(yy_4_1);yy_5_1 = ((yy)".h\"");Put(yy_5_1);Nl();yy_7_1 = yyv_Stop;SkipTo(yy_7_1);return;yyfl_33_3 : ;}{yy yyb;yy yyv_D;yy yy_0_1;yy yy_0_1_1;yy yyv_Def;yy yy_0_1_1_1;yy yyv_Start;yy yy_0_1_1_2;yy yyv_Stop;yy yy_0_1_1_3;yy yyv_SrcPos;yy yy_0_1_1_4;yy yy_1_1;yy yy_1_1_1;yy yy_1_1_2;yy yy_3_1;yy yy_4_1;yy yy_5_1;yy_0_1 = yyin_1;yy_0_1_1 = yy_0_1;yyv_D = yy_0_1;if (yy_0_1_1[0] != 4) goto yyfl_33_4;yy_0_1_1_1 = ((yy)yy_0_1_1[1]);yy_0_1_1_2 = ((yy)yy_0_1_1[2]);yy_0_1_1_3 = ((yy)yy_0_1_1[3]);yy_0_1_1_4 = ((yy)yy_0_1_1[4]);yyv_Def = yy_0_1_1_1;yyv_Start = yy_0_1_1_2;yyv_Stop = yy_0_1_1_3;yyv_SrcPos = yy_0_1_1_4;yy_1_1_1 = yyv_Start;yy_1_1_2 = ((yy)1);yy_1_1 = (yy)(((long)yy_1_1_1)-((long)yy_1_1_2));EmitUpto(yy_1_1);HeaderAndConstructors();yy_3_1 = yyv_Def;EmitDomainDecl(yy_3_1);yy_4_1 = yyv_D;EmitConstructorDecls_DECL(yy_4_1);yy_5_1 = yyv_Stop;SkipTo(yy_5_1);return;yyfl_33_4 : ;}yyErr(2,321);}VisitBLOCK(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_BLOCKITEMLIST;yy yy_0_1_1;yy yy_0_1_2;yy yy_0_1_3;yy yy_1_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_34_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yy_0_1_3 = ((yy)yy_0_1[3]);yyv_BLOCKITEMLIST = yy_0_1_1;yy_1_1 = yyv_BLOCKITEMLIST;VisitBLOCKITEMLIST(yy_1_1);return;yyfl_34_1 : ;}yyErr(2,339);}VisitBLOCKITEMLIST(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_BLOCKITEM;yy yy_0_1_1;yy yyv_BLOCKITEMLIST;yy yy_0_1_2;yy yy_1_1;yy yy_2_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_35_1;yy_0_1_1 = ((yy)yy_0_1[1]);yy_0_1_2 = ((yy)yy_0_1[2]);yyv_BLOCKITEM = yy_0_1_1;yyv_BLOCKITEMLIST = yy_0_1_2;yy_1_1 = yyv_BLOCKITEM;VisitBLOCKITEM(yy_1_1);yy_2_1 = yyv_BLOCKITEMLIST;VisitBLOCKITEMLIST(yy_2_1);return;yyfl_35_1 : ;}{yy yyb;yy yy_0_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 2) goto yyfl_35_2;return;yyfl_35_2 : ;}yyErr(2,343);}VisitBLOCKITEM(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_MATCHSTMNT;yy yy_0_1_1;yy yy_1_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 1) goto yyfl_36_1;yy_0_1_1 = ((yy)yy_0_1[1]);yyv_MATCHSTMNT = yy_0_1_1;yy_1_1 = yyv_MATCHSTMNT;VisitMATCHSTMNT(yy_1_1);return;yyfl_36_1 : ;}{yy yyb;yy yy_0_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 2) goto yyfl_36_2;return;yyfl_36_2 : ;}{yy yyb;yy yy_0_1;yy yyv_BLOCK;yy yy_0_1_1;yy yy_1_1;yy_0_1 = yyin_1;if (yy_0_1[0] != 3) goto yyfl_36_3;yy_0_1_1 = ((yy)yy_0_1[1]);yyv_BLOCK = yy_0_1_1;yy_1_1 = yyv_BLOCK;VisitBLOCK(yy_1_1);return;yyfl_36_3 : ;}yyErr(2,349);}VisitMATCHSTMNT(yyin_1)yy yyin_1;{{yy yyb;yy yy_0_1;yy yyv_EXPRLIST;yy yy_0_1_1;yy yyv_RULELIST;yy yy_0_1_2;yy yyv_P1;yy yy_0_1_3;yy yyv_P2;

⌨️ 快捷键说明

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