I'm not particularly familiar with Delphi, but the issue here appears to be a combination of parenthetical grouping not being picked up and the program not knowing that "unsigned char" should become "byte".
Ex:
unsigned char a = 255;
unsigned char b = 255;
if ((a + b) == 510) {
puts("yes");
}
becomes
unsigned char a = 255;
unsigned char b = 255;
if a + b then = 510 then begin
WriteLn('yes');
end;
instead of
var a,b: byte;
begin
a := 255;
b := 255;
if (a + b) = 510 then begin
writeln('yes');
end;
It's also worth noting that assuming parenthetical grouping is fixed, the C code snippet should work fine; according to the online compiler I was toying around with, Pascal uses integer type promotion.
Ex:
becomes instead of It's also worth noting that assuming parenthetical grouping is fixed, the C code snippet should work fine; according to the online compiler I was toying around with, Pascal uses integer type promotion.