summaryrefslogtreecommitdiff
path: root/src/parser/parser_stmt.c
diff options
context:
space:
mode:
authorZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-25 12:20:33 +0000
committerZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-25 12:20:33 +0000
commiteae6d2a789f6538806a3859a144e99558d3e6caf (patch)
tree1ba0f696c17879af7bec8e017ff1c1c81439d791 /src/parser/parser_stmt.c
parent2dc5214fd8bb6a1168e2f2b643a36043c36c908a (diff)
Further fix for #121
Diffstat (limited to 'src/parser/parser_stmt.c')
-rw-r--r--src/parser/parser_stmt.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/parser/parser_stmt.c b/src/parser/parser_stmt.c
index f7c1d32..1b3a5d9 100644
--- a/src/parser/parser_stmt.c
+++ b/src/parser/parser_stmt.c
@@ -1887,7 +1887,11 @@ ASTNode *parse_statement(ParserContext *ctx, Lexer *l)
}
ASTNode *n = ast_create(NODE_RAW_STMT);
- n->raw_stmt.content = code;
+ // Append semicolon to Statement Expression to make it a valid statement
+ char *stmt_code = xmalloc(strlen(code) + 2);
+ sprintf(stmt_code, "%s;", code);
+ free(code);
+ n->raw_stmt.content = stmt_code;
n->raw_stmt.used_symbols = used_syms;
n->raw_stmt.used_symbol_count = used_count;
free(inner);
@@ -2433,7 +2437,11 @@ ASTNode *parse_statement(ParserContext *ctx, Lexer *l)
}
ASTNode *n = ast_create(NODE_RAW_STMT);
- n->raw_stmt.content = code;
+ // Append semicolon to Statement Expression to make it a valid statement
+ char *stmt_code = xmalloc(strlen(code) + 2);
+ sprintf(stmt_code, "%s;", code);
+ free(code);
+ n->raw_stmt.content = stmt_code;
n->raw_stmt.used_symbols = used_syms;
n->raw_stmt.used_symbol_count = used_count;
return n;