mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-03 09:30:35 +02:00
* Allow to parse internal symbol names generated for generics.
This commit is contained in:
parent
ac4b089e14
commit
e15f731a9b
@ -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);
|
||||||
|
@ -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]);
|
||||||
|
Loading…
Reference in New Issue
Block a user