mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-28 17:41:57 +01:00
* handle postfix type declations in typedefs properly
* small indention fixes * omit empty lines after TypeName git-svn-id: trunk@13822 -
This commit is contained in:
parent
48e259876b
commit
e17d6c1624
@ -1970,7 +1970,9 @@ begin
|
|||||||
writeln(outfile);
|
writeln(outfile);
|
||||||
writeln(outfile,aktspace,'type');
|
writeln(outfile,aktspace,'type');
|
||||||
block_type:=bt_type;
|
block_type:=bt_type;
|
||||||
end;
|
end
|
||||||
|
else
|
||||||
|
writeln(outfile);
|
||||||
no_pop:=assigned(yyv[yysp-2]) and (yyv[yysp-2]^.str='no_pop');
|
no_pop:=assigned(yyv[yysp-2]) and (yyv[yysp-2]^.str='no_pop');
|
||||||
shift(3);
|
shift(3);
|
||||||
(* Get the name to write the type definition for, try
|
(* Get the name to write the type definition for, try
|
||||||
@ -1987,7 +1989,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
(* write type definition *)
|
(* write type definition *)
|
||||||
is_procvar:=false;
|
is_procvar:=false;
|
||||||
writeln(outfile);
|
|
||||||
TN:=TypeName(ph^.p);
|
TN:=TypeName(ph^.p);
|
||||||
PN:=PointerName(ph^.p);
|
PN:=PointerName(ph^.p);
|
||||||
if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and
|
if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and
|
||||||
@ -1996,7 +1997,7 @@ begin
|
|||||||
(* write new type name *)
|
(* write new type name *)
|
||||||
write(outfile,aktspace,TN,' = ');
|
write(outfile,aktspace,TN,' = ');
|
||||||
shift(2);
|
shift(2);
|
||||||
write_type_specifier(outfile,yyv[yysp-3]);
|
write_p_a_def(outfile,yyv[yysp-1]^.p1^.p1,yyv[yysp-3]);
|
||||||
popshift;
|
popshift;
|
||||||
(* if no_pop it is normal fpc calling convention *)
|
(* if no_pop it is normal fpc calling convention *)
|
||||||
if is_procvar and
|
if is_procvar and
|
||||||
@ -2047,10 +2048,11 @@ begin
|
|||||||
writeln(outfile);
|
writeln(outfile);
|
||||||
writeln(outfile,aktspace,'type');
|
writeln(outfile,aktspace,'type');
|
||||||
block_type:=bt_type;
|
block_type:=bt_type;
|
||||||
end;
|
end
|
||||||
|
else
|
||||||
|
writeln(outfile);
|
||||||
shift(3);
|
shift(3);
|
||||||
(* write as pointer *)
|
(* write as pointer *)
|
||||||
writeln(outfile);
|
|
||||||
writeln(outfile,'(* generic typedef *)');
|
writeln(outfile,'(* generic typedef *)');
|
||||||
writeln(outfile,aktspace,yyv[yysp-1]^.p,' = pointer;');
|
writeln(outfile,aktspace,yyv[yysp-1]^.p,' = pointer;');
|
||||||
flush(outfile);
|
flush(outfile);
|
||||||
|
|||||||
@ -1887,7 +1887,9 @@ declaration :
|
|||||||
writeln(outfile);
|
writeln(outfile);
|
||||||
writeln(outfile,aktspace,'type');
|
writeln(outfile,aktspace,'type');
|
||||||
block_type:=bt_type;
|
block_type:=bt_type;
|
||||||
end;
|
end
|
||||||
|
else
|
||||||
|
writeln(outfile);
|
||||||
no_pop:=assigned($3) and ($3^.str='no_pop');
|
no_pop:=assigned($3) and ($3^.str='no_pop');
|
||||||
shift(3);
|
shift(3);
|
||||||
(* Get the name to write the type definition for, try
|
(* Get the name to write the type definition for, try
|
||||||
@ -1904,7 +1906,6 @@ declaration :
|
|||||||
end;
|
end;
|
||||||
(* write type definition *)
|
(* write type definition *)
|
||||||
is_procvar:=false;
|
is_procvar:=false;
|
||||||
writeln(outfile);
|
|
||||||
TN:=TypeName(ph^.p);
|
TN:=TypeName(ph^.p);
|
||||||
PN:=PointerName(ph^.p);
|
PN:=PointerName(ph^.p);
|
||||||
if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and
|
if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and
|
||||||
@ -1913,7 +1914,7 @@ declaration :
|
|||||||
(* write new type name *)
|
(* write new type name *)
|
||||||
write(outfile,aktspace,TN,' = ');
|
write(outfile,aktspace,TN,' = ');
|
||||||
shift(2);
|
shift(2);
|
||||||
write_type_specifier(outfile,$2);
|
write_p_a_def(outfile,$4^.p1^.p1,$2);
|
||||||
popshift;
|
popshift;
|
||||||
(* if no_pop it is normal fpc calling convention *)
|
(* if no_pop it is normal fpc calling convention *)
|
||||||
if is_procvar and
|
if is_procvar and
|
||||||
@ -1963,10 +1964,11 @@ declaration :
|
|||||||
writeln(outfile);
|
writeln(outfile);
|
||||||
writeln(outfile,aktspace,'type');
|
writeln(outfile,aktspace,'type');
|
||||||
block_type:=bt_type;
|
block_type:=bt_type;
|
||||||
end;
|
end
|
||||||
|
else
|
||||||
|
writeln(outfile);
|
||||||
shift(3);
|
shift(3);
|
||||||
(* write as pointer *)
|
(* write as pointer *)
|
||||||
writeln(outfile);
|
|
||||||
writeln(outfile,'(* generic typedef *)');
|
writeln(outfile,'(* generic typedef *)');
|
||||||
writeln(outfile,aktspace,$2^.p,' = pointer;');
|
writeln(outfile,aktspace,$2^.p,' = pointer;');
|
||||||
flush(outfile);
|
flush(outfile);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user