Browse Source

* list interfaces in html declaration

git-svn-id: trunk@15794 -
marco 15 years ago
parent
commit
17b15e762d
3 changed files with 15 additions and 1 deletions
  1. 3 0
      packages/fcl-passrc/src/pastree.pp
  2. 4 1
      packages/fcl-passrc/src/pparser.pp
  3. 8 0
      utils/fpdoc/dw_html.pp

+ 3 - 0
packages/fcl-passrc/src/pastree.pp

@@ -452,6 +452,7 @@ type
 
     ClassVars: TList;   // class vars
     Modifiers: TStringList;
+    Interfaces : TList;
   end;
 
   TArgumentAccess = (argDefault, argConst, argVar, argOut);
@@ -1303,6 +1304,7 @@ begin
   Members := TList.Create;
   Modifiers := TStringList.Create;
   ClassVars := TList.Create;
+  Interfaces:= TList.Create;
 end;
 
 destructor TPasClassType.Destroy;
@@ -1316,6 +1318,7 @@ begin
     AncestorType.Release;
   Modifiers.Free;
   ClassVars.Free;
+  Interfaces.Free;
   inherited Destroy;
 end;
 

+ 4 - 1
packages/fcl-passrc/src/pparser.pp

@@ -3204,7 +3204,10 @@ begin
           break;
         UngetToken;
         ExpectToken(tkComma);
-        ExpectIdentifier;
+        //ExpectIdentifier;
+        Element:=ParseType(Nil); // search interface.
+        if assigned(element) then
+          TPasClassType(Result).Interfaces.add(element);
         // !!!: Store interface name
       end;
       NextToken;

+ 8 - 0
utils/fpdoc/dw_html.pp

@@ -2847,6 +2847,14 @@ var
     begin
       AppendSym(CodeEl, '(');
       AppendHyperlink(CodeEl, AClass.AncestorType);
+      if AClass.Interfaces.count>0 Then
+        begin
+          for i:=0 to AClass.interfaces.count-1 do
+           begin
+             AppendSym(CodeEl, ',');
+             AppendText(CodeEl,TPasClassType(AClass.Interfaces[i]).Name);
+           end; 
+        end;
       AppendSym(CodeEl, ')');
     end;