From d24ae54a007c9d12e1a6e459cdf7c4c57ec407df Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Sat, 7 Mar 2026 23:20:38 +0100 Subject: [PATCH] scripting: Added token types --- src/l_lsl.h | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/src/l_lsl.h b/src/l_lsl.h index 71fb798..d2a3a30 100644 --- a/src/l_lsl.h +++ b/src/l_lsl.h @@ -7,6 +7,76 @@ * in-game scripting interpreter */ +/* 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 "&&" + +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 +}; + enum l_lsl_flags { L_LSL_F_NONE = 0 }; -- 2.30.2