Nested function calls. For all:
call equ
macro call name,[arg]
{
common if ~ arg eq
reverse pushd arg
common end if
CALL name
}
macro push [arg]
{
common
if arg eq ?
push 0
else if arg eqtype ''
local ..
.data
if defined UNICODE
.. du arg,0
else
.. db arg,0
end if
.code
push ..
else
push dword arg
end if
}
macro pushd [arg]
{
common
if _#arg eq _call arg
arg
push eax
else
push arg
end if
}
macro call name,[arg]
{
common if ~ arg eq
reverse pushd arg
common end if
call name
}
;usage:
call last,1,<call last,'ansi text'>,?,<call last,4,<call last,5>,6>,7
;or
UNICODE=1
call last,1,<call last,'unicode text'>,?,<call last,4,<call last,5>,6>,7
last: ret