Beispiel #1
0
        internal static UserDefinedRefMethod Create(UserDefinedFunctionData funcData)
        {
            var ret = new UserDefinedRefMethod();

            ret.Name = funcData.Name;
            if (funcData.TypeIsStr)
            {
                ret.RetType = typeof(string);
            }
            else
            {
                ret.RetType = typeof(long);
            }
            ret.ArgTypeList = funcData.ArgList;
            return(ret);
        }
Beispiel #2
0
 /// <summary>
 ///     戻り値と引数の数・型の完全一致が必要
 /// </summary>
 /// <param name="rother"></param>
 /// <returns>一致ならtrue</returns>
 internal bool MatchType(UserDefinedRefMethod rother)
 {
     if (RetType != rother.RetType)
     {
         return(false);
     }
     if (ArgTypeList.Length != rother.ArgTypeList.Length)
     {
         return(false);
     }
     for (var i = 0; i < ArgTypeList.Length; i++)
     {
         if (ArgTypeList[i] != rother.ArgTypeList[i])
         {
             return(false);
         }
     }
     return(true);
 }
Beispiel #3
0
 public UserDefinedRefMethodNoArgTerm(UserDefinedRefMethod reffunc)
     : base(reffunc.RetType)
 {
     this.reffunc = reffunc;
 }
Beispiel #4
0
 public UserDefinedRefMethodTerm(UserDefinedRefMethod reffunc, IOperandTerm[] srcArgs)
     : base(reffunc.RetType)
 {
     this.srcArgs = srcArgs;
     this.reffunc = reffunc;
 }