From 513d8f130c01a78c62fd4d4577ead15a9d721528 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Tue, 14 Jan 2025 12:45:11 +1100 Subject: [PATCH] Fixed obscure EOF bug in lexer --- scripts/valgrind.toy | 24 +++--------------------- source/toy_lexer.c | 3 ++- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/scripts/valgrind.toy b/scripts/valgrind.toy index 8cd8d1f..2720ffa 100644 --- a/scripts/valgrind.toy +++ b/scripts/valgrind.toy @@ -1,26 +1,8 @@ -//increment & decrement (prefix) -{ - var a = 42; - assert a == 42; - assert ++a == 43; - assert a == 43; - assert --a == 42; - assert a == 42; - print a; -} +var answer = 42; +var question: string = "How many roads must a man walk down?"; -//increment & decrement (postfix) -{ - var a = 42; - assert a == 42; - assert a++ == 42; - assert a == 43; - assert a-- == 43; - assert a == 42; - - print a; -} \ No newline at end of file +print question; \ No newline at end of file diff --git a/source/toy_lexer.c b/source/toy_lexer.c index 79e0a3b..060515b 100644 --- a/source/toy_lexer.c +++ b/source/toy_lexer.c @@ -242,7 +242,6 @@ static Toy_Token makeString(Toy_Lexer* lexer, char terminator) { while (!isAtEnd(lexer)) { //stop if you've hit the terminator if (peek(lexer) == terminator) { - advance(lexer); //eat the terminator break; } @@ -261,6 +260,8 @@ static Toy_Token makeString(Toy_Lexer* lexer, char terminator) { return makeErrorToken(lexer, "Unterminated string"); } + advance(lexer); //eat the terminator + //make the token Toy_Token token;