+added an mb_get_var_name function.

This commit is contained in:
Wang Renxin 2017-07-24 19:25:49 +08:00
parent 3784ea5566
commit f3ab800bec
4 changed files with 30 additions and 0 deletions

View File

@ -1,3 +1,6 @@
Jul. 24 2017
Added an mb_get_var_name function
Jul. 7 2017 Jul. 7 2017
Added support to apply the FOR statement to an iterable class instance Added support to apply the FOR statement to an iterable class instance

Binary file not shown.

View File

@ -12513,6 +12513,32 @@ _exit:
return result; return result;
} }
/* Get the name of a variable */
int mb_get_var_name(struct mb_interpreter_t* s, void* v, char** n) {
int result = MB_FUNC_OK;
_object_t* obj = 0;
if(n) *n = 0;
if(!s) {
result = MB_FUNC_ERR;
goto _exit;
}
if(!n || !v)
goto _exit;
obj = (_object_t*)v;
if(obj->type != _DT_VAR)
goto _exit;
if(n) *n = obj->data.variable->name;
_exit:
return result;
}
/* Get the value of a variable */ /* Get the value of a variable */
int mb_get_var_value(struct mb_interpreter_t* s, void* v, mb_value_t* val) { int mb_get_var_value(struct mb_interpreter_t* s, void* v, mb_value_t* val) {
int result = MB_FUNC_OK; int result = MB_FUNC_OK;

View File

@ -631,6 +631,7 @@ MBAPI int mb_set_class_userdata(struct mb_interpreter_t* s, void** l, void* d);
MBAPI int mb_get_value_by_name(struct mb_interpreter_t* s, void** l, const char* n, mb_value_t* val); MBAPI int mb_get_value_by_name(struct mb_interpreter_t* s, void** l, const char* n, mb_value_t* val);
MBAPI int mb_add_var(struct mb_interpreter_t* s, void** l, const char* n, mb_value_t val, bool_t force); MBAPI int mb_add_var(struct mb_interpreter_t* s, void** l, const char* n, mb_value_t val, bool_t force);
MBAPI int mb_get_var(struct mb_interpreter_t* s, void** l, void** v); MBAPI int mb_get_var(struct mb_interpreter_t* s, void** l, void** v);
MBAPI int mb_get_var_name(struct mb_interpreter_t* s, void* v, char** n);
MBAPI int mb_get_var_value(struct mb_interpreter_t* s, void* v, mb_value_t* val); MBAPI int mb_get_var_value(struct mb_interpreter_t* s, void* v, mb_value_t* val);
MBAPI int mb_set_var_value(struct mb_interpreter_t* s, void* v, mb_value_t val); MBAPI int mb_set_var_value(struct mb_interpreter_t* s, void* v, mb_value_t val);
MBAPI int mb_init_array(struct mb_interpreter_t* s, void** l, mb_data_e t, int* d, int c, void** a); MBAPI int mb_init_array(struct mb_interpreter_t* s, void** l, mb_data_e t, int* d, int c, void** a);