script: Added identifier name parser
authorLukas Krickl <lukas@krickl.dev>
Mon, 16 Mar 2026 13:07:40 +0000 (14:07 +0100)
committerLukas Krickl <lukas@krickl.dev>
Mon, 16 Mar 2026 13:07:40 +0000 (14:07 +0100)
src/l_lsl.c

index 6b9ee4cadbb8abdc4326c9bfef4bdaab4e930728..c6b8fc8de82293de28f5f1f3f8b4fb27480ea4ef 100644 (file)
@@ -64,6 +64,12 @@ lrts_bool l_lsl_isoct(char c) {
        return c >= '0' && c <= '7';
 }
 
+lrts_bool l_lsl_isident(char c) {
+       return (c >= 'a' && c <= 'z')
+               || (c >= 'A' && c <= 'Z')
+               || c == '_' || l_lsl_isnum(c);
+}
+
 /* peeks current token */
 #define l_lsl_lex_peek(v, code) \
        (code)[v->lex_pos]
@@ -143,6 +149,8 @@ struct l_lsl_value* l_lsl_next_token(struct l_lsl_vm *v, const char *code,
 
                        value->data.int_val = u_strtol(tokbuf, LRTS_NULL, 10);
                }
+       } else if (l_lsl_isident(c)) {
+               /* identifier */
        } else {
                        l_lsl_err(v, L_LSL_ERR_LEX, "unknown char: %c\n", c);
                        return LRTS_NULL;