From cfc469716efb01dc516803c9639680a60fd07773 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Fri, 13 Mar 2026 15:59:17 +0100 Subject: [PATCH] scripting: Added dedicated vm error functions --- src/l_lsl.c | 29 +++++++++++++++++++++++++++-- src/l_lsl.h | 4 +++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/l_lsl.c b/src/l_lsl.c index e4c0c31..019836c 100644 --- a/src/l_lsl.c +++ b/src/l_lsl.c @@ -13,6 +13,30 @@ struct l_lsl_vm l_lsl_vm_init(void) { return v; } +int l_lsl_err(struct l_lsl_vm *v, enum l_lsl_error err, const char *fmt, ...) { + int res; + va_list args; + + va_start(args, fmt); + res = u_vfprintf(u_stderr, fmt, args); + va_end(args); + + v->err = err; + return res; +} + +int l_lsl_warn(struct l_lsl_vm *v, enum l_lsl_error err, const char *fmt, ...) { + int res; + va_list args; + LRTS_UNUSED(v); + LRTS_UNUSED(err); + + va_start(args, fmt); + res = u_vfprintf(u_stderr, fmt, args); + va_end(args); + return res; +} + void l_lsl_vm_free(struct l_lsl_vm *vm) { LRTS_UNUSED(vm); } @@ -76,13 +100,14 @@ const char* l_lsl_next_token(struct l_lsl_vm *v, const char *code, } else if (c == 'b') { /* bin */ } else { - u_log(U_LOG_CRIT, "unknown number base: 0%c\n", c); + l_lsl_err(v, L_LSL_ERR_INVALID_NUMBER_BASE, + "unknown number base: 0%c\n", c); return LRTS_NULL; } } else { - u_log(U_LOG_CRIT, "unknown char: %c\n", c); + l_lsl_err(v, L_LSL_ERR_LEX, "unknown char: %c\n", c); return LRTS_NULL; } diff --git a/src/l_lsl.h b/src/l_lsl.h index 918c405..e61ed87 100644 --- a/src/l_lsl.h +++ b/src/l_lsl.h @@ -40,7 +40,9 @@ enum l_lsl_data_type { enum l_lsl_error { L_LSL_ERR_OK = 0, - L_LSL_ERR_FILE_NOT_FOUND + L_LSL_ERR_FILE_NOT_FOUND, + L_LSL_ERR_INVALID_NUMBER_BASE, + L_LSL_ERR_LEX }; struct l_lsl_table; -- 2.30.2