diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/program.h | 7 | ||||
-rw-r--r-- | include/value.h | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/include/program.h b/include/program.h index 6135726..c097c7b 100644 --- a/include/program.h +++ b/include/program.h @@ -3,10 +3,15 @@ #include "std/buffer.h" #include "std/hash_map.h" +#include "value.h" + +#define TSL_STACK_MAX_SIZE 255 typedef struct { TslBuffer /*TslBytecode*/ function_bytecode_list; - TslHashMap variables; + TslHashMap /*TslStringView, TslValue*/ variables; + TslValue stack_values[TSL_STACK_MAX_SIZE]; + size_t stack_index; } TslProgram; typedef enum { diff --git a/include/value.h b/include/value.h index 1d053b7..58e57fe 100644 --- a/include/value.h +++ b/include/value.h @@ -14,6 +14,9 @@ typedef enum { TSL_TYPE_USERDATA } TslType; +/* TODO: Support BigInt */ +typedef double TslNumber; + typedef enum { TSL_FALSE, TSL_TRUE @@ -36,7 +39,7 @@ typedef struct { typedef struct { union { - double number; + TslNumber number; TslString *string; TslBool boolean; TslList *list; |