diff --git a/masm/lex.c b/masm/lex.c index 8b68932..a7707d6 100644 --- a/masm/lex.c +++ b/masm/lex.c @@ -101,6 +101,12 @@ static int lex_string(struct lexer *lexer,char text[MAX_LEX_LENGTH]) if (c == '"') break; + // strings cannot span multiple lines + if (c == '\n') { + ERROR_POS(pos, "reached newline before end of string"); + return M_ERROR; + } + // match escape character if (c == '\\') { switch (lex_peek(lexer)) { @@ -123,12 +129,6 @@ static int lex_string(struct lexer *lexer,char text[MAX_LEX_LENGTH]) } } - // strings cannot span multiple lines - if (c == '\n') { - ERROR_POS(pos, "reached newline before end of string"); - return M_ERROR; - } - if (len + 1 == MAX_LEX_LENGTH) { ERROR_POS(pos, "string has max length of %d", MAX_LEX_LENGTH);