/// <summary> /// Gets a symbol based on its name, returns null if the symbol is not defined /// </summary> /// <returns>A symbol.</returns> /// <param name="name">The symbol name.</param> public Symbol GetSymbol(string name) { Scope curr = CurrentScope; while (curr != null) { Symbol sym; if (curr.GetSymbol(name, out sym)) { return(sym); } curr = curr.ParentScope; } return(null); }
/// <summary> /// Determines whether this scope has a definition for a specified symbol name. /// </summary> /// <returns><c>true</c> if this instance name is defined; otherwise, <c>false</c>.</returns> /// <param name="name">Name.</param> public bool IsSymbolDefined(string name) { Scope curr = CurrentScope; while (curr != null) { Symbol sym; if (curr.GetSymbol(name, out sym)) { return(true); } curr = curr.ParentScope; } return(false); }