* Allow to parse internal symbol names generated for generics.

This commit is contained in:
Michaël Van Canneyt 2024-11-25 14:11:42 +01:00
parent ac4b089e14
commit e15f731a9b
2 changed files with 6 additions and 1 deletions

View File

@ -174,6 +174,8 @@ interface
in_preproc_comp_expr : boolean; in_preproc_comp_expr : boolean;
{ true if tokens must be converted to opposite endianess} { true if tokens must be converted to opposite endianess}
change_endian_for_replay : boolean; change_endian_for_replay : boolean;
{ hack to allow reading generic generated identifiers IDs}
allowgenericid : boolean;
constructor Create(const fn:string; is_macro: boolean = false); constructor Create(const fn:string; is_macro: boolean = false);
destructor Destroy;override; destructor Destroy;override;
@ -4523,11 +4525,13 @@ type
i:=0; i:=0;
repeat repeat
case c of case c of
'_', '_','$',
'0'..'9', '0'..'9',
'A'..'Z', 'A'..'Z',
'a'..'z' : 'a'..'z' :
begin begin
if (c='$') and not allowgenericid then
break;
if i<255 then if i<255 then
begin begin
inc(i); inc(i);

View File

@ -1813,6 +1813,7 @@ implementation
if ErrorCount<>0 then if ErrorCount<>0 then
exit; exit;
replace_scanner('hiddenclass_impl',sstate); replace_scanner('hiddenclass_impl',sstate);
sstate.new_scanner.allowgenericid:=true;
for i:=0 to st.deflist.count-1 do for i:=0 to st.deflist.count-1 do
begin begin
def:=tdef(st.deflist[i]); def:=tdef(st.deflist[i]);