mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-22 20:49:19 +02:00
* Merging revisions r46302,r46303,r46304 from trunk:
------------------------------------------------------------------------ r46302 | michael | 2020-08-07 00:07:05 +0200 (Fri, 07 Aug 2020) | 1 line * Fix writing ranges (bug ID 37505) ------------------------------------------------------------------------ r46303 | michael | 2020-08-07 00:28:03 +0200 (Fri, 07 Aug 2020) | 1 line * Correctly propagate full param when writing type ------------------------------------------------------------------------ r46304 | michael | 2020-08-07 00:28:25 +0200 (Fri, 07 Aug 2020) | 1 line * Do not escape string type name ------------------------------------------------------------------------ git-svn-id: branches/fixes_3_2@46612 -
This commit is contained in:
parent
ed27ad4438
commit
d518cd0800
@ -170,7 +170,7 @@ type
|
|||||||
const Arg: Pointer); virtual;
|
const Arg: Pointer); virtual;
|
||||||
procedure ForEachChildCall(const aMethodCall: TOnForEachPasElement;
|
procedure ForEachChildCall(const aMethodCall: TOnForEachPasElement;
|
||||||
const Arg: Pointer; Child: TPasElement; CheckParent: boolean); virtual;
|
const Arg: Pointer; Child: TPasElement; CheckParent: boolean); virtual;
|
||||||
Function SafeName : String; // Name but with & prepended if name is a keyword.
|
Function SafeName : String; virtual; // Name but with & prepended if name is a keyword.
|
||||||
function FullPath: string; // parent's names, until parent is not TPasDeclarations
|
function FullPath: string; // parent's names, until parent is not TPasDeclarations
|
||||||
function ParentPath: string; // parent's names
|
function ParentPath: string; // parent's names
|
||||||
function FullName: string; virtual; // FullPath + Name
|
function FullName: string; virtual; // FullPath + Name
|
||||||
@ -510,6 +510,7 @@ type
|
|||||||
Protected
|
Protected
|
||||||
Function FixTypeDecl(aDecl: String) : String;
|
Function FixTypeDecl(aDecl: String) : String;
|
||||||
public
|
public
|
||||||
|
Function SafeName : String; override;
|
||||||
function ElementTypeName: string; override;
|
function ElementTypeName: string; override;
|
||||||
end;
|
end;
|
||||||
TPasTypeArray = array of TPasType;
|
TPasTypeArray = array of TPasType;
|
||||||
@ -2558,6 +2559,14 @@ begin
|
|||||||
ProcessHints(false,Result);
|
ProcessHints(false,Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TPasType.SafeName: String;
|
||||||
|
begin
|
||||||
|
if SameText(Name,'string') then
|
||||||
|
Result:=Name
|
||||||
|
else
|
||||||
|
Result:=inherited SafeName;
|
||||||
|
end;
|
||||||
|
|
||||||
function TPasType.ElementTypeName: string; begin Result := SPasTreeType; end;
|
function TPasType.ElementTypeName: string; begin Result := SPasTreeType; end;
|
||||||
function TPasPointerType.ElementTypeName: string; begin Result := SPasTreePointerType; end;
|
function TPasPointerType.ElementTypeName: string; begin Result := SPasTreePointerType; end;
|
||||||
function TPasAliasType.ElementTypeName: string; begin Result := SPasTreeAliasType; end;
|
function TPasAliasType.ElementTypeName: string; begin Result := SPasTreeAliasType; end;
|
||||||
|
@ -101,7 +101,7 @@ type
|
|||||||
procedure WriteOverloadedProc(aProc : TPasOverloadedProc; ForceBody: Boolean = False; NamePrefix : String = ''); virtual;
|
procedure WriteOverloadedProc(aProc : TPasOverloadedProc; ForceBody: Boolean = False; NamePrefix : String = ''); virtual;
|
||||||
Procedure WriteAliasType(AType : TPasAliasType); virtual;
|
Procedure WriteAliasType(AType : TPasAliasType); virtual;
|
||||||
Procedure WriteRecordType(AType : TPasRecordType); virtual;
|
Procedure WriteRecordType(AType : TPasRecordType); virtual;
|
||||||
Procedure WriteArrayType(AType : TPasArrayType); virtual;
|
Procedure WriteArrayType(AType : TPasArrayType; Full : Boolean = True); virtual;
|
||||||
procedure WriteProcType(AProc: TPasProcedureType); virtual;
|
procedure WriteProcType(AProc: TPasProcedureType); virtual;
|
||||||
procedure WriteProcDecl(AProc: TPasProcedure; ForceBody: Boolean = False; NamePrefix : String = ''); virtual;
|
procedure WriteProcDecl(AProc: TPasProcedure; ForceBody: Boolean = False; NamePrefix : String = ''); virtual;
|
||||||
procedure WriteProcImpl(AProc: TProcedureBody; IsAsm : Boolean = false); virtual;
|
procedure WriteProcImpl(AProc: TProcedureBody; IsAsm : Boolean = false); virtual;
|
||||||
@ -282,7 +282,7 @@ begin
|
|||||||
else if AType is TPasProcedureType then
|
else if AType is TPasProcedureType then
|
||||||
WriteProcType(TPasProcedureType(AType))
|
WriteProcType(TPasProcedureType(AType))
|
||||||
else if AType is TPasArrayType then
|
else if AType is TPasArrayType then
|
||||||
WriteArrayType(TPasArrayType(AType))
|
WriteArrayType(TPasArrayType(AType),Full)
|
||||||
else if AType is TPasRecordType then
|
else if AType is TPasRecordType then
|
||||||
WriteRecordType(TPasRecordType(AType))
|
WriteRecordType(TPasRecordType(AType))
|
||||||
else if AType is TPasAliasType then
|
else if AType is TPasAliasType then
|
||||||
@ -291,6 +291,8 @@ begin
|
|||||||
Add(AType.GetDeclaration(true))
|
Add(AType.GetDeclaration(true))
|
||||||
else if AType is TPasSetType then
|
else if AType is TPasSetType then
|
||||||
Add(AType.GetDeclaration(true))
|
Add(AType.GetDeclaration(true))
|
||||||
|
else if AType is TPasRangeType then
|
||||||
|
Add(AType.GetDeclaration(true))
|
||||||
else
|
else
|
||||||
raise EPasWriter.CreateFmt('Writing not implemented for %s type nodes',[aType.ElementTypeName]);
|
raise EPasWriter.CreateFmt('Writing not implemented for %s type nodes',[aType.ElementTypeName]);
|
||||||
if Full then
|
if Full then
|
||||||
@ -785,10 +787,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPasWriter.WriteArrayType(AType: TPasArrayType);
|
procedure TPasWriter.WriteArrayType(AType: TPasArrayType; Full : Boolean = True);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Add(AType.GetDeclaration(true));
|
Add(AType.GetDeclaration(Full));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPasWriter.WriteProcType(AProc: TPasProcedureType);
|
procedure TPasWriter.WriteProcType(AProc: TPasProcedureType);
|
||||||
|
Loading…
Reference in New Issue
Block a user