From 38110a833d66bc4560e7cb864e11105a52cf974f Mon Sep 17 00:00:00 2001 From: jidoc01 Date: Thu, 4 Jul 2019 11:59:13 +0900 Subject: [PATCH] Fix comment bug There is a bug in processing the comments in source files. It's related to #326. And this bug comes out when you comment something with the character ';', and include the quotation mark without its pair in it. The lastest version of rgbds compiler has a step to parse the given source to convert its line endings to a unified one, and it processes quotation marks even before it processes the comments. I edited a little bit of the source, and it works fine now. --- src/asm/lexer.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/asm/lexer.c b/src/asm/lexer.c index c339bf49..027a8cbd 100644 --- a/src/asm/lexer.c +++ b/src/asm/lexer.c @@ -181,16 +181,10 @@ YY_BUFFER_STATE yy_create_buffer(FILE *f) /* Convert all line endings to LF and spaces */ char *mem = pBuffer->pBuffer; - uint32_t instring = 0; while (*mem) { - if (*mem == '\"') - instring = 1 - instring; - if ((mem[0] == '\\') && (mem[1] == '\"' || mem[1] == '\\')) { mem += 2; - } else if (instring) { - mem += 1; } else { /* LF CR and CR LF */ if (((mem[0] == 10) && (mem[1] == 13)) @@ -211,7 +205,7 @@ YY_BUFFER_STATE yy_create_buffer(FILE *f) /* Remove comments */ mem = pBuffer->pBuffer; - instring = 0; + uint32_t instring = 0; while (*mem) { if (*mem == '\"')