public override Symbol Resolve(Name name, LookupFlags flags) { Symbol symbol = base.Resolve(name, LookupFlags.LOCAL); if (symbol == null) { symbol = ScanImports(name); if (symbol == null && flags.IsGlobal) { symbol = base.Resolve(name, flags); } } return(symbol); }
public virtual Symbol Resolve(Name name, LookupFlags flags) { Symbol symbol = null; if (this.SymbolTable.ContainsKey(name)) { symbol = this.SymbolTable[name]; } else { if (flags.IsGlobal) { symbol = this.ParentScope.Resolve(name, flags); } } return(symbol); }
public override Symbol Resolve(Name name, LookupFlags flags) { Symbol symbol = base.Resolve(name, LookupFlags.LOCAL); /* * if (symbol == null && flags.IsGlobal) * { * symbol = this.ParentScope.Resolve(name, LookupFlags.GLOBAL); * } */ if (symbol == null) { symbol = this.ParentScope.Resolve(name, flags); } return(symbol); }
public override Symbol Resolve(Name name, LookupFlags flags) { Symbol symbol = base.Resolve(name, LookupFlags.LOCAL); if (symbol != null) { return(symbol); } else { if (flags.IsFlat) { return(null); } else { if (this.BaseClass != null) { symbol = this.BaseClass.Resolve(name, LookupFlags.LOCAL); } if (symbol == null && this.Interfaces != null) { foreach (InterfaceTypeSymbol @interface in this.Interfaces) { symbol = @interface.Resolve(name, LookupFlags.LOCAL); if (symbol != null) { break; } } } if (symbol == null && flags.IsGlobal) { return(base.Resolve(name, flags)); } } } return(symbol); }
private bool IsSet(LookupFlags lf) { return((Flags & lf.Flags) > 0); }