#include "mrbc_get.h" static void c_object_getbyte(struct VM *vm, mrbc_value v[], int argc) { uint8_t ret=hal_read(0); SET_INT_RETURN( ret ); } #if MRBC_USE_STRING static void c_object_getc(struct VM *vm, mrbc_value v[], int argc) { char buf[2] = {0,0}; buf[0]=hal_read(0); mrbc_value value = mrbc_string_new_cstr(vm, buf); SET_RETURN(value); } #endif #if MRBC_USE_STRING static void c_object_gets(struct VM *vm, mrbc_value v[], int argc){ int i; char buf[128]; for(i=0;i<127;){ buf[i]=hal_read(0); if(buf[i++]=='\n') break; } buf[i]=0; mrbc_value value = mrbc_string_new_cstr(vm, buf); SET_RETURN(value); } #endif void mrbc_init_class_get(void){ mrbc_define_method(0, 0, "getbyte", c_object_getbyte); #if MRBC_USE_STRING mrbc_define_method(0, 0, "getc", c_object_getc); mrbc_define_method(0, 0, "gets", c_object_gets); #endif }