Browse Source

Added copy constructors to Class, Parameter and DeclarationContext.

pull/237/head
Elias Holzer 12 years ago
parent
commit
61a5ceb5c3
  1. 22
      src/AST/Class.cs
  2. 11
      src/AST/Function.cs
  3. 16
      src/AST/Namespace.cs

22
src/AST/Class.cs

@ -133,6 +133,28 @@ namespace CppSharp.AST @@ -133,6 +133,28 @@ namespace CppSharp.AST
Layout = new ClassLayout();
}
public Class(Class @class)
: base(@class)
{
Bases = new List<BaseClassSpecifier>(@class.Bases);
Fields = new List<Field>(@class.Fields);
Properties = new List<Property>(@class.Properties);
Methods = new List<Method>(@class.Methods);
Specifiers = new List<AccessSpecifierDecl>(@class.Specifiers);
IsPOD = @class.IsPOD;
Type = @class.Type;
Layout = new ClassLayout(@class.Layout);
IsAbstract = @class.IsAbstract;
IsUnion = @class.IsUnion;
IsOpaque = @class.IsOpaque;
IsDynamic = @class.IsDynamic;
IsPolymorphic = @class.IsPolymorphic;
HasNonTrivialDefaultConstructor = @class.HasNonTrivialDefaultConstructor;
HasNonTrivialCopyConstructor = @class.HasNonTrivialCopyConstructor;
HasNonTrivialDestructor = @class.HasNonTrivialDestructor;
IsStatic = @class.IsStatic;
}
public bool HasBase
{
get { return Bases.Count > 0; }

11
src/AST/Function.cs

@ -37,6 +37,17 @@ namespace CppSharp.AST @@ -37,6 +37,17 @@ namespace CppSharp.AST
HasDefaultValue = false;
}
public Parameter(Parameter p)
: base(p)
{
HasDefaultValue = p.HasDefaultValue;
Index = p.Index;
IsIndirect = p.IsIndirect;
Kind = p.Kind;
QualifiedType = p.QualifiedType;
Usage = p.Usage;
}
public Type Type { get { return QualifiedType.Type; } }
public QualifiedType QualifiedType { get; set; }
public bool IsIndirect { get; set; }

16
src/AST/Namespace.cs

@ -51,6 +51,22 @@ namespace CppSharp.AST @@ -51,6 +51,22 @@ namespace CppSharp.AST
Anonymous = new Dictionary<ulong, Declaration>();
}
protected DeclarationContext(DeclarationContext dc)
: base(dc)
{
Namespaces = new List<Namespace>(dc.Namespaces);
Enums = new List<Enumeration>(dc.Enums);
Functions = new List<Function>(dc.Functions);
Classes = new List<Class>(dc.Classes);
Templates = new List<Template>(dc.Templates);
Typedefs = new List<TypedefDecl>(dc.Typedefs);
Variables = new List<Variable>(dc.Variables);
Events = new List<Event>(dc.Events);
TypeReferences = new List<TypeReference>(dc.TypeReferences);
Anonymous = new Dictionary<ulong, Declaration>(dc.Anonymous);
IsAnonymous = dc.IsAnonymous;
}
public IEnumerable<DeclarationContext> GatherParentNamespaces()
{
var children = new List<DeclarationContext>();

Loading…
Cancel
Save