Skip to content

Commit 9840d8a

Browse files
committed
Added the new default values based on expressions, to parameters.
Signed-off-by: Dimitar Dobrev <[email protected]>
1 parent 5559ef4 commit 9840d8a

File tree

14 files changed

+77
-54
lines changed

14 files changed

+77
-54
lines changed

src/AST/Function.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,22 @@ public Parameter(Parameter p)
6363
public ParameterUsage Usage { get; set; }
6464
public bool HasDefaultValue { get; set; }
6565

66+
public Stmt DefaultValue
67+
{
68+
get { return defaultValue; }
69+
set
70+
{
71+
if (defaultValue != value)
72+
{
73+
defaultValue = value;
74+
if (OriginalDefaultValue == null)
75+
OriginalDefaultValue = value;
76+
}
77+
}
78+
}
79+
80+
public Stmt OriginalDefaultValue { get; private set; }
81+
6682
public ExpressionObsolete DefaultArgument
6783
{
6884
get
@@ -101,6 +117,7 @@ public bool IsConst
101117
}
102118

103119
ExpressionObsolete defaultArgument;
120+
private Stmt defaultValue;
104121
}
105122

106123
public class ParameterTypeComparer : IEqualityComparer<Parameter>

src/CppParser/AST.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -602,8 +602,14 @@ CXXConstructExprObsolete::~CXXConstructExprObsolete()
602602

603603
DEF_VECTOR(CXXConstructExprObsolete, ExpressionObsolete*, Arguments)
604604

605-
Parameter::Parameter() : Declaration(DeclarationKind::Parameter),
606-
isIndirect(false), hasDefaultValue(false), defaultArgument(0) {}
605+
Parameter::Parameter()
606+
: Declaration(DeclarationKind::Parameter)
607+
, isIndirect(false)
608+
, hasDefaultValue(false)
609+
, defaultArgument(0)
610+
, defaultValue(0)
611+
{
612+
}
607613

608614
Parameter::~Parameter()
609615
{

src/CppParser/Bindings/CLI/Decl.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1462,14 +1462,14 @@ void CppSharp::Parser::AST::Parameter::DefaultArgument::set(CppSharp::Parser::AS
14621462
((::CppSharp::CppParser::AST::Parameter*)NativePtr)->defaultArgument = (::CppSharp::CppParser::AST::ExpressionObsolete*)value->NativePtr;
14631463
}
14641464

1465-
CppSharp::Parser::AST::Expr^ CppSharp::Parser::AST::Parameter::DefaultArgumentNew::get()
1465+
CppSharp::Parser::AST::Expr^ CppSharp::Parser::AST::Parameter::DefaultValue::get()
14661466
{
1467-
return (((::CppSharp::CppParser::AST::Parameter*)NativePtr)->defaultArgumentNew == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)((::CppSharp::CppParser::AST::Parameter*)NativePtr)->defaultArgumentNew);
1467+
return (((::CppSharp::CppParser::AST::Parameter*)NativePtr)->defaultValue == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)((::CppSharp::CppParser::AST::Parameter*)NativePtr)->defaultValue);
14681468
}
14691469

1470-
void CppSharp::Parser::AST::Parameter::DefaultArgumentNew::set(CppSharp::Parser::AST::Expr^ value)
1470+
void CppSharp::Parser::AST::Parameter::DefaultValue::set(CppSharp::Parser::AST::Expr^ value)
14711471
{
1472-
((::CppSharp::CppParser::AST::Parameter*)NativePtr)->defaultArgumentNew = (::CppSharp::CppParser::AST::Expr*)value->NativePtr;
1472+
((::CppSharp::CppParser::AST::Parameter*)NativePtr)->defaultValue = (::CppSharp::CppParser::AST::Expr*)value->NativePtr;
14731473
}
14741474

14751475
CppSharp::Parser::AST::Function::Function(::CppSharp::CppParser::AST::Function* native)

src/CppParser/Bindings/CLI/Decl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -858,7 +858,7 @@ namespace CppSharp
858858
void set(CppSharp::Parser::AST::ExpressionObsolete^);
859859
}
860860

861-
property CppSharp::Parser::AST::Expr^ DefaultArgumentNew
861+
property CppSharp::Parser::AST::Expr^ DefaultValue
862862
{
863863
CppSharp::Parser::AST::Expr^ get();
864864
void set(CppSharp::Parser::AST::Expr^);

src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8969,7 +8969,7 @@ public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration,
89698969
internal global::System.IntPtr defaultArgument;
89708970

89718971
[FieldOffset(128)]
8972-
internal global::System.IntPtr defaultArgumentNew;
8972+
internal global::System.IntPtr defaultValue;
89738973

89748974
[SuppressUnmanagedCodeSecurity]
89758975
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
@@ -9124,21 +9124,21 @@ public uint Index
91249124
}
91259125
}
91269126

