diff options
| author | Mistivia <i@mistivia.com> | 2025-06-20 19:56:30 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-06-20 19:56:30 +0800 |
| commit | e88146d1f14577c68de8117964c222c754757a84 (patch) | |
| tree | 380f57dff78ee3c898c01c291df96c7a81cac85f /src/parser.c | |
| parent | 762e68ac1b2b9825b08d11fc00bafbac677d5354 (diff) | |
quasiquote
Diffstat (limited to 'src/parser.c')
| -rw-r--r-- | src/parser.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/parser.c b/src/parser.c index 45aeba6..cc41d76 100644 --- a/src/parser.c +++ b/src/parser.c @@ -349,7 +349,8 @@ ParseResult parse_string(Parser *parser) { Parser_getchar(parser); while (Parser_peek(parser) != '"') { if (Parser_peek(parser) == EOF) { - return ParseErr(parser, "Unexpected EOF.\n"); + ret = ParseErr(parser, "Unexpected EOF.\n"); + goto end; } if (Parser_peek(parser) == '\0') { ret = ParseErr(parser, "Unexpected zero terminator.\n"); @@ -360,7 +361,8 @@ ParseResult parse_string(Parser *parser) { } else { Parser_getchar(parser); if (Parser_peek(parser) == EOF) { - return ParseErr(parser, "Unexpected EOF.\n"); + ret = ParseErr(parser, "Unexpected EOF.\n"); + goto end; } int c = Parser_getchar(parser); if (c == EOF) { @@ -377,6 +379,7 @@ ParseResult parse_string(Parser *parser) { } } } + Parser_getchar(parser); CharVector_push_back(&buf, '\0'); ret = ParseOk(new_string(parser->ctx, buf.buffer)); end: |
