示例#1
0
        public override bool VisitDeclaration(Declaration decl)
        {
            if (decl.IsIncomplete && decl.CompleteDeclaration != null)
            {
                decl = decl.CompleteDeclaration;
            }

            if (AlreadyVisited2(decl))
            {
                return(ShouldVisitChilds(decl));
            }
            Visited.Remove(decl); // So Class can be revisited

            Declarations.Add(recordStack.Push(decl));
            decl.Visit(this);
            recordStack.Pop();

            return(false);
        }