mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 13:59:29 +02:00
+ the expr for names and indizies of exports sections support now
every type of expressions which evalute to a constant
This commit is contained in:
parent
5b6c306f6d
commit
bd5719a93e
@ -33,7 +33,7 @@ unit pexports;
|
||||
globtype,systems,tokens,
|
||||
strings,cobjects,globals,verbose,
|
||||
scanner,symconst,symtable,pbase,
|
||||
export,GenDef;
|
||||
export,GenDef,tree,pass_1,pexpr;
|
||||
|
||||
procedure read_exports;
|
||||
|
||||
@ -43,6 +43,8 @@ unit pexports;
|
||||
DefString:string;
|
||||
ProcName:string;
|
||||
InternalProcName:string;
|
||||
pt : ptree;
|
||||
|
||||
begin
|
||||
DefString:='';
|
||||
InternalProcName:='';
|
||||
@ -90,9 +92,17 @@ unit pexports;
|
||||
if (idtoken=_INDEX) then
|
||||
begin
|
||||
consume(_INDEX);
|
||||
pt:=comp_expr(true);
|
||||
do_firstpass(pt);
|
||||
if pt^.treetype=ordconstn then
|
||||
hp^.index:=pt^.value
|
||||
else
|
||||
begin
|
||||
hp^.index:=0;
|
||||
consume(_INTCONST);
|
||||
end;
|
||||
hp^.options:=hp^.options or eo_index;
|
||||
val(pattern,hp^.index,code);
|
||||
consume(_INTCONST);
|
||||
disposetree(pt);
|
||||
if target_os.id=os_i386_win32 then
|
||||
DefString:=ProcName+'='+InternalProcName+' @ '+tostr(hp^.index)
|
||||
else
|
||||
@ -101,12 +111,17 @@ unit pexports;
|
||||
if (idtoken=_NAME) then
|
||||
begin
|
||||
consume(_NAME);
|
||||
hp^.name:=stringdup(pattern);
|
||||
hp^.options:=hp^.options or eo_name;
|
||||
if token=_CCHAR then
|
||||
consume(_CCHAR)
|
||||
pt:=comp_expr(true);
|
||||
do_firstpass(pt);
|
||||
if pt^.treetype=stringconstn then
|
||||
hp^.name:=stringdup(strpas(pt^.value_str))
|
||||
else
|
||||
consume(_CSTRING);
|
||||
begin
|
||||
hp^.name:=stringdup('');
|
||||
consume(_CSTRING);
|
||||
end;
|
||||
hp^.options:=hp^.options or eo_name;
|
||||
disposetree(pt);
|
||||
DefString:=hp^.name^+'='+InternalProcName;
|
||||
end;
|
||||
if (idtoken=_RESIDENT) then
|
||||
@ -141,7 +156,11 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.19 2000-02-09 13:22:56 peter
|
||||
Revision 1.20 2000-02-23 23:06:39 florian
|
||||
+ the expr for names and indizies of exports sections support now
|
||||
every type of expressions which evalute to a constant
|
||||
|
||||
Revision 1.19 2000/02/09 13:22:56 peter
|
||||
* log truncated
|
||||
|
||||
Revision 1.18 2000/01/07 01:14:28 peter
|
||||
@ -188,4 +207,4 @@ end.
|
||||
* moved bitmask constants to sets
|
||||
* some other type/const renamings
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user