Hello,
PoASM has problems with this test case
.model flat, stdcall
xtest macro x:req
local y
ifndef __POASM__
forc chr$,x
endm
else
y textequ x
endif
exitm <y>
endm
_TEXT segment
mov eax,xtest(1)
ret
_TEXT ends
end
PoASM displays
fatal error: invalid use of 'ELSE'
because it apparently doesn't expect the first ENDM (which "belongs" to the FORC "instruction" and which PoASM should ignore entirely).
Not a bug. If you have code with bad syntax you must put the IF* directives at the global level (creating two versions of the macro). You can embed IF* directives in macro, but only when the syntax is correct, and then the IF* expression will be evaluated when the macro is *expanded*.