language

Some fools attempt at an interpreted language
Log | Files | Refs

commit f4817604b815db1dd64f17dc9aee07a4ecaf4900
parent a12dcb90a2c27546091e0cd87cae811f68a00788
Author: Paul Longtine <paullongtine@gmail.com>
Date:   Thu Mar  3 22:29:47 2016

Silly thing.

Diffstat:
 src/vm/inc/var.h |  8 ++++----
 src/vm/src/bc.c  |  8 ++++----
 src/vm/src/var.c | 31 +++++++++++++++++++------------
 3 files changed, 27 insertions(+), 20 deletions(-)

diff --git a/src/vm/inc/var.h b/src/vm/inc/var.h @@ -102,12 +102,12 @@ char var_data_get_G_CHAR(var_cont*); char* var_data_get_G_STR(var_cont*); b_type* var_data_get_PLIST(var_cont*); -void bytes_to_int(var_cont**, int, byte_t*); +var_cont* bytes_to_int(int, byte_t*); -void byte_to_type(var_cont**, byte_t); +var_cont* byte_to_type(byte_t); -void raw_to_plist(var_cont**, int, byte_t*); +var_cont* raw_to_plist(int, byte_t*); -void raw_to_var(var_cont**, int, byte_t*); +var_cont* raw_to_var(int, byte_t*); #endif // var_H diff --git a/src/vm/src/bc.c b/src/vm/src/bc.c @@ -144,19 +144,19 @@ void process_args(bc_cont* ins) { if (arg_types[x] == BTOI) { - bytes_to_int(&ins->varg[x], ins->sarg[x], ins->args[x]); + ins->varg[x] = bytes_to_int(ins->sarg[x], ins->args[x]); } else if (arg_types[x] == BTOT) { - byte_to_type(&ins->varg[x], ins->args[x][0]); + ins->varg[x] = byte_to_type(ins->args[x][0]); } else if (arg_types[x] == DTOL) { - raw_to_plist(&ins->varg[x], ins->sarg[x], ins->args[x]); + ins->varg[x] = raw_to_plist(ins->sarg[x], ins->args[x]); } else if (arg_types[x] == DTOV) { - raw_to_var(&ins->varg[x], ins->sarg[x], ins->args[x]); + ins->varg[x] = raw_to_var(ins->sarg[x], ins->args[x]); } } } diff --git a/src/vm/src/var.c b/src/vm/src/var.c @@ -243,9 +243,9 @@ b_type* var_data_get_PLIST(var_cont* var) * int - sizeof(bytes) * byte_t* - array of bytes */ -void bytes_to_int(var_cont** rv, int size, byte_t* bytes) +var_cont* bytes_to_int(int size, byte_t* bytes) { - *rv = var_new(G_INT); + var_cont* rv = var_new(G_INT); int i, data; @@ -256,14 +256,18 @@ void bytes_to_int(var_cont** rv, int size, byte_t* bytes) data = (data << 8 | bytes[i]); } - var_set(*rv, var_data_alloc_G_INT(data), G_INT); + var_set(rv, var_data_alloc_G_INT(data), G_INT); + + return rv; } -void byte_to_type(var_cont** rv, byte_t byte) +var_cont* byte_to_type(byte_t byte) { - *rv = var_new(TYPE); + var_cont* rv = var_new(TYPE); - var_set(*rv, var_data_alloc_TYPE((b_type)byte), TYPE); + var_set(rv, var_data_alloc_TYPE((b_type)byte), TYPE); + + return rv; } /* Converts array of bytes of size n into parameter list @@ -271,13 +275,13 @@ void byte_to_type(var_cont** rv, byte_t byte) * int - sizeof(bytes) * byte_t* - array of bytes */ -void raw_to_plist(var_cont** rv, int n, byte_t* bytes) +var_cont* raw_to_plist(int n, byte_t* bytes) { - *rv = var_new(PLIST); + var_cont* rv = var_new(PLIST); - var_set(*rv, var_data_alloc_PLIST(n), PLIST); + var_set(rv, var_data_alloc_PLIST(n), PLIST); - b_type* var = var_data_get_PLIST(*rv); + b_type* var = var_data_get_PLIST(rv); int i; @@ -285,6 +289,8 @@ void raw_to_plist(var_cont** rv, int n, byte_t* bytes) { var[i] = (b_type)bytes[i]; } + + return rv; } /* Raw variable to var_cont @@ -292,10 +298,11 @@ void raw_to_plist(var_cont** rv, int n, byte_t* bytes) * int - sizeof(bytes) * byte_t* - array of bytes */ -void raw_to_var(var_cont** rv, int n, byte_t* bytes) +var_cont* raw_to_var(int n, byte_t* bytes) { - *rv = var_new(VOID); + var_cont* rv = var_new(VOID); // TODO: implement. + return rv; }