private Interface TraverseInterface(InterfaceDeclarationSyntax ids) { Interface retInterface = new Interface(); if (ids.HasLeadingTrivia) { SetOuterComments(retInterface, ids.GetLeadingTrivia().ToFullString()); } if (ids.HasTrailingTrivia) { SetInnerComments(retInterface, ids.GetTrailingTrivia().ToFullString()); } foreach (SyntaxToken st in ids.Modifiers) { string modifier = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(st.ValueText); Encapsulation encap; Qualifiers qual; if (System.Enum.TryParse<Encapsulation>(modifier, out encap)) { retInterface.Encapsulation.Add(encap); } else if (System.Enum.TryParse<Qualifiers>(modifier, out qual)) { retInterface.Qualifiers.Add(qual); } } var accessVarsDecl = from aAccessVarsDecl in ids.ChildNodes().OfType<LocalDeclarationStatementSyntax>() select aAccessVarsDecl; foreach (LocalDeclarationStatementSyntax ldss in accessVarsDecl) { Method tempMethod = TransverseAccessVars(ldss); retInterface.Fields.AddRange(tempMethod.AccessedVariables); //retInterface.Methods.AddRange(tempMethod.InvokedMethods); } var interfaces = from aInterface in ids.ChildNodes().OfType<InterfaceDeclarationSyntax>() select aInterface; foreach (InterfaceDeclarationSyntax ids2 in interfaces) { Interface tempInterface = TraverseInterface(ids2); retInterface.InheritsInterfaces.Add(tempInterface); } retInterface.Name = ids.Identifier.ValueText; var methods = from aMethod in ids.ChildNodes().OfType<MethodDeclarationSyntax>() select aMethod; foreach (MethodDeclarationSyntax mds in methods) { Method tempMethod = TransverseMethods(mds); retInterface.Fields.AddRange(tempMethod.AccessedVariables); retInterface.Methods.Add(tempMethod); } //public List<string> InheritsStrings { get; set; } //public List<Property> Properties { get; set; } return retInterface; }