summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authortake_cheeze <[email protected]>2013-09-02 00:11:17 +0900
committertake_cheeze <[email protected]>2013-09-02 00:48:07 +0900
commit0b806ca17ba1a9dc6b5863050090a74e51236745 (patch)
tree1560617d507113a71c3f632acb126b1eae01d7d0 /include
parent8082a37748215462562977dab9b78ae92eca0ad6 (diff)
downloadmruby-0b806ca17ba1a9dc6b5863050090a74e51236745.tar.gz
mruby-0b806ca17ba1a9dc6b5863050090a74e51236745.zip
reduce node size
Diffstat (limited to 'include')
-rw-r--r--include/mruby/compile.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/mruby/compile.h b/include/mruby/compile.h
index 0f7cffd08..ed4e9612c 100644
--- a/include/mruby/compile.h
+++ b/include/mruby/compile.h
@@ -37,8 +37,7 @@ void mrbc_partial_hook(mrb_state *mrb, mrbc_context *c, int (*partial_hook)(stru
/* AST node structure */
typedef struct mrb_ast_node {
struct mrb_ast_node *car, *cdr;
- uint16_t lineno;
- char const* filename;
+ uint16_t lineno, filename;
} mrb_ast_node;
/* lexer states */
@@ -144,6 +143,10 @@ struct mrb_parser_state {
struct mrb_parser_message error_buffer[10];
struct mrb_parser_message warn_buffer[10];
+ mrb_sym* filename_table;
+ size_t filename_table_length;
+ int current_filename_index;
+
jmp_buf jmp;
};
@@ -152,6 +155,7 @@ void mrb_parser_free(struct mrb_parser_state*);
void mrb_parser_parse(struct mrb_parser_state*,mrbc_context*);
void mrb_parser_set_filename(struct mrb_parser_state*, char const*);
+char const* mrb_parser_get_filename(struct mrb_parser_state*, uint16_t idx);
/* utility functions */
#ifdef ENABLE_STDIO