9127-
public global::CppSharp.Parser.AST.Expr DefaultArgumentNew
9127+
public global::CppSharp.Parser.AST.Expr DefaultValue
91289128
{
91299129
get
91309130
{
91319131
global::CppSharp.Parser.AST.Expr __result0;
9132-
if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew == IntPtr.Zero) __result0 = null;
9133-
else if (global::CppSharp.Parser.AST.Expr.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew))
9134-
__result0 = (global::CppSharp.Parser.AST.Expr) global::CppSharp.Parser.AST.Expr.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew];
9135-
else __result0 = global::CppSharp.Parser.AST.Expr.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew);
9132+
if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue == IntPtr.Zero) __result0 = null;
9133+
else if (global::CppSharp.Parser.AST.Expr.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue))
9134+
__result0 = (global::CppSharp.Parser.AST.Expr) global::CppSharp.Parser.AST.Expr.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue];
9135+
else __result0 = global::CppSharp.Parser.AST.Expr.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue);
91369136
return __result0;
91379137
}
91389138

91399139
set
91409140
{
9141-
((global::CppSharp.Parser.AST.Parameter.__Internal*)__Instance)->defaultArgumentNew = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
9141+
((global::CppSharp.Parser.AST.Parameter.__Internal*)__Instance)->defaultValue = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
91429142
}
91439143
}
91449144
}

src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8969,7 +8969,7 @@ public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration,
89698969
internal global::System.IntPtr defaultArgument;
89708970

89718971
[FieldOffset(164)]
8972-
internal global::System.IntPtr defaultArgumentNew;
8972+
internal global::System.IntPtr defaultValue;
89738973

89748974
[SuppressUnmanagedCodeSecurity]
89758975
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
@@ -9124,21 +9124,21 @@ public uint Index
91249124
}
91259125
}
91269126

9127-
public global::CppSharp.Parser.AST.Expr DefaultArgumentNew
9127+
public global::CppSharp.Parser.AST.Expr DefaultValue
91289128
{
91299129
get
91309130
{
91319131
global::CppSharp.Parser.AST.Expr __result0;
9132-
if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew == IntPtr.Zero) __result0 = null;
9133-
else if (global::CppSharp.Parser.AST.Expr.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew))
9134-
__result0 = (global::CppSharp.Parser.AST.Expr) global::CppSharp.Parser.AST.Expr.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew];
9135-
else __result0 = global::CppSharp.Parser.AST.Expr.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew);
9132+
if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue == IntPtr.Zero) __result0 = null;
9133+
else if (global::CppSharp.Parser.AST.Expr.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue))
9134+
__result0 = (global::CppSharp.Parser.AST.Expr) global::CppSharp.Parser.AST.Expr.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue];
9135+
else __result0 = global::CppSharp.Parser.AST.Expr.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue);
91369136
return __result0;
91379137
}
91389138

91399139
set
91409140
{
9141-
((global::CppSharp.Parser.AST.Parameter.__Internal*)__Instance)->defaultArgumentNew = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
9141+
((global::CppSharp.Parser.AST.Parameter.__Internal*)__Instance)->defaultValue = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
91429142
}
91439143
}
91449144
}

src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8969,7 +8969,7 @@ public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration,
89698969
internal global::System.IntPtr defaultArgument;
89708970

89718971
[FieldOffset(232)]
8972-
internal global::System.IntPtr defaultArgumentNew;
8972+
internal global::System.IntPtr defaultValue;
89738973

89748974
[SuppressUnmanagedCodeSecurity]
89758975
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
@@ -9124,21 +9124,21 @@ public uint Index
91249124
}
91259125
}
91269126

9127-
public global::CppSharp.Parser.AST.Expr DefaultArgumentNew
9127+
public global::CppSharp.Parser.AST.Expr DefaultValue
91289128
{
91299129
get
91309130
{
91319131
global::CppSharp.Parser.AST.Expr __result0;
9132-
if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew == IntPtr.Zero) __result0 = null;
9133-
else if (global::CppSharp.Parser.AST.Expr.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew))
9134-
__result0 = (global::CppSharp.Parser.AST.Expr) global::CppSharp.Parser.AST.Expr.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew];
9135-
else __result0 = global::CppSharp.Parser.AST.Expr.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew);
9132+
if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue == IntPtr.Zero) __result0 = null;
9133+
else if (global::CppSharp.Parser.AST.Expr.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue))
9134+
__result0 = (global::CppSharp.Parser.AST.Expr) global::CppSharp.Parser.AST.Expr.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue];
9135+
else __result0 = global::CppSharp.Parser.AST.Expr.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue);
91369136
return __result0;
91379137
}
91389138

