mbed I/F binding for mruby

Dependents:   mruby_mbed_web mirb_mbed

mbed-mruby

How to use

Class

Committer:
mzta
Date:
Mon Apr 13 05:20:15 2015 +0000
Revision:
1:8ccd1d494a4b
Parent:
0:158c61bb030f
- code refactoring.; - add SPI, SPISlave, I2C class to mruby-mbed (Incomplete).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mzta 0:158c61bb030f 1 #include "mruby.h"
mzta 0:158c61bb030f 2 #include "mruby/string.h"
mzta 0:158c61bb030f 3 #include <stdio.h>
mzta 0:158c61bb030f 4
mzta 0:158c61bb030f 5 static void
mzta 0:158c61bb030f 6 printstr(mrb_state *mrb, mrb_value obj)
mzta 0:158c61bb030f 7 {
mzta 0:158c61bb030f 8 char *s;
mzta 0:158c61bb030f 9 mrb_int len;
mzta 0:158c61bb030f 10
mzta 0:158c61bb030f 11 if (mrb_string_p(obj)) {
mzta 0:158c61bb030f 12 s = RSTRING_PTR(obj);
mzta 0:158c61bb030f 13 len = RSTRING_LEN(obj);
mzta 0:158c61bb030f 14 fwrite(s, len, 1, stdout);
mzta 0:158c61bb030f 15 }
mzta 0:158c61bb030f 16 }
mzta 0:158c61bb030f 17
mzta 0:158c61bb030f 18 /* 15.3.1.2.9 */
mzta 0:158c61bb030f 19 /* 15.3.1.3.34 */
mzta 0:158c61bb030f 20 mrb_value
mzta 0:158c61bb030f 21 mrb_printstr(mrb_state *mrb, mrb_value self)
mzta 0:158c61bb030f 22 {
mzta 0:158c61bb030f 23 mrb_value argv;
mzta 0:158c61bb030f 24
mzta 0:158c61bb030f 25 mrb_get_args(mrb, "o", &argv);
mzta 0:158c61bb030f 26 printstr(mrb, argv);
mzta 0:158c61bb030f 27
mzta 0:158c61bb030f 28 return argv;
mzta 0:158c61bb030f 29 }
mzta 0:158c61bb030f 30
mzta 0:158c61bb030f 31 void
mzta 0:158c61bb030f 32 mrb_mruby_print_gem_init(mrb_state* mrb)
mzta 0:158c61bb030f 33 {
mzta 0:158c61bb030f 34 struct RClass *krn;
mzta 0:158c61bb030f 35 krn = mrb->kernel_module;
mzta 0:158c61bb030f 36 mrb_define_method(mrb, krn, "__printstr__", mrb_printstr, MRB_ARGS_REQ(1));
mzta 0:158c61bb030f 37 }
mzta 0:158c61bb030f 38
mzta 0:158c61bb030f 39 void
mzta 0:158c61bb030f 40 mrb_mruby_print_gem_final(mrb_state* mrb)
mzta 0:158c61bb030f 41 {
mzta 0:158c61bb030f 42 }
mzta 0:158c61bb030f 43