aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode/compiler.h
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-10-26 10:00:49 +0200
committerBad Diode <bd@badd10de.dev>2021-10-26 10:03:06 +0200
commit19fb6b2d97a970f94854cd17a58639b72d35c052 (patch)
tree273c6a36daf0989b715c3b53ea75419d1131270e /src/bytecode/compiler.h
parentda84e7e731de39ff385ae675a023ddcb9c58d06a (diff)
downloadbdl-19fb6b2d97a970f94854cd17a58639b72d35c052.tar.gz
bdl-19fb6b2d97a970f94854cd17a58639b72d35c052.zip
Ensure the last statement is returned to stdout
Diffstat (limited to 'src/bytecode/compiler.h')
-rwxr-xr-xsrc/bytecode/compiler.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/bytecode/compiler.h b/src/bytecode/compiler.h
index ca187b3..e20b4f1 100755
--- a/src/bytecode/compiler.h
+++ b/src/bytecode/compiler.h
@@ -503,7 +503,9 @@ compile(Token *tokens) {
503 Token start_tok = peek_token(&compiler); 503 Token start_tok = peek_token(&compiler);
504 while (has_next_token(&compiler) && peek_token(&compiler).type != TOKEN_EOF) { 504 while (has_next_token(&compiler) && peek_token(&compiler).type != TOKEN_EOF) {
505 parse_tree(chunk, &compiler); 505 parse_tree(chunk, &compiler);
506 add_code(chunk, OP_DROP, start_tok.line, start_tok.column); 506 if (peek_token(&compiler).type != TOKEN_EOF) {
507 add_code(chunk, OP_DROP, start_tok.line, start_tok.column);
508 }
507 } 509 }
508 add_code(chunk, OP_RETURN, start_tok.line, start_tok.column); 510 add_code(chunk, OP_RETURN, start_tok.line, start_tok.column);
509 return chunk; 511 return chunk;