public override void Compile(CEnv env, Generator gen) { env.PushEnv(); foreach (Statement stmt in statements) { stmt.Compile(env, gen); } gen.Emit(new INCSP(-env.MostLocalSize)); env.PopEnv(); }
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(); }