Ejemplo n.º 1
0
        public void CGFuncDefExp(FuncInfo funcInfo, FuncdefExpNode node, int a)
        {
            FuncInfo newFuncInfo = new FuncInfo();

            newFuncInfo.NParam = node.ParList.Count;
            funcInfo.ChildFunc.Add(newFuncInfo);
            foreach (var param in node.ParList)
            {
                newFuncInfo.AddLocalVar(param.name);
            }

            CGBlock(newFuncInfo, node.Block);
            newFuncInfo.ExitScope();
            newFuncInfo.EmitReturn(0, 0);
            int bx = funcInfo.ChildFunc.Count - 1;

            funcInfo.EmitClosure(a, bx);
        }