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?
Taking inspiration from the definition of the object in uLisp you could use a C union for
tcl_varto be able to represent linked lists as moretcl_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 (
namebeing the key string etc) and nested data structures.Does this sound like a possibility?