public void Compile(CEnv env, Generator gen) { env.PushEnv(); foreach (VarDecl parameter in parameters) { env.DeclareLocal(parameter); } gen.Label(env.GetFun(name)); body.Compile(env, gen); gen.Emit(new RET(parameters.Length - 1)); env.PopEnv(); }
public override void Compile(CEnv env, Generator gen) { type.CompileAllocation(gen); // Generate code env.DeclareLocal(this); // Add to compilation environment }