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