diff options
| author | Masaki Muranaka <[email protected]> | 2013-03-24 13:47:54 +0900 |
|---|---|---|
| committer | Masaki Muranaka <[email protected]> | 2013-03-24 13:47:54 +0900 |
| commit | 29d84a163508b6246d6ebb3fe088bb73682c07e7 (patch) | |
| tree | a5206de895b8ca06101b9cf3628a8301e60e20ab | |
| parent | 6eda7c28e9d3c36d83bee0ba8b395db0732b7569 (diff) | |
| download | mruby-29d84a163508b6246d6ebb3fe088bb73682c07e7.tar.gz mruby-29d84a163508b6246d6ebb3fe088bb73682c07e7.zip | |
Separate FILE dependencies with ENABLE_STDIO.
| -rw-r--r-- | include/mruby/compile.h | 8 | ||||
| -rw-r--r-- | src/parse.y | 16 |
2 files changed, 22 insertions, 2 deletions
diff --git a/include/mruby/compile.h b/include/mruby/compile.h index d8edc32cf..51615fe9f 100644 --- a/include/mruby/compile.h +++ b/include/mruby/compile.h @@ -101,7 +101,9 @@ struct mrb_parser_state { struct mrb_pool *pool; mrb_ast_node *cells; const char *s, *send; +#ifdef ENABLE_STDIO FILE *f; +#endif char *filename; int lineno; int column; @@ -143,16 +145,22 @@ void mrb_parser_free(struct mrb_parser_state*); void mrb_parser_parse(struct mrb_parser_state*,mrbc_context*); /* utility functions */ +#ifdef ENABLE_STDIO struct mrb_parser_state* mrb_parse_file(mrb_state*,FILE*,mrbc_context*); +#endif struct mrb_parser_state* mrb_parse_string(mrb_state*,const char*,mrbc_context*); struct mrb_parser_state* mrb_parse_nstring(mrb_state*,const char*,int,mrbc_context*); int mrb_generate_code(mrb_state*, struct mrb_parser_state*); /* program load functions */ +#ifdef ENABLE_STDIO mrb_value mrb_load_file(mrb_state*,FILE*); +#endif mrb_value mrb_load_string(mrb_state *mrb, const char *s); mrb_value mrb_load_nstring(mrb_state *mrb, const char *s, int len); +#ifdef ENABLE_STDIO mrb_value mrb_load_file_cxt(mrb_state*,FILE*, mrbc_context *cxt); +#endif mrb_value mrb_load_string_cxt(mrb_state *mrb, const char *s, mrbc_context *cxt); mrb_value mrb_load_nstring_cxt(mrb_state *mrb, const char *s, int len, mrbc_context *cxt); diff --git a/src/parse.y b/src/parse.y index 29ea34c59..bdb646799 100644 --- a/src/parse.y +++ b/src/parse.y @@ -3241,12 +3241,15 @@ nextc(parser_state *p) cons_free(tmp); } else { +#ifdef ENABLE_STDIO if (p->f) { if (feof(p->f)) return -1; c = fgetc(p->f); if (c == EOF) return -1; } - else if (!p->s || p->s >= p->send) { + else +#endif + if (!p->s || p->s >= p->send) { return -1; } else { @@ -3304,6 +3307,7 @@ peeks(parser_state *p, const char *s) { int len = strlen(s); +#ifdef ENABLE_STDIO if (p->f) { int n = 0; while (*s) { @@ -3311,7 +3315,9 @@ peeks(parser_state *p, const char *s) } return TRUE; } - else if (p->s && p->s + len >= p->send) { + else +#endif + if (p->s && p->s + len >= p->send) { if (memcmp(p->s, s, len) == 0) return TRUE; } return FALSE; @@ -5079,7 +5085,9 @@ mrb_parser_new(mrb_state *mrb) p->in_def = p->in_single = 0; p->s = p->send = NULL; +#ifdef ENABLE_STDIO p->f = NULL; +#endif p->cmd_start = TRUE; p->in_def = p->in_single = FALSE; @@ -5132,6 +5140,7 @@ mrbc_filename(mrb_state *mrb, mrbc_context *c, const char *s) return c->filename; } +#ifdef ENABLE_STDIO parser_state* mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c) { @@ -5145,6 +5154,7 @@ mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c) mrb_parser_parse(p, c); return p; } +#endif parser_state* mrb_parse_nstring(mrb_state *mrb, const char *s, int len, mrbc_context *c) @@ -5208,6 +5218,7 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c) return v; } +#ifdef ENABLE_STDIO mrb_value mrb_load_file_cxt(mrb_state *mrb, FILE *f, mrbc_context *c) { @@ -5219,6 +5230,7 @@ mrb_load_file(mrb_state *mrb, FILE *f) { return mrb_load_file_cxt(mrb, f, NULL); } +#endif mrb_value mrb_load_nstring_cxt(mrb_state *mrb, const char *s, int len, mrbc_context *c) |
