summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorRyan Scott <[email protected]>2013-05-18 11:05:09 +1000
committerRyan Scott <[email protected]>2013-05-18 11:05:09 +1000
commit8161f0f6d7f89ad723163943d2d3abc38cd02df5 (patch)
treee6ce15a81d79744aa9b7ec30bd32b994586a60db /include
parent008aec2bbcd38fa13c27b6df2b2463b6a88cefff (diff)
parentc8c4dfe426da121549f73fd776d0696a701db6b6 (diff)
downloadmruby-8161f0f6d7f89ad723163943d2d3abc38cd02df5.tar.gz
mruby-8161f0f6d7f89ad723163943d2d3abc38cd02df5.zip
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'include')
-rw-r--r--include/mruby.h1
-rw-r--r--include/mruby/compile.h5
2 files changed, 6 insertions, 0 deletions
diff --git a/include/mruby.h b/include/mruby.h
index 272a0d420..9fe70e5b8 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -301,6 +301,7 @@ void mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt, ...);
void mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt, ...);
void mrb_warn(mrb_state *mrb, const char *fmt, ...);
void mrb_bug(mrb_state *mrb, const char *fmt, ...);
+void mrb_print_backtrace(mrb_state *mrb);
/* macros to get typical exception objects
note:
diff --git a/include/mruby/compile.h b/include/mruby/compile.h
index 51615fe9f..c1c646508 100644
--- a/include/mruby/compile.h
+++ b/include/mruby/compile.h
@@ -14,12 +14,15 @@ extern "C" {
#include "mruby.h"
#include <setjmp.h>
+struct mrb_parser_state;
/* load context */
typedef struct mrbc_context {
mrb_sym *syms;
int slen;
char *filename;
short lineno;
+ int (*partial_hook)(struct mrb_parser_state*);
+ void *partial_data;
mrb_bool capture_errors:1;
mrb_bool dump_result:1;
mrb_bool no_exec:1;
@@ -28,6 +31,7 @@ typedef struct mrbc_context {
mrbc_context* mrbc_context_new(mrb_state *mrb);
void mrbc_context_free(mrb_state *mrb, mrbc_context *cxt);
const char *mrbc_filename(mrb_state *mrb, mrbc_context *c, const char *s);
+void mrbc_partial_hook(mrb_state *mrb, mrbc_context *c, int (*partial_hook)(struct mrb_parser_state*), void*data);
/* AST node structure */
typedef struct mrb_ast_node {
@@ -104,6 +108,7 @@ struct mrb_parser_state {
#ifdef ENABLE_STDIO
FILE *f;
#endif
+ mrbc_context *cxt;
char *filename;
int lineno;
int column;