|
@@ -472,6 +472,81 @@ implementation
|
|
left:=nil;
|
|
left:=nil;
|
|
exit;
|
|
exit;
|
|
end;
|
|
end;
|
|
|
|
+{$ifdef oldset}
|
|
|
|
+ case nodetype of
|
|
|
|
+ addn :
|
|
|
|
+ begin
|
|
|
|
+ for i:=0 to 31 do
|
|
|
|
+ resultset[i]:=tsetconstnode(right).value_set^[i] or tsetconstnode(left).value_set^[i];
|
|
|
|
+ t:=csetconstnode.create(@resultset,left.resulttype);
|
|
|
|
+ end;
|
|
|
|
+ muln :
|
|
|
|
+ begin
|
|
|
|
+ for i:=0 to 31 do
|
|
|
|
+ resultset[i]:=tsetconstnode(right).value_set^[i] and tsetconstnode(left).value_set^[i];
|
|
|
|
+ t:=csetconstnode.create(@resultset,left.resulttype);
|
|
|
|
+ end;
|
|
|
|
+ subn :
|
|
|
|
+ begin
|
|
|
|
+ for i:=0 to 31 do
|
|
|
|
+ resultset[i]:=tsetconstnode(left).value_set^[i] and not(tsetconstnode(right).value_set^[i]);
|
|
|
|
+ t:=csetconstnode.create(@resultset,left.resulttype);
|
|
|
|
+ end;
|
|
|
|
+ symdifn :
|
|
|
|
+ begin
|
|
|
|
+ for i:=0 to 31 do
|
|
|
|
+ resultset[i]:=tsetconstnode(left).value_set^[i] xor tsetconstnode(right).value_set^[i];
|
|
|
|
+ t:=csetconstnode.create(@resultset,left.resulttype);
|
|
|
|
+ end;
|
|
|
|
+ unequaln :
|
|
|
|
+ begin
|
|
|
|
+ b:=true;
|
|
|
|
+ for i:=0 to 31 do
|
|
|
|
+ if tsetconstnode(right).value_set^[i]=tsetconstnode(left).value_set^[i] then
|
|
|
|
+ begin
|
|
|
|
+ b:=false;
|
|
|
|
+ break;
|
|
|
|
+ end;
|
|
|
|
+ t:=cordconstnode.create(ord(b),booltype);
|
|
|
|
+ end;
|
|
|
|
+ equaln :
|
|
|
|
+ begin
|
|
|
|
+ b:=true;
|
|
|
|
+ for i:=0 to 31 do
|
|
|
|
+ if tsetconstnode(right).value_set^[i]<>tsetconstnode(left).value_set^[i] then
|
|
|
|
+ begin
|
|
|
|
+ b:=false;
|
|
|
|
+ break;
|
|
|
|
+ end;
|
|
|
|
+ t:=cordconstnode.create(ord(b),booltype);
|
|
|
|
+ end;
|
|
|
|
+ lten :
|
|
|
|
+ begin
|
|
|
|
+ b := true;
|
|
|
|
+ for i := 0 to 31 Do
|
|
|
|
+ if (tsetconstnode(right).value_set^[i] And tsetconstnode(left).value_set^[i]) <>
|
|
|
|
+ tsetconstnode(left).value_set^[i] Then
|
|
|
|
+ begin
|
|
|
|
+ b := false;
|
|
|
|
+ break
|
|
|
|
+ end;
|
|
|
|
+ t := cordconstnode.create(ord(b),booltype);
|
|
|
|
+ end;
|
|
|
|
+ gten :
|
|
|
|
+ begin
|
|
|
|
+ b := true;
|
|
|
|
+ for i := 0 to 31 Do
|
|
|
|
+ If (tsetconstnode(left).value_set^[i] And tsetconstnode(right).value_set^[i]) <>
|
|
|
|
+ tsetconstnode(right).value_set^[i] Then
|
|
|
|
+ begin
|
|
|
|
+ b := false;
|
|
|
|
+ break
|
|
|
|
+ end;
|
|
|
|
+ t := cordconstnode.create(ord(b),booltype);
|
|
|
|
+ end;
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+{$else}
|
|
case nodetype of
|
|
case nodetype of
|
|
addn :
|
|
addn :
|
|
begin
|
|
begin
|
|
@@ -485,7 +560,7 @@ implementation
|
|
end;
|
|
end;
|
|
subn :
|
|
subn :
|
|
begin
|
|
begin
|
|
- resultset:=tsetconstnode(right).value_set^ - tsetconstnode(left).value_set^;
|
|
|
|
|
|
+ resultset:=tsetconstnode(left).value_set^ - tsetconstnode(right).value_set^;
|
|
t:=csetconstnode.create(@resultset,left.resulttype);
|
|
t:=csetconstnode.create(@resultset,left.resulttype);
|
|
end;
|
|
end;
|
|
symdifn :
|
|
symdifn :
|
|
@@ -514,6 +589,7 @@ implementation
|
|
t:=cordconstnode.create(byte(b),booltype);
|
|
t:=cordconstnode.create(byte(b),booltype);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
+{$endif}
|
|
result:=t;
|
|
result:=t;
|
|
exit;
|
|
exit;
|
|
end;
|
|
end;
|
|
@@ -1632,7 +1708,11 @@ begin
|
|
end.
|
|
end.
|
|
{
|
|
{
|
|
$Log$
|
|
$Log$
|
|
- Revision 1.55 2002-07-22 11:48:04 daniel
|
|
|
|
|
|
+ Revision 1.56 2002-07-23 12:34:29 daniel
|
|
|
|
+ * Readded old set code. To use it define 'oldset'. Activated by default
|
|
|
|
+ for ppc.
|
|
|
|
+
|
|
|
|
+ Revision 1.55 2002/07/22 11:48:04 daniel
|
|
* Sets are now internally sets.
|
|
* Sets are now internally sets.
|
|
|
|
|
|
Revision 1.54 2002/07/20 11:57:53 florian
|
|
Revision 1.54 2002/07/20 11:57:53 florian
|