summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-24 05:21:19 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-24 05:21:19 +0000
commita49bd02695b096c392593d4e255c381eb748eac3 (patch)
tree511a31bedd32f5357a66547f096e94f8ea638b69 /parse.y
parent4d752775e7c02435eb334dd2b0899b1244c6de2b (diff)
merges r33291 from trunk into ruby_1_9_3.
-- * parse.y (parser_data_type): inherit the core type in ripper so that checks in core would work. [ruby-core:39591] [Bug #5331] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@33321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y18
1 files changed, 16 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index 6e7c23006c..ae48d383c8 100644
--- a/parse.y
+++ b/parse.y
@@ -5290,9 +5290,11 @@ lex_getline(struct parser_params *parser)
return line;
}
+#ifdef RIPPER
+static rb_data_type_t parser_data_type;
+#else
static const rb_data_type_t parser_data_type;
-#ifndef RIPPER
static NODE*
parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
{
@@ -10193,7 +10195,11 @@ parser_memsize(const void *ptr)
return size;
}
-static const rb_data_type_t parser_data_type = {
+static
+#ifndef RIPPER
+const
+#endif
+rb_data_type_t parser_data_type = {
"parser",
{
parser_mark,
@@ -10809,11 +10815,19 @@ ripper_value(VALUE self, VALUE obj)
}
#endif
+
+void
+InitVM_ripper(void)
+{
+ parser_data_type.parent = RTYPEDDATA_TYPE(rb_parser_new());
+}
+
void
Init_ripper(void)
{
VALUE Ripper;
+ InitVM(ripper);
Ripper = rb_define_class("Ripper", rb_cObject);
rb_define_const(Ripper, "Version", rb_usascii_str_new2(RIPPER_VERSION));
rb_define_alloc_func(Ripper, ripper_s_allocate);