summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authormarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-08-04 08:49:29 +0000
committermarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-08-04 08:49:29 +0000
commit331c53929e2a9772e8ee23f678b8cfef6a47fca8 (patch)
tree0318de7711b4f564ed6833b351bbce423b2644ff /utils
parenta7c15f749c7b425901b973ca719e4f628df5fb75 (diff)
downloadfpc-331c53929e2a9772e8ee23f678b8cfef6a47fca8.tar.gz
--- Merging r31168 into '.':
U packages/fcl-passrc/src/pparser.pp U packages/fcl-passrc/src/pastree.pp U packages/fcl-passrc/src/pscanner.pp --- Recording mergeinfo for merge of r31168 into '.': U . --- Merging r31226 into '.': U packages/fcl-passrc/tests/tctypeparser.pas U packages/fcl-passrc/tests/tcprocfunc.pas U packages/fcl-passrc/tests/testpassrc.lpi U packages/fcl-passrc/tests/tcbaseparser.pas G packages/fcl-passrc/src/pastree.pp G packages/fcl-passrc/src/pparser.pp --- Recording mergeinfo for merge of r31226 into '.': G . --- Merging r31228 into '.': G packages/fcl-passrc/src/pastree.pp --- Recording mergeinfo for merge of r31228 into '.': G . --- Merging r31229 into '.': G packages/fcl-passrc/src/pparser.pp --- Recording mergeinfo for merge of r31229 into '.': G . --- Merging r31230 into '.': U utils/fpdoc/mkfpdoc.pp --- Recording mergeinfo for merge of r31230 into '.': G . --- Merging r31231 into '.': U utils/fpdoc/makeskel.pp --- Recording mergeinfo for merge of r31231 into '.': G . --- Merging r31232 into '.': U utils/fpdoc/dw_html.pp --- Recording mergeinfo for merge of r31232 into '.': G . --- Merging r31233 into '.': U utils/fpdoc/dglobals.pp --- Recording mergeinfo for merge of r31233 into '.': G . --- Merging r31234 into '.': U utils/fpdoc/testunit.pp A utils/fpdoc/gentest.sh U utils/fpdoc/testunit.xml --- Recording mergeinfo for merge of r31234 into '.': G . # revisions: 31168,31226,31228,31229,31230,31231,31232,31233,31234 git-svn-id: http://svn.freepascal.org/svn/fpc/branches/fixes_3_0@31269 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'utils')
-rw-r--r--utils/fpdoc/dglobals.pp4
-rw-r--r--utils/fpdoc/dw_html.pp7
-rw-r--r--utils/fpdoc/gentest.sh10
-rw-r--r--utils/fpdoc/makeskel.pp31
-rw-r--r--utils/fpdoc/mkfpdoc.pp1
-rw-r--r--utils/fpdoc/testunit.pp19
-rw-r--r--utils/fpdoc/testunit.xml182
7 files changed, 247 insertions, 7 deletions
diff --git a/utils/fpdoc/dglobals.pp b/utils/fpdoc/dglobals.pp
index 912ff6f892..5884bda9f1 100644
--- a/utils/fpdoc/dglobals.pp
+++ b/utils/fpdoc/dglobals.pp
@@ -1514,7 +1514,11 @@ begin
if AElement.InheritsFrom(TPasUnresolvedTypeRef) then
Result := FindDocNode(AElement.GetModule, AElement.Name)
else
+ begin
Result := RootDocNode.FindChild(AElement.PathName);
+ if (Result=Nil) and (AElement is TPasoperator) then
+ Result:=RootDocNode.FindChild(TPasOperator(AElement).OldName(True));
+ end;
if (Result=Nil) and
WarnNoNode and
(Length(AElement.PathName)>0) and
diff --git a/utils/fpdoc/dw_html.pp b/utils/fpdoc/dw_html.pp
index 81b4af8639..facd7a3e3f 100644
--- a/utils/fpdoc/dw_html.pp
+++ b/utils/fpdoc/dw_html.pp
@@ -1855,7 +1855,10 @@ procedure THTMLWriter.AppendProcDecl(CodeEl, TableEl: TDOMElement;
AppendSym(CodeEl, '.');
AppendText(CodeEl, AProc.Name);
end else
- AppendText(CodeEl, ' ' + AProc.FullName);
+ if (Element is TPasOperator) then
+ AppendText(CodeEl, ' ' + TPasOperator(AProc).GetOperatorDeclaration(True))
+ else
+ AppendText(CodeEl, ' ' + AProc.FullName);
CodeEl := AppendProcType(CodeEl, TableEl, AProc.ProcType, 0);
AppendSym(CodeEl, ';');
AppendProcExt(CodeEl, AProc);
@@ -2571,6 +2574,8 @@ begin
CreateProcPageBody(TPasProcedureBase(AElement))
else if AElement.ClassType = TTopicELement then
CreateTopicPageBody(TTopicElement(AElement))
+ else if AElement.ClassType = TPasProperty then
+ CreateClassMemberPageBody(TPasProperty(AElement))
else
writeln('Unknown classtype: ',AElement.classtype.classname);
end;
diff --git a/utils/fpdoc/gentest.sh b/utils/fpdoc/gentest.sh
new file mode 100644
index 0000000000..aff9eababf
--- /dev/null
+++ b/utils/fpdoc/gentest.sh
@@ -0,0 +1,10 @@
+if [ -e ./fpdoc ]; then
+ FPDOC=./fpdoc
+fi
+NEWERDOC=`find bin -newer ./fpdoc -type f | xargs -r ls -t | head -1`
+if [ ! -z "$NEWERDOC" ]; then
+ FPDOC="$NEWERDOC"
+fi
+echo "Using fpdoc executable $FPDOC"
+echo "Writing output to fpdoctest"
+$FPDOC --package=fpdoc --input='-S2 testunit.pp' --output=fpdoctest --format=html --warn-no-node -v --descr=testunit.xml
diff --git a/utils/fpdoc/makeskel.pp b/utils/fpdoc/makeskel.pp
index d63c0c0088..d68e792115 100644
--- a/utils/fpdoc/makeskel.pp
+++ b/utils/fpdoc/makeskel.pp
@@ -1,5 +1,4 @@
{
-
FPDoc - Free Pascal Documentation Tool
Copyright (C) 2000 - 2003 by
Areca Systems GmbH / Sebastian Guenther, sg@freepascal.org
@@ -18,9 +17,6 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
}
-
-
-{%RunCommand $MakeExe($(EdFile)) --package=fpvectorial --input=/home/felipe/Programas/fpctrunk/packages/fpvectorial/src/fpvectorial.pas}
program MakeSkel;
{$mode objfpc}
@@ -350,11 +346,33 @@ end;
Procedure TSkelEngine.DocumentFile(Var F : Text; Const AFileName,ATarget,ACPU : String);
+ Procedure ResolveOperators;
+
+ Var
+ E : TPasElement;
+ P : TNodePair;
+ N : TDocNode;
+ I : integer;
+
+ begin
+ For I:=0 to FNodeList.Count-1 do
+ begin
+ P:=TNodePair(FNodeList.Objects[i]);
+ if P.Element.InheritsFrom(TPasOperator) then
+ begin
+ N:=FindDocNode(P.Element);
+ If Assigned(N) then
+ N.IncRefCount;
+ P.FNode:=N;
+ end;
+ end;
+ end;
+
Var
Module : TPasModule;
I : Integer;
N : TDocNode;
-
+
begin
// wrong because afilename is a cmdline with other options. Straight testing filename is therefore wrong.
// if not(FileExists(AFileName)) then
@@ -370,7 +388,8 @@ begin
N:=FindDocNode(Module);
If Assigned(N) then
N.IncRefCount;
- end;
+ ResolveOperators;
+ end;
If SortNodes then
FNodelist.Sorted:=True;
WriteNodes(F,Module,FNodeList);
diff --git a/utils/fpdoc/mkfpdoc.pp b/utils/fpdoc/mkfpdoc.pp
index 9baa262ff7..5afb6e0c2e 100644
--- a/utils/fpdoc/mkfpdoc.pp
+++ b/utils/fpdoc/mkfpdoc.pp
@@ -210,6 +210,7 @@ begin
Engine.HideProtected:=Options.HideProtected;
Engine.HidePrivate:=Not Options.ShowPrivate;
Engine.OnParseUnit:=@HandleOnParseUnit;
+ Engine.WarnNoNode:=Options.WarnNoNode;
if Length(Options.Language) > 0 then
TranslateDocStrings(Options.Language);
for i := 0 to APackage.Inputs.Count - 1 do
diff --git a/utils/fpdoc/testunit.pp b/utils/fpdoc/testunit.pp
index 58368c588b..615b8ac28a 100644
--- a/utils/fpdoc/testunit.pp
+++ b/utils/fpdoc/testunit.pp
@@ -45,7 +45,9 @@ Type
TADeprecatedType = Integer deprecated;
TMethodRecord = Record
+
Private
+ Const aconst = 123;
X22 : Integer;
Procedure SetX(AValue : Integer);
Function GetX : Integer;
@@ -56,6 +58,10 @@ Type
1 : (X2,Y2 : Integer);
2 : (phi,Omega : Real);
end;
+ TAExtRecordType = Record
+ Const X = 100;
+ operator assign(Y : Integer) : TAExtRecordType;
+ end;
Var
ASimpleVar : Integer;
@@ -138,6 +144,9 @@ Type
Published
Property AProtectedProp;
end;
+
+Operator + (A,B : TAnArrayType) : TAnArrayType;
+Operator multiply (A,B : TAnArrayType) : TAnArrayType;
Implementation
@@ -305,4 +314,14 @@ Procedure TMEthodRecord.MyMethod;
begin
end;
+Operator + (A,B : TAnArrayType) : TAnArrayType;
+
+begin
+end;
+
+Operator subtract (A,B : TAnArrayType) : TAnArrayType;
+
+begin
+end;
+
end.
diff --git a/utils/fpdoc/testunit.xml b/utils/fpdoc/testunit.xml
index aa9ad01199..794022e81c 100644
--- a/utils/fpdoc/testunit.xml
+++ b/utils/fpdoc/testunit.xml
@@ -1114,6 +1114,188 @@ Appears in 2.0
</notes>
</element>
+<element name="add(TAnArrayType,TAnArrayType):TAnArrayType">
+<short>Something short about operator add</short>
+<descr>
+Something long about operator add
+</descr>
+</element>
+
+<element name="operator *(TAnArrayType, TAnArrayType): TAnArrayType">
+<short>Something short about operator -</short>
+<descr>
+Something long about operator -
+</descr>
+</element>
+
+<element name="TAExtRecordType.assign(Integer):TAExtRecordType">
+<short>An operator</short>
+</element>
+
+<element name="TMethodRecord.MyX"/>
+
+<!-- alias type Visibility: default -->
+<element name="TADeprecatedType">
+<short></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="TMethodRecord.aconst">
+<short></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- variable Visibility: private -->
+<element name="TMethodRecord.X22">
+<short></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- procedure Visibility: private -->
+<element name="TMethodRecord.SetX">
+<short></short>
+<descr>
+</descr>
+<errors>
+</errors>
+<seealso>
+</seealso>
+</element>
+
+<!-- argument Visibility: private -->
+<element name="TMethodRecord.SetX.AValue">
+<short></short>
+</element>
+
+<!-- function Visibility: private -->
+<element name="TMethodRecord.GetX">
+<short></short>
+<descr>
+</descr>
+<errors>
+</errors>
+<seealso>
+</seealso>
+</element>
+
+<!-- function result Visibility: private -->
+<element name="TMethodRecord.GetX.Result">
+<short></short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMethodRecord.X2">
+<short></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMethodRecord.Y2">
+<short></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMethodRecord.phi">
+<short></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="TMethodRecord.Omega">
+<short></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- constant Visibility: default -->
+<element name="TAExtRecordType.X">
+<short></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- function result Visibility: default -->
+<element name="TAExtRecordType.assign(Integer):TAExtRecordType.Result">
+<short></short>
+</element>
+
+<!-- argument Visibility: default -->
+<element name="TAExtRecordType.assign(Integer):TAExtRecordType.Y">
+<short></short>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="A">
+<short></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- variable Visibility: default -->
+<element name="B">
+<short></short>
+<descr>
+</descr>
+<seealso>
+</seealso>
+</element>
+
+<!-- function result Visibility: default -->
+<element name="add(TAnArrayType,TAnArrayType):TAnArrayType.Result">
+<short></short>
+</element>
+
+<!-- argument Visibility: default -->
+<element name="add(TAnArrayType,TAnArrayType):TAnArrayType.A">
+<short></short>
+</element>
+
+<!-- argument Visibility: default -->
+<element name="add(TAnArrayType,TAnArrayType):TAnArrayType.B">
+<short></short>
+</element>
+
+<!-- function result Visibility: default -->
+<element name="multiply(TAnArrayType,TAnArrayType):TAnArrayType.Result">
+<short></short>
+</element>
+
+<!-- argument Visibility: default -->
+<element name="multiply(TAnArrayType,TAnArrayType):TAnArrayType.A">
+<short></short>
+</element>
+
+<!-- argument Visibility: default -->
+<element name="multiply(TAnArrayType,TAnArrayType):TAnArrayType.B">
+<short></short>
+</element>
+
</module> <!-- testunit -->
</package>