@Override
 public void VisitApplySymbolNode(GtApplySymbolNode Node) {
   /*local*/ int ParamSize = LibGreenTea.ListSize(Node.ParamList);
   /*local*/ int TargetReg = this.ReserveRegister(ParamSize + CallParameters);
   /*local*/ int CallReg = TargetReg - ReturnIndex + ThisIndex;
   for (
   /*local*/ int i = 0; i < ParamSize; ++i) {
     Node.ParamList.get(i).Accept(this);
     this.VisitingBuilder.Append(
         "NMOV " + "REG" + (CallReg + i + 1) + ", REG" + this.PopRegister() + "\n");
   }
   /*local*/ int CallMethod = this.MethodPool.indexOf(Node.ResolvedFunc.GetNativeFuncName());
   this.VisitingBuilder.Append(
       "NSET " + "REG" + (CallReg + MethodIndex) + ", METHOD" + CallMethod + "\n");
   this.VisitingBuilder.Append("CALL " + "REG" + CallReg + ", " + ParamSize + "\n");
   this.PushRegister(TargetReg);
   this.FreeRegister(TargetReg + 1);
 }
 @Override
 public void VisitApplyFunctionObjectNode(GtApplyFunctionObjectNode Node) {
   /*FIXME*/
   /*local*/ int ParamSize = LibGreenTea.ListSize(Node.ParamList);
   /*local*/ int TargetReg = this.ReserveRegister(ParamSize + CallParameters);
   /*local*/ int CallReg = TargetReg - ReturnIndex + ThisIndex;
   for (
   /*local*/ int i = 0; i < ParamSize; ++i) {
     Node.ParamList.get(i).Accept(this);
     this.VisitingBuilder.Append(
         "NMOV " + "REG" + (CallReg + i + 1) + ", REG" + this.PopRegister() + "\n");
   }
   Node.FuncNode.Accept(this);
   this.VisitingBuilder.Append("NMOV " + "REG" + CallReg + ", REG" + this.PopRegister() + "\n");
   this.VisitingBuilder.Append("LOOPUP " + "REG" + CallReg + "\n");
   this.VisitingBuilder.Append("CALL " + "REG" + CallReg + ", " + ParamSize + "\n");
   this.PushRegister(TargetReg);
   this.FreeRegister(TargetReg + 1);
 }