Предмет:
Тип роботи:
Курсова робота
К-сть сторінок:
82
Мова:
Українська
write('''#$',hexbyte(ord(string(val)[i])));
state:=2;
end;
2: write('#$',hexbyte(ord(string(val)[i])));
end
else
case state of
0,2: begin
state:=1;
write('''',string(val)[i]);
end;
1: write(string(val)[i]);
end;
end;
if state=1 then
write('''');
end;
15 { enum }
: begin
if NowEnum=nil then
write_enum_const(type_obj,longint(val))
else
write(integer(val));
end;
12 { int }
: write(longint(val));
13 { bool }
: write(boolean(val));
14 { char }
: if (char(val)<' ') or (char(val)>#$fe) then
write('#$',hexbyte(byte(val)))
else
write('''',char(val),'''');
10 { extend }
: write(extended(val));
8 { pointer }
: write('ptr($'+hexword(seg(pointer(val)^))+
',$'+hexword(ofs(pointer(val)^))+')');
7 { set }
: begin
write('[');
Count:=0;
last:=-2;
Range:=False;
for l:=0 to 255 do
if l in tbyteset(val) then
begin
if Range or (last=l-1) then
Range:=True
else
begin
inc(Count);
if Count>1 then
write(',');
write_const_type(l,type_obj^.base_unit,type_obj^.base_ofs,buffer);
last:=l;
end
end
else
begin
if Range then
begin
Range:=False;
if last=l-2 then
begin
last:=l-1;
write(',');
write_const_type(last,type_obj^.base_unit,type_obj^.base_ofs,buffer);
end
else
begin
last:=l-1;
write('..');
write_const_type(last,type_obj^.base_unit,type_obj^.base_ofs,buffer);
end;
end;
last:=-2;
end;
write(']');
end;
else
WriteError('Unknown type of constant');