dotgnu-pnet-commits
[Top][All Lists]
Advanced

[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))
                {





reply via email to

[Prev in Thread] Current Thread [Next in Thread]