📄 totac.tab.c.bak
字号:
{ yyval.int_list = yyvsp[-2].int_list; yyval.int_list.push_back(yyvsp[0].intval); ;}
break;
case 11:
#line 121 "toTAC.y"
{ yyval = yyvsp[-1]; ;}
break;
case 12:
#line 122 "toTAC.y"
{ yyval.intval = yyvsp[-3].intval;
yyval.int_list = yyvsp[-1].int_list;
yyval.int_list.push_front(*yyvsp[-3].int_list.begin()); ;}
break;
case 13:
#line 125 "toTAC.y"
{ TACAddConstVariable(SymbolListTypeADDArrayList(yyvsp[-4].intval, yyvsp[-4].int_list), yyvsp[-3].intval, yyvsp[-1].expr.res_oprd.data.cint);
;}
break;
case 14:
#line 129 "toTAC.y"
{ yyval.expr = yyvsp[-1].expr; ;}
break;
case 15:
#line 132 "toTAC.y"
{ yyval.intval = SymbolListTypeADDArrayList(yyvsp[-1].intval, yyvsp[-1].int_list);
yyval.int_list.clear(); yyval.int_list.push_back(yyvsp[0].intval); ;}
break;
case 16:
#line 136 "toTAC.y"
{ yyval.Ventry_list.clear();
TSymbolListVariableEntry Ventry;
Ventry.var_type = SymbolListTypeADDArrayList(yyvsp[0].intval, yyvsp[0].int_list);
yyval.Ventry_list.push_back(Ventry); ;}
break;
case 17:
#line 140 "toTAC.y"
{ yyval.Ventry_list = yyvsp[-2].Ventry_list;
TSymbolListVariableEntry Ventry;
Ventry.var_type = SymbolListTypeADDArrayList(yyvsp[0].intval, yyvsp[0].int_list);
yyval.Ventry_list.push_back(Ventry); ;}
break;
case 18:
#line 146 "toTAC.y"
{ yyval.intval = yyvsp[0].intval; yyval.int_list.clear(); ;}
break;
case 19:
#line 147 "toTAC.y"
{ yyval.intval = SymbolListTypeADDArrayList(yyvsp[-1].intval, yyvsp[-1].int_list);
yyval.intval = SymbolListTypeADDStar(yyval.intval);
yyval.int_list.clear(); ;}
break;
case 20:
#line 150 "toTAC.y"
{ yyval.intval = yyvsp[-1].intval; yyval.int_list = yyvsp[-1].int_list;
yyval.int_list.push_back(yyvsp[0].expr.res_oprd.data.cint); ;}
break;
case 21:
#line 152 "toTAC.y"
{ yyval.intval = SymbolListMakeFunctionType(SymbolListTypeADDArrayList(yyvsp[-5].intval, yyvsp[-5].int_list),
yyvsp[-1].Ventry_list);
yyval.int_list.clear(); ;}
break;
case 22:
#line 157 "toTAC.y"
{ yyval.intval = var_type_int; ;}
break;
case 23:
#line 158 "toTAC.y"
{ yyval.intval = var_type_char; ;}
break;
case 24:
#line 159 "toTAC.y"
{ yyval.intval = var_type_void ;}
break;
case 25:
#line 160 "toTAC.y"
{ yyval.intval = yyvsp[0].intval; ;}
break;
case 26:
#line 163 "toTAC.y"
{ TACAddFunctionDecl(SymbolListTypeADDArrayList(yyvsp[-5].intval, yyvsp[-5].int_list),
yyvsp[-4].intval, yyvsp[-2].Ventry_list); ;}
break;
case 27:
#line 167 "toTAC.y"
{ yyval.Ventry_list = yyvsp[0].Ventry_list; ;}
break;
case 28:
#line 168 "toTAC.y"
{ yyval.Ventry_list.clear(); ;}
break;
case 29:
#line 171 "toTAC.y"
{ yyval.Ventry_list.clear(); yyval.Ventry_list.push_back(yyvsp[0].Ventry); ;}
break;
case 30:
#line 172 "toTAC.y"
{ yyval.Ventry_list = yyvsp[-2].Ventry_list; yyval.Ventry_list.push_back(yyvsp[0].Ventry); ;}
break;
case 31:
#line 175 "toTAC.y"
{ yyval.Ventry.var_type = yyvsp[0].intval;
yyval.Ventry.id = *yyvsp[0].int_list.begin(); ;}
break;
case 32:
#line 179 "toTAC.y"
{ TACAddFunctionDecl(SymbolListTypeADDArrayList(yyvsp[-4].intval, yyvsp[-4].int_list), yyvsp[-3].intval, yyvsp[-1].Ventry_list);
SymbolListNowLevel ++;
SymbolListScopeStack[SymbolListScopeStackTOP ++] = SymbolListScopeCNT ++;
SymbolListScope[SymbolListScopeStack[SymbolListScopeStackTOP - 1]].father
= SymbolListScopeStack[SymbolListScopeStackTOP - 2];
for (list <TSymbolListVariableEntry> :: iterator p = yyvsp[-1].Ventry_list.begin(); p != yyvsp[-1].Ventry_list.end(); p++)
{
p->level = SymbolListNowLevel;
p->var_name_TAC = TACAllocateVar(p->var_type);
SymbolListAddVariableEntry(p->id, *p);
}
SymbolListFunction[yyvsp[-3].intval].arg_list = yyvsp[-1].Ventry_list;
SymbolListNowLevel --;
SymbolListScopeCNT --;
SymbolListScopeStackTOP --; ;}
break;
case 33:
#line 195 "toTAC.y"
{ yyval.intval = yyvsp[-5].intval; yyval.ins = yyvsp[0].ins; ;}
break;
case 34:
#line 198 "toTAC.y"
{ SymbolListAddTypeEntry(yyvsp[-2].intval, yyvsp[-1].Tentry); ;}
break;
case 35:
#line 201 "toTAC.y"
{ yyval.Tentry = yyvsp[-1].Tentry; ;}
break;
case 36:
#line 202 "toTAC.y"
{ SymbolListMakeNewStruct(yyval.Tentry); ;}
break;
case 37:
#line 205 "toTAC.y"
{ SymbolListMakeNewStruct(yyval.Tentry);
TACAddVarDeclsToStruct(yyval.Tentry, yyvsp[0].intval, yyvsp[0].int_list); ;}
break;
case 38:
#line 207 "toTAC.y"
{ yyval.Tentry = yyvsp[-1].Tentry;
TACAddVarDeclsToStruct(yyval.Tentry, yyvsp[0].intval, yyvsp[0].int_list); ;}
break;
case 39:
#line 212 "toTAC.y"
{ SymbolListIncLevel();
SymbolListScopeStack[SymbolListScopeStackTOP ++] = SymbolListScopeCNT ++;
SymbolListScope[SymbolListScopeStack[SymbolListScopeStackTOP - 1]].father
= SymbolListScopeStack[SymbolListScopeStackTOP - 2]; ;}
break;
case 40:
#line 216 "toTAC.y"
{ yyval.ins = yyvsp[-1].ins;
SymbolListDecLevel();
SymbolListScopeStackTOP --; ;}
break;
case 41:
#line 221 "toTAC.y"
{ yyval.ins = yyvsp[0].ins; ;}
break;
case 42:
#line 222 "toTAC.y"
{ yyval.ins.clear(); yyval.ins.BreakChain.clear(); ;}
break;
case 43:
#line 225 "toTAC.y"
{ TACInstructionListJoin(yyvsp[-1].ins, yyvsp[0].ins, yyval.ins); ;}
break;
case 44:
#line 226 "toTAC.y"
{ yyval.ins = yyvsp[0].ins; ;}
break;
case 45:
#line 229 "toTAC.y"
{ yyval.ins = yyvsp[0].ins; ;}
break;
case 46:
#line 230 "toTAC.y"
{ yyval.ins.clear(); yyval.ins.BreakChain.clear(); ;}
break;
case 47:
#line 233 "toTAC.y"
{ TACInstructionListJoin(yyvsp[-1].ins, yyvsp[0].ins, yyval.ins); ;}
break;
case 48:
#line 234 "toTAC.y"
{ yyval.ins = yyvsp[0].ins; ;}
break;
case 49:
#line 238 "toTAC.y"
{ TACRegOperation(REG_OP_READ, yyvsp[-4].str, yyvsp[-2].intval, yyval.ins); ;}
break;
case 50:
#line 240 "toTAC.y"
{ TACRegOperation(REG_OP_WRITE, yyvsp[-4].str, yyvsp[-2].intval, yyval.ins); ;}
break;
case 51:
#line 241 "toTAC.y"
{ TACBinaryASM(yyvsp[-2].intval, yyval.ins); ;}
break;
case 52:
#line 242 "toTAC.y"
{ TACASM(yyval.ins, 0, yyvsp[-2].str); ;}
break;
case 53:
#line 243 "toTAC.y"
{ TACASM(yyval.ins, 1, yyvsp[-4].str, yyvsp[-2].str); ;}
break;
case 54:
#line 245 "toTAC.y"
{ TACASM(yyval.ins, 2, yyvsp[-6].str, yyvsp[-4].str, yyvsp[-2].str); ;}
break;
case 55:
#line 247 "toTAC.y"
{ TACASM(yyval.ins, 3, yyvsp[-8].str, yyvsp[-6].str, yyvsp[-4].str, yyvsp[-2].str); ;}
break;
case 56:
#line 251 "toTAC.y"
{ yyval.ins = yyvsp[0].ins; ;}
break;
case 57:
#line 252 "toTAC.y"
{ TACAddVariableDecls(yyvsp[0].intval, yyvsp[0].int_list); ;}
break;
case 58:
#line 253 "toTAC.y"
{ yyval.ins = yyvsp[-1].ins; ;}
break;
case 59:
#line 254 "toTAC.y"
{ yyval.ins = yyvsp[0].ins; ;}
break;
case 60:
#line 255 "toTAC.y"
{ yyval.ins = yyvsp[0].ins; ;}
break;
case 61:
#line 256 "toTAC.y"
{ yyval.ins = yyvsp[0].ins; ;}
break;
case 62:
#line 257 "toTAC.y"
{ yyval.ins = yyvsp[-1].ins; ;}
break;
case 63:
#line 258 "toTAC.y"
{ yyval.ins = yyvsp[-1].ins; ;}
break;
case 64:
#line 259 "toTAC.y"
{ yyval.ins = yyvsp[-2].ins; ;}
break;
case 65:
#line 262 "toTAC.y"
{ yyval.ins = yyvsp[0].expr.ins; ;}
break;
case 66:
#line 263 "toTAC.y"
{ yyval.ins.clear(); ;}
break;
case 67:
#line 266 "toTAC.y"
{ TACMakeICall(yyvsp[-3].expr, yyvsp[-1].expr_list, yyval.expr); ;}
break;
case 68:
#line 269 "toTAC.y"
{ yyval.expr_list = yyvsp[0].expr_list; ;}
break;
case 69:
#line 270 "toTAC.y"
{ yyval.expr_list.clear(); ;}
break;
case 70:
#line 274 "toTAC.y"
{ TACMakeFOR(yyvsp[-6].ins, yyvsp[-4].expr, yyvsp[-2].ins, yyvsp[0].ins, yyval.ins); ;}
break;
case 71:
#line 277 "toTAC.y"
{ TACMakeWHILE(yyvsp[-2].expr, yyvsp[0].ins, yyval.ins); ;}
break;
case 72:
#line 280 "toTAC.y"
{ TACMakeSingleIF(yyvsp[-2].expr, yyvsp[0].ins, yyval.ins); ;}
break;
case 73:
#line 281 "toTAC.y"
{ TACMakeIFELSE(yyvsp[-4].expr, yyvsp[-2].ins, yyvsp[0].ins, yyval.ins); ;}
break;
case 74:
#line 284 "toTAC.y"
{ TACMakeEXIT(yyval.ins); ;}
break;
case 75:
#line 285 "toTAC.y"
{ TACMakeRETURN(yyvsp[0].expr, yyval.ins); ;}
break;
case 76:
#line 288 "toTAC.y"
{ TACMakeBreak(yyval.ins); ;}
break;
case 77:
#line 291 "toTAC.y"
{ yyval.expr_list.clear(); yyval.expr_list.push_back(yyvsp[0].expr); ;}
break;
case 78:
#line 292 "toTAC.y"
{ yyv
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -