I would like to see the expansion of my macros before the HLA compiler turns it into MASM code.
In terms of other compilers--e.g., PL/I--that would be a virtual "first pass listing" ( "virtual" in the sense that it doesn't matter whether that text ever exists as a complete file for further processing). If that is not available in version 1, will it be in version 2? (I'd use that even if it were only available as a dead-end option that means that there would be no "second pass" compilation.)
In terms of other compilers--e.g., PL/I--that would be a virtual "first pass listing" ( "virtual" in the sense that it doesn't matter whether that text ever exists as a complete file for further processing). If that is not available in version 1, will it be in version 2? (I'd use that even if it were only available as a dead-end option that means that there would be no "second pass" compilation.)
I would like to see the expansion of my macros before the HLA compiler turns it into MASM code.
In terms of other compilers--e.g., PL/I--that would be a virtual "first pass listing" ( "virtual" in the sense that it doesn't matter whether that text ever exists as a complete file for further processing). If that is not available in version 1, will it be in version 2? (I'd use that even if it were only available as a dead-end option that means that there would be no "second pass" compilation.)
Yep, that would be a nice feature all right.
However, in HLA v1.x macros are handled by the "compile-time language", not via preprocessing as with most languages. That is, HLA doesn't expand the macro and
then process the text associated with that macro. The best way to think of it is
as processing one token in the macro, passing the results on to HLA for compilation, then processing the next token in the macro, etc.
HLA v2.0 will solve this problem using a different approach. HLA v2.0 will have replaceable code generators (e.g., a code generator for COFF, a code generator for ELF, etc...). One set of code generators will be source code generators; HLA will still be capable of producing MASM or Gas or FASM or etc. output by selecting the appropriate "code" generator. HLA v2.0 will provide an HLA code generator specifically for the purpose of taking a look at what happens when the compile-time language processes the file.
This will show you "macro expansions", the effects of conditional assembly, etc.
I was tempted, at one time, to put such a code generator into HLA v1.x. But HLA v1.x's code generation algorithms *really* want to produce code with the "dest,src" operand organization (which is why HLA uses ".intel_syntax" for Gas output). Creating an HLA code generator is probably more work than it's worth at this point.
Cheers,
Randy Hyde