CodeTools: fix Copy and Delete compiler intrinsic parameters for FPC 3.1.0+

git-svn-id: trunk@53256 -
This commit is contained in:
ondrej 2016-10-28 20:37:01 +00:00
parent 085a9bfc83
commit 0e8a762c9f

View File

@ -1389,15 +1389,22 @@ begin
AddCompilerProcedure('Break','');
AddCompilerFunction('Concat','S1:String;S2:String[...;Sn:String]', 'String');
AddCompilerProcedure('Continue','');
if StrToIntDef(Scanner.Values['FPC_FULLVERSION'],0)>=30100 then // FromPosition and Count parameters are optional
AddCompilerFunction('Copy','const S:StringOrArray[;FromPosition,Count:Integer]', 'String')
else
AddCompilerFunction('Copy','const S:StringOrArray;FromPosition,Count:Integer', 'String');
if StrToIntDef(Scanner.Values['FPC_FULLVERSION'],0)>=30100 then
begin
// FromPosition and Count parameters are optional
AddCompilerFunction('Copy','const S:string[;FromPosition,Count:Integer]', 'string');
AddCompilerFunction('Copy','const A:array[;FromPosition,Count:Integer]', 'string');
end else
begin
AddCompilerFunction('Copy','const S:string;FromPosition,Count:Integer', 'string');
AddCompilerFunction('Copy','const A:array;FromPosition,Count:Integer', 'string');
end;
AddCompilerProcedure('Dec','var X:Ordinal;N:Integer=1');
AddCompilerFunction('Default','T:Type','const');
if StrToIntDef(Scanner.Values['FPC_FULLVERSION'],0)>=30100 then //Delete and Insert are available as intrinsic since FPC 3.1
begin
AddCompilerProcedure('Delete','var S:string;Index,Count:Integer');
AddCompilerProcedure('Delete','var A:array;Index,Count:Integer');
AddCompilerProcedure('Insert','const Source:string;var Dest:string;Index:Integer');
end;
AddCompilerProcedure('Dispose','var X:Pointer');
@ -2975,9 +2982,14 @@ var
AddCompilerProc('BitSizeOf','Identifier','Integer');
AddCompilerProc('Concat','S1:String;S2:String[...;Sn:String]', 'String');
if StrToIntDef(Scanner.Values['FPC_FULLVERSION'],0)>=30100 then // FromPosition and Count parameters are optional
AddCompilerProc('Copy','const S:StringOrArray[;FromPosition,Count:Integer]', 'String')
else
AddCompilerProc('Copy','const S:StringOrArray;FromPosition,Count:Integer', 'String');
begin
AddCompilerProc('Copy','const S:string[;FromPosition,Count:Integer]', 'string');
AddCompilerProc('Copy','const A:array[;FromPosition,Count:Integer]', 'string');
end else
begin
AddCompilerProc('Copy','const S:string;FromPosition,Count:Integer', 'string');
AddCompilerProc('Copy','const A:array;FromPosition,Count:Integer', 'string');
end;
AddCompilerProc('Dec','var X:Ordinal;N:Integer=1');
AddCompilerProc('Default','T:Type','const');
AddCompilerProc('Dispose','var X:Pointer');
@ -2989,6 +3001,7 @@ var
if StrToIntDef(Scanner.Values['FPC_FULLVERSION'],0)>=30100 then //Delete and Insert are available as intrinsic since FPC 3.1
begin
AddCompilerProc('Delete','var S:string;Index,Count:Integer');
AddCompilerProc('Delete','var A:array;Index,Count:Integer');
AddCompilerProc('Insert','const Source:string;var Dest:string;Index:Integer');
end;
AddCompilerProc('Inc','var X:Ordinal;N:Integer=1');