From de5d3ebdbc674bf8f1e324ee5b43c51af288a286 Mon Sep 17 00:00:00 2001 From: iamcheeseman Date: Fri, 17 Apr 2026 20:30:05 -0400 Subject: microscript: syntax sugar for one-liner functions --- uscript/parser.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'uscript/parser.c') diff --git a/uscript/parser.c b/uscript/parser.c index dc721d5..f90e6d0 100644 --- a/uscript/parser.c +++ b/uscript/parser.c @@ -739,13 +739,17 @@ void fun_stat(struct parser *p, bool is_global) expect(p, ')', "expected ')' after arguments"); } - while (p->cur.kind != TOKEN_END && p->cur.kind != TOKEN_EOF) - stat(p); + if (consume(p, ':')) { + expr(p); + parser_add_byte(p, BC_RET); + } else { + while (p->cur.kind != TOKEN_END && p->cur.kind != TOKEN_EOF) + stat(p); + expect(p, TOKEN_END, "unterminated function"); + } end_function(p); - expect(p, TOKEN_END, "unterminated function"); - if (global_idx != -1) { parser_add_byte(p, BC_SET_GLOBAL); parser_add_byte(p, (global_idx >> 8) & 0xFF); -- cgit v1.3-2-g0d8e