Browse Source

[lexer.h] Making lexer_read_str_lit handle EOF

Vinicius Teshima 1 năm trước cách đây
mục cha
commit
421cf95662
1 tập tin đã thay đổi với 10 bổ sung1 xóa
  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);
 }