Dotneteer / spectnetide

ZX Spectrum IDE with Visual Studio 2017 and 2019 integration
MIT License
205 stars 27 forks source link

Optional macro parameters in ifdef block give error with 'lreg' function #207

Open oxidaan opened 3 years ago

oxidaan commented 3 years ago

The sample below is taken from the assembler macro documentation, demonstrating optional parameters at Push macro. (For simplicity I removed r3, r4) Inside there, I added (for both parameters): add a, lreg({{r1}}) When called with one parameter, this gives an error 'Unexpected token '$$' despite being withing the ..if def({{r2}}) block. I think this should not give an error. To reproduce: assemble this code:

; Code file start: .org #8000

Push: .macro(r1, r2) .if def({{r1}}) add a, lreg({{r1}}) push {{r1}} .endif .if def({{r2}}) add a, lreg({{r2}}) push {{r2}} .endif .endm

Push(bc)

Dotneteer commented 3 years ago

Sorry for ignoring your request for a such a long time. As I still do not know when I will have time to release the next preview, here I send you a private build with the fix. Please, rename the .zip file to .vsix before installing it!

Spect.Net.VsPackage.zip