Exemplo n.º 1
0
 /// <summary>
 /// 呼び出します。
 /// </summary>
 /// <param name="context"></param>
 /// <param name="args">引数</param>
 /// <returns>返り値</returns>
 protected internal override KecaknoahFunctionResult Call(KecaknoahContext context, KecaknoahObject[] args)
 {
     if (args != null)
     {
         CurrentFrame = new KecaknoahStackFrame(context, BaseMethod.Codes);
         CurrentFrame.Locals["self"] = KecaknoahReference.Right(Instance);
         CurrentFrame.Arguments = args;
         if (args.Length > BaseMethod.ArgumentLength)
         {
             CurrentFrame.VariableArguments = args.Skip(BaseMethod.ArgumentLength).ToList();
         }
     }
     var r = CurrentFrame.Resume();
     return new KecaknoahFunctionResult(CurrentFrame.ReturningObject, r);
 }
Exemplo n.º 2
0
 private static KecaknoahFunctionResult Format(KecaknoahContext context, KecaknoahObject self, KecaknoahObject[] args)
 {
     var b = args[0].ToString();
     var ar = args.Skip(1).Select(p => p.ToString()).ToArray();
     return string.Format(b, ar).AsKecaknoahString().NoResume();
 }