Example #1
0
        public void GenerateIncludeForwardRefs()
        {
            var typeReferenceCollector = new CLITypeReferenceCollector(Driver.TypeDatabase,
                Driver.Options);
            typeReferenceCollector.Process(TranslationUnit, filterNamespaces: false);

            var includes = new SortedSet<string>(StringComparer.InvariantCulture);

            foreach (var typeRef in typeReferenceCollector.TypeReferences)
            {
                if (typeRef.Include.TranslationUnit == TranslationUnit)
                    continue;

                if (typeRef.Include.File == TranslationUnit.FileName)
                    continue;

                var include = typeRef.Include;
                var unit = include.TranslationUnit;

                if (unit != null && !unit.IsDeclared)
                    continue;

                if(!string.IsNullOrEmpty(include.File) && include.InHeader)
                    includes.Add(include.ToString());
            }

            foreach (var include in includes)
                WriteLine(include);
        }
Example #2
0
        public void GenerateForwardReferenceHeaders()
        {
            PushBlock(BlockKind.IncludesForwardReferences);

            var typeReferenceCollector = new CLITypeReferenceCollector(Context.TypeMaps, Context.Options);

            typeReferenceCollector.Process(TranslationUnit, filterNamespaces: false);

            var includes = new SortedSet <string>(StringComparer.InvariantCulture);

            foreach (var typeRef in typeReferenceCollector.TypeReferences)
            {
                if (typeRef.Include.File == TranslationUnit.FileName)
                {
                    continue;
                }

                var include = typeRef.Include;
                if (!string.IsNullOrEmpty(include.File) && !include.InHeader)
                {
                    includes.Add(include.ToString());
                }
            }

            foreach (var include in includes)
            {
                WriteLine(include);
            }

            PopBlock();
        }
Example #3
0
        public void GenerateForwardRefs()
        {
            var typeReferenceCollector = new CLITypeReferenceCollector(Driver.TypeDatabase);

            typeReferenceCollector.Process(TranslationUnit);

            var typeReferences = typeReferenceCollector.TypeReferences;
            var @namespace     = ConvertForwardReferencesToNamespaces(typeReferences);

            GenerateNamespace(@namespace);
        }
Example #4
0
        public void GenerateForwardRefs()
        {
            var typeReferenceCollector = new CLITypeReferenceCollector(Context.TypeMaps,
                                                                       Context.Options);

            typeReferenceCollector.Process(TranslationUnit);

            var typeReferences = typeReferenceCollector.TypeReferences;
            var @namespace     = ConvertForwardReferencesToNamespaces(typeReferences);

            GenerateNamespace(@namespace);
        }
Example #5
0
        public void GenerateIncludeForwardRefs()
        {
            var typeReferenceCollector = new CLITypeReferenceCollector(Context.TypeMaps,
                                                                       Context.Options);

            typeReferenceCollector.Process(TranslationUnit, filterNamespaces: false);

            var includes = new SortedSet <string>(StringComparer.InvariantCulture);

            foreach (var typeRef in typeReferenceCollector.TypeReferences)
            {
                if (typeRef.Include.TranslationUnit == TranslationUnit)
                {
                    continue;
                }

                if (typeRef.Include.File == TranslationUnit.FileName)
                {
                    continue;
                }

                var include = typeRef.Include;
                var unit    = include.TranslationUnit;

                if (unit != null && !unit.IsDeclared)
                {
                    continue;
                }

                if (!string.IsNullOrEmpty(include.File) && include.InHeader)
                {
                    includes.Add(include.ToString());
                }
            }

            foreach (var include in includes)
            {
                WriteLine(include);
            }
        }
Example #6
0
        public void GenerateForwardRefs(Namespace @namespace)
        {
            var typeReferenceCollector = new CLITypeReferenceCollector(Driver.TypeDatabase);

            typeReferenceCollector.Process(@namespace);

            // Use a set to remove duplicate entries.
            var forwardRefs = new SortedSet <string>(StringComparer.InvariantCulture);

            foreach (var typeRef in typeReferenceCollector.TypeReferences)
            {
                var @ref = typeRef.FowardReference;
                if (!string.IsNullOrEmpty(@ref) && !typeRef.Include.InHeader)
                {
                    forwardRefs.Add(@ref);
                }
            }

            foreach (var forwardRef in forwardRefs)
            {
                WriteLine(forwardRef);
            }
        }
Example #7
0
        public void GenerateForwardRefs()
        {
            var typeReferenceCollector = new CLITypeReferenceCollector(Driver.TypeDatabase,
                Driver.Options);
            typeReferenceCollector.Process(TranslationUnit);

            var typeReferences = typeReferenceCollector.TypeReferences;
            var @namespace = ConvertForwardReferencesToNamespaces(typeReferences);

            GenerateNamespace(@namespace);
        }