diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/mrbconf.h | 9 | ||||
| -rw-r--r-- | include/mruby.h | 3 | ||||
| -rw-r--r-- | include/mruby/array.h | 18 | ||||
| -rw-r--r-- | include/mruby/compile.h | 22 | ||||
| -rw-r--r-- | include/mruby/string.h | 6 |
5 files changed, 36 insertions, 22 deletions
diff --git a/include/mrbconf.h b/include/mrbconf.h index c84480af7..8a46e48ba 100644 --- a/include/mrbconf.h +++ b/include/mrbconf.h @@ -23,7 +23,7 @@ //#define MRB_ENDIAN_BIG /* argv max size in mrb_funcall */ -//#define MRB_FUNCALL_ARGC_MAX 16 +//#define MRB_FUNCALL_ARGC_MAX 16 /* number of object per heap page */ //#define MRB_HEAP_PAGE_SIZE 1024 @@ -34,6 +34,9 @@ /* initial size for IV khash; ignored when MRB_USE_IV_SEGLIST is set */ //#define MRB_IVHASH_INIT_SIZE 8 +/* initial size for IREP array */ +//#define MRB_IREP_ARRAY_INIT_SIZE (256u) + /* default size of khash table bucket */ //#define KHASH_DEFAULT_SIZE 32 @@ -44,7 +47,6 @@ //#define POOL_PAGE_SIZE 16000 /* -DDISABLE_XXXX to drop following features */ -//#define DISABLE_SPRINTF /* Kernel.sprintf method */ //#define DISABLE_STDIO /* use of stdio */ /* -DENABLE_XXXX to enable following features */ @@ -80,9 +82,6 @@ typedef short mrb_sym; /* define ENABLE_XXXX from DISABLE_XXX */ -#ifndef DISABLE_SPRINTF -#define ENABLE_SPRINTF -#endif #ifndef DISABLE_STDIO #define ENABLE_STDIO #endif diff --git a/include/mruby.h b/include/mruby.h index 61df6e9ed..fe97dd055 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -129,9 +129,6 @@ typedef struct mrb_state { mrb_sym symidx; struct kh_n2s *name2sym; /* symbol table */ -#ifdef INCLUDE_REGEXP - struct RNode *local_svar;/* regexp */ -#endif #ifdef ENABLE_DEBUG void (*code_fetch_hook)(struct mrb_state* mrb, struct mrb_irep *irep, mrb_code *pc, mrb_value *regs); diff --git a/include/mruby/array.h b/include/mruby/array.h index 9f9483545..5d78ccddd 100644 --- a/include/mruby/array.h +++ b/include/mruby/array.h @@ -14,14 +14,14 @@ extern "C" { typedef struct mrb_shared_array { int refcnt; mrb_value *ptr; - int len; + mrb_int len; } mrb_shared_array; struct RArray { MRB_OBJECT_HEADER; - int len; + mrb_int len; union { - int capa; + mrb_int capa; mrb_shared_array *shared; } aux; mrb_value *ptr; @@ -36,24 +36,24 @@ struct RArray { #define MRB_ARY_SHARED 256 void mrb_ary_decref(mrb_state*, mrb_shared_array*); -mrb_value mrb_ary_new_capa(mrb_state*, int); +mrb_value mrb_ary_new_capa(mrb_state*, mrb_int); mrb_value mrb_ary_new(mrb_state *mrb); -mrb_value mrb_ary_new_elts(mrb_state *mrb, int n, const mrb_value *elts); +mrb_value mrb_ary_new_elts(mrb_state *mrb, mrb_int n, const mrb_value *elts); void mrb_ary_concat(mrb_state*, mrb_value, mrb_value); mrb_value mrb_ary_splat(mrb_state*, mrb_value); void mrb_ary_push(mrb_state*, mrb_value, mrb_value); mrb_value mrb_ary_pop(mrb_state *mrb, mrb_value ary); -mrb_value mrb_ary_new_from_values(mrb_state *mrb, int size, mrb_value *vals); +mrb_value mrb_ary_new_from_values(mrb_state *mrb, mrb_int size, mrb_value *vals); mrb_value mrb_ary_aget(mrb_state *mrb, mrb_value self); mrb_value mrb_ary_ref(mrb_state *mrb, mrb_value ary, mrb_int n); void mrb_ary_set(mrb_state *mrb, mrb_value ary, mrb_int n, mrb_value val); -int mrb_ary_len(mrb_state *mrb, mrb_value ary); +mrb_int mrb_ary_len(mrb_state *mrb, mrb_value ary); void mrb_ary_replace(mrb_state *mrb, mrb_value a, mrb_value b); mrb_value mrb_check_array_type(mrb_state *mrb, mrb_value self); mrb_value mrb_ary_unshift(mrb_state *mrb, mrb_value self, mrb_value item); -mrb_value mrb_ary_new4(mrb_state *mrb, int n, const mrb_value *elts); +mrb_value mrb_ary_new4(mrb_state *mrb, mrb_int n, const mrb_value *elts); mrb_value mrb_assoc_new(mrb_state *mrb, mrb_value car, mrb_value cdr); -mrb_value mrb_ary_entry(mrb_value ary, int offset); +mrb_value mrb_ary_entry(mrb_value ary, mrb_int offset); mrb_value mrb_ary_shift(mrb_state *mrb, mrb_value self); mrb_value mrb_ary_clear(mrb_state *mrb, mrb_value self); diff --git a/include/mruby/compile.h b/include/mruby/compile.h index d0de0153b..2cbc28321 100644 --- a/include/mruby/compile.h +++ b/include/mruby/compile.h @@ -59,6 +59,21 @@ struct mrb_parser_message { char* message; }; +/* heredoc parse type */ +enum heredoc_type { + heredoc_type_norm, /* <<EOH */ + heredoc_type_quote, /* <<'EOH' */ +}; +/* heredoc structure */ +struct mrb_parser_heredoc_info { + enum heredoc_type type; + int allow_indent:1; + int line_head:1; + const char *term; + int term_len; + mrb_ast_node *doc; +}; + /* parser structure */ struct mrb_parser_state { mrb_state *mrb; @@ -71,7 +86,7 @@ struct mrb_parser_state { int column; enum mrb_lex_state_enum lstate; - int sterm; + int sterm; /* string terminator : ' ' means heredoc */ int regexp; unsigned int cond_stack; @@ -85,7 +100,10 @@ struct mrb_parser_state { char buf[1024]; int bidx; - mrb_ast_node *heredoc; + mrb_ast_node *heredocs; /* list of mrb_parser_heredoc_info* */ + mrb_ast_node *parsing_heredoc; + int heredoc_starts_nextline:1; + int heredoc_end_now:1; /* for mirb */ void *ylval; diff --git a/include/mruby/string.h b/include/mruby/string.h index 353d8cefc..3f661a742 100644 --- a/include/mruby/string.h +++ b/include/mruby/string.h @@ -24,14 +24,14 @@ extern const char mrb_digitmap[]; typedef struct mrb_shared_string { int refcnt; char *ptr; - int len; + mrb_int len; } mrb_shared_string; struct RString { MRB_OBJECT_HEADER; - int len; + mrb_int len; union { - int capa; + mrb_int capa; mrb_shared_string *shared; } aux; char *ptr; |
