Beispiel #1
0
        /// <summary>
        /// .NETメソッドをトップレベルに登録します。
        /// </summary>
        /// <param name="func">登録する<see cref="KecaknoahInteropDelegate"/>形式のメソッド</param>
        /// <param name="name">メソッド名</param>
        public void RegisterFunction(KecaknoahInteropDelegate func, string name)
        {
            var fo = new KecaknoahInteropMethodInfo(name, func);

            topMethods.Add(fo);
            methodReferences.Add(KecaknoahReference.CreateRightReference(null, func));
        }
Beispiel #2
0
        /// <summary>
        /// .NETメソッドをトップレベルに登録します。
        /// </summary>
        /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param>
        /// <param name="name">メソッド名</param>
        public void RegisterFunction(Func <KecaknoahObject, KecaknoahObject[], string> func, string name)
        {
            KecaknoahInteropDelegate wp =
                (ctx, self, args) => func(self, args).AsKecaknoahString().NoResume();
            var fo = new KecaknoahInteropMethodInfo(name, wp);

            topMethods.Add(fo);
            methodReferences.Add(KecaknoahReference.CreateRightReference(null, wp));
        }
Beispiel #3
0
        /// <summary>
        /// .NETメソッドをトップレベルに登録します。
        /// </summary>
        /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param>
        /// <param name="name">メソッド名</param>
        public void RegisterBooleanFunction(Func <KecaknoahObject, KecaknoahObject[], bool> func, string name)
        {
            KecaknoahInteropDelegate wp =
                (ctx, self, args) => func(self, args).AsKecaknoahBoolean().NoResume();
            var fo = new KecaknoahInteropMethodInfo(name, wp);

            topMethods.Add(fo);
            methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, wp));
        }
Beispiel #4
0
        /// <summary>
        /// .NETメソッドをトップレベルに登録します。
        /// </summary>
        /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param>
        /// <param name="name">メソッド名</param>
        public void RegisterSingleFunction(Func <KecaknoahObject, KecaknoahObject[], float> func, string name)
        {
            KecaknoahInteropDelegate wp =
                (ctx, self, args) => ((double)func(self, args)).AsKecaknoahFloat().NoResume();
            var fo = new KecaknoahInteropMethodInfo(name, wp);

            topMethods.Add(fo);
            methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, wp));
        }
Beispiel #5
0
 /// <summary>
 /// .NETメソッドをトップレベルに登録します。
 /// </summary>
 /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param>
 /// <param name="name">メソッド名</param>
 public void RegisterFunction(Func<KecaknoahObject, KecaknoahObject[], string> func, string name)
 {
     KecaknoahInteropDelegate wp =
         (ctx, self, args) => func(self, args).AsKecaknoahString().NoResume();
     var fo = new KecaknoahInteropMethodInfo(name, wp);
     topMethods.Add(fo);
     methodReferences.Add(KecaknoahReference.CreateRightReference(null, wp));
 }
Beispiel #6
0
 /// <summary>
 /// .NETメソッドをトップレベルに登録します。
 /// </summary>
 /// <param name="func">登録する<see cref="KecaknoahInteropDelegate"/>形式のメソッド</param>
 /// <param name="name">メソッド名</param>
 public void RegisterFunction(KecaknoahInteropDelegate func, string name)
 {
     var fo = new KecaknoahInteropMethodInfo(name, func);
     topMethods.Add(fo);
     methodReferences.Add(KecaknoahReference.CreateRightReference(null, func));
 }
Beispiel #7
0
 /// <summary>
 /// .NETメソッドをトップレベルに登録します。
 /// </summary>
 /// <param name="method">登録する<see cref="KecaknoahInteropMethodInfo"/>形式のメソッド</param>
 public void RegisterMethod(KecaknoahInteropMethodInfo method)
 {
     topMethods.Add(method);
     methodReferences.Add(KecaknoahReference.CreateRightReference(new KecaknoahInteropFunction(null, method.Body)));
 }
 /// <summary>
 /// メソッドを追加します。
 /// </summary>
 /// <param name="method">追加するメソッド</param>
 internal void AddInstanceMethod(KecaknoahInteropMethodInfo method)
 {
     methods.Add(method);
 }
 /// <summary>
 /// クラスメソッドを追加します。
 /// </summary>
 /// <param name="method">追加するメソッド</param>
 internal void AddClassMethod(KecaknoahInteropMethodInfo method)
 {
     classMethods.Add(method);
 }
Beispiel #10
0
 /// <summary>
 /// .NETメソッドをトップレベルに登録します。
 /// </summary>
 /// <param name="method">登録する<see cref="KecaknoahInteropMethodInfo"/>形式のメソッド</param>
 public void RegisterMethod(KecaknoahInteropMethodInfo method)
 {
     topMethods.Add(method);
     methodReferences.Add(KecaknoahReference.CreateRightReference(new KecaknoahInteropFunction(null, method.Body)));
 }
Beispiel #11
0
 /// <summary>
 /// クラスメソッドを追加します。
 /// </summary>
 /// <param name="method">追加するメソッド</param>
 internal void AddClassMethod(KecaknoahInteropMethodInfo method)
 {
     classMethods.Add(method);
 }
Beispiel #12
0
 /// <summary>
 /// メソッドを追加します。
 /// </summary>
 /// <param name="method">追加するメソッド</param>
 internal void AddInstanceMethod(KecaknoahInteropMethodInfo method)
 {
     methods.Add(method);
 }
Beispiel #13
0
 /// <summary>
 /// .NETメソッドをトップレベルに登録します。
 /// </summary>
 /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param>
 /// <param name="name">メソッド名</param>
 public void RegisterBooleanFunction(Func<KecaknoahObject, KecaknoahObject[], bool> func, string name)
 {
     KecaknoahInteropDelegate wp =
         (ctx, self, args) => func(self, args).AsKecaknoahBoolean().NoResume();
     var fo = new KecaknoahInteropMethodInfo(name, wp);
     topMethods.Add(fo);
     methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, wp));
 }
Beispiel #14
0
 /// <summary>
 /// .NETメソッドをトップレベルに登録します。
 /// </summary>
 /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param>
 /// <param name="name">メソッド名</param>
 public void RegisterSingleFunction(Func<KecaknoahObject, KecaknoahObject[], float> func, string name)
 {
     KecaknoahInteropDelegate wp =
         (ctx, self, args) => ((double)func(self, args)).AsKecaknoahFloat().NoResume();
     var fo = new KecaknoahInteropMethodInfo(name, wp);
     topMethods.Add(fo);
     methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, wp));
 }
Beispiel #15
0
 /// <summary>
 /// .NETメソッドをトップレベルに登録します。
 /// </summary>
 /// <param name="method">登録する<see cref="KecaknoahInteropMethodInfo"/>形式のメソッド</param>
 public void RegisterMethod(KecaknoahInteropMethodInfo method)
 {
     topMethods.Add(method);
     methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, method.Body));
 }
Beispiel #16
0
 /// <summary>
 /// .NETメソッドをトップレベルに登録します。
 /// </summary>
 /// <param name="method">登録する<see cref="KecaknoahInteropMethodInfo"/>形式のメソッド</param>
 public void RegisterMethod(KecaknoahInteropMethodInfo method)
 {
     topMethods.Add(method);
     methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, method.Body));
 }