+ add utility function to retrieve the char type def from a stringlike def

This commit is contained in:
Sven/Sarah Barth 2023-01-26 07:05:34 +01:00
parent dfb8794d4d
commit ea417fbaaf

View File

@ -49,6 +49,9 @@ interface
namely that can be joined and compared with another string-like type }
function is_stringlike(def : tdef) : boolean;
{# Returns the typedef for the char type that matches the stringlike }
function chartype_for_stringlike(def : tdef) : tdef;
{# Returns True, if definition defines an enumeration type }
function is_enum(def : tdef) : boolean;
@ -575,6 +578,22 @@ implementation
(def=java_jlstring);
end;
function chartype_for_stringlike(def : tdef) : tdef;
begin
if is_string(def) then
result:=tstringdef(def).get_default_char_type
else if is_anychar(def) then
result:=def
else if is_pchar(def) or is_chararray(def) or is_open_chararray(def) then
result:=cansichartype
else if is_pwidechar(def) or is_pwidechar(def) or is_open_widechararray(def) then
result:=cwidechartype
else if def=java_jlstring then
result:=cwidechartype
else
internalerror(2023012501);
end;
function is_enum(def : tdef) : boolean;
begin
result:=def.typ=enumdef;