public CLS_Environment(ICLS_Logger logger) { this.logger = logger; this.tokenParser = new CLS_TokenParser(this.dictTypeKeywords); this.compiler = new CLS_Expression_Compiler(logger); RegType(new CLS_Type_Void()); RegType(new CLS_Type_Null()); 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_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(new RegHelper_Type(typeof(object), "object")); RegType(new RegHelper_Type(typeof(List <>), "List")); RegType(new RegHelper_Type(typeof(Dictionary <,>), "Dictionary")); RegType(new RegHelper_Type(typeof(KeyValuePair <,>), "KeyValuePair")); RegType(new RegHelper_SInstance()); // Unity 协程注册 RegType(new RegHelper_Type(typeof(IEnumerator), "IEnumerator")); RegType(new RegHelper_Type(typeof(YieldInstruction), "YieldInstruction")); RegType(new RegHelper_Type(typeof(Coroutine), "Coroutine")); RegType(new RegHelper_Type(typeof(WaitForSeconds), "WaitForSeconds")); RegType(new RegHelper_Type(typeof(WaitForEndOfFrame), "WaitForEndOfFrame")); RegType(new RegHelper_Type(typeof(WaitForFixedUpdate), "WaitForFixedUpdate")); RegType(new CLS_Type_Dict <int, object>("Dictionary<int, object>")); RegType(new CLS_Type_KeyValuePair <int, object>("KeyValuePair<int, object>")); RegType(new CLS_Type_Dict <int, SInstance>("Dictionary<int, CSLE.SInstance>")); // IOS防止JIT RegType(new CLS_Type_KeyValuePair <int, SInstance>("KeyValuePair<int, CSLE.SInstance>")); // IOS防止JIT RegType(new CLS_Type_Dict <string, object>("Dictionary<string, object>")); RegType(new CLS_Type_KeyValuePair <string, object>("KeyValuePair<string, object>")); RegType(new CLS_Type_Dict <string, SInstance>("Dictionary<string, CSLE.SInstance>")); // IOS防止JIT RegType(new CLS_Type_KeyValuePair <string, SInstance>("KeyValuePair<string, CSLE.SInstance>")); // IOS防止JIT // 注册基础数组 RegType(new CLS_Type_Array <int>("int[]")); RegType(new CLS_Type_Array <uint>("uint[]")); RegType(new CLS_Type_Array <float>("float[]")); RegType(new CLS_Type_Array <double>("double[]")); RegType(new CLS_Type_Array <string>("string[]")); RegType(new CLS_Type_Array <bool>("bool[]")); RegType(new CLS_Type_Array <Delegate>("Delegate[]")); RegType(new CLS_Type_Array <byte>("byte[]")); RegType(new CLS_Type_Array <char>("char[]")); RegType(new CLS_Type_Array <ushort>("ushort[]")); RegType(new CLS_Type_Array <sbyte>("sbyte[]")); RegType(new CLS_Type_Array <short>("short[]")); RegType(new CLS_Type_Array <long>("long[]")); RegType(new CLS_Type_Array <ulong>("ulong[]")); RegType(new CLS_Type_Array <object>("object[]")); RegType(new CLS_Type_Array <SInstance>("CSLE.SInstance[]")); // IOS防止JIT // 注册基础列表 RegType(new CLS_Type_List <int>("List<int>")); RegType(new CLS_Type_List <uint>("List<uint>")); RegType(new CLS_Type_List <float>("List<float>")); RegType(new CLS_Type_List <double>("List<double>")); RegType(new CLS_Type_List <string>("List<string>")); RegType(new CLS_Type_List <bool>("List<bool>")); RegType(new CLS_Type_List <Delegate>("List<Delegate>")); RegType(new CLS_Type_List <byte>("List<byte>")); RegType(new CLS_Type_List <char>("List<char>")); RegType(new CLS_Type_List <ushort>("List<ushort>")); RegType(new CLS_Type_List <sbyte>("List<sbyte>")); RegType(new CLS_Type_List <short>("List<short>")); RegType(new CLS_Type_List <long>("List<long>")); RegType(new CLS_Type_List <ulong>("List<ulong>")); RegType(new CLS_Type_List <object>("List<object>")); RegType(new CLS_Type_List <SInstance>("List<CSLE.SInstance>")); // IOS防止JIT RegFunction(new FunctionTrace()); RegFunction(new FunctionTypeof()); }
public CLS_Environment(ICLS_Logger logger) { this.logger = logger; this.tokenParser = new CLS_TokenParser(this.dictTypeKeywords); this.compiler = new CLS_Expression_Compiler(logger); RegType(new CLS_Type_Void()); RegType(new CLS_Type_Null()); 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_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(new RegHelper_Type(typeof(object), "object")); RegType(new RegHelper_Type(typeof(List<>), "List")); RegType(new RegHelper_Type(typeof(Dictionary<,>), "Dictionary")); RegType(new RegHelper_Type(typeof(KeyValuePair<,>), "KeyValuePair")); RegType(new RegHelper_SInstance()); // Unity 协程注册 RegType(new RegHelper_Type(typeof(IEnumerator), "IEnumerator")); RegType(new RegHelper_Type(typeof(YieldInstruction), "YieldInstruction")); RegType(new RegHelper_Type(typeof(Coroutine), "Coroutine")); RegType(new RegHelper_Type(typeof(WaitForSeconds), "WaitForSeconds")); RegType(new RegHelper_Type(typeof(WaitForEndOfFrame), "WaitForEndOfFrame")); RegType(new RegHelper_Type(typeof(WaitForFixedUpdate), "WaitForFixedUpdate")); RegType(new CLS_Type_Dict<int, object>("Dictionary<int, object>")); RegType(new CLS_Type_KeyValuePair<int, object>("KeyValuePair<int, object>")); RegType(new CLS_Type_Dict<int, SInstance>("Dictionary<int, CSLE.SInstance>")); // IOS防止JIT RegType(new CLS_Type_KeyValuePair<int, SInstance>("KeyValuePair<int, CSLE.SInstance>")); // IOS防止JIT RegType(new CLS_Type_Dict<string, object>("Dictionary<string, object>")); RegType(new CLS_Type_KeyValuePair<string, object>("KeyValuePair<string, object>")); RegType(new CLS_Type_Dict<string, SInstance>("Dictionary<string, CSLE.SInstance>")); // IOS防止JIT RegType(new CLS_Type_KeyValuePair<string, SInstance>("KeyValuePair<string, CSLE.SInstance>")); // IOS防止JIT // 注册基础数组 RegType(new CLS_Type_Array<int>("int[]")); RegType(new CLS_Type_Array<uint>("uint[]")); RegType(new CLS_Type_Array<float>("float[]")); RegType(new CLS_Type_Array<double>("double[]")); RegType(new CLS_Type_Array<string>("string[]")); RegType(new CLS_Type_Array<bool>("bool[]")); RegType(new CLS_Type_Array<Delegate>("Delegate[]")); RegType(new CLS_Type_Array<byte>("byte[]")); RegType(new CLS_Type_Array<char>("char[]")); RegType(new CLS_Type_Array<ushort>("ushort[]")); RegType(new CLS_Type_Array<sbyte>("sbyte[]")); RegType(new CLS_Type_Array<short>("short[]")); RegType(new CLS_Type_Array<long>("long[]")); RegType(new CLS_Type_Array<ulong>("ulong[]")); RegType(new CLS_Type_Array<object>("object[]")); RegType(new CLS_Type_Array<SInstance>("CSLE.SInstance[]")); // IOS防止JIT // 注册基础列表 RegType(new CLS_Type_List<int>("List<int>")); RegType(new CLS_Type_List<uint>("List<uint>")); RegType(new CLS_Type_List<float>("List<float>")); RegType(new CLS_Type_List<double>("List<double>")); RegType(new CLS_Type_List<string>("List<string>")); RegType(new CLS_Type_List<bool>("List<bool>")); RegType(new CLS_Type_List<Delegate>("List<Delegate>")); RegType(new CLS_Type_List<byte>("List<byte>")); RegType(new CLS_Type_List<char>("List<char>")); RegType(new CLS_Type_List<ushort>("List<ushort>")); RegType(new CLS_Type_List<sbyte>("List<sbyte>")); RegType(new CLS_Type_List<short>("List<short>")); RegType(new CLS_Type_List<long>("List<long>")); RegType(new CLS_Type_List<ulong>("List<ulong>")); RegType(new CLS_Type_List<object>("List<object>")); RegType(new CLS_Type_List<SInstance>("List<CSLE.SInstance>")); // IOS防止JIT RegFunction(new FunctionTrace()); RegFunction(new FunctionTypeof()); }