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));
 }
Example #3
0
        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.");
        }