|
@@ -86,6 +86,7 @@ type
|
|
Procedure TestBinaryLargerThanEqual;
|
|
Procedure TestBinaryLargerThanEqual;
|
|
procedure TestBinaryFullIdent;
|
|
procedure TestBinaryFullIdent;
|
|
Procedure TestArrayElement;
|
|
Procedure TestArrayElement;
|
|
|
|
+ Procedure TestArrayElementrecord;
|
|
Procedure TestArrayElement2Dims;
|
|
Procedure TestArrayElement2Dims;
|
|
Procedure TestFunctionCall;
|
|
Procedure TestFunctionCall;
|
|
Procedure TestFunctionCall2args;
|
|
Procedure TestFunctionCall2args;
|
|
@@ -119,6 +120,7 @@ type
|
|
Procedure TestPrecedenceMultiplyDiv;
|
|
Procedure TestPrecedenceMultiplyDiv;
|
|
Procedure TestPrecedenceDivMultiply;
|
|
Procedure TestPrecedenceDivMultiply;
|
|
Procedure TestTypeCast;
|
|
Procedure TestTypeCast;
|
|
|
|
+ procedure TestTypeCast2;
|
|
Procedure TestCreate;
|
|
Procedure TestCreate;
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -200,6 +202,23 @@ begin
|
|
AssertExpression('Simple identifier',p.params[0],pekNumber,'1');
|
|
AssertExpression('Simple identifier',p.params[0],pekNumber,'1');
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TTestExpressions.TestArrayElementrecord;
|
|
|
|
+
|
|
|
|
+Var
|
|
|
|
+ P : TParamsExpr;
|
|
|
|
+ B : TBinaryExpr;
|
|
|
|
+begin
|
|
|
|
+ DeclareVar('record a : array[1..2] of integer; end ','b');
|
|
|
|
+ ParseExpression('b.a[1]');
|
|
|
|
+ P:=TParamsExpr(AssertExpression('Simple identifier',theExpr,pekArrayParams,TParamsExpr));
|
|
|
|
+ B:=AssertExpression('Name of array',P.Value,pekBinary,TBInaryExpr) as TBInaryExpr;
|
|
|
|
+ AssertEquals('name is Subident',eopSubIdent,B.Opcode);
|
|
|
|
+ AssertExpression('Name of array',B.Left,pekIdent,'b');
|
|
|
|
+ AssertExpression('Name of array',B.Right,pekIdent,'a');
|
|
|
|
+ AssertEquals('One dimension',1,Length(p.params));
|
|
|
|
+ AssertExpression('Simple identifier',p.params[0],pekNumber,'1');
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TTestExpressions.TestArrayElement2Dims;
|
|
procedure TTestExpressions.TestArrayElement2Dims;
|
|
Var
|
|
Var
|
|
P : TParamsExpr;
|
|
P : TParamsExpr;
|
|
@@ -471,6 +490,12 @@ begin
|
|
ParseExpression('TSDOBaseDataObjectClass(Self.ClassType).Create');
|
|
ParseExpression('TSDOBaseDataObjectClass(Self.ClassType).Create');
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TTestExpressions.TestTypeCast2;
|
|
|
|
+begin
|
|
|
|
+ DeclareVar('TSDOBaseDataObjectClass');
|
|
|
|
+ ParseExpression('TSDOBaseDataObjectClass(Self.ClassType).Create.D');
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TTestExpressions.TestCreate;
|
|
procedure TTestExpressions.TestCreate;
|
|
begin
|
|
begin
|
|
DeclareVar('ESDOSerializationException');
|
|
DeclareVar('ESDOSerializationException');
|