From: Lukas Krickl Date: Tue, 10 Mar 2026 07:12:48 +0000 (+0100) Subject: scripting: reworked tokens X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=6740b431cf798c0219519a3de79da8a75501254e;p=lrts%2F.git scripting: reworked tokens --- diff --git a/src/l_lsl.c b/src/l_lsl.c index 4c497d6..be76603 100644 --- a/src/l_lsl.c +++ b/src/l_lsl.c @@ -24,10 +24,23 @@ enum l_lsl_error l_lsl_compile_file(struct l_lsl_vm *v, const char *path) { return err; } +enum l_lsl_error l_lsl_run(struct l_lsl_vm *v, const char *entry) { + enum l_lsl_error err = L_LSL_ERR_OK; + LRTS_UNUSED(v); + LRTS_UNUSED(entry); + + return err; +} + enum l_lsl_error l_lsl_exec(struct l_lsl_vm *v, const char *path) { enum l_lsl_error err = L_LSL_ERR_OK; err = l_lsl_compile_file(v, path); + if (err) { + return err; + } + + err = l_lsl_run(v, LRTS_NULL); return err; } diff --git a/src/l_lsl.h b/src/l_lsl.h index 5982201..249d8dc 100644 --- a/src/l_lsl.h +++ b/src/l_lsl.h @@ -8,73 +8,19 @@ */ /* special tokens */ - -#define L_KW_FUNCTION "fn" -#define L_KW_IF "if" -#define L_KW_WHILE "while" -#define L_KW_FOR "for" -#define L_KW_DO "do" - -#define L_TOK_OPEN_SCOPE "{" -#define L_TOK_CLOSE_SCOPE "}" -#define L_TOK_OPEN_PAREN "(" -#define L_TOK_CLOSE_PAREN ")" -#define L_TOK_OPEN_IDX "[" -#define L_TOK_CLOSE_IDX "]" -#define L_TOK_COMMA "," -#define L_TOK_SEMICOLON ";" -#define L_TOK_DOT "." -#define L_TOK_DQUOTE "\"" -#define L_TOK_SQUOTE "'" -#define L_TOK_ASSIGN "=" - -#define L_OP_PLUS "+" -#define L_OP_MINUS "-" -#define L_OP_MUL "*" -#define L_OP_DIV "/" -#define L_OP_MOD "%" -#define L_OP_EQUAL "==" -#define L_OP_NOT_EQUAL "!=" -#define L_OP_NOT "!" -#define L_OP_BIT_XOR "^" -#define L_OP_BIT_OR "|" -#define L_OP_BIT_AND "&" -#define L_OP_BIT_NOT "~" -#define L_OP_OR "||" -#define L_OP_AND "&&" +#define L_LWL_TOK_STR_LPAREN "(" +#define L_LWL_TOK_STR_RPAREN ")" +#define L_LWL_TOK_STR_DQUOTE "\"" +#define L_LWL_TOK_STR_SQUOTE "\'" enum l_token_type { - L_TOKT_FN, - L_TOKT_IF, - L_TOKT_WHILE, - L_TOKT_FOR, - L_TOKT_DO, - L_TOKT_OPEN_SCOPE, - L_TOKT_CLOSE_SCOPE, - L_TOKT_OPEN_PAREN, - L_TOKT_CLOSE_PAREN, - L_TOKT_OPEN_IDX, - L_TOKT_CLOSE_IDX, - L_TOKT_COMMA, - L_TOKT_SEMICLONON, - L_TOKT_DOT, - L_TOKT_DQUOTE, - L_TOKT_SQUOTE, - L_TOKT_ASSIGN, - L_TOKT_OP_PLUS, - L_TOKT_OP_MINUS, - L_TOKT_OP_DIV, - L_TOKT_OP_MUL, - L_TOKT_OP_MOD, - L_TOKT_OP_EQUAL, - L_TOKT_OP_NOT_EQUAL, - L_TOKT_OP_NOT, - L_TOKT_OP_BIT_XOR, - L_TOKT_OP_BIT_OR, - L_TOKT_OP_BIT_AND, - L_TOKT_OP_BIT_NOT, - L_TOKT_OP_OR, - L_TOKT_OP_AND + L_LWL_TOK_LPAREN, + L_LWL_TOK_RPAREN, + L_LWL_TOK_DQUOTE, + L_LWL_TOK_SQUOTE, + L_LWL_TOK_NUMBER, + L_LWL_TOK_STRING, + L_LWL_TOK_IDENT }; enum l_lsl_flags { @@ -124,6 +70,7 @@ struct l_lsl_tableent { * rc should decrease when * - a function returns where the table is assigned * - a table entry is re-sassigned to a different reference + * - a table that contains this entry as a member is freed */ u32 rc; enum l_lsl_data_type type;