Esempio n. 1
0
        /// <summary>
        /// Look for the given symbol.
        /// </summary>
        /// <param name="type">The symbol to look for.</param>
        /// <returns>The symbols if found, null if not found.</returns>
        private SymbolTable LookupSymbol(string type)
        {
            SymbolTable result = null;

            // normalize name
            TypedSymbol typedSymbol = new TypedSymbol(new TextPosition(0, 0), null, null, SymbolModifier.None, type);

            type = typedSymbol.Type.ToLower();

            // do simple lookup
            if (_classes.ContainsKey(type))
            {
                result = _classes[type];
            }
            else if (_predefinedClasses.ContainsKey(type))
            {
                result = _predefinedClasses[type];
            }
            // check for system types
            else if (!type.Contains('.'))
            {
                type = "system." + type;
                if (_classes.ContainsKey(type))
                {
                    result = _classes[type];
                }
                else if (_predefinedClasses.ContainsKey(type))
                {
                    result = _predefinedClasses[type];
                }
            }

            if (result != null && typedSymbol.TemplateParameters.Length > 0)
            {
                return(result.GenerateFromTemplate(typedSymbol));
            }
            else
            {
                return(result);
            }
        }
 private static bool Compare(IPropertySymbol symbol, TypedSymbol parameter)
 {
     return(parameter.Name.ToLower() == symbol.Name.ToLower() && parameter.Type.Equals(symbol.Type));
 }