Browse Source

Simplified the sorting of declarations.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/980/head
Dimitar Dobrev 9 years ago
parent
commit
54ad95bb5c
  1. 2
      src/AST/ASTVisitor.cs
  2. 17
      src/Generator/Passes/SortDeclarationsPass.cs

2
src/AST/ASTVisitor.cs

@ -311,7 +311,7 @@ namespace CppSharp.AST
if (!VisitDeclaration(unit)) if (!VisitDeclaration(unit))
return false; return false;
return VisitDeclarationContext(unit); return VisitNamespace(unit);
} }
public virtual bool VisitClassDecl(Class @class) public virtual bool VisitClassDecl(Class @class)

17
src/Generator/Passes/SortDeclarationsPass.cs

@ -3,20 +3,15 @@ using CppSharp.AST;
namespace CppSharp.Passes namespace CppSharp.Passes
{ {
class SortDeclarationsPass : TranslationUnitPass public class SortDeclarationsPass : TranslationUnitPass
{ {
private static void SortDeclarations(Namespace @namespace) public override bool VisitNamespace(Namespace @namespace)
{ {
@namespace.Declarations = @namespace.Declarations.OrderBy( if (!base.VisitNamespace(@namespace) || @namespace.Ignore)
declaration => declaration.DefinitionOrder).ToList(); return false;
foreach (var childNamespace in @namespace.Namespaces)
SortDeclarations(childNamespace);
}
public override bool VisitTranslationUnit(TranslationUnit unit) @namespace.Declarations = @namespace.Declarations.OrderBy(
{ d => d.DefinitionOrder).ToList();
SortDeclarations(unit);
return true; return true;
} }
} }

Loading…
Cancel
Save