91399139
set
91409140
{
9141-
((global::CppSharp.Parser.AST.Parameter.__Internal*)__Instance)->defaultArgumentNew = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
9141+
((global::CppSharp.Parser.AST.Parameter.__Internal*)__Instance)->defaultValue = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
91429142
}
91439143
}
91449144
}

src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8969,7 +8969,7 @@ public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration,
89698969
internal global::System.IntPtr defaultArgument;
89708970

89718971
[FieldOffset(256)]
8972-
internal global::System.IntPtr defaultArgumentNew;
8972+
internal global::System.IntPtr defaultValue;
89738973

89748974
[SuppressUnmanagedCodeSecurity]
89758975
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
@@ -9124,21 +9124,21 @@ public uint Index
91249124
}
91259125
}
91269126

9127-
public global::CppSharp.Parser.AST.Expr DefaultArgumentNew
9127+
public global::CppSharp.Parser.AST.Expr DefaultValue
91289128
{
91299129
get
91309130
{
91319131
global::CppSharp.Parser.AST.Expr __result0;
9132-
if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew == IntPtr.Zero) __result0 = null;
9133-
else if (global::CppSharp.Parser.AST.Expr.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew))
9134-
__result0 = (global::CppSharp.Parser.AST.Expr) global::CppSharp.Parser.AST.Expr.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew];
9135-
else __result0 = global::CppSharp.Parser.AST.Expr.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew);
9132+
if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue == IntPtr.Zero) __result0 = null;
9133+
else if (global::CppSharp.Parser.AST.Expr.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue))
9134+
__result0 = (global::CppSharp.Parser.AST.Expr) global::CppSharp.Parser.AST.Expr.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue];
9135+
else __result0 = global::CppSharp.Parser.AST.Expr.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue);
91369136
return __result0;
91379137
}
91389138

91399139
set
91409140
{
9141-
((global::CppSharp.Parser.AST.Parameter.__Internal*)__Instance)->defaultArgumentNew = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
9141+
((global::CppSharp.Parser.AST.Parameter.__Internal*)__Instance)->defaultValue = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
91429142
}
91439143
}
91449144
}

src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -683,8 +683,6 @@ namespace Std
683683
{
684684
public enum RbTreeColor : uint
685685
{
686-
S_red = 0,
687-
S_black = 1
688686
}
689687

690688
namespace RbTree

src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8969,7 +8969,7 @@ public unsafe partial class Parameter : global::CppSharp.Parser.AST.Declaration,
89698969
internal global::System.IntPtr defaultArgument;
89708970

89718971
[FieldOffset(184)]
8972-
internal global::System.IntPtr defaultArgumentNew;
8972+
internal global::System.IntPtr defaultValue;
89738973

89748974
[SuppressUnmanagedCodeSecurity]
89758975
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
@@ -9124,21 +9124,21 @@ public uint Index
91249124
}
91259125
}
91269126

9127-
public global::CppSharp.Parser.AST.Expr DefaultArgumentNew
9127+
public global::CppSharp.Parser.AST.Expr DefaultValue
91289128
{
91299129
get
91309130
{
91319131
global::CppSharp.Parser.AST.Expr __result0;
9132-
if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew == IntPtr.Zero) __result0 = null;
9133-
else if (global::CppSharp.Parser.AST.Expr.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew))
9134-
__result0 = (global::CppSharp.Parser.AST.Expr) global::CppSharp.Parser.AST.Expr.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew];
9135-
else __result0 = global::CppSharp.Parser.AST.Expr.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultArgumentNew);
9132+
if (((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue == IntPtr.Zero) __result0 = null;
9133+
else if (global::CppSharp.Parser.AST.Expr.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue))
9134+
__result0 = (global::CppSharp.Parser.AST.Expr) global::CppSharp.Parser.AST.Expr.NativeToManagedMap[((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue];
9135+
else __result0 = global::CppSharp.Parser.AST.Expr.__CreateInstance(((global::CppSharp.Parser.AST.Parameter.__Internal*) __Instance)->defaultValue);
91369136
return __result0;
91379137
}
91389138

91399139
set
91409140
{
9141-
((global::CppSharp.Parser.AST.Parameter.__Internal*)__Instance)->defaultArgumentNew = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
9141+
((global::CppSharp.Parser.AST.Parameter.__Internal*)__Instance)->defaultValue = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
91429142
}
91439143
}
91449144
}

0 commit comments

Comments
 (0)