mbed I/F binding for mruby
Dependents: mruby_mbed_web mirb_mbed
mbed-mruby
How to use
Class
src/print.c@1:8ccd1d494a4b, 2015-04-13 (annotated)
- 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?
User | Revision | Line number | New contents of line |
---|---|---|---|
mzta | 0:158c61bb030f | 1 | /* |
mzta | 0:158c61bb030f | 2 | ** print.c - Kernel.#p |
mzta | 0:158c61bb030f | 3 | ** |
mzta | 0:158c61bb030f | 4 | ** See Copyright Notice in mruby.h |
mzta | 0:158c61bb030f | 5 | */ |
mzta | 0:158c61bb030f | 6 | |
mzta | 0:158c61bb030f | 7 | #include "mruby.h" |
mzta | 0:158c61bb030f | 8 | #include "mruby/string.h" |
mzta | 0:158c61bb030f | 9 | #include "mruby/variable.h" |
mzta | 0:158c61bb030f | 10 | |
mzta | 0:158c61bb030f | 11 | static void |
mzta | 0:158c61bb030f | 12 | printstr(mrb_state *mrb, mrb_value obj) |
mzta | 0:158c61bb030f | 13 | { |
mzta | 0:158c61bb030f | 14 | #ifdef ENABLE_STDIO |
mzta | 0:158c61bb030f | 15 | char *s; |
mzta | 0:158c61bb030f | 16 | int len; |
mzta | 0:158c61bb030f | 17 | |
mzta | 0:158c61bb030f | 18 | if (mrb_string_p(obj)) { |
mzta | 0:158c61bb030f | 19 | s = RSTRING_PTR(obj); |
mzta | 0:158c61bb030f | 20 | len = RSTRING_LEN(obj); |
mzta | 0:158c61bb030f | 21 | fwrite(s, len, 1, stdout); |
mzta | 0:158c61bb030f | 22 | } |
mzta | 0:158c61bb030f | 23 | #endif |
mzta | 0:158c61bb030f | 24 | } |
mzta | 0:158c61bb030f | 25 | |
mzta | 0:158c61bb030f | 26 | MRB_API void |
mzta | 0:158c61bb030f | 27 | mrb_p(mrb_state *mrb, mrb_value obj) |
mzta | 0:158c61bb030f | 28 | { |
mzta | 0:158c61bb030f | 29 | #ifdef ENABLE_STDIO |
mzta | 0:158c61bb030f | 30 | obj = mrb_funcall(mrb, obj, "inspect", 0); |
mzta | 0:158c61bb030f | 31 | printstr(mrb, obj); |
mzta | 0:158c61bb030f | 32 | putc('\n', stdout); |
mzta | 0:158c61bb030f | 33 | #endif |
mzta | 0:158c61bb030f | 34 | } |
mzta | 0:158c61bb030f | 35 | |
mzta | 0:158c61bb030f | 36 | MRB_API void |
mzta | 0:158c61bb030f | 37 | mrb_print_error(mrb_state *mrb) |
mzta | 0:158c61bb030f | 38 | { |
mzta | 0:158c61bb030f | 39 | #ifdef ENABLE_STDIO |
mzta | 0:158c61bb030f | 40 | mrb_value s; |
mzta | 0:158c61bb030f | 41 | |
mzta | 0:158c61bb030f | 42 | mrb_print_backtrace(mrb); |
mzta | 0:158c61bb030f | 43 | s = mrb_funcall(mrb, mrb_obj_value(mrb->exc), "inspect", 0); |
mzta | 0:158c61bb030f | 44 | if (mrb_string_p(s)) { |
mzta | 0:158c61bb030f | 45 | fwrite(RSTRING_PTR(s), RSTRING_LEN(s), 1, stderr); |
mzta | 0:158c61bb030f | 46 | putc('\n', stderr); |
mzta | 0:158c61bb030f | 47 | } |
mzta | 0:158c61bb030f | 48 | #endif |
mzta | 0:158c61bb030f | 49 | } |
mzta | 0:158c61bb030f | 50 | |
mzta | 0:158c61bb030f | 51 | MRB_API void |
mzta | 0:158c61bb030f | 52 | mrb_show_version(mrb_state *mrb) |
mzta | 0:158c61bb030f | 53 | { |
mzta | 0:158c61bb030f | 54 | mrb_value msg; |
mzta | 0:158c61bb030f | 55 | |
mzta | 0:158c61bb030f | 56 | msg = mrb_const_get(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_DESCRIPTION")); |
mzta | 0:158c61bb030f | 57 | printstr(mrb, msg); |
mzta | 0:158c61bb030f | 58 | printstr(mrb, mrb_str_new_lit(mrb, "\n")); |
mzta | 0:158c61bb030f | 59 | } |
mzta | 0:158c61bb030f | 60 | |
mzta | 0:158c61bb030f | 61 | MRB_API void |
mzta | 0:158c61bb030f | 62 | mrb_show_copyright(mrb_state *mrb) |
mzta | 0:158c61bb030f | 63 | { |
mzta | 0:158c61bb030f | 64 | mrb_value msg; |
mzta | 0:158c61bb030f | 65 | |
mzta | 0:158c61bb030f | 66 | msg = mrb_const_get(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_COPYRIGHT")); |
mzta | 0:158c61bb030f | 67 | printstr(mrb, msg); |
mzta | 0:158c61bb030f | 68 | printstr(mrb, mrb_str_new_lit(mrb, "\n")); |
mzta | 0:158c61bb030f | 69 | } |
mzta | 0:158c61bb030f | 70 |