Well, I copied your original post and my reply to the development team. Here's their take:
----------------------------
This looks like an error in token pasting. Basically, right now it's
rejecting anything that looks like a floating-point number, even though
it's alphanumeric.
The real issue, of course, is that we're using token type as a proxy for
something else, which is "it's alphanumeric".
It's unambigously a bug and should be fixed. It shouldn't even be all
that hard to fix.
-hpa
------------------------
Soooo... If you're willing to wait, it'll probably be fixed in a near-future version. If you can work around it, that will allow you/others to use "intermediate" (buggy) versions of Nasm... which *do* get distributed. If you can come up with a script ("shouldn't be hard"... but I don't speak regex) to prepend an underscore to anything that starts with a number... or some such... that might be your best bet. If that'll work for ya. If you're "stuck with" those names, I guess you're "stuck with" certain versions of Nasm, too. Bummer.
I didn't mention it, but I couldn't figure out any way to fix it in the macro (I'm not a sophisticated macro user). I may play with it some more, but if Nasm won't accept it, I don't see much we can do. I think you're right that parameters are passed as strings, and Nasm's getting confused evaluating "token type"...
Thanks for the feedback, Zdenek. We *do* test changes in code, but apparently not with (number)E(anything). Our users and their projects are our best "test suites", so keep the feedback coming!
Latest versions can always be found at
http://www.nasm.us in the "snapshots" section. That's where the "fix" will appear, when it comes along...
Best,
Frank