private static void CgForNumStat(FuncInfo fi, ForNumStat node) { fi.EnterScope(true); CgLocalVarDeclStat(fi, new LocalVarDeclStat { NameList = new List <string> { "(for index)", "(for limit)", "(for step)" }, ExpList = new List <Exp> { node.InitExp, node.LimitExp, node.StepExp } }); fi.AddLocVar(node.VarName); var a = fi.UsedRegs - 4; var pcForPrep = fi.EmitForPrep(a, 0); CgBlock(fi, node.Block); fi.CloseOpenUpvals(); var pcForLoop = fi.EmitForLoop(a, 0); fi.FixsBx(pcForPrep, pcForLoop - pcForPrep - 1); fi.FixsBx(pcForLoop, pcForPrep - pcForLoop); fi.ExitScope(); }