/// <summary> /// Finds all references (not including aliases) in a script for the given symbol /// </summary> /// <param name="scriptAst">The abstract syntax tree of the given script</param> /// <param name="foundSymbol">The symbol that we are looking for referneces of</param> /// <param name="needsAliases">If this reference search needs aliases. /// This should always be false and used for occurence requests</param> /// <returns>A collection of SymbolReference objects that are refrences to the symbolRefrence /// not including aliases</returns> public static IEnumerable <SymbolReference> FindReferencesOfSymbol( ScriptBlockAst scriptAst, SymbolReference foundSymbol, bool needsAliases) { FindReferencesVisitor referencesVisitor = new FindReferencesVisitor(foundSymbol); scriptAst.Visit(referencesVisitor); FindReferencesVisitor2 declarationVisitor2 = new FindReferencesVisitor2(foundSymbol); scriptAst.Visit(declarationVisitor2); return(referencesVisitor.FoundReferences.Concat(declarationVisitor2.FoundReferences).ToList()); }
/// <summary> /// Finds all references (including aliases) in a script for the given symbol /// </summary> /// <param name="scriptAst">The abstract syntax tree of the given script</param> /// <param name="symbolReference">The symbol that we are looking for referneces of</param> /// <param name="CmdletToAliasDictionary">Dictionary maping cmdlets to aliases for finding alias references</param> /// <param name="AliasToCmdletDictionary">Dictionary maping aliases to cmdlets for finding alias references</param> /// <returns></returns> public static IEnumerable <SymbolReference> FindReferencesOfSymbol( Ast scriptAst, SymbolReference symbolReference, Dictionary <String, List <String> > CmdletToAliasDictionary, Dictionary <String, String> AliasToCmdletDictionary) { // find the symbol evaluators for the node types we are handling FindReferencesVisitor referencesVisitor = new FindReferencesVisitor(symbolReference, CmdletToAliasDictionary, AliasToCmdletDictionary); scriptAst.Visit(referencesVisitor); FindReferencesVisitor2 declarationVisitor2 = new FindReferencesVisitor2(symbolReference); scriptAst.Visit(declarationVisitor2); return(referencesVisitor.FoundReferences.Concat(declarationVisitor2.FoundReferences).ToList()); }