[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnet/cscc csdoc.c,1.20,1.21
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/cscc csdoc.c,1.20,1.21 |
Date: |
Wed, 05 Mar 2003 20:59:54 -0500 |
Update of /cvsroot/dotgnu-pnet/pnet/cscc
In directory subversions:/tmp/cvs-serv32755/cscc
Modified Files:
csdoc.c
Log Message:
Dump XML documentation for events.
Index: csdoc.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csdoc.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -r1.20 -r1.21
*** csdoc.c 6 Mar 2003 01:04:02 -0000 1.20
--- csdoc.c 6 Mar 2003 01:59:52 -0000 1.21
***************
*** 1102,1105 ****
--- 1102,1185 ----
/*
+ * Generate documentation for a specific event definition.
+ */
+ static void GenerateDocsForEvent(FILE *stream, ILNode_EventDeclaration *decl,
+ int indent)
+ {
+ ILNode_ListIter iterator;
+ ILNode *eventDecl;
+ ILEvent *event;
+
+ /* Bail out if the field is private, and "-fprivate" is not supplied */
+ if(IsMemberPrivate(decl->modifiers))
+ {
+ if(!CCStringListContains(extension_flags, num_extension_flags,
+ "private"))
+ {
+ return;
+ }
+ }
+
+ /* Scan all event declarators that are attached to the event definition
*/
+ ILNode_ListIter_Init(&iterator, decl->eventDeclarators);
+ while((eventDecl = ILNode_ListIter_Next(&iterator)) != 0)
+ {
+ /* Get the event descriptor */
+ event = ((ILNode_EventDeclarator *)eventDecl)->eventInfo;
+ if(!event)
+ {
+ continue;
+ }
+
+ /* Output the member header */
+ Indent(stream, indent);
+ fputs("<Member MemberName=\"", stream);
+ fputs(ILEvent_Name(event), stream);
+ fputs("\">\n", stream);
+
+ /* Output the signature in ILASM form */
+ Indent(stream, indent + 2);
+ fputs("<MemberSignature Language=\"ILASM\" Value=\".event ",
stream);
+ ILDumpFlags(stream, decl->modifiers, ILMethodDefinitionFlags,
0);
+ fputs("event ", stream);
+ fputs(ILEvent_Name(event), stream);
+ /* TODO: add/remove methods */
+ fputs("\"/>\n", stream);
+
+ /* Output the signature in C# form */
+ Indent(stream, indent + 2);
+ fputs("<MemberSignature Language=\"C#\" Value=\"", stream);
+ ILDumpFlags(stream, decl->modifiers, CSharpMethodFlags, 0);
+ fputs(CSTypeToName(ILEvent_Type(event)), stream);
+ putc(' ', stream);
+ fputs(ILEvent_Name(event), stream);
+ /* TODO: add/remove methods */
+ fputs("\"/>\n", stream);
+
+ /* Output the member kind */
+ Indent(stream, indent + 2);
+ fputs("<MemberType>Event</MemberType>\n", stream);
+
+ /* Dump the attributes for the event */
+ DumpAttributes(stream, ILToProgramItem(event), indent + 2);
+
+ /* Events don't have return types or parameters */
+ Indent(stream, indent + 2);
+ fputs("<ReturnValue/>\n", stream);
+ Indent(stream, indent + 2);
+ fputs("<Parameters/>\n", stream);
+
+ /* Dump the doc comments for the event */
+ DumpDocComments(stream, decl->attributes, indent + 2);
+
+ /* Output the member footer */
+ Indent(stream, indent + 2);
+ fputs("<Excluded>0</Excluded>\n", stream);
+ Indent(stream, indent);
+ fputs("</Member>\n", stream);
+ }
+ }
+
+ /*
* Generate documentation for a specific class definition and its members.
*/
***************
*** 1337,1346 ****
indent);
}
- #if 0
else if(yykind(member) == yykindof(ILNode_EventDeclaration))
{
! /* TODO: document an event */
}
- #endif
else if(yykind(member) == yykindof(ILNode_ClassDefn))
{
--- 1417,1426 ----
indent);
}
else if(yykind(member) == yykindof(ILNode_EventDeclaration))
{
! GenerateDocsForEvent(stream,
!
(ILNode_EventDeclaration *)member,
! indent);
}
else if(yykind(member) == yykindof(ILNode_ClassDefn))
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/cscc csdoc.c,1.20,1.21,
Rhys Weatherley <address@hidden> <=