|
|
|
|
@ -4,6 +4,7 @@ using System.Globalization;
@@ -4,6 +4,7 @@ using System.Globalization;
|
|
|
|
|
using System.Linq; |
|
|
|
|
using System.Text.RegularExpressions; |
|
|
|
|
using CppSharp.AST; |
|
|
|
|
using CppSharp.Passes; |
|
|
|
|
|
|
|
|
|
namespace CppSharp |
|
|
|
|
{ |
|
|
|
|
@ -351,6 +352,53 @@ namespace CppSharp
@@ -351,6 +352,53 @@ namespace CppSharp
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static IEnumerable<Class> GetClasses(DeclarationContext decl) |
|
|
|
|
{ |
|
|
|
|
foreach (var @class in decl.Classes) |
|
|
|
|
{ |
|
|
|
|
yield return @class; |
|
|
|
|
|
|
|
|
|
foreach (var class2 in GetClasses(@class)) |
|
|
|
|
yield return class2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
foreach (var ns in decl.Namespaces) |
|
|
|
|
{ |
|
|
|
|
foreach (var @class in GetClasses(ns)) |
|
|
|
|
yield return @class; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void IgnoreConversionToProperty(this ASTContext context, string pattern) |
|
|
|
|
{ |
|
|
|
|
foreach (var unit in context.TranslationUnits) |
|
|
|
|
{ |
|
|
|
|
foreach (var @class in GetClasses(unit)) |
|
|
|
|
{ |
|
|
|
|
foreach (var method in @class.Methods) |
|
|
|
|
{ |
|
|
|
|
if (Regex.Match(method.QualifiedLogicalOriginalName, pattern).Success) |
|
|
|
|
method.ExcludeFromPasses.Add(typeof(GetterSetterToPropertyPass)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void ForceConversionToProperty(this ASTContext context, string pattern) |
|
|
|
|
{ |
|
|
|
|
foreach (var unit in context.TranslationUnits) |
|
|
|
|
{ |
|
|
|
|
foreach (var @class in GetClasses(unit)) |
|
|
|
|
{ |
|
|
|
|
foreach (var method in @class.Methods) |
|
|
|
|
{ |
|
|
|
|
if (Regex.Match(method.QualifiedLogicalOriginalName, pattern).Success) |
|
|
|
|
method.ConvertToProperty = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Module Helpers
|
|
|
|
|
@ -379,4 +427,4 @@ namespace CppSharp
@@ -379,4 +427,4 @@ namespace CppSharp
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|