mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-29 20:20:16 +02:00
* fix for tw2178. When a ^ or . follows a procsym then the procsym
needs to be called
This commit is contained in:
parent
6c097b4546
commit
2e692659df
@ -640,9 +640,8 @@ implementation
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
if token=_LKLAMMER then
|
if try_to_consume(_LKLAMMER) then
|
||||||
begin
|
begin
|
||||||
consume(_LKLAMMER);
|
|
||||||
para:=parse_paras(false,false);
|
para:=parse_paras(false,false);
|
||||||
consume(_RKLAMMER);
|
consume(_RKLAMMER);
|
||||||
end;
|
end;
|
||||||
@ -898,7 +897,7 @@ implementation
|
|||||||
procsym:
|
procsym:
|
||||||
begin
|
begin
|
||||||
do_proc_call(sym,sym.owner,
|
do_proc_call(sym,sym.owner,
|
||||||
getaddr or
|
(getaddr and not(token in [_CARET,_POINT])) or
|
||||||
(assigned(getprocvardef) and
|
(assigned(getprocvardef) and
|
||||||
((block_type=bt_const) or
|
((block_type=bt_const) or
|
||||||
((m_tp_procvar in aktmodeswitches) and
|
((m_tp_procvar in aktmodeswitches) and
|
||||||
@ -1235,7 +1234,7 @@ implementation
|
|||||||
assigned(aktprocsym) and
|
assigned(aktprocsym) and
|
||||||
(po_classmethod in aktprocdef.procoptions);
|
(po_classmethod in aktprocdef.procoptions);
|
||||||
do_proc_call(srsym,srsymtable,
|
do_proc_call(srsym,srsymtable,
|
||||||
getaddr or
|
(getaddr and not(token in [_CARET,_POINT])) or
|
||||||
(assigned(getprocvardef) and
|
(assigned(getprocvardef) and
|
||||||
((block_type=bt_const) or
|
((block_type=bt_const) or
|
||||||
((m_tp_procvar in aktmodeswitches) and
|
((m_tp_procvar in aktmodeswitches) and
|
||||||
@ -1906,19 +1905,23 @@ implementation
|
|||||||
consume(_KLAMMERAFFE);
|
consume(_KLAMMERAFFE);
|
||||||
got_addrn:=true;
|
got_addrn:=true;
|
||||||
{ support both @<x> and @(<x>) }
|
{ support both @<x> and @(<x>) }
|
||||||
if token=_LKLAMMER then
|
if try_to_consume(_LKLAMMER) then
|
||||||
begin
|
begin
|
||||||
consume(_LKLAMMER);
|
|
||||||
p1:=factor(true);
|
p1:=factor(true);
|
||||||
consume(_RKLAMMER);
|
|
||||||
if token in [_CARET,_POINT,_LECKKLAMMER] then
|
if token in [_CARET,_POINT,_LECKKLAMMER] then
|
||||||
begin
|
begin
|
||||||
again:=true;
|
again:=true;
|
||||||
postfixoperators(p1,again);
|
postfixoperators(p1,again);
|
||||||
end;
|
end;
|
||||||
|
consume(_RKLAMMER);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
p1:=factor(true);
|
p1:=factor(true);
|
||||||
|
if token in [_CARET,_POINT,_LECKKLAMMER] then
|
||||||
|
begin
|
||||||
|
again:=true;
|
||||||
|
postfixoperators(p1,again);
|
||||||
|
end;
|
||||||
got_addrn:=false;
|
got_addrn:=false;
|
||||||
p1:=caddrnode.create(p1);
|
p1:=caddrnode.create(p1);
|
||||||
if assigned(getprocvardef) and
|
if assigned(getprocvardef) and
|
||||||
@ -2261,7 +2264,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.92 2002-11-25 17:43:22 peter
|
Revision 1.93 2002-11-26 22:58:24 peter
|
||||||
|
* fix for tw2178. When a ^ or . follows a procsym then the procsym
|
||||||
|
needs to be called
|
||||||
|
|
||||||
|
Revision 1.92 2002/11/25 17:43:22 peter
|
||||||
* splitted defbase in defutil,symutil,defcmp
|
* splitted defbase in defutil,symutil,defcmp
|
||||||
* merged isconvertable and is_equal into compare_defs(_ext)
|
* merged isconvertable and is_equal into compare_defs(_ext)
|
||||||
* made operator search faster by walking the list only once
|
* made operator search faster by walking the list only once
|
||||||
|
Loading…
Reference in New Issue
Block a user