コード例 #1
0
        public bool ShouldVisitChilds(Declaration decl)
        {
            if (decl == translationUnit)
            {
                return(true);
            }

            if (decl is TranslationUnit)
            {
                return(false);
            }

            if (recordStack.Contains(record => record.Object is Type))
            {
                return(false);
            }

            if (recordStack.IsBeingVisited(decl))
            {
                return(false);
            }

            if (decl.Namespace == null)
            {
                return(true);
            }

            // No need to continue visiting after a declaration of another
            // translation unit is encountered.
            return(decl.Namespace.TranslationUnit == translationUnit);
        }