Jelajahi Sumber

[lexer.h] Making lexer_read_str_lit handle EOF

Vinicius Teshima 1 tahun lalu
induk
melakukan
421cf95662
1 mengubah file dengan 10 tambahan dan 1 penghapusan
  1. 10 1
      src/lexer.h

+ 10 - 1
src/lexer.h

@@ -114,9 +114,18 @@ lexer_read_str_lit(struct lexer *l)
 {
 	size_t pos = l->pos;
 	lexer_read_char(l);
-	while ( l->c != '"' ) {
+loop:
+	switch ( l->c ) {
+	case '"':
+	case '\0':
+		break;
+
+	default:
 		lexer_read_char(l);
+		goto loop;
+		break;
 	}
+
 	lexer_read_char(l);
 	return str_slice(l->in, pos+1, l->pos-1);
 }