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); }