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); }
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()); } }