Browse Source

Ignore methods with parameters when generating expressions

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1186/head
Dimitar Dobrev 6 years ago committed by João Matos
parent
commit
d5ee92bd45
  1. 17
      src/CppParser/Bootstrap/Bootstrap.cs
  2. 23
      src/CppParser/Bootstrap/IgnoreMethodsWithParametersPass.cs
  3. 2
      src/CppParser/Bootstrap/premake5.lua

17
src/CppParser/Bootstrap/Bootstrap.cs

@ -77,7 +77,10 @@ namespace CppSharp @@ -77,7 +77,10 @@ namespace CppSharp
public void Preprocess(Driver driver, ASTContext ctx)
{
GenerateProperties(driver.Context, ctx);
new IgnoreMethodsWithParametersPass { Context = driver.Context }
.VisitASTContext(ctx);
new GetterSetterToPropertyPass { Context = driver.Context }
.VisitASTContext(ctx);
var preprocessDecls = new PreprocessDeclarations();
foreach (var unit in ctx.TranslationUnits)
@ -102,18 +105,6 @@ namespace CppSharp @@ -102,18 +105,6 @@ namespace CppSharp
{
}
private static void GenerateProperties(BindingContext ctx,
ASTContext ast)
{
var propertyPass = new GetterSetterToPropertyPass()
{
Context = ctx
};
foreach (var unit in ast.TranslationUnits)
unit.Visit(propertyPass);
}
public IEnumerable<Class> ExprClasses;
private void GenerateExpr(BindingContext ctx)

23
src/CppParser/Bootstrap/IgnoreMethodsWithParametersPass.cs

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
using CppSharp.AST;
using CppSharp.AST.Extensions;
using CppSharp.Passes;
using System.Linq;
namespace CppSharp
{
public class IgnoreMethodsWithParametersPass : TranslationUnitPass
{
public override bool VisitMethodDecl(Method method)
{
if (!base.VisitMethodDecl(method))
return false;
if (!method.OriginalReturnType.Type.IsPrimitiveType(PrimitiveType.Void) &&
method.Parameters.Count(
p => p.Kind == ParameterKind.Regular && p.DefaultValue == null) > 0)
method.ExplicitlyIgnore();
return true;
}
}
}

2
src/CppParser/Bootstrap/premake5.lua

@ -6,7 +6,7 @@ project "CppSharp.Parser.Bootstrap" @@ -6,7 +6,7 @@ project "CppSharp.Parser.Bootstrap"
language "C#"
debugdir "."
files { "Bootstrap.cs", "*.lua" }
files { "*.cs", "*.lua" }
links { "CppSharp", "CppSharp.AST", "CppSharp.Generator", "CppSharp.Parser" }
filter { "action:not netcore" }

Loading…
Cancel
Save