|
|
|
@ -8,6 +8,15 @@ namespace Cxxi
@@ -8,6 +8,15 @@ namespace Cxxi
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class Namespace |
|
|
|
|
{ |
|
|
|
|
public string Name { get; set; } |
|
|
|
|
public Namespace Parent { get; set; } |
|
|
|
|
public bool IsAnonymous { get; set; } |
|
|
|
|
|
|
|
|
|
public List<Namespace> Namespaces; |
|
|
|
|
public List<Enumeration> Enums; |
|
|
|
|
public List<Function> Functions; |
|
|
|
|
public List<Class> Classes; |
|
|
|
|
|
|
|
|
|
public Namespace() |
|
|
|
|
: this(null, String.Empty) |
|
|
|
|
{ |
|
|
|
@ -19,42 +28,53 @@ namespace Cxxi
@@ -19,42 +28,53 @@ namespace Cxxi
|
|
|
|
|
Parent = parent; |
|
|
|
|
IsAnonymous = isAnonymous; |
|
|
|
|
|
|
|
|
|
Namespaces = new List<Namespace>(); |
|
|
|
|
Enums = new List<Enumeration>(); |
|
|
|
|
Functions = new List<Function>(); |
|
|
|
|
Classes = new List<Class>(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public Enumeration FindEnum(string Name) |
|
|
|
|
public Namespace FindNamespace(string name) |
|
|
|
|
{ |
|
|
|
|
return FindEnumWithName(Name); |
|
|
|
|
return Namespaces.Find(e => e.Name.Equals(name)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public Function FindFunction(string Name) |
|
|
|
|
public Enumeration FindEnum(string name) |
|
|
|
|
{ |
|
|
|
|
return Functions.Find(e => e.Name.Equals(Name)); |
|
|
|
|
return Enums.Find(e => e.Name.Equals(name)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public Class FindClass(string Name) |
|
|
|
|
public Function FindFunction(string name) |
|
|
|
|
{ |
|
|
|
|
return Classes.Find(e => e.Name.Equals(Name)); |
|
|
|
|
return Functions.Find(e => e.Name.Equals(name)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public T FindType<T>(string Name) where T : Declaration |
|
|
|
|
public Class FindClass(string name, bool create = false) |
|
|
|
|
{ |
|
|
|
|
var type = FindEnumWithName(Name) |
|
|
|
|
?? FindFunction(Name) ?? (Declaration)FindClass(Name); |
|
|
|
|
Class @class = Classes.Find(e => e.Name.Equals(name)); |
|
|
|
|
|
|
|
|
|
return type as T; |
|
|
|
|
if (@class == null && create) |
|
|
|
|
{ |
|
|
|
|
@class = new Class(); |
|
|
|
|
@class.Name = name; |
|
|
|
|
|
|
|
|
|
Classes.Add(@class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return @class; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public Enumeration FindEnumWithName(string Name) |
|
|
|
|
public T FindType<T>(string name) where T : Declaration |
|
|
|
|
{ |
|
|
|
|
return Enums.Find(e => e.Name.Equals(Name)); |
|
|
|
|
var type = FindEnum(name) |
|
|
|
|
?? FindFunction(name) ?? (Declaration)FindClass(name); |
|
|
|
|
|
|
|
|
|
return type as T; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public Enumeration FindEnumWithItem(string Name) |
|
|
|
|
public Enumeration FindEnumWithItem(string name) |
|
|
|
|
{ |
|
|
|
|
return Enums.Find(e => e.ItemsByName.ContainsKey(Name)); |
|
|
|
|
return Enums.Find(e => e.ItemsByName.ContainsKey(name)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public bool HasDeclarations |
|
|
|
@ -62,7 +82,8 @@ namespace Cxxi
@@ -62,7 +82,8 @@ namespace Cxxi
|
|
|
|
|
get |
|
|
|
|
{ |
|
|
|
|
Predicate<Declaration> pred = (t => !t.Ignore); |
|
|
|
|
return Enums.Exists(pred) || HasFunctions || Classes.Exists(pred); |
|
|
|
|
return Enums.Exists(pred) || HasFunctions |
|
|
|
|
|| Classes.Exists(pred) || Namespaces.Exists(n => n.HasDeclarations); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -71,16 +92,8 @@ namespace Cxxi
@@ -71,16 +92,8 @@ namespace Cxxi
|
|
|
|
|
get |
|
|
|
|
{ |
|
|
|
|
Predicate<Declaration> pred = (t => !t.Ignore); |
|
|
|
|
return Functions.Exists(pred); |
|
|
|
|
return Functions.Exists(pred) || Namespaces.Exists(n => n.HasFunctions); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public string Name { get; set; } |
|
|
|
|
public Namespace Parent { get; set; } |
|
|
|
|
public bool IsAnonymous { get; set; } |
|
|
|
|
|
|
|
|
|
public List<Enumeration> Enums; |
|
|
|
|
public List<Function> Functions; |
|
|
|
|
public List<Class> Classes; |
|
|
|
|
} |
|
|
|
|
} |