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); }
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(); }
public void GenerateForwardRefs() { var typeReferenceCollector = new CLITypeReferenceCollector(Driver.TypeDatabase); typeReferenceCollector.Process(TranslationUnit); var typeReferences = typeReferenceCollector.TypeReferences; var @namespace = ConvertForwardReferencesToNamespaces(typeReferences); GenerateNamespace(@namespace); }
public void GenerateForwardRefs() { var typeReferenceCollector = new CLITypeReferenceCollector(Context.TypeMaps, Context.Options); typeReferenceCollector.Process(TranslationUnit); var typeReferences = typeReferenceCollector.TypeReferences; var @namespace = ConvertForwardReferencesToNamespaces(typeReferences); GenerateNamespace(@namespace); }
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); } }
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); } }
public void GenerateForwardRefs() { var typeReferenceCollector = new CLITypeReferenceCollector(Driver.TypeDatabase, Driver.Options); typeReferenceCollector.Process(TranslationUnit); var typeReferences = typeReferenceCollector.TypeReferences; var @namespace = ConvertForwardReferencesToNamespaces(typeReferences); GenerateNamespace(@namespace); }