Предмет:
Тип роботи:
Курсова робота
К-сть сторінок:
82
Мова:
Українська
write('text');
$19 : write('file');
$1a : write('pointer');
$1b : write('string');
{ TPW types }
$21 : write('wordbool');
$22 : write('longbool');
$23 : write('pchar');
end
else
begin
if base_type <> 0 then
WriteError('{ unrecognized base type '+hexbyte(base_type)+'}');
case type_type of
0 : write('untyped');
1 : begin {Array}
write('array[');
write_var_type(index_unit,index_ofs);
write('] of ');
write_var_type(element_unit,element_ofs);
end;
2 : begin {Record}
save_kind := last_kind;
last_kind := record_id;
writeln ('Record ');
build_list(field_list,buffer,add_only_offset(buffer,hash_ofs));
current := field_list;
inc(indentation,2);
while current^.offset < $ffff do
begin
obj := add_only_offset(buffer,current^.offset);
print_obj(obj);
current := current^.next;
end;
dec(indentation);
indent;
dec(indentation);
write('end');
last_kind := save_kind;
end;
3 : begin {Object}
save_kind := last_kind;
last_kind := object_id;
write ('Object');
if parent_unit <> 0 then
begin
write('(');
write_var_type(parent_unit,parent_ofs);
write(')');
end;
write(tab,'{ vmt block ',hexword(handle));
if w10 <> 0 then
write(' w10=',hexword(w10));
writeln('}');
build_list(field_list,buffer,add_only_offset(buffer,hash_ofs));
inc(indentation,2);
current := field_list;
while current^.offset < $ffff do
begin
obj := add_only_offset(buffer,current^.offset);
print_obj(obj);
current := current^.next;
end;
dec(indentation);
indent;
write('end');
dec(indentation);
last_kind := save_kind;
end;
4 : begin {File}
write('file');
if base_unit <> 0 then
begin
write(' of ');
write_var_type(base_unit,base_ofs);
end;
end;
5 : write('built-in text type');
6 : begin {function/procedure}
no_name := '';