mb_push_value |
status_t mb_push_value( mb_interpreter_t* s, void** l, mb_value_t val )
Pushes a function return value of type mb_value_t to the interpreter. Please see Structures for more information on this type.
Example
///////////////////////////////////////////////////////////////////////////// // number = ABS( number ) // int _std_abs( mb_interpreter_t* s, void** l ) { /* Get the absolute value of a number */ int result = MB_FUNC_OK;
mb_value_t arg;
mb_assert( s && l );
mb_check( mb_attempt_open_bracket( s, l ) ); mb_check( mb_pop_value( s, l, &arg ) ); mb_check( mb_attempt_close_bracket( s, l ) );
switch ( arg.type ) { case MB_DT_INT: arg.value.integer = (int_t)abs(arg.value.integer); break; case MB_DT_REAL: arg.value.float_point = (real_t)fabs(arg.value.float_point); break; default: break; } endswitch
mb_check( mb_push_value( s, l, arg ) );
return result; } endfunc |