zserge / partcl

ParTcl - a micro Tcl implementation
https://zserge.com/posts/tcl-interpreter/
MIT License
476 stars 50 forks source link

Idea- Better implementation of list vars? #14

Open dragoncoder047 opened 1 year ago

dragoncoder047 commented 1 year ago

Taking inspiration from the definition of the object in uLisp you could use a C union for tcl_var to be able to represent linked lists as more tcl_vars:

 struct tcl_var {
   tcl_value_t *name;
+  union {
     tcl_value_t *value;
+    struct tcl_var *values; // Pointer to nested list or hashmap
+  }
+  char type; // Flag to determine which pointer in the union to take
   struct tcl_var *next;
 };

The name would hold a string of the index (possibly in hexadecimal, to speed array lookup).

Now that a var can point to another var, this could also lead to hashmaps (name being the key string etc) and nested data structures.

Does this sound like a possibility?