From 1d4758c59dbbf42d717433ee100af6120e69a9df Mon Sep 17 00:00:00 2001 From: ocoursiere Date: Tue, 19 Nov 2002 23:30:26 +0000 Subject: [PATCH] headertoxml now support any number of classes per header --- bepascal/bepascal/headertoxml/headertoxml.pp | 62 +++++++++++--------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/bepascal/bepascal/headertoxml/headertoxml.pp b/bepascal/bepascal/headertoxml/headertoxml.pp index 0338cce..0201f63 100644 --- a/bepascal/bepascal/headertoxml/headertoxml.pp +++ b/bepascal/bepascal/headertoxml/headertoxml.pp @@ -173,39 +173,45 @@ begin XMLWriter := TXMLWriter.Create(s); try XMLWriter.StartClasses; - XMLWriter.StartClasse(Elem); - XMLWriter.StartFunction(Elem^.children); - CurrentArg := Elem^.args; - if CurrentArg <> nil then - begin - XMLWriter.StartParam(CurrentArg); - while CurrentArg^.Next <> nil do + while Elem <> nil do + begin + if Elem <> nil then + WriteLn(Elem^.aName); + XMLWriter.StartClasse(Elem); + XMLWriter.StartFunction(Elem^.children); + CurrentArg := Elem^.args; + if CurrentArg <> nil then begin - CurrentArg := CurrentArg^.Next; XMLWriter.StartParam(CurrentArg); - end; - end; - XMLWriter.StartResult(Elem^.ret_type); - XMLWriter.EndFunction; - Current := Elem^.children; - while Current^.next <> nil do - begin - Current := Current^.next; - XMLWriter.StartFunction(Current); - CurrentArg := Current^.args; - if CurrentArg <> nil then + while CurrentArg^.Next <> nil do begin + CurrentArg := CurrentArg^.Next; XMLWriter.StartParam(CurrentArg); - while CurrentArg^.next <> nil do - begin - CurrentArg := CurrentArg^.next; - XMLWriter.StartParam(CurrentArg); - end; end; - XMLWriter.StartResult(Current^.ret_type); - XMLWriter.EndFunction; - end; - XMLWriter.EndClasse; + end; + XMLWriter.StartResult(Elem^.ret_type); + XMLWriter.EndFunction; + Current := Elem^.children; + while Current^.next <> nil do + begin + Current := Current^.next; + XMLWriter.StartFunction(Current); + CurrentArg := Current^.args; + if CurrentArg <> nil then + begin + XMLWriter.StartParam(CurrentArg); + while CurrentArg^.next <> nil do + begin + CurrentArg := CurrentArg^.next; + XMLWriter.StartParam(CurrentArg); + end; + end; + XMLWriter.StartResult(Current^.ret_type); + XMLWriter.EndFunction; + end; + XMLWriter.EndClasse; + Elem := Elem^.next; + end; XMLWriter.EndClasses; finally XMLWriter.Free;