/// <summary> /// Lookup namespace resolution map to substitute /// partial classnames with their fully qualified names in ASTs. /// If partial class is not found in map, /// update ResolutionMap with fully resolved name from compiler. /// </summary> /// <param name="classTable"></param> /// <param name="elementResolver"></param> /// <param name="astNodes"> parent AST node </param> public static IEnumerable <Node> RewriteElementNames(ClassTable classTable, ElementResolver elementResolver, IEnumerable <Node> astNodes) { var elementRewriter = new ElementRewriter(classTable, elementResolver); return(astNodes.OfType <AssociativeNode>().Select(astNode => astNode.Accept(elementRewriter)).Cast <Node>().ToList()); }
/// <summary> /// Lookup namespace resolution map to substitute /// partial classnames with their fully qualified names in ASTs. /// If partial class is not found in map, /// update ResolutionMap with fully resolved name from compiler. /// </summary> /// <param name="classTable"></param> /// <param name="elementResolver"></param> /// <param name="astNodes"> parent AST node </param> /// <param name="handler"></param> public static IEnumerable <Node> RewriteElementNames(ClassTable classTable, ElementResolver elementResolver, IEnumerable <Node> astNodes, SymbolConflictWarningHandler handler = null) { var elementRewriter = new ElementRewriter(classTable, handler, elementResolver); return(astNodes.OfType <AssociativeNode>().Select(astNode => astNode.Accept(elementRewriter)).Cast <Node>().ToList()); }
/// <summary> /// Lookup namespace resolution map to substitute /// partial classnames with their fully qualified names in ASTs. /// If partial class is not found in map, /// update ResolutionMap with fully resolved name from compiler. /// </summary> /// <param name="classTable"></param> /// <param name="elementResolver"></param> /// <param name="astNodes"> parent AST node </param> public static void RewriteElementNames(ClassTable classTable, ElementResolver elementResolver, IEnumerable <Node> astNodes) { var elementRewriter = new ElementRewriter(classTable); foreach (var node in astNodes) { var astNode = node as AssociativeNode; if (astNode == null) { continue; } elementRewriter.LookupResolvedNameAndRewriteAst(elementResolver, ref astNode); } }
/// <summary> /// Lookup namespace resolution map to substitute /// partial classnames with their fully qualified names in ASTs. /// If partial class is not found in map, /// update ResolutionMap with fully resolved name from compiler. /// </summary> /// <param name="classTable"></param> /// <param name="handler"></param> /// <param name="elementResolver"></param> /// <param name="astNodes"> parent AST node </param> public static IEnumerable<Node> RewriteElementNames(ClassTable classTable, ElementResolver elementResolver, IEnumerable<Node> astNodes, SymbolConflictWarningHandler handler = null) { var elementRewriter = new ElementRewriter(classTable, handler, elementResolver); return astNodes.OfType<AssociativeNode>().Select(astNode => astNode.Accept(elementRewriter)).Cast<Node>().ToList(); }