|
@@ -24,8 +24,8 @@ type
|
|
AValue: String='');
|
|
AValue: String='');
|
|
procedure AssertArrayArg(ProcType: TPasProcedureType; AIndex: Integer;
|
|
procedure AssertArrayArg(ProcType: TPasProcedureType; AIndex: Integer;
|
|
AName: String; AAccess: TArgumentAccess; const ElementTypeName: String);
|
|
AName: String; AAccess: TArgumentAccess; const ElementTypeName: String);
|
|
- procedure AssertFunc(Mods: TProcedureModifiers; CC: TCallingConvention; ArgCount: Integer; P: TPasFunction=nil);
|
|
|
|
- procedure AssertProc(Mods: TProcedureModifiers; CC: TCallingConvention; ArgCount: Integer; P: TPasProcedure=nil);
|
|
|
|
|
|
+ procedure AssertFunc(const Mods: TProcedureModifiers; const TypeMods: TProcTypeModifiers; CC: TCallingConvention; ArgCount: Integer; P: TPasFunction=nil);
|
|
|
|
+ procedure AssertProc(const Mods: TProcedureModifiers; const TypeMods: TProcTypeModifiers; CC: TCallingConvention; ArgCount: Integer; P: TPasProcedure=nil);
|
|
function BaseAssertArg(ProcType: TPasProcedureType; AIndex: Integer;
|
|
function BaseAssertArg(ProcType: TPasProcedureType; AIndex: Integer;
|
|
AName: String; AAccess: TArgumentAccess; AValue: String=''): TPasArgument;
|
|
AName: String; AAccess: TArgumentAccess; AValue: String=''): TPasArgument;
|
|
procedure CreateForwardTest;
|
|
procedure CreateForwardTest;
|
|
@@ -269,13 +269,16 @@ begin
|
|
CheckHint(TPasMemberHint(Getenumvalue(typeinfo(TPasMemberHint),'h'+Hint)));
|
|
CheckHint(TPasMemberHint(Getenumvalue(typeinfo(TPasMemberHint),'h'+Hint)));
|
|
end;
|
|
end;
|
|
|
|
|
|
-procedure TTestProcedureFunction.AssertProc(Mods : TProcedureModifiers; CC : TCallingConvention; ArgCount : Integer; P : TPasProcedure = Nil);
|
|
|
|
|
|
+procedure TTestProcedureFunction.AssertProc(const Mods: TProcedureModifiers;
|
|
|
|
+ const TypeMods: TProcTypeModifiers; CC: TCallingConvention; ArgCount: Integer;
|
|
|
|
+ P: TPasProcedure);
|
|
|
|
|
|
begin
|
|
begin
|
|
If P=Nil then
|
|
If P=Nil then
|
|
P:=Proc;
|
|
P:=Proc;
|
|
AssertNotNull('No proc to assert',P);
|
|
AssertNotNull('No proc to assert',P);
|
|
AssertEquals('Procedure modifiers',Mods,P.Modifiers);
|
|
AssertEquals('Procedure modifiers',Mods,P.Modifiers);
|
|
|
|
+ AssertEquals('Procedure type modifiers',TypeMods,P.ProcType.Modifiers);
|
|
AssertEquals('Procedue calling convention',CC,P.CallingConvention);
|
|
AssertEquals('Procedue calling convention',CC,P.CallingConvention);
|
|
AssertEquals('No message name','',p.MessageName);
|
|
AssertEquals('No message name','',p.MessageName);
|
|
AssertEquals('No message type',pmtNone,P.MessageType);
|
|
AssertEquals('No message type',pmtNone,P.MessageType);
|
|
@@ -285,13 +288,16 @@ begin
|
|
AssertEquals('Not is nested',False,P.ProcType.IsNested);
|
|
AssertEquals('Not is nested',False,P.ProcType.IsNested);
|
|
end;
|
|
end;
|
|
|
|
|
|
-procedure TTestProcedureFunction.AssertFunc(Mods : TProcedureModifiers; CC : TCallingConvention; ArgCount : Integer; P : TPasFunction = Nil);
|
|
|
|
|
|
+procedure TTestProcedureFunction.AssertFunc(const Mods: TProcedureModifiers;
|
|
|
|
+ const TypeMods: TProcTypeModifiers; CC: TCallingConvention; ArgCount: Integer;
|
|
|
|
+ P: TPasFunction);
|
|
|
|
|
|
begin
|
|
begin
|
|
If P=Nil then
|
|
If P=Nil then
|
|
P:=Func;
|
|
P:=Func;
|
|
AssertNotNull('No func to assert',P);
|
|
AssertNotNull('No func to assert',P);
|
|
AssertEquals('Procedure modifiers',Mods,P.Modifiers);
|
|
AssertEquals('Procedure modifiers',Mods,P.Modifiers);
|
|
|
|
+ AssertEquals('Procedure type modifiers',TypeMods,P.ProcType.Modifiers);
|
|
AssertEquals('Procedue calling convention',CC,P.CallingConvention);
|
|
AssertEquals('Procedue calling convention',CC,P.CallingConvention);
|
|
AssertEquals('No message name','',p.MessageName);
|
|
AssertEquals('No message name','',p.MessageName);
|
|
AssertEquals('No message type',pmtNone,P.MessageType);
|
|
AssertEquals('No message type',pmtNone,P.MessageType);
|
|
@@ -384,7 +390,7 @@ end;
|
|
procedure TTestProcedureFunction.TestEmptyProcedure;
|
|
procedure TTestProcedureFunction.TestEmptyProcedure;
|
|
begin
|
|
begin
|
|
ParseProcedure('');
|
|
ParseProcedure('');
|
|
- AssertProc([],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestEmptyProcedureComment;
|
|
procedure TTestProcedureFunction.TestEmptyProcedureComment;
|
|
@@ -396,7 +402,7 @@ end;
|
|
procedure TTestProcedureFunction.TestEmptyFunction;
|
|
procedure TTestProcedureFunction.TestEmptyFunction;
|
|
begin
|
|
begin
|
|
ParseFunction('');
|
|
ParseFunction('');
|
|
- AssertFunc([],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestEmptyFunctionComment;
|
|
procedure TTestProcedureFunction.TestEmptyFunctionComment;
|
|
@@ -408,50 +414,49 @@ end;
|
|
procedure TTestProcedureFunction.TestEmptyProcedureDeprecated;
|
|
procedure TTestProcedureFunction.TestEmptyProcedureDeprecated;
|
|
begin
|
|
begin
|
|
ParseProcedure('','deprecated');
|
|
ParseProcedure('','deprecated');
|
|
- AssertProc([],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestEmptyFunctionDeprecated;
|
|
procedure TTestProcedureFunction.TestEmptyFunctionDeprecated;
|
|
begin
|
|
begin
|
|
ParseFunction('','deprecated');
|
|
ParseFunction('','deprecated');
|
|
- AssertFunc([],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestEmptyProcedurePlatform;
|
|
procedure TTestProcedureFunction.TestEmptyProcedurePlatform;
|
|
begin
|
|
begin
|
|
ParseProcedure('','platform');
|
|
ParseProcedure('','platform');
|
|
- AssertProc([],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestEmptyFunctionPlatform;
|
|
procedure TTestProcedureFunction.TestEmptyFunctionPlatform;
|
|
begin
|
|
begin
|
|
ParseFunction('','platform');
|
|
ParseFunction('','platform');
|
|
- AssertFunc([],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestEmptyProcedureExperimental;
|
|
procedure TTestProcedureFunction.TestEmptyProcedureExperimental;
|
|
begin
|
|
begin
|
|
ParseProcedure('','experimental');
|
|
ParseProcedure('','experimental');
|
|
- AssertProc([],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestEmptyFunctionExperimental;
|
|
procedure TTestProcedureFunction.TestEmptyFunctionExperimental;
|
|
begin
|
|
begin
|
|
ParseFunction('','experimental');
|
|
ParseFunction('','experimental');
|
|
- AssertFunc([],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestEmptyProcedureUnimplemented;
|
|
procedure TTestProcedureFunction.TestEmptyProcedureUnimplemented;
|
|
begin
|
|
begin
|
|
ParseProcedure('','unimplemented');
|
|
ParseProcedure('','unimplemented');
|
|
- AssertProc([],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestEmptyFunctionUnimplemented;
|
|
procedure TTestProcedureFunction.TestEmptyFunctionUnimplemented;
|
|
begin
|
|
begin
|
|
ParseFunction('','unimplemented');
|
|
ParseFunction('','unimplemented');
|
|
- AssertFunc([],ccDefault,0);
|
|
|
|
-
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
@@ -459,77 +464,77 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureOneArg;
|
|
procedure TTestProcedureFunction.TestProcedureOneArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(B : Integer)');
|
|
ParseProcedure('(B : Integer)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','');
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneArg;
|
|
procedure TTestProcedureFunction.TestFunctionOneArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(B : Integer)');
|
|
ParseFunction('(B : Integer)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','');
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureOneVarArg;
|
|
procedure TTestProcedureFunction.TestProcedureOneVarArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Var B : Integer)');
|
|
ParseProcedure('(Var B : Integer)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArg(ProcType,0,'B',argVar,'Integer','');
|
|
AssertArg(ProcType,0,'B',argVar,'Integer','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneVarArg;
|
|
procedure TTestProcedureFunction.TestFunctionOneVarArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(Var B : Integer)');
|
|
ParseFunction('(Var B : Integer)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argVar,'Integer','');
|
|
AssertArg(FuncType,0,'B',argVar,'Integer','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureOneConstArg;
|
|
procedure TTestProcedureFunction.TestProcedureOneConstArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Const B : Integer)');
|
|
ParseProcedure('(Const B : Integer)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArg(ProcType,0,'B',argConst,'Integer','');
|
|
AssertArg(ProcType,0,'B',argConst,'Integer','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneConstArg;
|
|
procedure TTestProcedureFunction.TestFunctionOneConstArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(Const B : Integer)');
|
|
ParseFunction('(Const B : Integer)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argConst,'Integer','');
|
|
AssertArg(FuncType,0,'B',argConst,'Integer','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureOneOutArg;
|
|
procedure TTestProcedureFunction.TestProcedureOneOutArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Out B : Integer)');
|
|
ParseProcedure('(Out B : Integer)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArg(ProcType,0,'B',argOut,'Integer','');
|
|
AssertArg(ProcType,0,'B',argOut,'Integer','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneOutArg;
|
|
procedure TTestProcedureFunction.TestFunctionOneOutArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(Out B : Integer)');
|
|
ParseFunction('(Out B : Integer)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argOut,'Integer','');
|
|
AssertArg(FuncType,0,'B',argOut,'Integer','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureOneConstRefArg;
|
|
procedure TTestProcedureFunction.TestProcedureOneConstRefArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Constref B : Integer)');
|
|
ParseProcedure('(Constref B : Integer)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArg(ProcType,0,'B',argConstRef,'Integer','');
|
|
AssertArg(ProcType,0,'B',argConstRef,'Integer','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneConstRefArg;
|
|
procedure TTestProcedureFunction.TestFunctionOneConstRefArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(ConstRef B : Integer)');
|
|
ParseFunction('(ConstRef B : Integer)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argConstref,'Integer','');
|
|
AssertArg(FuncType,0,'B',argConstref,'Integer','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureTwoArgs;
|
|
procedure TTestProcedureFunction.TestProcedureTwoArgs;
|
|
begin
|
|
begin
|
|
ParseProcedure('(B,C : Integer)');
|
|
ParseProcedure('(B,C : Integer)');
|
|
- AssertProc([],ccDefault,2);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,2);
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','');
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','');
|
|
AssertArg(ProcType,1,'C',argDefault,'Integer','');
|
|
AssertArg(ProcType,1,'C',argDefault,'Integer','');
|
|
end;
|
|
end;
|
|
@@ -537,7 +542,7 @@ end;
|
|
procedure TTestProcedureFunction.TestFunctionTwoArgs;
|
|
procedure TTestProcedureFunction.TestFunctionTwoArgs;
|
|
begin
|
|
begin
|
|
ParseFunction('(B,C : Integer)');
|
|
ParseFunction('(B,C : Integer)');
|
|
- AssertFunc([],ccDefault,2);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,2);
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','');
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','');
|
|
AssertArg(FuncType,1,'C',argDefault,'Integer','');
|
|
AssertArg(FuncType,1,'C',argDefault,'Integer','');
|
|
end;
|
|
end;
|
|
@@ -545,7 +550,7 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureTwoArgsSeparate;
|
|
procedure TTestProcedureFunction.TestProcedureTwoArgsSeparate;
|
|
begin
|
|
begin
|
|
ParseProcedure('(B : Integer; C : Integer)');
|
|
ParseProcedure('(B : Integer; C : Integer)');
|
|
- AssertProc([],ccDefault,2);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,2);
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','');
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','');
|
|
AssertArg(ProcType,1,'C',argDefault,'Integer','');
|
|
AssertArg(ProcType,1,'C',argDefault,'Integer','');
|
|
end;
|
|
end;
|
|
@@ -553,7 +558,7 @@ end;
|
|
procedure TTestProcedureFunction.TestFunctionTwoArgsSeparate;
|
|
procedure TTestProcedureFunction.TestFunctionTwoArgsSeparate;
|
|
begin
|
|
begin
|
|
ParseFunction('(B : Integer;C : Integer)');
|
|
ParseFunction('(B : Integer;C : Integer)');
|
|
- AssertFunc([],ccDefault,2);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,2);
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','');
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','');
|
|
AssertArg(FuncType,1,'C',argDefault,'Integer','');
|
|
AssertArg(FuncType,1,'C',argDefault,'Integer','');
|
|
end;
|
|
end;
|
|
@@ -561,56 +566,56 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureOneArgDefault;
|
|
procedure TTestProcedureFunction.TestProcedureOneArgDefault;
|
|
begin
|
|
begin
|
|
ParseProcedure('(B : Integer = 1)');
|
|
ParseProcedure('(B : Integer = 1)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','1');
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','1');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneArgDefault;
|
|
procedure TTestProcedureFunction.TestFunctionOneArgDefault;
|
|
begin
|
|
begin
|
|
ParseFunction('(B : Integer = 1)');
|
|
ParseFunction('(B : Integer = 1)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','1');
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','1');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneArgEnumeratedExplicit;
|
|
procedure TTestProcedureFunction.TestFunctionOneArgEnumeratedExplicit;
|
|
begin
|
|
begin
|
|
ParseFunction('(B : TSomeEnum = TSomeEnum.False)');
|
|
ParseFunction('(B : TSomeEnum = TSomeEnum.False)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argDefault,'TSomeEnum','TSomeEnum.False');
|
|
AssertArg(FuncType,0,'B',argDefault,'TSomeEnum','TSomeEnum.False');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureOneArgDefaultSet;
|
|
procedure TTestProcedureFunction.TestProcedureOneArgDefaultSet;
|
|
begin
|
|
begin
|
|
ParseProcedure('(B : MySet = [1,2])');
|
|
ParseProcedure('(B : MySet = [1,2])');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArg(ProcType,0,'B',argDefault,'MySet','[1, 2]');
|
|
AssertArg(ProcType,0,'B',argDefault,'MySet','[1, 2]');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneArgDefaultSet;
|
|
procedure TTestProcedureFunction.TestFunctionOneArgDefaultSet;
|
|
begin
|
|
begin
|
|
ParseFunction('(B : MySet = [1,2])');
|
|
ParseFunction('(B : MySet = [1,2])');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argDefault,'MySet','[1, 2]');
|
|
AssertArg(FuncType,0,'B',argDefault,'MySet','[1, 2]');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureOneArgDefaultExpr;
|
|
procedure TTestProcedureFunction.TestProcedureOneArgDefaultExpr;
|
|
begin
|
|
begin
|
|
ParseProcedure('(B : Integer = 1 + 2)');
|
|
ParseProcedure('(B : Integer = 1 + 2)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','1 + 2');
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','1 + 2');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneArgDefaultExpr;
|
|
procedure TTestProcedureFunction.TestFunctionOneArgDefaultExpr;
|
|
begin
|
|
begin
|
|
ParseFunction('(B : Integer = 1 + 2)');
|
|
ParseFunction('(B : Integer = 1 + 2)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','1 + 2');
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','1 + 2');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureTwoArgsDefault;
|
|
procedure TTestProcedureFunction.TestProcedureTwoArgsDefault;
|
|
begin
|
|
begin
|
|
ParseProcedure('(B : Integer = 1; C : Integer = 2)');
|
|
ParseProcedure('(B : Integer = 1; C : Integer = 2)');
|
|
- AssertProc([],ccDefault,2);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,2);
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','1');
|
|
AssertArg(ProcType,0,'B',argDefault,'Integer','1');
|
|
AssertArg(ProcType,1,'C',argDefault,'Integer','2');
|
|
AssertArg(ProcType,1,'C',argDefault,'Integer','2');
|
|
end;
|
|
end;
|
|
@@ -618,7 +623,7 @@ end;
|
|
procedure TTestProcedureFunction.TestFunctionTwoArgsDefault;
|
|
procedure TTestProcedureFunction.TestFunctionTwoArgsDefault;
|
|
begin
|
|
begin
|
|
ParseFunction('(B : Integer = 1; C : Integer = 2)');
|
|
ParseFunction('(B : Integer = 1; C : Integer = 2)');
|
|
- AssertFunc([],ccDefault,2);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,2);
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','1');
|
|
AssertArg(FuncType,0,'B',argDefault,'Integer','1');
|
|
AssertArg(FuncType,1,'C',argDefault,'Integer','2');
|
|
AssertArg(FuncType,1,'C',argDefault,'Integer','2');
|
|
end;
|
|
end;
|
|
@@ -626,21 +631,21 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureOneUntypedVarArg;
|
|
procedure TTestProcedureFunction.TestProcedureOneUntypedVarArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Var B)');
|
|
ParseProcedure('(Var B)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArg(ProcType,0,'B',argVar,'','');
|
|
AssertArg(ProcType,0,'B',argVar,'','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneUntypedVarArg;
|
|
procedure TTestProcedureFunction.TestFunctionOneUntypedVarArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(Var B)');
|
|
ParseFunction('(Var B)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argVar,'','');
|
|
AssertArg(FuncType,0,'B',argVar,'','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureTwoUntypedVarArgs;
|
|
procedure TTestProcedureFunction.TestProcedureTwoUntypedVarArgs;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Var B; Var C)');
|
|
ParseProcedure('(Var B; Var C)');
|
|
- AssertProc([],ccDefault,2);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,2);
|
|
AssertArg(ProcType,0,'B',argVar,'','');
|
|
AssertArg(ProcType,0,'B',argVar,'','');
|
|
AssertArg(ProcType,1,'C',argVar,'','');
|
|
AssertArg(ProcType,1,'C',argVar,'','');
|
|
end;
|
|
end;
|
|
@@ -648,7 +653,7 @@ end;
|
|
procedure TTestProcedureFunction.TestFunctionTwoUntypedVarArgs;
|
|
procedure TTestProcedureFunction.TestFunctionTwoUntypedVarArgs;
|
|
begin
|
|
begin
|
|
ParseFunction('(Var B; Var C)');
|
|
ParseFunction('(Var B; Var C)');
|
|
- AssertFunc([],ccDefault,2);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,2);
|
|
AssertArg(FuncType,0,'B',argVar,'','');
|
|
AssertArg(FuncType,0,'B',argVar,'','');
|
|
AssertArg(FuncType,1,'C',argVar,'','');
|
|
AssertArg(FuncType,1,'C',argVar,'','');
|
|
end;
|
|
end;
|
|
@@ -656,21 +661,21 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureOneUntypedConstArg;
|
|
procedure TTestProcedureFunction.TestProcedureOneUntypedConstArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Const B)');
|
|
ParseProcedure('(Const B)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArg(ProcType,0,'B',argConst,'','');
|
|
AssertArg(ProcType,0,'B',argConst,'','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOneUntypedConstArg;
|
|
procedure TTestProcedureFunction.TestFunctionOneUntypedConstArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(Const B)');
|
|
ParseFunction('(Const B)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArg(FuncType,0,'B',argConst,'','');
|
|
AssertArg(FuncType,0,'B',argConst,'','');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureTwoUntypedConstArgs;
|
|
procedure TTestProcedureFunction.TestProcedureTwoUntypedConstArgs;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Const B; Const C)');
|
|
ParseProcedure('(Const B; Const C)');
|
|
- AssertProc([],ccDefault,2);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,2);
|
|
AssertArg(ProcType,0,'B',argConst,'','');
|
|
AssertArg(ProcType,0,'B',argConst,'','');
|
|
AssertArg(ProcType,1,'C',argConst,'','');
|
|
AssertArg(ProcType,1,'C',argConst,'','');
|
|
end;
|
|
end;
|
|
@@ -678,7 +683,7 @@ end;
|
|
procedure TTestProcedureFunction.TestFunctionTwoUntypedConstArgs;
|
|
procedure TTestProcedureFunction.TestFunctionTwoUntypedConstArgs;
|
|
begin
|
|
begin
|
|
ParseFunction('(Const B; Const C)');
|
|
ParseFunction('(Const B; Const C)');
|
|
- AssertFunc([],ccDefault,2);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,2);
|
|
AssertArg(FuncType,0,'B',argConst,'','');
|
|
AssertArg(FuncType,0,'B',argConst,'','');
|
|
AssertArg(FuncType,1,'C',argConst,'','');
|
|
AssertArg(FuncType,1,'C',argConst,'','');
|
|
end;
|
|
end;
|
|
@@ -686,21 +691,21 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureOpenArrayArg;
|
|
procedure TTestProcedureFunction.TestProcedureOpenArrayArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(B : Array of Integer)');
|
|
ParseProcedure('(B : Array of Integer)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArrayArg(ProcType,0,'B',argDefault,'Integer');
|
|
AssertArrayArg(ProcType,0,'B',argDefault,'Integer');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOpenArrayArg;
|
|
procedure TTestProcedureFunction.TestFunctionOpenArrayArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(B : Array of Integer)');
|
|
ParseFunction('(B : Array of Integer)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArrayArg(FuncType,0,'B',argDefault,'Integer');
|
|
AssertArrayArg(FuncType,0,'B',argDefault,'Integer');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureTwoOpenArrayArgs;
|
|
procedure TTestProcedureFunction.TestProcedureTwoOpenArrayArgs;
|
|
begin
|
|
begin
|
|
ParseProcedure('(B : Array of Integer;C : Array of Integer)');
|
|
ParseProcedure('(B : Array of Integer;C : Array of Integer)');
|
|
- AssertProc([],ccDefault,2);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,2);
|
|
AssertArrayArg(ProcType,0,'B',argDefault,'Integer');
|
|
AssertArrayArg(ProcType,0,'B',argDefault,'Integer');
|
|
AssertArrayArg(ProcType,1,'C',argDefault,'Integer');
|
|
AssertArrayArg(ProcType,1,'C',argDefault,'Integer');
|
|
end;
|
|
end;
|
|
@@ -708,7 +713,7 @@ end;
|
|
procedure TTestProcedureFunction.TestFunctionTwoOpenArrayArgs;
|
|
procedure TTestProcedureFunction.TestFunctionTwoOpenArrayArgs;
|
|
begin
|
|
begin
|
|
ParseFunction('(B : Array of Integer;C : Array of Integer)');
|
|
ParseFunction('(B : Array of Integer;C : Array of Integer)');
|
|
- AssertFunc([],ccDefault,2);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,2);
|
|
AssertArrayArg(FuncType,0,'B',argDefault,'Integer');
|
|
AssertArrayArg(FuncType,0,'B',argDefault,'Integer');
|
|
AssertArrayArg(FuncType,1,'C',argDefault,'Integer');
|
|
AssertArrayArg(FuncType,1,'C',argDefault,'Integer');
|
|
end;
|
|
end;
|
|
@@ -716,142 +721,142 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureConstOpenArrayArg;
|
|
procedure TTestProcedureFunction.TestProcedureConstOpenArrayArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Const B : Array of Integer)');
|
|
ParseProcedure('(Const B : Array of Integer)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArrayArg(ProcType,0,'B',argConst,'Integer');
|
|
AssertArrayArg(ProcType,0,'B',argConst,'Integer');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionConstOpenArrayArg;
|
|
procedure TTestProcedureFunction.TestFunctionConstOpenArrayArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(Const B : Array of Integer)');
|
|
ParseFunction('(Const B : Array of Integer)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArrayArg(FuncType,0,'B',argConst,'Integer');
|
|
AssertArrayArg(FuncType,0,'B',argConst,'Integer');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureVarOpenArrayArg;
|
|
procedure TTestProcedureFunction.TestProcedureVarOpenArrayArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Var B : Array of Integer)');
|
|
ParseProcedure('(Var B : Array of Integer)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArrayArg(ProcType,0,'B',argVar,'Integer');
|
|
AssertArrayArg(ProcType,0,'B',argVar,'Integer');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionVarOpenArrayArg;
|
|
procedure TTestProcedureFunction.TestFunctionVarOpenArrayArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(Var B : Array of Integer)');
|
|
ParseFunction('(Var B : Array of Integer)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArrayArg(FuncType,0,'B',argVar,'Integer');
|
|
AssertArrayArg(FuncType,0,'B',argVar,'Integer');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureArrayOfConstArg;
|
|
procedure TTestProcedureFunction.TestProcedureArrayOfConstArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(B : Array of Const)');
|
|
ParseProcedure('(B : Array of Const)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArrayArg(ProcType,0,'B',argDefault,'');
|
|
AssertArrayArg(ProcType,0,'B',argDefault,'');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionArrayOfConstArg;
|
|
procedure TTestProcedureFunction.TestFunctionArrayOfConstArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(B : Array of Const)');
|
|
ParseFunction('(B : Array of Const)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArrayArg(FuncType,0,'B',argDefault,'');
|
|
AssertArrayArg(FuncType,0,'B',argDefault,'');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureConstArrayOfConstArg;
|
|
procedure TTestProcedureFunction.TestProcedureConstArrayOfConstArg;
|
|
begin
|
|
begin
|
|
ParseProcedure('(Const B : Array of Const)');
|
|
ParseProcedure('(Const B : Array of Const)');
|
|
- AssertProc([],ccDefault,1);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,1);
|
|
AssertArrayArg(ProcType,0,'B',argConst,'');
|
|
AssertArrayArg(ProcType,0,'B',argConst,'');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionConstArrayOfConstArg;
|
|
procedure TTestProcedureFunction.TestFunctionConstArrayOfConstArg;
|
|
begin
|
|
begin
|
|
ParseFunction('(Const B : Array of Const)');
|
|
ParseFunction('(Const B : Array of Const)');
|
|
- AssertFunc([],ccDefault,1);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,1);
|
|
AssertArrayArg(FuncType,0,'B',argConst,'');
|
|
AssertArrayArg(FuncType,0,'B',argConst,'');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCdecl;
|
|
procedure TTestProcedureFunction.TestProcedureCdecl;
|
|
begin
|
|
begin
|
|
ParseProcedure('; cdecl');
|
|
ParseProcedure('; cdecl');
|
|
- AssertProc([],ccCdecl,0);
|
|
|
|
|
|
+ AssertProc([],[],ccCdecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionCdecl;
|
|
procedure TTestProcedureFunction.TestFunctionCdecl;
|
|
begin
|
|
begin
|
|
ParseFunction('','','',ccCdecl);
|
|
ParseFunction('','','',ccCdecl);
|
|
- AssertFunc([],ccCdecl,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccCdecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCdeclDeprecated;
|
|
procedure TTestProcedureFunction.TestProcedureCdeclDeprecated;
|
|
begin
|
|
begin
|
|
ParseProcedure('; cdecl;','deprecated');
|
|
ParseProcedure('; cdecl;','deprecated');
|
|
- AssertProc([],ccCdecl,0);
|
|
|
|
|
|
+ AssertProc([],[],ccCdecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionCdeclDeprecated;
|
|
procedure TTestProcedureFunction.TestFunctionCdeclDeprecated;
|
|
begin
|
|
begin
|
|
ParseFunction('','','deprecated',ccCdecl);
|
|
ParseFunction('','','deprecated',ccCdecl);
|
|
- AssertFunc([],ccCdecl,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccCdecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureSafeCall;
|
|
procedure TTestProcedureFunction.TestProcedureSafeCall;
|
|
begin
|
|
begin
|
|
ParseProcedure('; safecall;','');
|
|
ParseProcedure('; safecall;','');
|
|
- AssertProc([],ccSafeCall,0);
|
|
|
|
|
|
+ AssertProc([],[],ccSafeCall,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionSafeCall;
|
|
procedure TTestProcedureFunction.TestFunctionSafeCall;
|
|
begin
|
|
begin
|
|
ParseFunction('','','',ccSafecall);
|
|
ParseFunction('','','',ccSafecall);
|
|
- AssertFunc([],ccSafecall,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccSafecall,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedurePascal;
|
|
procedure TTestProcedureFunction.TestProcedurePascal;
|
|
begin
|
|
begin
|
|
ParseProcedure('; pascal;','');
|
|
ParseProcedure('; pascal;','');
|
|
- AssertProc([],ccPascal,0);
|
|
|
|
|
|
+ AssertProc([],[],ccPascal,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionPascal;
|
|
procedure TTestProcedureFunction.TestFunctionPascal;
|
|
begin
|
|
begin
|
|
ParseFunction('','','',ccPascal);
|
|
ParseFunction('','','',ccPascal);
|
|
- AssertFunc([],ccPascal,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccPascal,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureStdCall;
|
|
procedure TTestProcedureFunction.TestProcedureStdCall;
|
|
begin
|
|
begin
|
|
ParseProcedure('; stdcall;','');
|
|
ParseProcedure('; stdcall;','');
|
|
- AssertProc([],ccstdcall,0);
|
|
|
|
|
|
+ AssertProc([],[],ccstdcall,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionStdCall;
|
|
procedure TTestProcedureFunction.TestFunctionStdCall;
|
|
begin
|
|
begin
|
|
ParseFunction('','','',ccStdCall);
|
|
ParseFunction('','','',ccStdCall);
|
|
- AssertFunc([],ccStdCall,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccStdCall,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureOldFPCCall;
|
|
procedure TTestProcedureFunction.TestProcedureOldFPCCall;
|
|
begin
|
|
begin
|
|
ParseProcedure('; oldfpccall;','');
|
|
ParseProcedure('; oldfpccall;','');
|
|
- AssertProc([],ccoldfpccall,0);
|
|
|
|
|
|
+ AssertProc([],[],ccoldfpccall,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOldFPCCall;
|
|
procedure TTestProcedureFunction.TestFunctionOldFPCCall;
|
|
begin
|
|
begin
|
|
ParseFunction('','','',ccOldFPCCall);
|
|
ParseFunction('','','',ccOldFPCCall);
|
|
- AssertFunc([],ccOldFPCCall,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccOldFPCCall,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedurePublic;
|
|
procedure TTestProcedureFunction.TestProcedurePublic;
|
|
begin
|
|
begin
|
|
ParseProcedure('; public name ''myfunc'';','');
|
|
ParseProcedure('; public name ''myfunc'';','');
|
|
- AssertProc([pmPublic],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmPublic],[],ccDefault,0);
|
|
AssertExpression('Public name',Proc.PublicName,pekString,'''myfunc''');
|
|
AssertExpression('Public name',Proc.PublicName,pekString,'''myfunc''');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedurePublicIdent;
|
|
procedure TTestProcedureFunction.TestProcedurePublicIdent;
|
|
begin
|
|
begin
|
|
ParseProcedure('; public name exportname;','');
|
|
ParseProcedure('; public name exportname;','');
|
|
- AssertProc([pmPublic],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmPublic],[],ccDefault,0);
|
|
AssertExpression('Public name',Proc.PublicName,pekIdent,'exportname');
|
|
AssertExpression('Public name',Proc.PublicName,pekIdent,'exportname');
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -859,14 +864,14 @@ procedure TTestProcedureFunction.TestFunctionPublic;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; public name exportname');
|
|
AddDeclaration('function A : Integer; public name exportname');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmPublic],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmPublic],[],ccDefault,0);
|
|
AssertExpression('Public name',Func.PublicName,pekIdent,'exportname');
|
|
AssertExpression('Public name',Func.PublicName,pekIdent,'exportname');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCdeclPublic;
|
|
procedure TTestProcedureFunction.TestProcedureCdeclPublic;
|
|
begin
|
|
begin
|
|
ParseProcedure('; cdecl; public name exportname;','');
|
|
ParseProcedure('; cdecl; public name exportname;','');
|
|
- AssertProc([pmPublic],ccCDecl,0);
|
|
|
|
|
|
+ AssertProc([pmPublic],[],ccCDecl,0);
|
|
AssertExpression('Public name',Proc.PublicName,pekIdent,'exportname');
|
|
AssertExpression('Public name',Proc.PublicName,pekIdent,'exportname');
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -874,47 +879,47 @@ procedure TTestProcedureFunction.TestFunctionCdeclPublic;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; cdecl; public name exportname');
|
|
AddDeclaration('function A : Integer; cdecl; public name exportname');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmPublic],ccCDecl,0);
|
|
|
|
|
|
+ AssertFunc([pmPublic],[],ccCDecl,0);
|
|
AssertExpression('Public name',Func.PublicName,pekIdent,'exportname');
|
|
AssertExpression('Public name',Func.PublicName,pekIdent,'exportname');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureOverload;
|
|
procedure TTestProcedureFunction.TestProcedureOverload;
|
|
begin
|
|
begin
|
|
ParseProcedure('; overload;','');
|
|
ParseProcedure('; overload;','');
|
|
- AssertProc([pmOverload],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmOverload],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionOverload;
|
|
procedure TTestProcedureFunction.TestFunctionOverload;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; overload');
|
|
AddDeclaration('function A : Integer; overload');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmOverload],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmOverload],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureVarargs;
|
|
procedure TTestProcedureFunction.TestProcedureVarargs;
|
|
begin
|
|
begin
|
|
ParseProcedure('; varargs;','');
|
|
ParseProcedure('; varargs;','');
|
|
- AssertProc([pmVarArgs],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([],[ptmVarArgs],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionVarArgs;
|
|
procedure TTestProcedureFunction.TestFunctionVarArgs;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; varargs');
|
|
AddDeclaration('function A : Integer; varargs');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmVarArgs],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([],[ptmVarArgs],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCDeclVarargs;
|
|
procedure TTestProcedureFunction.TestProcedureCDeclVarargs;
|
|
begin
|
|
begin
|
|
ParseProcedure(';cdecl; varargs;','');
|
|
ParseProcedure(';cdecl; varargs;','');
|
|
- AssertProc([pmVarArgs],ccCDecl,0);
|
|
|
|
|
|
+ AssertProc([],[ptmVarArgs],ccCDecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionCDeclVarArgs;
|
|
procedure TTestProcedureFunction.TestFunctionCDeclVarArgs;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; cdecl; varargs');
|
|
AddDeclaration('function A : Integer; cdecl; varargs');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmVarArgs],ccCdecl,0);
|
|
|
|
|
|
+ AssertFunc([],[ptmVarArgs],ccCdecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureForwardInterface;
|
|
procedure TTestProcedureFunction.TestProcedureForwardInterface;
|
|
@@ -934,7 +939,7 @@ begin
|
|
UseImplementation:=True;
|
|
UseImplementation:=True;
|
|
AddDeclaration('procedure A; forward;');
|
|
AddDeclaration('procedure A; forward;');
|
|
ParseProcedure;
|
|
ParseProcedure;
|
|
- AssertProc([pmforward],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmforward],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionForward;
|
|
procedure TTestProcedureFunction.TestFunctionForward;
|
|
@@ -942,21 +947,21 @@ begin
|
|
UseImplementation:=True;
|
|
UseImplementation:=True;
|
|
AddDeclaration('function A : integer; forward;');
|
|
AddDeclaration('function A : integer; forward;');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmforward],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmforward],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureFar;
|
|
procedure TTestProcedureFunction.TestProcedureFar;
|
|
begin
|
|
begin
|
|
AddDeclaration('procedure A; far;');
|
|
AddDeclaration('procedure A; far;');
|
|
ParseProcedure;
|
|
ParseProcedure;
|
|
- AssertProc([pmfar],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmfar],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionFar;
|
|
procedure TTestProcedureFunction.TestFunctionFar;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : integer; far;');
|
|
AddDeclaration('function A : integer; far;');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmfar],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmfar],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCdeclForward;
|
|
procedure TTestProcedureFunction.TestProcedureCdeclForward;
|
|
@@ -964,7 +969,7 @@ begin
|
|
UseImplementation:=True;
|
|
UseImplementation:=True;
|
|
AddDeclaration('procedure A; cdecl; forward;');
|
|
AddDeclaration('procedure A; cdecl; forward;');
|
|
ParseProcedure;
|
|
ParseProcedure;
|
|
- AssertProc([pmforward],ccCDecl,0);
|
|
|
|
|
|
+ AssertProc([pmforward],[],ccCDecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionCDeclForward;
|
|
procedure TTestProcedureFunction.TestFunctionCDeclForward;
|
|
@@ -972,97 +977,97 @@ begin
|
|
UseImplementation:=True;
|
|
UseImplementation:=True;
|
|
AddDeclaration('function A : integer; cdecl; forward;');
|
|
AddDeclaration('function A : integer; cdecl; forward;');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmforward],ccCDecl,0);
|
|
|
|
|
|
+ AssertFunc([pmforward],[],ccCDecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCompilerProc;
|
|
procedure TTestProcedureFunction.TestProcedureCompilerProc;
|
|
begin
|
|
begin
|
|
ParseProcedure(';compilerproc;','');
|
|
ParseProcedure(';compilerproc;','');
|
|
- AssertProc([pmCompilerProc],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmCompilerProc],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureNoReturn;
|
|
procedure TTestProcedureFunction.TestProcedureNoReturn;
|
|
begin
|
|
begin
|
|
ParseProcedure(';noreturn;','');
|
|
ParseProcedure(';noreturn;','');
|
|
- AssertProc([pmnoreturn],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmnoreturn],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionCompilerProc;
|
|
procedure TTestProcedureFunction.TestFunctionCompilerProc;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; compilerproc');
|
|
AddDeclaration('function A : Integer; compilerproc');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmCompilerProc],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmCompilerProc],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCDeclCompilerProc;
|
|
procedure TTestProcedureFunction.TestProcedureCDeclCompilerProc;
|
|
begin
|
|
begin
|
|
ParseProcedure(';cdecl;compilerproc;','');
|
|
ParseProcedure(';cdecl;compilerproc;','');
|
|
- AssertProc([pmCompilerProc],ccCDecl,0);
|
|
|
|
|
|
+ AssertProc([pmCompilerProc],[],ccCDecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionCDeclCompilerProc;
|
|
procedure TTestProcedureFunction.TestFunctionCDeclCompilerProc;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; cdecl; compilerproc');
|
|
AddDeclaration('function A : Integer; cdecl; compilerproc');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmCompilerProc],ccCDecl,0);
|
|
|
|
|
|
+ AssertFunc([pmCompilerProc],[],ccCDecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureAssembler;
|
|
procedure TTestProcedureFunction.TestProcedureAssembler;
|
|
begin
|
|
begin
|
|
ParseProcedure(';assembler;','');
|
|
ParseProcedure(';assembler;','');
|
|
- AssertProc([pmAssembler],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmAssembler],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionAssembler;
|
|
procedure TTestProcedureFunction.TestFunctionAssembler;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; assembler');
|
|
AddDeclaration('function A : Integer; assembler');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmAssembler],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmAssembler],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCDeclAssembler;
|
|
procedure TTestProcedureFunction.TestProcedureCDeclAssembler;
|
|
begin
|
|
begin
|
|
ParseProcedure(';cdecl;assembler;','');
|
|
ParseProcedure(';cdecl;assembler;','');
|
|
- AssertProc([pmAssembler],ccCDecl,0);
|
|
|
|
|
|
+ AssertProc([pmAssembler],[],ccCDecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionCDeclAssembler;
|
|
procedure TTestProcedureFunction.TestFunctionCDeclAssembler;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; cdecl; assembler');
|
|
AddDeclaration('function A : Integer; cdecl; assembler');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmAssembler],ccCDecl,0);
|
|
|
|
|
|
+ AssertFunc([pmAssembler],[],ccCDecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureExport;
|
|
procedure TTestProcedureFunction.TestProcedureExport;
|
|
begin
|
|
begin
|
|
ParseProcedure(';export;','');
|
|
ParseProcedure(';export;','');
|
|
- AssertProc([pmExport],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmExport],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionExport;
|
|
procedure TTestProcedureFunction.TestFunctionExport;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; export');
|
|
AddDeclaration('function A : Integer; export');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmExport],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmExport],[],ccDefault,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCDeclExport;
|
|
procedure TTestProcedureFunction.TestProcedureCDeclExport;
|
|
begin
|
|
begin
|
|
ParseProcedure('cdecl;export;','');
|
|
ParseProcedure('cdecl;export;','');
|
|
- AssertProc([pmExport],ccCDecl,0);
|
|
|
|
|
|
+ AssertProc([pmExport],[],ccCDecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestFunctionCDeclExport;
|
|
procedure TTestProcedureFunction.TestFunctionCDeclExport;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; cdecl; export');
|
|
AddDeclaration('function A : Integer; cdecl; export');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmExport],ccCDecl,0);
|
|
|
|
|
|
+ AssertFunc([pmExport],[],ccCDecl,0);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureExternal;
|
|
procedure TTestProcedureFunction.TestProcedureExternal;
|
|
begin
|
|
begin
|
|
ParseProcedure(';external','');
|
|
ParseProcedure(';external','');
|
|
- AssertProc([pmExternal],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmExternal],[],ccDefault,0);
|
|
AssertNull('No Library name expression',Proc.LibraryExpr);
|
|
AssertNull('No Library name expression',Proc.LibraryExpr);
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1070,7 +1075,7 @@ procedure TTestProcedureFunction.TestFunctionExternal;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; external');
|
|
AddDeclaration('function A : Integer; external');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmExternal],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmExternal],[],ccDefault,0);
|
|
AssertNull('No Library name expression',Func.LibraryExpr);
|
|
AssertNull('No Library name expression',Func.LibraryExpr);
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1110,7 +1115,7 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureExternalLibName;
|
|
procedure TTestProcedureFunction.TestProcedureExternalLibName;
|
|
begin
|
|
begin
|
|
ParseProcedure(';external ''libname''','');
|
|
ParseProcedure(';external ''libname''','');
|
|
- AssertProc([pmExternal],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmExternal],[],ccDefault,0);
|
|
AssertExpression('Library name expression',Proc.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library name expression',Proc.LibraryExpr,pekString,'''libname''');
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1118,14 +1123,14 @@ procedure TTestProcedureFunction.TestFunctionExternalLibName;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; external ''libname''');
|
|
AddDeclaration('function A : Integer; external ''libname''');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmExternal],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmExternal],[],ccDefault,0);
|
|
AssertExpression('Library name expression',Func.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library name expression',Func.LibraryExpr,pekString,'''libname''');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureExternalLibNameName;
|
|
procedure TTestProcedureFunction.TestProcedureExternalLibNameName;
|
|
begin
|
|
begin
|
|
ParseProcedure(';external ''libname'' name ''symbolname''','');
|
|
ParseProcedure(';external ''libname'' name ''symbolname''','');
|
|
- AssertProc([pmExternal],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmExternal],[],ccDefault,0);
|
|
AssertExpression('Library name expression',Proc.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library name expression',Proc.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library symbol expression',Proc.LibrarySymbolName,pekString,'''symbolname''');
|
|
AssertExpression('Library symbol expression',Proc.LibrarySymbolName,pekString,'''symbolname''');
|
|
end;
|
|
end;
|
|
@@ -1134,7 +1139,7 @@ procedure TTestProcedureFunction.TestFunctionExternalLibNameName;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; external ''libname'' name ''symbolname''');
|
|
AddDeclaration('function A : Integer; external ''libname'' name ''symbolname''');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmExternal],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmExternal],[],ccDefault,0);
|
|
AssertExpression('Library name expression',Func.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library name expression',Func.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library symbol expression',Func.LibrarySymbolName,pekString,'''symbolname''');
|
|
AssertExpression('Library symbol expression',Func.LibrarySymbolName,pekString,'''symbolname''');
|
|
end;
|
|
end;
|
|
@@ -1142,7 +1147,7 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureExternalName;
|
|
procedure TTestProcedureFunction.TestProcedureExternalName;
|
|
begin
|
|
begin
|
|
ParseProcedure(';external name ''symbolname''','');
|
|
ParseProcedure(';external name ''symbolname''','');
|
|
- AssertProc([pmExternal],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([pmExternal],[],ccDefault,0);
|
|
AssertNull('No Library name expression',Proc.LibraryExpr);
|
|
AssertNull('No Library name expression',Proc.LibraryExpr);
|
|
AssertExpression('Library symbol expression',Proc.LibrarySymbolName,pekString,'''symbolname''');
|
|
AssertExpression('Library symbol expression',Proc.LibrarySymbolName,pekString,'''symbolname''');
|
|
end;
|
|
end;
|
|
@@ -1151,7 +1156,7 @@ procedure TTestProcedureFunction.TestFunctionExternalName;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; external name ''symbolname''');
|
|
AddDeclaration('function A : Integer; external name ''symbolname''');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmExternal],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([pmExternal],[],ccDefault,0);
|
|
AssertNull('No Library name expression',Func.LibraryExpr);
|
|
AssertNull('No Library name expression',Func.LibraryExpr);
|
|
AssertExpression('Library symbol expression',Func.LibrarySymbolName,pekString,'''symbolname''');
|
|
AssertExpression('Library symbol expression',Func.LibrarySymbolName,pekString,'''symbolname''');
|
|
end;
|
|
end;
|
|
@@ -1159,7 +1164,7 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureCdeclExternal;
|
|
procedure TTestProcedureFunction.TestProcedureCdeclExternal;
|
|
begin
|
|
begin
|
|
ParseProcedure('; cdecl; external','');
|
|
ParseProcedure('; cdecl; external','');
|
|
- AssertProc([pmExternal],ccCdecl,0);
|
|
|
|
|
|
+ AssertProc([pmExternal],[],ccCdecl,0);
|
|
AssertNull('No Library name expression',Proc.LibraryExpr);
|
|
AssertNull('No Library name expression',Proc.LibraryExpr);
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1167,14 +1172,14 @@ procedure TTestProcedureFunction.TestFunctionCdeclExternal;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; cdecl; external');
|
|
AddDeclaration('function A : Integer; cdecl; external');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmExternal],ccCdecl,0);
|
|
|
|
|
|
+ AssertFunc([pmExternal],[],ccCdecl,0);
|
|
AssertNull('No Library name expression',Func.LibraryExpr);
|
|
AssertNull('No Library name expression',Func.LibraryExpr);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCdeclExternalLibName;
|
|
procedure TTestProcedureFunction.TestProcedureCdeclExternalLibName;
|
|
begin
|
|
begin
|
|
ParseProcedure('; cdecl; external ''libname''','');
|
|
ParseProcedure('; cdecl; external ''libname''','');
|
|
- AssertProc([pmExternal],ccCdecl,0);
|
|
|
|
|
|
+ AssertProc([pmExternal],[],ccCdecl,0);
|
|
AssertExpression('Library name expression',Proc.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library name expression',Proc.LibraryExpr,pekString,'''libname''');
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1182,14 +1187,14 @@ procedure TTestProcedureFunction.TestFunctionCdeclExternalLibName;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; cdecl; external ''libname''');
|
|
AddDeclaration('function A : Integer; cdecl; external ''libname''');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmExternal],ccCdecl,0);
|
|
|
|
|
|
+ AssertFunc([pmExternal],[],ccCdecl,0);
|
|
AssertExpression('Library name expression',Func.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library name expression',Func.LibraryExpr,pekString,'''libname''');
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestProcedureFunction.TestProcedureCdeclExternalLibNameName;
|
|
procedure TTestProcedureFunction.TestProcedureCdeclExternalLibNameName;
|
|
begin
|
|
begin
|
|
ParseProcedure('; cdecl; external ''libname'' name ''symbolname''','');
|
|
ParseProcedure('; cdecl; external ''libname'' name ''symbolname''','');
|
|
- AssertProc([pmExternal],ccCdecl,0);
|
|
|
|
|
|
+ AssertProc([pmExternal],[],ccCdecl,0);
|
|
AssertExpression('Library name expression',Proc.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library name expression',Proc.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library symbol expression',Proc.LibrarySymbolName,pekString,'''symbolname''');
|
|
AssertExpression('Library symbol expression',Proc.LibrarySymbolName,pekString,'''symbolname''');
|
|
end;
|
|
end;
|
|
@@ -1198,7 +1203,7 @@ procedure TTestProcedureFunction.TestFunctionCdeclExternalLibNameName;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; cdecl; external ''libname'' name ''symbolname''');
|
|
AddDeclaration('function A : Integer; cdecl; external ''libname'' name ''symbolname''');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmExternal],ccCdecl,0);
|
|
|
|
|
|
+ AssertFunc([pmExternal],[],ccCdecl,0);
|
|
AssertExpression('Library name expression',Func.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library name expression',Func.LibraryExpr,pekString,'''libname''');
|
|
AssertExpression('Library symbol expression',Func.LibrarySymbolName,pekString,'''symbolname''');
|
|
AssertExpression('Library symbol expression',Func.LibrarySymbolName,pekString,'''symbolname''');
|
|
end;
|
|
end;
|
|
@@ -1206,7 +1211,7 @@ end;
|
|
procedure TTestProcedureFunction.TestProcedureCdeclExternalName;
|
|
procedure TTestProcedureFunction.TestProcedureCdeclExternalName;
|
|
begin
|
|
begin
|
|
ParseProcedure('; cdecl; external name ''symbolname''','');
|
|
ParseProcedure('; cdecl; external name ''symbolname''','');
|
|
- AssertProc([pmExternal],ccCdecl,0);
|
|
|
|
|
|
+ AssertProc([pmExternal],[],ccCdecl,0);
|
|
AssertNull('No Library name expression',Proc.LibraryExpr);
|
|
AssertNull('No Library name expression',Proc.LibraryExpr);
|
|
AssertExpression('Library symbol expression',Proc.LibrarySymbolName,pekString,'''symbolname''');
|
|
AssertExpression('Library symbol expression',Proc.LibrarySymbolName,pekString,'''symbolname''');
|
|
end;
|
|
end;
|
|
@@ -1215,7 +1220,7 @@ procedure TTestProcedureFunction.TestFunctionCdeclExternalName;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; cdecl; external name ''symbolname''');
|
|
AddDeclaration('function A : Integer; cdecl; external name ''symbolname''');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([pmExternal],ccCdecl,0);
|
|
|
|
|
|
+ AssertFunc([pmExternal],[],ccCdecl,0);
|
|
AssertNull('No Library name expression',Func.LibraryExpr);
|
|
AssertNull('No Library name expression',Func.LibraryExpr);
|
|
AssertExpression('Library symbol expression',Func.LibrarySymbolName,pekString,'''symbolname''');
|
|
AssertExpression('Library symbol expression',Func.LibrarySymbolName,pekString,'''symbolname''');
|
|
end;
|
|
end;
|
|
@@ -1224,7 +1229,7 @@ procedure TTestProcedureFunction.TestFunctionAlias;
|
|
begin
|
|
begin
|
|
AddDeclaration('function A : Integer; alias: ''myalias''');
|
|
AddDeclaration('function A : Integer; alias: ''myalias''');
|
|
ParseFunction;
|
|
ParseFunction;
|
|
- AssertFunc([],ccDefault,0);
|
|
|
|
|
|
+ AssertFunc([],[],ccDefault,0);
|
|
AssertEquals('Alias name','''myalias''',Func.AliasName);
|
|
AssertEquals('Alias name','''myalias''',Func.AliasName);
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1232,7 +1237,7 @@ procedure TTestProcedureFunction.TestProcedureAlias;
|
|
begin
|
|
begin
|
|
AddDeclaration('Procedure A; Alias : ''myalias''');
|
|
AddDeclaration('Procedure A; Alias : ''myalias''');
|
|
ParseProcedure;
|
|
ParseProcedure;
|
|
- AssertProc([],ccDefault,0);
|
|
|
|
|
|
+ AssertProc([],[],ccDefault,0);
|
|
AssertEquals('Alias name','''myalias''',Proc.AliasName);
|
|
AssertEquals('Alias name','''myalias''',Proc.AliasName);
|
|
end;
|
|
end;
|
|
|
|
|