Browse Source

Simplified the sorting of declarations.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/980/head
Dimitar Dobrev 8 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 @@ -311,7 +311,7 @@ namespace CppSharp.AST
if (!VisitDeclaration(unit))
return false;
return VisitDeclarationContext(unit);
return VisitNamespace(unit);
}
public virtual bool VisitClassDecl(Class @class)

17
src/Generator/Passes/SortDeclarationsPass.cs

@ -3,20 +3,15 @@ using CppSharp.AST; @@ -3,20 +3,15 @@ using CppSharp.AST;
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(
declaration => declaration.DefinitionOrder).ToList();
foreach (var childNamespace in @namespace.Namespaces)
SortDeclarations(childNamespace);
}
if (!base.VisitNamespace(@namespace) || @namespace.Ignore)
return false;
public override bool VisitTranslationUnit(TranslationUnit unit)
{
SortDeclarations(unit);
@namespace.Declarations = @namespace.Declarations.OrderBy(
d => d.DefinitionOrder).ToList();
return true;
}
}

Loading…
Cancel
Save