mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-10 15:51:08 +02:00
* parse const after .. using bt_const block to allow expressions, this
is Delphi compatible
This commit is contained in:
parent
741d455ab7
commit
04be6d3ced
@ -2198,6 +2198,7 @@ implementation
|
||||
p1,p2 : tnode;
|
||||
oldafterassignment : boolean;
|
||||
oldp1 : tnode;
|
||||
oldblock_type : tblock_type;
|
||||
filepos : tfileposinfo;
|
||||
|
||||
begin
|
||||
@ -2217,7 +2218,12 @@ implementation
|
||||
_POINTPOINT :
|
||||
begin
|
||||
consume(_POINTPOINT);
|
||||
{ we are now parsing a const so switch the
|
||||
blocksize. This is delphi compatible }
|
||||
oldblock_type:=block_type;
|
||||
block_type:=bt_const;
|
||||
p2:=sub_expr(opcompare,true);
|
||||
block_type:=oldblock_type;
|
||||
p1:=crangenode.create(p1,p2);
|
||||
end;
|
||||
_ASSIGNMENT :
|
||||
@ -2260,6 +2266,9 @@ implementation
|
||||
p1:=cassignmentnode.create(p1,caddnode.create(slashn,p1.getcopy,p2));
|
||||
end;
|
||||
end;
|
||||
{ get the resulttype for this expression }
|
||||
if not assigned(p1.resulttype.def) then
|
||||
do_resulttypepass(p1);
|
||||
afterassignment:=oldafterassignment;
|
||||
if p1<>oldp1 then
|
||||
p1.set_tree_filepos(filepos);
|
||||
@ -2280,8 +2289,7 @@ implementation
|
||||
if not codegenerror then
|
||||
begin
|
||||
if (p.nodetype<>ordconstn) or
|
||||
(p.resulttype.def.deftype<>orddef) or
|
||||
(torddef(p.resulttype.def).typ in [uvoid,uchar,bool8bit,bool16bit,bool32bit]) then
|
||||
not(is_integer(p.resulttype.def)) then
|
||||
Message(cg_e_illegal_expression)
|
||||
else
|
||||
get_intconst:=tordconstnode(p).value;
|
||||
@ -2313,7 +2321,11 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.34 2001-05-19 21:15:53 peter
|
||||
Revision 1.35 2001-06-04 11:45:35 peter
|
||||
* parse const after .. using bt_const block to allow expressions, this
|
||||
is Delphi compatible
|
||||
|
||||
Revision 1.34 2001/05/19 21:15:53 peter
|
||||
* allow typenodes for typeinfo and typeof
|
||||
* tp procvar fixes for properties
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user