Forum
Parser bug (*solved*) - Printable Version

+- Forum (https://www.boriel.com/forum)
+-- Forum: Compilers and Computer Languages (https://www.boriel.com/forum/forumdisplay.php?fid=12)
+--- Forum: ZX Basic Compiler (https://www.boriel.com/forum/forumdisplay.php?fid=11)
+---- Forum: Bug Reports (https://www.boriel.com/forum/forumdisplay.php?fid=15)
+---- Thread: Parser bug (*solved*) (/showthread.php?tid=531)



Parser bug (*solved*) - einar - 02-26-2013

Trying to compile the following code:
Code:
#define BIFROSTstop() \
    asm               \
        call 65012    \
    end asm

10 PAUSE 0 : BIFROSTstop() : PAUSE 0
Produces the following error message:
Quote:illegal character ':'
However the following code compiles just fine:
Code:
#define BIFROSTstop() \
    asm               \
        call 65012    \
    end asm

10 PAUSE 0 : BIFROSTstop()
   PAUSE 0
This bug is relevant because BIFROST* interface library for ZX BASIC makes extensive use of defines as above, for performance reasons. I'm sure this is not the only case. Therefore I'm concerned about users getting confused by weird errors like this.


Re: Parser bug - boriel - 02-26-2013

Hmmm. It's a parser bug due to the mix of pre-processing and BASIC parsing. Will check it. Thanks! :roll:

Just for clarification: Not sure what you meant by "performance reasons", but obviosly using the colon or newline is the same for the compiler (there's no performance impact; it's just cosmetic syntax).

Will fix it asap.


Re: Parser bug - einar - 02-26-2013

boriel Wrote:Just for clarification: Not sure what you meant by "performance reasons"
I just meant that using a "define" has better performance (less overhead) than calling a function or sub-routine, for simple cases like in this example above.

boriel Wrote:Will fix it asap.
Thanks!


Re: Parser bug - boriel - 03-01-2013

Okay. It was a bug in the preprocessor. Can you download version 1.3.0s979 and check it please? :roll:


Re: Parser bug - einar - 03-02-2013

boriel Wrote:Okay. It was a bug in the preprocessor. Can you download version 1.3.0s979 and check it please? :roll:
It's working now. Thank you!!!