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

📄 yacc.c

📁 用C++编写的一个编译器
💻 C
📖 第 1 页 / 共 5 页
字号:
case 104:
#line 570 "yacc.y"
{
			yyval.stmt = newCalcStmt(stmt_return, yyvsp[-1].exp, NULL, NULL, NULL, currentfile, lineno);
		;
    break;}
case 105:
#line 577 "yacc.y"
{
			yyval.exp=yyvsp[0].exp;
		;
    break;}
case 106:
#line 581 "yacc.y"
{
			appendObject(&yyvsp[-2].exp, yyvsp[0].exp);
			yyval.exp = yyvsp[-2].exp;
		;
    break;}
case 107:
#line 589 "yacc.y"
{yyval.exp = evaluate_void_exp();;
    break;}
case 108:
#line 591 "yacc.y"
{yyval.exp = yyvsp[0].exp;;
    break;}
case 109:
#line 596 "yacc.y"
{
			yyval.exp = evaluate_id_exp(yyvsp[0].val.s);
		;
    break;}
case 110:
#line 600 "yacc.y"
{
			yyval.exp = evaluate_const_exp(bt_long, &(yyvsp[0].val.i));
		;
    break;}
case 111:
#line 604 "yacc.y"
{
			yyval.exp = evaluate_const_exp(bt_unsignedlong, &(yyvsp[0].val.u));
		;
    break;}
case 112:
#line 608 "yacc.y"
{
			yyval.exp = evaluate_const_exp(bt_pointer, yyvsp[0].val.s); //remember allocate mem for const string
		;
    break;}
case 113:
#line 612 "yacc.y"
{
			yyval.exp = evaluate_const_exp(bt_double, &(yyvsp[0].val.f));
		;
    break;}
case 114:
#line 616 "yacc.y"
{
			yyval.exp = evaluate_const_exp(bt_long, &(yyvsp[0].val.i));
		;
    break;}
case 115:
#line 620 "yacc.y"
{yyval.exp=yyvsp[-1].exp;;
    break;}
case 116:
#line 625 "yacc.y"
{yyval.exp=yyvsp[0].exp;;
    break;}
case 117:
#line 627 "yacc.y"
{
			yyval.exp = evaluate_array_exp(yyvsp[-3].exp, yyvsp[-1].exp);
		;
    break;}
case 118:
#line 631 "yacc.y"
{
			yyval.exp = evaluate_call_exp(yyvsp[-2].exp, evaluate_void_exp());
		;
    break;}
case 119:
#line 635 "yacc.y"
{
			yyval.exp = evaluate_call_exp(yyvsp[-3].exp, yyvsp[-1].exp);
		;
    break;}
case 120:
#line 639 "yacc.y"
{
			yyval.exp = evaluate_member_exp(exp_ntomem, yyvsp[-2].exp, yyvsp[0].val.s);
		;
    break;}
case 121:
#line 643 "yacc.y"
{
			yyval.exp = evaluate_member_exp(exp_ptomem, yyvsp[-2].exp, yyvsp[0].val.s);
		;
    break;}
case 122:
#line 647 "yacc.y"
{
			yyval.exp = evaluate_indecr_exp(-exp_incr, yyvsp[-1].exp);
		;
    break;}
case 123:
#line 651 "yacc.y"
{
			yyval.exp = evaluate_indecr_exp(-exp_decr, yyvsp[-1].exp);
		;
    break;}
case 124:
#line 658 "yacc.y"
{
			yyval.exp=yyvsp[0].exp;
		;
    break;}
case 125:
#line 662 "yacc.y"
{
			yyval.exp = evaluate_indecr_exp(exp_incr, yyvsp[0].exp);
		;
    break;}
case 126:
#line 666 "yacc.y"
{
			yyval.exp = evaluate_indecr_exp(exp_decr, yyvsp[0].exp);
		;
    break;}
case 127:
#line 670 "yacc.y"
{
			yyval.exp = evaluate_unary_exp(yyvsp[-1].val.i, yyvsp[0].exp);
		;
    break;}
case 128:
#line 674 "yacc.y"
{
			yyval.exp = evaluate_typecast_exp(yyvsp[-2].type, yyvsp[0].exp);
		;
    break;}
case 129:
#line 678 "yacc.y"
{
			yyval.exp = evaluate_sizeof_exp(NULL, yyvsp[-1].exp);
		;
    break;}
case 130:
#line 682 "yacc.y"
{
			yyval.exp = evaluate_sizeof_exp(yyvsp[-1].type, NULL);
		;
    break;}
case 131:
#line 689 "yacc.y"
{yyval.val.i = exp_ptr;;
    break;}
case 132:
#line 691 "yacc.y"
{yyval.val.i = exp_val;;
    break;}
case 133:
#line 693 "yacc.y"
{yyval.val.i = exp_uplus;;
    break;}
case 134:
#line 695 "yacc.y"
{yyval.val.i = exp_uminus;;
    break;}
case 135:
#line 697 "yacc.y"
{yyval.val.i = exp_rvs;;
    break;}
