From efbfeca2921c4c250faadae339374c6294f3939f Mon Sep 17 00:00:00 2001 From: Rangi Date: Wed, 17 Feb 2021 10:36:36 -0500 Subject: [PATCH] Avoid two peek(1) calls when lexing """multi-line strings""" --- src/asm/lexer.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/asm/lexer.c b/src/asm/lexer.c index 493b2fea..a3f1f38b 100644 --- a/src/asm/lexer.c +++ b/src/asm/lexer.c @@ -1457,9 +1457,14 @@ static void readString(void) case '"': if (multiline) { // Only """ ends a multi-line string - if (peek(0) != '"' || peek(1) != '"') + if (peek(0) != '"') break; - shiftChars(2); + shiftChars(1); + if (peek(0) != '"') { + append_yylval_tzString('"'); + break; + } + shiftChars(1); } goto finish; @@ -1604,11 +1609,14 @@ static size_t appendStringLiteral(size_t i) case '"': if (multiline) { // Only """ ends a multi-line string - if (peek(0) != '"' || peek(1) != '"') + if (peek(0) != '"') break; append_yylval_tzString('"'); + shiftChars(1); + if (peek(0) != '"') + break; append_yylval_tzString('"'); - shiftChars(2); + shiftChars(1); } append_yylval_tzString('"'); goto finish;