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

📄 parse.cpp

📁 完成一个简化的C语言编译程序
💻 CPP
📖 第 1 页 / 共 4 页
字号:
                          yyval->child[0] = yyattribute(3 - 4);
                        }
                      
#line 506 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 23:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 183 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                        yyval = 0;
                      
#line 521 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 24:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 187 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                        yyval = newStmtNode(CompoundK);
                        yyval->child[0] = yyattribute(2 - 3);
                      
#line 537 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 25:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 194 "E:\\MyVC\\compiler\\cscript1\\parse.y"
 
                        YYSTYPE t = yyattribute(1 - 2);
                        if (t != NULL)
                        { 
                          while (t->sibling != NULL)
                            t = t->sibling;
                          t->sibling = yyattribute(2 - 2);
                          yyval = yyattribute(1 - 2); 
                        }
                        else 
                          yyval = yyattribute(2 - 2);
                      
#line 561 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 26:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 207 "E:\\MyVC\\compiler\\cscript1\\parse.y"
 yyval = yyattribute(1 - 1); 
#line 574 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 27:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 211 "E:\\MyVC\\compiler\\cscript1\\parse.y"
 
                        YYSTYPE t = yyattribute(1 - 2);
                        if (t != NULL)
                        { 
                          while (t->sibling != NULL)
                            t = t->sibling;
                          t->sibling = yyattribute(2 - 2);
                          yyval = yyattribute(1 - 2); 
                        }
                        else 
                          yyval = yyattribute(2 - 2);
                      
#line 598 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 28:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 224 "E:\\MyVC\\compiler\\cscript1\\parse.y"
 yyval = yyattribute(1 - 1); 
#line 611 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 29:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 228 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                    yyval=yyattribute(1 - 1);
                  
#line 626 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 30:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 232 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                    yyval=yyattribute(1 - 1);
                  
#line 641 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 31:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 236 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                    yyval=yyattribute(1 - 1);
                  
#line 656 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 32:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 240 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                    yyval=yyattribute(1 - 1);
                  

#line 671 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 33:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 244 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                    yyval=yyattribute(1 - 1);
                  
#line 686 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 34:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 248 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                    yyval=yyattribute(1 - 1);
                  
#line 701 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 35:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 252 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                    yyval=yyattribute(1 - 1);
                  
#line 716 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 36:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 258 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=newStmtNode(ExpStmtK);
                      yyval->child[0]=yyattribute(1 - 2);
                  
#line 732 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 37:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[8];
			yyinitdebug(yya, 8);
#endif
			{
#line 266 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=newStmtNode(IfK);
                      yyval->child[0]=yyattribute(3 - 7);
                      yyval->child[1]=yyattribute(5 - 7);
                      yyval->child[2]=yyattribute(7 - 7);
                   
#line 750 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 38:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[6];
			yyinitdebug(yya, 6);
#endif
			{
#line 273 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=newStmtNode(IfK);
                      yyval->child[0]=yyattribute(3 - 5);
                      yyval->child[1]=yyattribute(5 - 5);
                      yyval->child[2]=0;                     
                   
#line 768 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 39:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[6];
			yyinitdebug(yya, 6);
#endif
			{
#line 282 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=newStmtNode(WhileK);
                      yyval->child[0]=yyattribute(3 - 5);
                      yyval->child[1]=yyattribute(5 - 5);
                   
#line 785 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 40:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 290 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=newStmtNode(ReturnK);
                   
#line 800 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 41:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 294 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=newStmtNode(ReturnK);
                      yyval->child[0]=yyattribute(2 - 3);
                      
                   
#line 817 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 42:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 302 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=newStmtNode(AssignK);
                      yyval->child[0]=yyattribute(1 - 4);
                      yyval->child[1]=yyattribute(3 - 4);
                   
#line 834 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 43:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 310 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=newStmtNode(BreakK);
                   
#line 849 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 44:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 316 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=newExpNode(IdK);
                      yyval->attr.name=yyattribute(1 - 1)->attr.name;
                   
#line 865 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 45:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 321 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=newExpNode(ArrayK);
                      yyval->attr.name=yyattribute(1 - 4)->attr.name;
                      yyval->child[0]=yyattribute(3 - 4);
                   
#line 882 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 46:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 329 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval=yyattribute(1 - 1);
                   
#line 897 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 47:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 335 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                      yyval = newExpNode(OpK);
                      yyval->child[0] = yyattribute(1 - 3);
                      yyval->child[1] = yyattribute(3 - 3);
                      yyval->attr.op = OR;
                   
#line 915 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 48:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 342 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                          yyval=yyattribute(1 - 1);
                   
#line 930 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 49:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 348 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                        yyval=newExpNode(OpK);
                        yyval->child[0]=yyattribute(1 - 3);
                        yyval->child[1]=yyattribute(3 - 3);
                        yyval->attr.op=AND;
                   
#line 948 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 50:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 355 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                           yyval=yyattribute(1 - 1);
                   
#line 963 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 51:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 361 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                        yyval=newExpNode(OpK);
                        yyval->child[0]=yyattribute(1 - 3);
                        yyval->child[1]=yyattribute(3 - 3);
                        yyval->attr.op=GE;  
                   
#line 981 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 52:
		{
#ifdef YYDEBUG
			YYSTYPE *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 368 "E:\\MyVC\\compiler\\cscript1\\parse.y"

                        yyval=newExpNode(OpK);
                        yyval->child[0]=yyattribute(1 - 3);
                        yyval->child[1]=yyattribute(3 - 3);
                        yyval->attr.op=GT;  
                   
#line 999 "E:\\MyVC\\compiler\\cscript1\\parse.c"
			}
		}
		break;
	case 53:

⌨️ 快捷键说明

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