Ich bin nicht so sehr vertraut mit all diesen {$If...}, habe aber mal versucht mich da durchzubeißen.
Wenn keines der {SIF..} zutrifft, dann steht da m.E.nur noch
und das führt dann zu dem Fehler.
Ich habe mal folgende Zeilen hinzugefügt
Hinter {$ELSEIF defined(VER330)}'Delphi 10.3 Carnival'
{$ELSE} 'Unbekannte Version'
.
vor {$ENDIF CONDITIONALEXPRESSIONS}
{$ELSE} 'Keine CONDITIONALEXPRESSIONS'
.
Das sieht dann so aus (und funktioniert bei mir)
Den Typ des Results von GetDelphiCompilerVersion habe ich auf String geändert, weil mein Delphi RawUTF8 nicht mag.
Delphi-Quellcode:
function GetDelphiCompilerVersion:String;
begin
result :=
{$IFDEF FPC}
'Free Pascal'
{$IFDEF VER2_6_4} + ' 2.6.4'{$ENDIF}
{$IFDEF VER3_0_0} + ' 3.0.0'{$ENDIF}
{$IFDEF VER3_0_1} + ' 3.0.1'{$ENDIF}
{$IFDEF VER3_0_2} + ' 3.0.2'{$ENDIF}
{$IFDEF VER3_1_1} + ' 3.1.1'{$ENDIF}
{$IFDEF FPC_HAS_MANAGEMENT_OPERATORS} + ' MOP'{$ENDIF}
{$ELSE}
{$IFDEF VER130} 'Delphi 5'{$ENDIF}
{$IFDEF CONDITIONALEXPRESSIONS} // Delphi 6 or newer
{$IF defined(KYLIX3)}'Kylix 3'
{$ELSEIF defined(VER140)}'Delphi 6'
{$ELSEIF defined(VER330)}'Delphi 10.3 Carnival'
{$ELSE} 'Unbekannte Version' // Hinzugefügt
{$IFEND}
{$ELSE} 'Keine CONDITIONALEXPRESSIONS' // Hinzugefügt
{$ENDIF CONDITIONALEXPRESSIONS}
{$ENDIF}
{$IFDEF CPU64}
+ ' 64 bit'
{$ENDIF}
end;