mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-20 09:49:08 +02:00
* Compiler was partially case sensitive in macro expansion
* Multiple and/or preprocessor statements caused problems
This commit is contained in:
parent
495c4cb13b
commit
ed76d1e17d
@ -456,29 +456,21 @@ implementation
|
|||||||
l1,l2 : longint;
|
l1,l2 : longint;
|
||||||
w : integer;
|
w : integer;
|
||||||
begin
|
begin
|
||||||
hs1:=read_factor;
|
hs1:=read_factor;
|
||||||
while true do
|
repeat
|
||||||
begin
|
if (current_scanner.preproc_token<>_ID) then
|
||||||
if (current_scanner.preproc_token=_ID) then
|
break;
|
||||||
begin
|
if readpreproc<>'AND' then
|
||||||
if readpreproc='AND' then
|
break;
|
||||||
begin
|
preproc_consume(_ID);
|
||||||
preproc_consume(_ID);
|
hs2:=read_expr;
|
||||||
hs2:=read_expr;
|
valint(hs1,l1,w);
|
||||||
valint(hs1,l1,w); valint(hs2,l2,w);
|
valint(hs2,l2,w);
|
||||||
if (l1>0) and (l2>0) then
|
if (l1>0) and (l2>0) then
|
||||||
hs1:='1'
|
hs1:='1'
|
||||||
else
|
else
|
||||||
hs1:='0';
|
hs1:='0';
|
||||||
read_term := hs1;
|
until false;
|
||||||
exit;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
end;
|
|
||||||
read_term:=hs1;
|
read_term:=hs1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -489,30 +481,22 @@ implementation
|
|||||||
l1,l2 : longint;
|
l1,l2 : longint;
|
||||||
w : integer;
|
w : integer;
|
||||||
begin
|
begin
|
||||||
hs1:=read_term;
|
hs1:=read_term;
|
||||||
while true do
|
repeat
|
||||||
begin
|
if (current_scanner.preproc_token<>_ID) then
|
||||||
if (current_scanner.preproc_token=_ID) then
|
break;
|
||||||
begin
|
if readpreproc<>'OR' then
|
||||||
if readpreproc='OR' then
|
break;
|
||||||
begin
|
preproc_consume(_ID);
|
||||||
preproc_consume(_ID);
|
hs2:=read_expr;
|
||||||
hs2:=read_expr;
|
valint(hs1,l1,w);
|
||||||
valint(hs1,l1,w); valint(hs2,l2,w);
|
valint(hs2,l2,w);
|
||||||
if (l1>0) or (l2>0) then
|
if (l1>0) or (l2>0) then
|
||||||
hs1:='1'
|
hs1:='1'
|
||||||
else
|
else
|
||||||
hs1:='0';
|
hs1:='0';
|
||||||
read_simple_expr := hs1;
|
until false;
|
||||||
exit;
|
read_simple_expr:=hs1;
|
||||||
end
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
end;
|
|
||||||
read_simple_expr:=hs1;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function read_expr : string;
|
function read_expr : string;
|
||||||
@ -641,7 +625,7 @@ implementation
|
|||||||
#26 :
|
#26 :
|
||||||
current_scanner.end_of_file;
|
current_scanner.end_of_file;
|
||||||
end;
|
end;
|
||||||
macrobuffer^[macropos]:=c;
|
macrobuffer^[macropos]:=upcase(c);
|
||||||
inc(macropos);
|
inc(macropos);
|
||||||
if macropos>maxmacrolen then
|
if macropos>maxmacrolen then
|
||||||
Message(scan_f_macro_buffer_overflow);
|
Message(scan_f_macro_buffer_overflow);
|
||||||
@ -2932,7 +2916,11 @@ exit_label:
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.67 2004-02-07 23:28:34 daniel
|
Revision 1.68 2004-02-11 14:13:10 daniel
|
||||||
|
* Compiler was partially case sensitive in macro expansion
|
||||||
|
* Multiple and/or preprocessor statements caused problems
|
||||||
|
|
||||||
|
Revision 1.67 2004/02/07 23:28:34 daniel
|
||||||
* Take advantage of our new with statement optimization
|
* Take advantage of our new with statement optimization
|
||||||
|
|
||||||
Revision 1.66 2003/11/12 16:57:59 peter
|
Revision 1.66 2003/11/12 16:57:59 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user