public override void Compile(CEnv env, Generator gen) { e1.Compile(env, gen); env.DeclareLocal(this.name); e2.Compile(env, gen); env.PopEnv(); gen.Emit(Instruction.SWAP); gen.Emit(new INCSP(-1)); }
public void Compile(Generator gen, CEnv env) { foreach (Pair <String, Type> formArg in this.formArgs) { env.DeclareLocal(formArg.Fst); } gen.Label(env.getFunctionLabel(fName)); body.Compile(env, gen); gen.Emit(new RET(formArgs.Count)); }
public void Compile(Generator gen, CEnv env) { int argCount = 0; foreach (var formArg in formArgs) { env.DeclareLocal(formArg.Fst); argCount++; } gen.Label(env.getFunctionLabel(fName)); body.Compile(env, gen); gen.Emit(new RET(argCount)); //throw new NotSupportedException("This functionality will be provided at a later moment."); }