private void CGConcatExp(FuncInfo funcInfo, ConcatExpNode node, int a) { foreach (var exp in node.ExpList) { int r = funcInfo.AllocReg(); CGExp(funcInfo, exp, r, 1); } int c = funcInfo.UsedReg - 1; int b = node.ExpList.Count - 1; funcInfo.FreeRegs(c - b + 1); funcInfo.EmitABC(a, b, c, OP.OP_CONCAT); }