Erro do compilador "dois pontos (':') esperado" no intervalo de caracteres na instrução case no script Inno Setup Pascal
Estou recebendo um erro de sintaxe "dois pontos (:) esperado" nesse código (Linha 14; Coluna 10) e estou perdida. Esse código é executado no compilador Inno Setup, é semelhante ao Delphi, mas não acho que seja o Delphi completo.
A versão do Inno Setup é 5.5.9 (a), portanto, a versão Ansi.
procedure HexToBin(const Hex: string; Stream: TStream);
var
B: Byte;
C: Char;
Idx, Len: Integer;
begin
Len := Length(Hex);
If Len = 0 then Exit;
If (Len mod 2) <> 0 then RaiseException('bad hex length');
Idx := 1;
repeat
C := Hex[Idx];
case C of
'0'..'9': B := Byte((Ord(C) - '0') shl 4);
'A'..'F': B := Byte(((Ord(C) - 'A') + 10) shl 4);
'a'..'f': B := Byte(((Ord(C) - 'a') + 10) shl 4);
else
RaiseException('bad hex data');
end;
C := Hex[Idx+1];
case C of
'0'..'9': B := B or Byte(Ord(C) - '0');
'A'..'F': B := B or Byte((Ord(C) - 'A') + 10);
'a'..'f': B := B or Byte((Ord(C) - 'a') + 10);
else
RaiseException('bad hex data');
end;
Stream.WriteBuffer(B, 1);
Inc(Idx, 2);
until Idx > Len;
end;
begin
FStream := TFileStream.Create('myfile.jpg', fmCreate);
HexToBin(myFileHex, FStream);
FStream.Free;
end;
Alguém pode detectar meu erro?