+ implemented a tcasenode.printnodetree printing all cases

git-svn-id: trunk@23414 -
This commit is contained in:
florian 2013-01-16 20:24:56 +00:00
parent abfa6c1b43
commit 247d6dd394

View File

@ -98,6 +98,7 @@ interface
procedure buildderefimpl;override;
procedure derefimpl;override;
function dogetcopy : tnode;override;
procedure printnodetree(var t:text);override;
procedure insertintolist(l : tnodelist);override;
function pass_typecheck:tnode;override;
function pass_1 : tnode;override;
@ -829,7 +830,6 @@ implementation
function tcasenode.dogetcopy : tnode;
var
n : tcasenode;
i : longint;
@ -858,11 +858,43 @@ implementation
dogetcopy:=n;
end;
procedure tcasenode.insertintolist(l : tnodelist);
procedure tcasenode.printnodetree(var t: text);
var
hp : tbinarynode;
i : longint;
begin
write(t,printnodeindention,'(');
printnodeindent;
printnodeinfo(t);
writeln(t);
printnode(t,left);
for i:=0 to blocks.count-1 do
begin
writeln(t,printnodeindention,'(caseblock blockid: ',i);
printnodeindent;
printnode(t,pcaseblock(blocks[i])^.statement);
printnodeunindent;
writeln(t,printnodeindention,')');
end;
if assigned(elseblock) then
begin
writeln(t,printnodeindention,'(else: ',i);
printnodeindent;
printnode(t,elseblock);
printnodeunindent;
writeln(t,printnodeindention,')');
end;
printnodeunindent;
writeln(t,printnodeindention,')');
end;
procedure tcasenode.insertintolist(l : tnodelist);
begin
end;
function caselabelsequal(n1,n2: pcaselabel): boolean;
begin
result :=