mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 18:49:16 +02:00
* Support for generics
git-svn-id: trunk@19622 -
This commit is contained in:
parent
5ea8e65ea2
commit
91a2b7ae18
@ -2828,6 +2828,22 @@ var
|
|||||||
AppendText(ParaEl, '] ');
|
AppendText(ParaEl, '] ');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure AppendGenericTypes(CodeEl : TDomElement; AList : TList; isSpecialize : Boolean);
|
||||||
|
|
||||||
|
Var
|
||||||
|
I : integer;
|
||||||
|
begin
|
||||||
|
for I:=0 to AList.Count-1 do
|
||||||
|
begin
|
||||||
|
if I=0 then
|
||||||
|
AppendSym(CodeEl, '<')
|
||||||
|
else
|
||||||
|
AppendSym(CodeEl, ',');
|
||||||
|
AppendText(CodeEl,TPasGenericTemplateType(AList[i]).Name);
|
||||||
|
end;
|
||||||
|
AppendSym(CodeEl, '>');
|
||||||
|
end;
|
||||||
|
|
||||||
procedure CreateMainPage;
|
procedure CreateMainPage;
|
||||||
var
|
var
|
||||||
TableEl, TREl, TDEl, CodeEl: TDOMElement;
|
TableEl, TREl, TDEl, CodeEl: TDOMElement;
|
||||||
@ -2858,12 +2874,26 @@ var
|
|||||||
TDEl := CreateTD(TREl);
|
TDEl := CreateTD(TREl);
|
||||||
CodeEl := CreateCode(CreatePara(TDEl));
|
CodeEl := CreateCode(CreatePara(TDEl));
|
||||||
AppendKw(CodeEl, 'type');
|
AppendKw(CodeEl, 'type');
|
||||||
|
if AClass.ObjKind=okGeneric then
|
||||||
|
AppendKw(CodeEl, ' generic ');
|
||||||
AppendText(CodeEl, ' ' + AClass.Name + ' ');
|
AppendText(CodeEl, ' ' + AClass.Name + ' ');
|
||||||
|
if AClass.ObjKind=okGeneric then
|
||||||
|
AppendGenericTypes(CodeEl,AClass.GenericTemplateTypes,false);
|
||||||
AppendSym(CodeEl, '=');
|
AppendSym(CodeEl, '=');
|
||||||
AppendText(CodeEl, ' ');
|
AppendText(CodeEl, ' ');
|
||||||
AppendKw(CodeEl, ObjKindNames[AClass.ObjKind]);
|
if AClass.ObjKind<>okSpecialize then
|
||||||
|
AppendKw(CodeEl, ObjKindNames[AClass.ObjKind])
|
||||||
|
else
|
||||||
|
AppendKw(CodeEl, ' specialize ');
|
||||||
|
|
||||||
if Assigned(AClass.AncestorType) then
|
if Assigned(AClass.AncestorType) then
|
||||||
|
begin
|
||||||
|
if AClass.ObjKind=okSpecialize then
|
||||||
|
begin
|
||||||
|
AppendHyperlink(CodeEl, AClass.AncestorType);
|
||||||
|
AppendGenericTypes(CodeEl,AClass.GenericTemplateTypes,true)
|
||||||
|
end
|
||||||
|
else
|
||||||
begin
|
begin
|
||||||
AppendSym(CodeEl, '(');
|
AppendSym(CodeEl, '(');
|
||||||
AppendHyperlink(CodeEl, AClass.AncestorType);
|
AppendHyperlink(CodeEl, AClass.AncestorType);
|
||||||
@ -2877,6 +2907,7 @@ var
|
|||||||
end;
|
end;
|
||||||
AppendSym(CodeEl, ')');
|
AppendSym(CodeEl, ')');
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
if AClass.Members.Count > 0 then
|
if AClass.Members.Count > 0 then
|
||||||
begin
|
begin
|
||||||
@ -2965,6 +2996,7 @@ var
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
AppendText(CodeEl, ' '); // !!!: Dirty trick, necessary for current XML writer
|
AppendText(CodeEl, ' '); // !!!: Dirty trick, necessary for current XML writer
|
||||||
|
if not AClass.IsShortDefinition then
|
||||||
AppendKw(CodeEl, 'end');
|
AppendKw(CodeEl, 'end');
|
||||||
AppendSym(CodeEl, ';');
|
AppendSym(CodeEl, ';');
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ resourcestring
|
|||||||
|
|
||||||
Const
|
Const
|
||||||
RootNames : Array[TPasObjKind] of string
|
RootNames : Array[TPasObjKind] of string
|
||||||
= ('Objects', 'Classes', 'Interfaces');
|
= ('Objects', 'Classes', 'Interfaces','Generics','Specializations');
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
<Title Value="FPDoc Documentation generator"/>
|
<Title Value="FPDoc Documentation generator"/>
|
||||||
<ResourceType Value="res"/>
|
<ResourceType Value="res"/>
|
||||||
<UseXPManifest Value="True"/>
|
<UseXPManifest Value="True"/>
|
||||||
<Icon Value="0"/>
|
|
||||||
</General>
|
</General>
|
||||||
<i18n>
|
<i18n>
|
||||||
<EnableI18N LFM="False"/>
|
<EnableI18N LFM="False"/>
|
||||||
@ -60,7 +59,7 @@
|
|||||||
<Unit3>
|
<Unit3>
|
||||||
<Filename Value="dw_html.pp"/>
|
<Filename Value="dw_html.pp"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="dw_html"/>
|
<UnitName Value="dw_HTML"/>
|
||||||
</Unit3>
|
</Unit3>
|
||||||
<Unit4>
|
<Unit4>
|
||||||
<Filename Value="dw_ipflin.pas"/>
|
<Filename Value="dw_ipflin.pas"/>
|
||||||
@ -70,7 +69,7 @@
|
|||||||
<Unit5>
|
<Unit5>
|
||||||
<Filename Value="dw_latex.pp"/>
|
<Filename Value="dw_latex.pp"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="dw_latex"/>
|
<UnitName Value="dw_LaTeX"/>
|
||||||
</Unit5>
|
</Unit5>
|
||||||
<Unit6>
|
<Unit6>
|
||||||
<Filename Value="dwlinear.pp"/>
|
<Filename Value="dwlinear.pp"/>
|
||||||
@ -80,7 +79,7 @@
|
|||||||
<Unit7>
|
<Unit7>
|
||||||
<Filename Value="dw_linrtf.pp"/>
|
<Filename Value="dw_linrtf.pp"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="dw_linrtf"/>
|
<UnitName Value="dw_LinRTF"/>
|
||||||
</Unit7>
|
</Unit7>
|
||||||
<Unit8>
|
<Unit8>
|
||||||
<Filename Value="dw_man.pp"/>
|
<Filename Value="dw_man.pp"/>
|
||||||
@ -90,7 +89,7 @@
|
|||||||
<Unit9>
|
<Unit9>
|
||||||
<Filename Value="dwriter.pp"/>
|
<Filename Value="dwriter.pp"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="dwriter"/>
|
<UnitName Value="dWriter"/>
|
||||||
</Unit9>
|
</Unit9>
|
||||||
<Unit10>
|
<Unit10>
|
||||||
<Filename Value="dw_txt.pp"/>
|
<Filename Value="dw_txt.pp"/>
|
||||||
@ -100,7 +99,7 @@
|
|||||||
<Unit11>
|
<Unit11>
|
||||||
<Filename Value="dw_xml.pp"/>
|
<Filename Value="dw_xml.pp"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="dw_xml"/>
|
<UnitName Value="dw_XML"/>
|
||||||
</Unit11>
|
</Unit11>
|
||||||
<Unit12>
|
<Unit12>
|
||||||
<Filename Value="fpdocproj.pas"/>
|
<Filename Value="fpdocproj.pas"/>
|
||||||
@ -115,7 +114,7 @@
|
|||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
<Version Value="9"/>
|
<Version Value="10"/>
|
||||||
<Target>
|
<Target>
|
||||||
<Filename Value="fpdoc"/>
|
<Filename Value="fpdoc"/>
|
||||||
</Target>
|
</Target>
|
||||||
|
@ -339,6 +339,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
WriterClass:=GetWriterClass(Options.Backend);
|
WriterClass:=GetWriterClass(Options.Backend);
|
||||||
Writer:=WriterClass.Create(Engine.Package,Engine);
|
Writer:=WriterClass.Create(Engine.Package,Engine);
|
||||||
|
Writeln('Writing doc');
|
||||||
With Writer do
|
With Writer do
|
||||||
Try
|
Try
|
||||||
If Options.BackendOptions.Count>0 then
|
If Options.BackendOptions.Count>0 then
|
||||||
|
@ -40,7 +40,7 @@ Type
|
|||||||
2 : (phi,Omega : Real);
|
2 : (phi,Omega : Real);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// TADeprecatedType = Integer deprecated;
|
TADeprecatedType = Integer deprecated;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
ASimpleVar : Integer;
|
ASimpleVar : Integer;
|
||||||
|
Loading…
Reference in New Issue
Block a user