get {return types;}
}
+ //Type level tags
private void ParseDoc ()
{
while(xtr.Read ()) {
type.IsClass = true;
ParseType (type);
continue;
- case "structure":
+ case "delegate":
type = new DocType ();
- type.IsStructure = true;
+ type.IsDelegate = true;
ParseType (type);
continue;
- case "interface":
+ case "enum":
type = new DocType ();
- type.IsInterface = true;
+ type.IsEnum = true;
ParseType (type);
continue;
- case "enum":
+ case "interface":
type = new DocType ();
- type.IsEnum = true;
+ type.IsInterface = true;
ParseType (type);
continue;
- case "delegate":
+ case "structure":
type = new DocType ();
- type.IsDelegate = true;
+ type.IsStructure = true;
ParseType (type);
continue;
default:
types.Add (type);
}
+ //Member level tags
private void ParseTypeBody (DocType type)
{
while(xtr.Read ()) {
DocMember member;
if (
xtr.Name == "class"
- || xtr.Name == "structure"
- || xtr.Name == "interface"
- || xtr.Name == "enum"
|| xtr.Name == "delegate"
+ || xtr.Name == "enum"
+ || xtr.Name == "interface"
+ || xtr.Name == "structure"
) return;
switch (xtr.Name) {
case "constructor":
member = new DocMember();
- member.IsCtor = true;
- type.AddCtor (ParseMember (member));
+ member.IsConstructor = true;
+ type.AddConstructor (ParseMember (member));
continue;
- case "method":
+ case "event":
member = new DocMember();
- member.IsMethod = true;
- type.AddMethod (ParseMember (member));
+ member.IsEvent = true;
+ type.AddEvent (ParseMember (member));
continue;
case "field":
member = new DocMember();
member.IsField = true;
type.AddField (ParseMember (member));
continue;
- case "property":
+ case "method":
member = new DocMember();
- member.IsProperty = true;
- type.AddProperty (ParseMember (member));
+ member.IsMethod = true;
+ type.AddMethod (ParseMember (member));
continue;
- case "dtor":
+ case "operator":
member = new DocMember();
- member.IsDtor = true;
- type.AddDtor (ParseMember (member));
+ member.IsOperator = true;
+ type.AddOperator (ParseMember (member));
continue;
- case "event":
+ case "property":
member = new DocMember();
- member.IsEvent = true;
- type.AddEvent (ParseMember (member));
+ member.IsProperty = true;
+ type.AddProperty (ParseMember (member));
continue;
case "summary":
if (xtr.NodeType != XmlNodeType.EndElement && xtr.Depth == 2) {
}
}
continue;
+ case "seealso":
+ if (xtr.NodeType != XmlNodeType.EndElement && xtr.Depth == 2) {
+ xtr.Read ();
+ if (document != null) {
+ //document.AddSeeAlso (xtr.Value);
+ }
+ }
+ continue;
+ case "param":
+ if (xtr.NodeType != XmlNodeType.EndElement && xtr.Depth == 2) {
+ xtr.Read ();
+ if (document != null) {
+ //document.AddParam (xtr.Value);
+ }
+ }
+ continue;
+ case "member":
+ if (xtr.NodeType != XmlNodeType.EndElement && xtr.Depth == 2) {
+ xtr.Read ();
+ if (document != null) {
+ //document.AddEnumMember (xtr.Value);
+ }
+ }
+ continue;
default:
continue;
}
public class DocType : IComparable {
string name, _namespace, fileroot, language, summary, remarks;
- bool isClass, isInterface, isEnum, isStructure, isDelegate, isNested = false;
- ArrayList enums, ctors, dtors, methods, properties, fields, events;
+ bool isClass, isDelegate, isEnum, isInterface, isStructure, isNested = false;
+ ArrayList classes, delegates, enums, interfaces, structures, constructors,
+ events, fields, methods, operators, properties, seealsos, _params, members;
public DocType ()
{
+ classes = new ArrayList ();
+ delegates = new ArrayList ();
enums = new ArrayList ();
- ctors = new ArrayList ();
- dtors = new ArrayList ();
+ interfaces = new ArrayList ();
+ structures = new ArrayList ();
+ constructors = new ArrayList ();
+ events = new ArrayList ();
+ fields = new ArrayList ();
methods = new ArrayList ();
+ operators = new ArrayList ();
properties = new ArrayList ();
- fields = new ArrayList ();
- events = new ArrayList ();
+ seealsos = new ArrayList ();
+ _params = new ArrayList ();
+ members = new ArrayList ();
}
public int CompareTo (Object value)
{
if (type.IsClass)
return 5;
- else if (type.IsStructure)
+ else if (type.IsDelegate)
return 4;
- else if (type.IsInterface)
- return 3;
else if (type.IsEnum)
+ return 3;
+ else if (type.IsInterface)
return 2;
- else if (type.IsDelegate)
+ else if (type.IsStructure)
return 1;
else
return 0;
public void Sort ()
{
+ classes.Sort ();
+ delegates.Sort ();
enums.Sort ();
- ctors.Sort ();
- dtors.Sort ();
+ interfaces.Sort ();
+ structures.Sort ();
+ constructors.Sort ();
+ events.Sort ();
+ fields.Sort ();
methods.Sort ();
+ operators.Sort ();
properties.Sort ();
- fields.Sort ();
- events.Sort ();
+ }
+
+ public void AddClass (DocType type)
+ {
+ classes.Add (type);
}
- public void AddCtor (DocMember member)
+ public void AddDelegate (DocType type)
+ {
+ delegates.Add (type);
+ }
+
+ public void AddEnum (DocType type)
+ {
+ enums.Add (type);
+ }
+
+ public void AddInterface (DocType type)
+ {
+ interfaces.Add (type);
+ }
+
+ public void AddStructure (DocType type)
+ {
+ structures.Add (type);
+ }
+
+ public void AddConstructor (DocMember member)
+ {
+ constructors.Add (member);
+ }
+
+ public void AddEvent (DocMember member)
{
- ctors.Add (member);
+ events.Add (member);
}
- public void AddDtor (DocMember member)
+ public void AddField (DocMember member)
{
- dtors.Add (member);
+ fields.Add (member);
}
public void AddMethod (DocMember member)
{
methods.Add (member);
}
-
+
+ public void AddOperator (DocMember member)
+ {
+ operators.Add (member);
+ }
+
public void AddProperty (DocMember member)
{
properties.Add (member);
}
- public void AddField (DocMember member)
+ public void AddSeeAlso (DocSeeAlso see)
{
- fields.Add (member);
+ seealsos.Add (see);
}
-
- public void AddEvent (DocMember member)
+
+ public void AddParam (DocParam param)
{
- events.Add (member);
+ _params.Add (param);
+ }
+
+ public void AddEnumMember (DocEnumMember member)
+ {
+ members.Add (member);
+ }
+
+ //Meta Information
+ public bool IsNested
+ {
+ get {return isNested;}
+ set {isNested = value;}
+ }
+
+ public string Type
+ {
+ get {
+ if (IsClass)
+ return "class";
+ else if (IsDelegate)
+ return "delegate";
+ else if (IsEnum)
+ return "enum";
+ else if (IsInterface)
+ return "interface";
+ else
+ return "structure";
+ }
}
public string Name
set {remarks = value;}
}
- public bool IsInterface
- {
- get {return isInterface;}
- set {isInterface = value;}
- }
-
public bool IsClass
{
get {return isClass;}
set {isClass = value;}
}
- public bool IsStructure
+ public bool IsDelegate
{
- get {return isStructure;}
- set {isStructure = value;}
+ get {return isDelegate;}
+ set {isDelegate = value;}
}
-
+
public bool IsEnum
{
get {return isEnum;}
set {isEnum = value;}
}
- public bool IsDelegate
+ public bool IsInterface
{
- get {return isDelegate;}
- set {isDelegate = value;}
+ get {return isInterface;}
+ set {isInterface = value;}
+ }
+
+ public bool IsStructure
+ {
+ get {return isStructure;}
+ set {isStructure = value;}
}
- public bool IsNested
+ //Type level lists
+ public ArrayList Classes
{
- get {return isNested;}
- set {isNested = value;}
+ get {return classes;}
}
- public string Type
+ public ArrayList Delegates
{
- get {
- if (IsClass)
- return "class";
- else if (IsStructure)
- return "structure";
- else if (IsInterface)
- return "interface";
- else if (IsEnum)
- return "emum";
- else
- return "delegate";
- }
+ get {return delegates;}
}
public ArrayList Enums
get {return enums;}
}
- public ArrayList Ctors
+ public ArrayList Interfaces
{
- get {return ctors;}
+ get {return interfaces;}
}
- public ArrayList Dtors
+ public ArrayList Structures
{
- get {return dtors;}
+ get {return structures;}
}
-
+
+ //Member level lists
+ public ArrayList Constructors
+ {
+ get {return constructors;}
+ }
+
+ public ArrayList Events
+ {
+ get {return events;}
+ }
+
+ public ArrayList Fields
+ {
+ get {return fields;}
+ }
+
public ArrayList Methods
{
get {return methods;}
}
-
+
+ public ArrayList Operators
+ {
+ get {return operators;}
+ }
+
public ArrayList Properties
{
get {return properties;}
}
- public ArrayList Fields
+ public ArrayList SeeAlsos
{
- get {return fields;}
+ get {return seealsos;}
}
- public ArrayList Events
+ public ArrayList Params
{
- get {return events;}
+ get {return _params;}
+ }
+
+ public ArrayList EnumMembers
+ {
+ get {return members;}
}
}
}