local int a;
local int indent;
local int temp;
indent := 0;
print "
\n";
while (!(isempty (output))) do
begin
a := pop(output);
switch(gettype(a))
begin
case "Instruction" then switch(a) begin
case then print "
\n"; break
case then print " "; break
case then
print "
\n";
temp := 0;
while (temp < indent) do
begin
print " ";
temp := temp+1;
end;
break
case then
indent := indent+1;
break
case then
indent := indent - 1;
break
case <[SPECIAL> then
print "
";
break
case then
print "
";
break
case <[IDENT> then
print "";
break
case then
print "";
break
case <[KEY> then
print "";
break
case then
print "";
break
case <[OP> then
print "";
break
case then
print "";
break
case <[CONST> then
print "";
break
case then
print "";
break
default then break
end;
break
default then
a := string(a);
a := sub("&","&",a);
a := sub("<","<",a);
a := sub(">",">",a);
a := sub(""","\"",a);
print a;
print " ";
break
end;
end;
print "";