Example #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Symbol"/> class.
 /// </summary>
 /// <param name="module">The module.</param>
 public Symbol(Module module)
 {
     Module      = module;
     fields      = SimpleCache.Create(() => GetFields().ToArray());
     baseClasses = SimpleCache.Create(() => GetBaseClasses().ToArray());
     elementType = SimpleCache.Create(() => GetElementType());
     pointerType = SimpleCache.Create(() => GetPointerType());
     enumValues  = SimpleCache.Create(() => GetEnumValues().ToArray());
     namespaces  = SimpleCache.Create(() => SymbolNameHelper.GetSymbolNamespaces(Name));
     userType    = SimpleCache.Create(() => (UserType)null);
 }
Example #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Symbol"/> class.
        /// </summary>
        /// <param name="module">The module.</param>
        public Symbol(Module module)
        {
            Module            = module;
            fields            = SimpleCache.CreateStruct(() => GetFields().ToArray());
            baseClasses       = SimpleCache.CreateStruct(() => GetBaseClasses().ToArray());
            elementType       = SimpleCache.CreateStruct(() => GetElementType());
            pointerType       = SimpleCache.CreateStruct(() => GetPointerType());
            enumValues        = SimpleCache.CreateStruct(() => GetEnumValues().ToArray());
            enumValuesByValue = SimpleCache.CreateStruct(() =>
            {
                Dictionary <string, string> values = new Dictionary <string, string>();

                foreach (var kvp in EnumValues)
                {
                    if (!values.ContainsKey(kvp.Item2))
                    {
                        values.Add(kvp.Item2, kvp.Item1);
                    }
                }
                return(values);
            });
            namespaces = SimpleCache.CreateStruct(() => SymbolNameHelper.GetSymbolNamespaces(Name));
            userType   = SimpleCache.CreateStruct(() => (UserType)null);
        }