case 136:
#line 699 "yacc.y"
{yyval.val.i = exp_lnot;;
    break;}
case 137:
#line 704 "yacc.y"
{yyval.exp=yyvsp[0].exp;;
    break;}
case 138:
#line 706 "yacc.y"
{
			yyval.exp = evaluate_binary_exp(exp_mul, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 139:
#line 710 "yacc.y"
{
			yyval.exp = evaluate_binary_exp(exp_div, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 140:
#line 714 "yacc.y"
{
			yyval.exp = evaluate_binary_exp(exp_mod, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 141:
#line 721 "yacc.y"
{yyval.exp =yyvsp[0].exp;;
    break;}
case 142:
#line 723 "yacc.y"
{
			yyval.exp = evaluate_binary_exp(exp_add, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 143:
#line 727 "yacc.y"
{
			yyval.exp = evaluate_binary_exp(exp_sub, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 144:
#line 734 "yacc.y"
{yyval.exp =yyvsp[0].exp;;
    break;}
case 145:
#line 736 "yacc.y"
{
			yyval.exp = evaluate_binary_exp(exp_lsh, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 146:
#line 740 "yacc.y"
{
			yyval.exp = evaluate_binary_exp(exp_rsh, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 147:
#line 747 "yacc.y"
{yyval.exp =yyvsp[0].exp;;
    break;}
case 148:
#line 749 "yacc.y"
{
			yyval.exp = evaluate_cmp_exp(exp_les, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 149:
#line 753 "yacc.y"
{
			yyval.exp = evaluate_cmp_exp(exp_gtr, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 150:
#line 757 "yacc.y"
{
			yyval.exp = evaluate_cmp_exp(exp_leq, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 151:
#line 761 "yacc.y"
{
			yyval.exp = evaluate_cmp_exp(exp_geq, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 152:
#line 768 "yacc.y"
{yyval.exp = yyvsp[0].exp;;
    break;}
case 153:
#line 770 "yacc.y"
{
			yyval.exp = evaluate_cmp_exp(exp_eq, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 154:
#line 774 "yacc.y"
{
			yyval.exp = evaluate_cmp_exp(exp_ueq, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 155:
#line 781 "yacc.y"
{yyval.exp=yyvsp[0].exp;;
    break;}
case 156:
#line 783 "yacc.y"
{
			yyval.exp = evaluate_bit_exp(exp_and, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 157:
#line 790 "yacc.y"
{yyval.exp=yyvsp[0].exp;;
    break;}
case 158:
#line 792 "yacc.y"
{
			yyval.exp = evaluate_bit_exp(exp_xor, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 159:
#line 799 "yacc.y"
{yyval.exp=yyvsp[0].exp;;
    break;}
case 160:
#line 801 "yacc.y"
{
			yyval.exp = evaluate_bit_exp(exp_or, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 161:
#line 808 "yacc.y"
{yyval.exp=yyvsp[0].exp;;
    break;}
case 162:
#line 810 "yacc.y"
{
			yyval.exp = evaluate_logic_exp(exp_land, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 163:
#line 817 "yacc.y"
{yyval.exp=yyvsp[0].exp;;
    break;}
case 164:
#line 819 "yacc.y"
{
			yyval.exp = evaluate_logic_exp(exp_lor, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 165:
#line 826 "yacc.y"
{yyval.exp=yyvsp[0].exp;;
    break;}
case 166:
#line 828 "yacc.y"
{
			yyval.exp = evaluate_trinary_exp(yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 167:
#line 835 "yacc.y"
{yyval.exp=yyvsp[0].exp;;
    break;}
case 168:
#line 837 "yacc.y"
{
			yyval.exp = evaluate_assign_exp(yyvsp[-1].val.i, yyvsp[-2].exp, yyvsp[0].exp);
		;
    break;}
case 169:
#line 844 "yacc.y"
{yyval.val.i = exp_assign;;
    break;}
case 170:
#line 846 "yacc.y"
{yyval.val.i = exp_mulas;;
    break;}
case 171:
#line 848 "yacc.y"
{yyval.val.i = exp_divas;;
    break;}
case 172:
#line 850 "yacc.y"
{yyval.val.i = exp_modas;;
    break;}
case 173:
#line 852 "yacc.y"
{yyval.val.i = exp_addas;;
    break;}
case 174:
#line 854 "yacc.y"
{yyval.val.i = exp_subas;;
    break;}
case 175:
#line 856 "yacc.y"
{yyval.val.i = exp_lshas;;
    break;}
case 176:
#line 858 "yacc.y"
{yyval.val.i = exp_rshas;;
    break;}
case 177:
#line 860 "yacc.y"
{yyval.val.i = exp_andas;;
    break;}
case 178:
#line 862 "yacc.y"
{yyval.val.i = exp_xoras;;
    break;}
case 179:
#line 864 "yacc.y"
{yyval.val.i = exp_oras;;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 487 "bison.simple"

  yyvsp -= yylen;
  yyssp -= yylen;
#ifdef YYLSP_NEEDED
  yylsp -= yylen;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#

⌨️ 快捷键说明

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