Browse Source

Added an helper method to find declarations hierarchically.

pull/1/head
triton 12 years ago
parent
commit
2127848d47
  1. 14
      src/Bridge/Class.cs

14
src/Bridge/Class.cs

@ -201,6 +201,20 @@ namespace CppSharp
.Cast<Function>(); .Cast<Function>();
} }
public IEnumerable<T> FindHierarchy<T>(Func<Class, IEnumerable<T>> func)
where T : Declaration
{
foreach (var @base in Bases)
{
if (!@base.IsClass) continue;
foreach(var elem in @base.Class.FindHierarchy<T>(func))
yield return elem;
}
foreach (var elem in func(this))
yield return elem;
}
public override T Visit<T>(IDeclVisitor<T> visitor) public override T Visit<T>(IDeclVisitor<T> visitor)
{ {
return visitor.VisitClassDecl(this); return visitor.VisitClassDecl(this);

Loading…
Cancel
Save