MakeType() 공개 정적인 메소드

public static MakeType ( Type type, string keyword ) : RegHelper_Type
type System.Type
keyword string
리턴 RegHelper_Type
예제 #1
0
        public ICLS_Type GetType(CLType type)
        {
            if (type == null)
            {
                return(typess["null"]);
            }

            ICLS_Type ret = null;

            if (types.TryGetValue(type, out ret) == false)
            {
                logger.Log_Warn("(CLScript)类型未注册,将自动注册一份匿名:" + type.ToString());
                ret = RegHelper_Type.MakeType(type, "");
                RegType(ret);
            }
            return(ret);
        }
예제 #2
0
        public CLS_Environment(ICLS_Logger logger)
        {
            //if(useNamespace==true)
            //{
            //    throw new Exception("使用命名空间还不能完全兼容,建议关闭");
            //}
            this.logger = logger;
            //this.useNamespace = useNamespace;
            tokenParser = new CLS_TokenParser();
            compiler    = new CLS_Expression_Compiler(logger);
            RegType(new CLS_Type_Int());
            RegType(new CLS_Type_UInt());
            RegType(new CLS_Type_Float());
            RegType(new CLS_Type_Double());
            RegType(new CLS_Type_String());
            RegType(new CLS_Type_Var());
            RegType(new CLS_Type_Bool());
            RegType(new CLS_Type_Lambda());
            RegType(new CLS_Type_Delegate());
            RegType(new CLS_Type_Byte());
            RegType(new CLS_Type_Char());
            RegType(new CLS_Type_UShort());
            RegType(new CLS_Type_Sbyte());
            RegType(new CLS_Type_Short());
            RegType(new CLS_Type_Long());
            RegType(new CLS_Type_ULong());

            RegType(RegHelper_Type.MakeType(typeof(object), "object"));
            RegType(RegHelper_Type.MakeType(typeof(List <>), "List"));
            RegType(RegHelper_Type.MakeType(typeof(Dictionary <,>), "Dictionary"));

            typess["null"] = new CLS_Type_NULL();
            //contentGloabl = CreateContent();
            //if (!useNamespace)//命名空间模式不能直接用函数
            {
                RegFunction(new FunctionTrace());
            }
        }