Предмет: 
Тип роботи: 
Курсова робота
К-сть сторінок: 
82
Мова: 
Українська
style="text-align: justify;"> write_proc_type(no_name,[],func_type_ptr(addr(return_ofs)));
              writeln;
            end;
        7 : begin                  {Set}
              write('set of ');
              write_var_type(base_unit,base_ofs);
            end;
        8 : begin                  {Pointer}
              write('^');
              write_var_type(target_unit,target_ofs);
            end;
        9 : begin                  {String}
              write('string[',size-1,']');
              {N.B. actually record is like array of char, but "string" with
                    no length is different.}
            end;
       10 : write('built-in ',size,' byte 8087 type');    {8087}
       11 : write('built-in 6-byte real');
       12 : begin                  {Range}
              write(lower,'..',upper);
            end;
       13 : write('built-in boolean');
       14 : write('built-in char type');
       15 : begin                  {Enumeration or subrange}
              if (type_unit = unit_list[1]^.own_record)
                 and (type_ofs = obj_ofs(def)) then
              begin
                { Must be first definition }
                write('(');
                NowEnum:=type_def_ptr(Def);
                {  Assume following records are constant declarations  }
                obj := add_only_offset(def,30);
                for l:=lower to upper-1 do
                begin
                  write(obj^.name,',');
                  obj:=add_only_offset(obj,12+length(obj^.name));
                end;
                write(obj^.name,')');
              end
              else
              begin
                { Must be subrange }
                obj := add_only_offset(get_unit(type_unit)^.buffer,type_ofs);
                obj := add_only_offset(obj,24);
                i := 0;
                while i < def^.lower do
                begin
                  obj:=add_only_offset(obj,12+length(obj^.name));
                  inc(i);
                end;
                write(obj^.name);
                while i < def^.upper do
                begin
                  obj:=add_only_offset(obj,12+length(obj^.name));
                  inc(i);
                end;
                write('..',obj^.name);
              end;
            end;
       else
            begin
              WriteError('Type definition of type '+decword(type_type));
              writeln(' otherbyte=',other_byte,'size=',size);
              indent;
              write(' junk=');
              for i:=3 to 8 do
                write(who_knows[i]:6);
              writeln;
            end;
      end;
    end;
  end;
end;
{$ELSE}
procedure write_type_def(def:type_def_ptr);far;
var
  i : integer;
  l : longint;
  save_kind : byte;
  field_list :
 
	 +3 8(066) 185-39-18
 +3 8(066) 185-39-18
 
  f
 f