Ejemplo n.º 1
0
        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);
        }