(no comment)

This commit is contained in:
John Alanbrook 2022-08-03 22:00:27 +00:00
parent 2781f09626
commit 9d34354a80
2 changed files with 41 additions and 0 deletions

35
source/engine/mrbffi.c Normal file
View file

@ -0,0 +1,35 @@
#include "mrbffi.h"
#include "mruby.h"
#include "mruby/compile.h"
#include "script.h"
extern mrb_state *mrb;
int fib(int n) {
if (n < 2) return n;
return fib(n-1) + fib(n-2);
}
/* FFI */
mrb_value mrb_fib(mrb_state *mrb, mrb_value self) {
int n;
mrb_get_args(mrb, "i", &n);
return mrb_fixnum_value(fib(n));
}
mrb_value mrb_load(mrb_state *mrb, mrb_value self) {
char *path;
mrb_get_args(mrb, "z!", &path);
script_dofile(path);
return self;
}
void ffi_load() {
mrb_define_method(mrb, mrb->object_class, "fib", mrb_fib, MRB_ARGS_REQ(1));
mrb_define_method(mrb, mrb->object_class, "load", mrb_load, MRB_ARGS_REQ(1));
}

6
source/engine/mrbffi.h Normal file
View file

@ -0,0 +1,6 @@
#ifndef MRBFFI_H
#define MRBFFI_H
void ffi_load();
#endif