Esempio n. 1
0
        /// <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());
        }
Esempio n. 2
0
        /// <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());
        }
Esempio n. 3
0
        /// <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);
            }
        }
Esempio n. 4
0
 /// <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();
 }