ripper 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -2,12 +2,12 @@ require 'rubygems'
2
2
  require 'rake/gempackagetask'
3
3
  require 'rake/testtask'
4
4
 
5
- WINDOWS = (PLATFORM =~ /win32|cygwin/ ? true : false) rescue false
5
+ WINDOWS = (PLATFORM =~ /mingw|win32|cygwin/ ? true : false) rescue false
6
6
  SUDO = WINDOWS ? '' : 'sudo'
7
7
 
8
8
  desc "Builds the gem"
9
9
  task :gem do
10
- sh "cd ext; make clean; rm Makefile; echo"
10
+ sh "cd ext && make clean && rm -f Makefile" and puts if File.exists? './ext/Makefile'
11
11
  load 'ripper.gemspec'
12
12
  Gem::Builder.new(SPEC).build
13
13
  end
@@ -0,0 +1,195 @@
1
+
2
+ SHELL = /bin/sh
3
+
4
+ #### Start of system configuration section. ####
5
+
6
+ srcdir = .
7
+ topdir = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0
8
+ hdrdir = $(topdir)
9
+ VPATH = $(srcdir):$(topdir):$(hdrdir)
10
+ exec_prefix = $(prefix)
11
+ prefix = $(DESTDIR)/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr
12
+ sharedstatedir = $(prefix)/com
13
+ mandir = $(DESTDIR)/usr/share/man
14
+ psdir = $(docdir)
15
+ oldincludedir = $(DESTDIR)/usr/include
16
+ localedir = $(datarootdir)/locale
17
+ bindir = $(exec_prefix)/bin
18
+ libexecdir = $(exec_prefix)/libexec
19
+ sitedir = $(DESTDIR)/Library/Ruby/Site
20
+ htmldir = $(docdir)
21
+ vendorarchdir = $(vendorlibdir)/$(sitearch)
22
+ includedir = $(prefix)/include
23
+ infodir = $(DESTDIR)/usr/share/info
24
+ vendorlibdir = $(vendordir)/$(ruby_version)
25
+ sysconfdir = $(prefix)/etc
26
+ libdir = $(exec_prefix)/lib
27
+ sbindir = $(exec_prefix)/sbin
28
+ rubylibdir = $(libdir)/ruby/$(ruby_version)
29
+ docdir = $(datarootdir)/doc/$(PACKAGE)
30
+ dvidir = $(docdir)
31
+ vendordir = $(libdir)/ruby/vendor_ruby
32
+ datarootdir = $(prefix)/share
33
+ pdfdir = $(docdir)
34
+ archdir = $(rubylibdir)/$(arch)
35
+ sitearchdir = $(sitelibdir)/$(sitearch)
36
+ datadir = $(datarootdir)
37
+ localstatedir = $(prefix)/var
38
+ sitelibdir = $(sitedir)/$(ruby_version)
39
+
40
+ CC = gcc
41
+ LIBRUBY = $(LIBRUBY_SO)
42
+ LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
43
+ LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
44
+ LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)
45
+
46
+ RUBY_EXTCONF_H =
47
+ CFLAGS = -fno-common -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common $(cflags)
48
+ INCFLAGS = -I. -I$(topdir) -I$(hdrdir) -I$(srcdir) -I$(srcdir)/backports
49
+ DEFS =
50
+ CPPFLAGS = -DRIPPER -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE $(DEFS) $(cppflags)
51
+ CXXFLAGS = $(CFLAGS)
52
+ ldflags = -L. -arch i386 -arch x86_64
53
+ dldflags =
54
+ archflag =
55
+ DLDFLAGS = $(ldflags) $(dldflags) $(archflag)
56
+ LDSHARED = cc -arch i386 -arch x86_64 -pipe -bundle -undefined dynamic_lookup
57
+ AR = ar
58
+ EXEEXT =
59
+
60
+ RUBY_INSTALL_NAME = ruby
61
+ RUBY_SO_NAME = ruby
62
+ arch = universal-darwin11.0
63
+ sitearch = universal-darwin11.0
64
+ ruby_version = 1.8
65
+ ruby = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
66
+ RUBY = $(ruby)
67
+ RM = rm -f
68
+ MAKEDIRS = mkdir -p
69
+ INSTALL = /usr/bin/install -c
70
+ INSTALL_PROG = $(INSTALL) -m 0755
71
+ INSTALL_DATA = $(INSTALL) -m 644
72
+ COPY = cp
73
+
74
+ #### End of system configuration section. ####
75
+
76
+ preload =
77
+
78
+ libpath = . $(libdir)
79
+ LIBPATH = -L. -L$(libdir)
80
+ DEFFILE =
81
+
82
+ CLEANFILES = mkmf.log ripper.y ripper.c ripper.E ripper.output y.output eventids1.c eventids2table.c
83
+ DISTCLEANFILES =
84
+
85
+ extout =
86
+ extout_prefix =
87
+ target_prefix =
88
+ LOCAL_LIBS =
89
+ LIBS = $(LIBRUBYARG_SHARED) -lpthread -ldl
90
+ SRCS = ripper.c
91
+ OBJS = ripper.o
92
+ TARGET = ripper
93
+ DLLIB = $(TARGET).bundle
94
+ EXTSTATIC =
95
+ STATIC_LIB =
96
+
97
+ BINDIR = $(bindir)
98
+ RUBYCOMMONDIR = $(sitedir)$(target_prefix)
99
+ RUBYLIBDIR = $(sitelibdir)$(target_prefix)
100
+ RUBYARCHDIR = $(sitearchdir)$(target_prefix)
101
+
102
+ TARGET_SO = $(DLLIB)
103
+ CLEANLIBS = $(TARGET).bundle $(TARGET).il? $(TARGET).tds $(TARGET).map
104
+ CLEANOBJS = *.o *.a *.s[ol] *.pdb *.exp *.bak
105
+
106
+ all: $(DLLIB)
107
+ static: $(STATIC_LIB)
108
+
109
+ clean:
110
+ @-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
111
+
112
+ distclean: clean
113
+ @-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
114
+ @-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
115
+
116
+ realclean: distclean
117
+ install: install-so install-rb
118
+
119
+ install-so: $(RUBYARCHDIR)
120
+ install-so: $(RUBYARCHDIR)/$(DLLIB)
121
+ $(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
122
+ $(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
123
+ install-rb: pre-install-rb install-rb-default
124
+ install-rb-default: pre-install-rb-default
125
+ pre-install-rb: Makefile
126
+ pre-install-rb-default: Makefile
127
+ $(RUBYARCHDIR):
128
+ $(MAKEDIRS) $@
129
+
130
+ site-install: site-install-so site-install-rb
131
+ site-install-so: install-so
132
+ site-install-rb: install-rb
133
+
134
+ .SUFFIXES: .c .m .cc .cxx .cpp .C .o
135
+
136
+ .cc.o:
137
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
138
+
139
+ .cxx.o:
140
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
141
+
142
+ .cpp.o:
143
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
144
+
145
+ .C.o:
146
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
147
+
148
+ .c.o:
149
+ $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) -c $<
150
+
151
+ $(DLLIB): $(OBJS) Makefile
152
+ @-$(RM) $@
153
+ $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
154
+
155
+
156
+
157
+ ###
158
+ .SUFFIXES: .y .c
159
+
160
+ GEN = $(srcdir)/tools/generate.rb
161
+ SRC1 = parse.y
162
+ SRC2 = $(srcdir)/eventids2.c
163
+ BISON = bison
164
+
165
+ .SUFFIXES: .y
166
+
167
+ src: ripper.c eventids1.c eventids2table.c
168
+
169
+ ripper.o: ripper.c lex.c eventids1.c eventids2.c eventids2table.c
170
+
171
+ .y.c:
172
+ $(BISON) -t -v -oy.tab.c $<
173
+ sed -f tools/ytab.sed -e "/^#/s!y\.tab\.c!$@!" y.tab.c > $@
174
+ @$(RM) y.tab.c
175
+
176
+ all: check
177
+ static: check
178
+
179
+ ripper.y: $(srcdir)/tools/preproc.rb parse.y
180
+ $(RUBY) $(srcdir)/tools/preproc.rb parse.y --output=$@
181
+
182
+ check: $(GEN) $(SRC1) $(SRC2)
183
+ $(RUBY) $(GEN) --mode=check --ids1src=$(SRC1) --ids2src=$(SRC2)
184
+
185
+ eventids1.c: tools/generate.rb $(SRC1)
186
+ $(RUBY) $(GEN) --mode=eventids1 --ids1src=$(SRC1) --output=$@
187
+
188
+ eventids2table.c: tools/generate.rb $(SRC2)
189
+ $(RUBY) $(GEN) --mode=eventids2table --ids2src=$(SRC2) --output=$@
190
+
191
+ # Entries for Ripper maintainer
192
+
193
+ preproc: ripper.E
194
+ ripper.E: ripper.c
195
+ $(CC) -E $(CPPFLAGS) ripper.c | $(RUBY) $(srcdir)/tools/strip.rb > $@
@@ -22,7 +22,8 @@ typedef struct rb_encoding_s {
22
22
 
23
23
  static rb_encoding __default_encoding_s = {1, 1, "default"};
24
24
  static rb_encoding *__default_encoding = &__default_encoding_s;
25
- int rb_char_to_option_kcode(int c, int *option, int *kcode) { return 0; }
25
+ int rb_char_to_option_kcode(int c, int *option, int *kcode) { *option=0; *kcode=-1; return 0; }
26
+ int __default_rb_enc_mbcput(int c, char *p, rb_encoding *enc) { do *p++ = (char) (c & 0xff); while (c >> 8); return c; }
26
27
 
27
28
  #define ENC_CODERANGE_7BIT 0
28
29
  #define ENC_CODERANGE_UNKNOWN -1
@@ -38,6 +39,8 @@ int rb_char_to_option_kcode(int c, int *option, int *kcode) { return 0; }
38
39
  #define rb_enc_mbminlen(enc) (enc)->min_enc_len
39
40
  #define rb_enc_mbmaxlen(enc) (enc)->max_enc_len
40
41
  #define rb_enc_mbclen(p,e,enc) 1
42
+ #define rb_enc_codelen(c,enc) (((c) & 0xffffff00) ? ((c) & 0xffff0000) ? ((c) & 0xff000000) ? 4 : 3 : 2 : 1)
43
+ #define rb_enc_mbcput(c,p,enc) __default_rb_enc_mbcput(c,(void*)p,enc)
41
44
  #define rb_enc_fast_mbclen(p,e,enc) 1
42
45
  #define rb_enc_isascii(c,enc) isascii(c)
43
46
  #define rb_enc_isalpha(c,enc) isalpha(c)
@@ -54,6 +57,7 @@ int rb_char_to_option_kcode(int c, int *option, int *kcode) { return 0; }
54
57
  #define rb_enc_from_encoding(e) Qnil
55
58
  #define rb_enc_precise_mbclen(s,l,e) 1
56
59
  #define rb_enc_unicode_p(e) 0
60
+ #define rb_ascii8bit_encindex(e) 1
57
61
  #define rb_ascii8bit_encoding() __default_encoding
58
62
  #define rb_utf8_encoding() __default_encoding
59
63
  #define rb_usascii_encoding() __default_encoding
@@ -0,0 +1,514 @@
1
+ static ID ripper_id_BEGIN;
2
+ static ID ripper_id_END;
3
+ static ID ripper_id_alias;
4
+ static ID ripper_id_alias_error;
5
+ static ID ripper_id_aref;
6
+ static ID ripper_id_aref_field;
7
+ static ID ripper_id_arg_ambiguous;
8
+ static ID ripper_id_arg_paren;
9
+ static ID ripper_id_args_add;
10
+ static ID ripper_id_args_add_block;
11
+ static ID ripper_id_args_add_star;
12
+ static ID ripper_id_args_new;
13
+ static ID ripper_id_array;
14
+ static ID ripper_id_assign;
15
+ static ID ripper_id_assign_error;
16
+ static ID ripper_id_assoc_new;
17
+ static ID ripper_id_assoclist_from_args;
18
+ static ID ripper_id_bare_assoc_hash;
19
+ static ID ripper_id_begin;
20
+ static ID ripper_id_binary;
21
+ static ID ripper_id_block_var;
22
+ static ID ripper_id_block_var_add_block;
23
+ static ID ripper_id_block_var_add_star;
24
+ static ID ripper_id_blockarg;
25
+ static ID ripper_id_bodystmt;
26
+ static ID ripper_id_brace_block;
27
+ static ID ripper_id_break;
28
+ static ID ripper_id_call;
29
+ static ID ripper_id_case;
30
+ static ID ripper_id_class;
31
+ static ID ripper_id_class_name_error;
32
+ static ID ripper_id_command;
33
+ static ID ripper_id_command_call;
34
+ static ID ripper_id_const_path_field;
35
+ static ID ripper_id_const_path_ref;
36
+ static ID ripper_id_const_ref;
37
+ static ID ripper_id_def;
38
+ static ID ripper_id_defined;
39
+ static ID ripper_id_defs;
40
+ static ID ripper_id_do_block;
41
+ static ID ripper_id_dot2;
42
+ static ID ripper_id_dot3;
43
+ static ID ripper_id_dyna_symbol;
44
+ static ID ripper_id_else;
45
+ static ID ripper_id_elsif;
46
+ static ID ripper_id_ensure;
47
+ static ID ripper_id_excessed_comma;
48
+ static ID ripper_id_fcall;
49
+ static ID ripper_id_field;
50
+ static ID ripper_id_for;
51
+ static ID ripper_id_hash;
52
+ static ID ripper_id_if;
53
+ static ID ripper_id_if_mod;
54
+ static ID ripper_id_ifop;
55
+ static ID ripper_id_lambda;
56
+ static ID ripper_id_magic_comment;
57
+ static ID ripper_id_massign;
58
+ static ID ripper_id_method_add_arg;
59
+ static ID ripper_id_method_add_block;
60
+ static ID ripper_id_mlhs_add;
61
+ static ID ripper_id_mlhs_add_star;
62
+ static ID ripper_id_mlhs_new;
63
+ static ID ripper_id_mlhs_paren;
64
+ static ID ripper_id_module;
65
+ static ID ripper_id_mrhs_add;
66
+ static ID ripper_id_mrhs_add_star;
67
+ static ID ripper_id_mrhs_new;
68
+ static ID ripper_id_mrhs_new_from_args;
69
+ static ID ripper_id_next;
70
+ static ID ripper_id_opassign;
71
+ static ID ripper_id_operator_ambiguous;
72
+ static ID ripper_id_param_error;
73
+ static ID ripper_id_params;
74
+ static ID ripper_id_paren;
75
+ static ID ripper_id_parse_error;
76
+ static ID ripper_id_program;
77
+ static ID ripper_id_qwords_add;
78
+ static ID ripper_id_qwords_new;
79
+ static ID ripper_id_redo;
80
+ static ID ripper_id_regexp_add;
81
+ static ID ripper_id_regexp_literal;
82
+ static ID ripper_id_regexp_new;
83
+ static ID ripper_id_rescue;
84
+ static ID ripper_id_rescue_mod;
85
+ static ID ripper_id_rest_param;
86
+ static ID ripper_id_retry;
87
+ static ID ripper_id_return;
88
+ static ID ripper_id_return0;
89
+ static ID ripper_id_sclass;
90
+ static ID ripper_id_stmts_add;
91
+ static ID ripper_id_stmts_new;
92
+ static ID ripper_id_string_add;
93
+ static ID ripper_id_string_concat;
94
+ static ID ripper_id_string_content;
95
+ static ID ripper_id_string_dvar;
96
+ static ID ripper_id_string_embexpr;
97
+ static ID ripper_id_string_literal;
98
+ static ID ripper_id_super;
99
+ static ID ripper_id_symbol;
100
+ static ID ripper_id_symbol_literal;
101
+ static ID ripper_id_top_const_field;
102
+ static ID ripper_id_top_const_ref;
103
+ static ID ripper_id_unary;
104
+ static ID ripper_id_undef;
105
+ static ID ripper_id_unless;
106
+ static ID ripper_id_unless_mod;
107
+ static ID ripper_id_until;
108
+ static ID ripper_id_until_mod;
109
+ static ID ripper_id_var_alias;
110
+ static ID ripper_id_var_field;
111
+ static ID ripper_id_var_ref;
112
+ static ID ripper_id_vcall;
113
+ static ID ripper_id_void_stmt;
114
+ static ID ripper_id_when;
115
+ static ID ripper_id_while;
116
+ static ID ripper_id_while_mod;
117
+ static ID ripper_id_word_add;
118
+ static ID ripper_id_word_new;
119
+ static ID ripper_id_words_add;
120
+ static ID ripper_id_words_new;
121
+ static ID ripper_id_xstring_add;
122
+ static ID ripper_id_xstring_literal;
123
+ static ID ripper_id_xstring_new;
124
+ static ID ripper_id_yield;
125
+ static ID ripper_id_yield0;
126
+ static ID ripper_id_zsuper;
127
+
128
+ static void
129
+ ripper_init_eventids1(VALUE self)
130
+ {
131
+ VALUE h;
132
+ ID id;
133
+ ripper_id_BEGIN = rb_intern_const("on_BEGIN");
134
+ ripper_id_END = rb_intern_const("on_END");
135
+ ripper_id_alias = rb_intern_const("on_alias");
136
+ ripper_id_alias_error = rb_intern_const("on_alias_error");
137
+ ripper_id_aref = rb_intern_const("on_aref");
138
+ ripper_id_aref_field = rb_intern_const("on_aref_field");
139
+ ripper_id_arg_ambiguous = rb_intern_const("on_arg_ambiguous");
140
+ ripper_id_arg_paren = rb_intern_const("on_arg_paren");
141
+ ripper_id_args_add = rb_intern_const("on_args_add");
142
+ ripper_id_args_add_block = rb_intern_const("on_args_add_block");
143
+ ripper_id_args_add_star = rb_intern_const("on_args_add_star");
144
+ ripper_id_args_new = rb_intern_const("on_args_new");
145
+ ripper_id_array = rb_intern_const("on_array");
146
+ ripper_id_assign = rb_intern_const("on_assign");
147
+ ripper_id_assign_error = rb_intern_const("on_assign_error");
148
+ ripper_id_assoc_new = rb_intern_const("on_assoc_new");
149
+ ripper_id_assoclist_from_args = rb_intern_const("on_assoclist_from_args");
150
+ ripper_id_bare_assoc_hash = rb_intern_const("on_bare_assoc_hash");
151
+ ripper_id_begin = rb_intern_const("on_begin");
152
+ ripper_id_binary = rb_intern_const("on_binary");
153
+ ripper_id_block_var = rb_intern_const("on_block_var");
154
+ ripper_id_block_var_add_block = rb_intern_const("on_block_var_add_block");
155
+ ripper_id_block_var_add_star = rb_intern_const("on_block_var_add_star");
156
+ ripper_id_blockarg = rb_intern_const("on_blockarg");
157
+ ripper_id_bodystmt = rb_intern_const("on_bodystmt");
158
+ ripper_id_brace_block = rb_intern_const("on_brace_block");
159
+ ripper_id_break = rb_intern_const("on_break");
160
+ ripper_id_call = rb_intern_const("on_call");
161
+ ripper_id_case = rb_intern_const("on_case");
162
+ ripper_id_class = rb_intern_const("on_class");
163
+ ripper_id_class_name_error = rb_intern_const("on_class_name_error");
164
+ ripper_id_command = rb_intern_const("on_command");
165
+ ripper_id_command_call = rb_intern_const("on_command_call");
166
+ ripper_id_const_path_field = rb_intern_const("on_const_path_field");
167
+ ripper_id_const_path_ref = rb_intern_const("on_const_path_ref");
168
+ ripper_id_const_ref = rb_intern_const("on_const_ref");
169
+ ripper_id_def = rb_intern_const("on_def");
170
+ ripper_id_defined = rb_intern_const("on_defined");
171
+ ripper_id_defs = rb_intern_const("on_defs");
172
+ ripper_id_do_block = rb_intern_const("on_do_block");
173
+ ripper_id_dot2 = rb_intern_const("on_dot2");
174
+ ripper_id_dot3 = rb_intern_const("on_dot3");
175
+ ripper_id_dyna_symbol = rb_intern_const("on_dyna_symbol");
176
+ ripper_id_else = rb_intern_const("on_else");
177
+ ripper_id_elsif = rb_intern_const("on_elsif");
178
+ ripper_id_ensure = rb_intern_const("on_ensure");
179
+ ripper_id_excessed_comma = rb_intern_const("on_excessed_comma");
180
+ ripper_id_fcall = rb_intern_const("on_fcall");
181
+ ripper_id_field = rb_intern_const("on_field");
182
+ ripper_id_for = rb_intern_const("on_for");
183
+ ripper_id_hash = rb_intern_const("on_hash");
184
+ ripper_id_if = rb_intern_const("on_if");
185
+ ripper_id_if_mod = rb_intern_const("on_if_mod");
186
+ ripper_id_ifop = rb_intern_const("on_ifop");
187
+ ripper_id_lambda = rb_intern_const("on_lambda");
188
+ ripper_id_magic_comment = rb_intern_const("on_magic_comment");
189
+ ripper_id_massign = rb_intern_const("on_massign");
190
+ ripper_id_method_add_arg = rb_intern_const("on_method_add_arg");
191
+ ripper_id_method_add_block = rb_intern_const("on_method_add_block");
192
+ ripper_id_mlhs_add = rb_intern_const("on_mlhs_add");
193
+ ripper_id_mlhs_add_star = rb_intern_const("on_mlhs_add_star");
194
+ ripper_id_mlhs_new = rb_intern_const("on_mlhs_new");
195
+ ripper_id_mlhs_paren = rb_intern_const("on_mlhs_paren");
196
+ ripper_id_module = rb_intern_const("on_module");
197
+ ripper_id_mrhs_add = rb_intern_const("on_mrhs_add");
198
+ ripper_id_mrhs_add_star = rb_intern_const("on_mrhs_add_star");
199
+ ripper_id_mrhs_new = rb_intern_const("on_mrhs_new");
200
+ ripper_id_mrhs_new_from_args = rb_intern_const("on_mrhs_new_from_args");
201
+ ripper_id_next = rb_intern_const("on_next");
202
+ ripper_id_opassign = rb_intern_const("on_opassign");
203
+ ripper_id_operator_ambiguous = rb_intern_const("on_operator_ambiguous");
204
+ ripper_id_param_error = rb_intern_const("on_param_error");
205
+ ripper_id_params = rb_intern_const("on_params");
206
+ ripper_id_paren = rb_intern_const("on_paren");
207
+ ripper_id_parse_error = rb_intern_const("on_parse_error");
208
+ ripper_id_program = rb_intern_const("on_program");
209
+ ripper_id_qwords_add = rb_intern_const("on_qwords_add");
210
+ ripper_id_qwords_new = rb_intern_const("on_qwords_new");
211
+ ripper_id_redo = rb_intern_const("on_redo");
212
+ ripper_id_regexp_add = rb_intern_const("on_regexp_add");
213
+ ripper_id_regexp_literal = rb_intern_const("on_regexp_literal");
214
+ ripper_id_regexp_new = rb_intern_const("on_regexp_new");
215
+ ripper_id_rescue = rb_intern_const("on_rescue");
216
+ ripper_id_rescue_mod = rb_intern_const("on_rescue_mod");
217
+ ripper_id_rest_param = rb_intern_const("on_rest_param");
218
+ ripper_id_retry = rb_intern_const("on_retry");
219
+ ripper_id_return = rb_intern_const("on_return");
220
+ ripper_id_return0 = rb_intern_const("on_return0");
221
+ ripper_id_sclass = rb_intern_const("on_sclass");
222
+ ripper_id_stmts_add = rb_intern_const("on_stmts_add");
223
+ ripper_id_stmts_new = rb_intern_const("on_stmts_new");
224
+ ripper_id_string_add = rb_intern_const("on_string_add");
225
+ ripper_id_string_concat = rb_intern_const("on_string_concat");
226
+ ripper_id_string_content = rb_intern_const("on_string_content");
227
+ ripper_id_string_dvar = rb_intern_const("on_string_dvar");
228
+ ripper_id_string_embexpr = rb_intern_const("on_string_embexpr");
229
+ ripper_id_string_literal = rb_intern_const("on_string_literal");
230
+ ripper_id_super = rb_intern_const("on_super");
231
+ ripper_id_symbol = rb_intern_const("on_symbol");
232
+ ripper_id_symbol_literal = rb_intern_const("on_symbol_literal");
233
+ ripper_id_top_const_field = rb_intern_const("on_top_const_field");
234
+ ripper_id_top_const_ref = rb_intern_const("on_top_const_ref");
235
+ ripper_id_unary = rb_intern_const("on_unary");
236
+ ripper_id_undef = rb_intern_const("on_undef");
237
+ ripper_id_unless = rb_intern_const("on_unless");
238
+ ripper_id_unless_mod = rb_intern_const("on_unless_mod");
239
+ ripper_id_until = rb_intern_const("on_until");
240
+ ripper_id_until_mod = rb_intern_const("on_until_mod");
241
+ ripper_id_var_alias = rb_intern_const("on_var_alias");
242
+ ripper_id_var_field = rb_intern_const("on_var_field");
243
+ ripper_id_var_ref = rb_intern_const("on_var_ref");
244
+ ripper_id_vcall = rb_intern_const("on_vcall");
245
+ ripper_id_void_stmt = rb_intern_const("on_void_stmt");
246
+ ripper_id_when = rb_intern_const("on_when");
247
+ ripper_id_while = rb_intern_const("on_while");
248
+ ripper_id_while_mod = rb_intern_const("on_while_mod");
249
+ ripper_id_word_add = rb_intern_const("on_word_add");
250
+ ripper_id_word_new = rb_intern_const("on_word_new");
251
+ ripper_id_words_add = rb_intern_const("on_words_add");
252
+ ripper_id_words_new = rb_intern_const("on_words_new");
253
+ ripper_id_xstring_add = rb_intern_const("on_xstring_add");
254
+ ripper_id_xstring_literal = rb_intern_const("on_xstring_literal");
255
+ ripper_id_xstring_new = rb_intern_const("on_xstring_new");
256
+ ripper_id_yield = rb_intern_const("on_yield");
257
+ ripper_id_yield0 = rb_intern_const("on_yield0");
258
+ ripper_id_zsuper = rb_intern_const("on_zsuper");
259
+
260
+ h = rb_hash_new();
261
+ rb_define_const(self, "PARSER_EVENT_TABLE", h);
262
+ id = rb_intern_const("BEGIN");
263
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
264
+ id = rb_intern_const("END");
265
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
266
+ id = rb_intern_const("alias");
267
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
268
+ id = rb_intern_const("alias_error");
269
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
270
+ id = rb_intern_const("aref");
271
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
272
+ id = rb_intern_const("aref_field");
273
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
274
+ id = rb_intern_const("arg_ambiguous");
275
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
276
+ id = rb_intern_const("arg_paren");
277
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
278
+ id = rb_intern_const("args_add");
279
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
280
+ id = rb_intern_const("args_add_block");
281
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
282
+ id = rb_intern_const("args_add_star");
283
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
284
+ id = rb_intern_const("args_new");
285
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
286
+ id = rb_intern_const("array");
287
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
288
+ id = rb_intern_const("assign");
289
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
290
+ id = rb_intern_const("assign_error");
291
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
292
+ id = rb_intern_const("assoc_new");
293
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
294
+ id = rb_intern_const("assoclist_from_args");
295
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
296
+ id = rb_intern_const("bare_assoc_hash");
297
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
298
+ id = rb_intern_const("begin");
299
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
300
+ id = rb_intern_const("binary");
301
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
302
+ id = rb_intern_const("block_var");
303
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
304
+ id = rb_intern_const("block_var_add_block");
305
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
306
+ id = rb_intern_const("block_var_add_star");
307
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
308
+ id = rb_intern_const("blockarg");
309
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
310
+ id = rb_intern_const("bodystmt");
311
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(4));
312
+ id = rb_intern_const("brace_block");
313
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
314
+ id = rb_intern_const("break");
315
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
316
+ id = rb_intern_const("call");
317
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
318
+ id = rb_intern_const("case");
319
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
320
+ id = rb_intern_const("class");
321
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
322
+ id = rb_intern_const("class_name_error");
323
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
324
+ id = rb_intern_const("command");
325
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
326
+ id = rb_intern_const("command_call");
327
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(4));
328
+ id = rb_intern_const("const_path_field");
329
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
330
+ id = rb_intern_const("const_path_ref");
331
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
332
+ id = rb_intern_const("const_ref");
333
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
334
+ id = rb_intern_const("def");
335
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
336
+ id = rb_intern_const("defined");
337
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
338
+ id = rb_intern_const("defs");
339
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(5));
340
+ id = rb_intern_const("do_block");
341
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
342
+ id = rb_intern_const("dot2");
343
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
344
+ id = rb_intern_const("dot3");
345
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
346
+ id = rb_intern_const("dyna_symbol");
347
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
348
+ id = rb_intern_const("else");
349
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
350
+ id = rb_intern_const("elsif");
351
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
352
+ id = rb_intern_const("ensure");
353
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
354
+ id = rb_intern_const("excessed_comma");
355
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
356
+ id = rb_intern_const("fcall");
357
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
358
+ id = rb_intern_const("field");
359
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
360
+ id = rb_intern_const("for");
361
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
362
+ id = rb_intern_const("hash");
363
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
364
+ id = rb_intern_const("if");
365
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
366
+ id = rb_intern_const("if_mod");
367
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
368
+ id = rb_intern_const("ifop");
369
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
370
+ id = rb_intern_const("lambda");
371
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
372
+ id = rb_intern_const("magic_comment");
373
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
374
+ id = rb_intern_const("massign");
375
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
376
+ id = rb_intern_const("method_add_arg");
377
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
378
+ id = rb_intern_const("method_add_block");
379
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
380
+ id = rb_intern_const("mlhs_add");
381
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
382
+ id = rb_intern_const("mlhs_add_star");
383
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
384
+ id = rb_intern_const("mlhs_new");
385
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
386
+ id = rb_intern_const("mlhs_paren");
387
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
388
+ id = rb_intern_const("module");
389
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
390
+ id = rb_intern_const("mrhs_add");
391
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
392
+ id = rb_intern_const("mrhs_add_star");
393
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
394
+ id = rb_intern_const("mrhs_new");
395
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
396
+ id = rb_intern_const("mrhs_new_from_args");
397
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
398
+ id = rb_intern_const("next");
399
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
400
+ id = rb_intern_const("opassign");
401
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
402
+ id = rb_intern_const("operator_ambiguous");
403
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
404
+ id = rb_intern_const("param_error");
405
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
406
+ id = rb_intern_const("params");
407
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(5));
408
+ id = rb_intern_const("paren");
409
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
410
+ id = rb_intern_const("parse_error");
411
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
412
+ id = rb_intern_const("program");
413
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
414
+ id = rb_intern_const("qwords_add");
415
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
416
+ id = rb_intern_const("qwords_new");
417
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
418
+ id = rb_intern_const("redo");
419
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
420
+ id = rb_intern_const("regexp_add");
421
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
422
+ id = rb_intern_const("regexp_literal");
423
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
424
+ id = rb_intern_const("regexp_new");
425
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
426
+ id = rb_intern_const("rescue");
427
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(4));
428
+ id = rb_intern_const("rescue_mod");
429
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
430
+ id = rb_intern_const("rest_param");
431
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
432
+ id = rb_intern_const("retry");
433
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
434
+ id = rb_intern_const("return");
435
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
436
+ id = rb_intern_const("return0");
437
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
438
+ id = rb_intern_const("sclass");
439
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
440
+ id = rb_intern_const("stmts_add");
441
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
442
+ id = rb_intern_const("stmts_new");
443
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
444
+ id = rb_intern_const("string_add");
445
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
446
+ id = rb_intern_const("string_concat");
447
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
448
+ id = rb_intern_const("string_content");
449
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
450
+ id = rb_intern_const("string_dvar");
451
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
452
+ id = rb_intern_const("string_embexpr");
453
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
454
+ id = rb_intern_const("string_literal");
455
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
456
+ id = rb_intern_const("super");
457
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
458
+ id = rb_intern_const("symbol");
459
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
460
+ id = rb_intern_const("symbol_literal");
461
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
462
+ id = rb_intern_const("top_const_field");
463
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
464
+ id = rb_intern_const("top_const_ref");
465
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
466
+ id = rb_intern_const("unary");
467
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
468
+ id = rb_intern_const("undef");
469
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
470
+ id = rb_intern_const("unless");
471
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
472
+ id = rb_intern_const("unless_mod");
473
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
474
+ id = rb_intern_const("until");
475
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
476
+ id = rb_intern_const("until_mod");
477
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
478
+ id = rb_intern_const("var_alias");
479
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
480
+ id = rb_intern_const("var_field");
481
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
482
+ id = rb_intern_const("var_ref");
483
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
484
+ id = rb_intern_const("vcall");
485
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
486
+ id = rb_intern_const("void_stmt");
487
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
488
+ id = rb_intern_const("when");
489
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(3));
490
+ id = rb_intern_const("while");
491
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
492
+ id = rb_intern_const("while_mod");
493
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
494
+ id = rb_intern_const("word_add");
495
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
496
+ id = rb_intern_const("word_new");
497
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
498
+ id = rb_intern_const("words_add");
499
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
500
+ id = rb_intern_const("words_new");
501
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
502
+ id = rb_intern_const("xstring_add");
503
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(2));
504
+ id = rb_intern_const("xstring_literal");
505
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
506
+ id = rb_intern_const("xstring_new");
507
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
508
+ id = rb_intern_const("yield");
509
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(1));
510
+ id = rb_intern_const("yield0");
511
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
512
+ id = rb_intern_const("zsuper");
513
+ rb_hash_aset(h, ID2SYM(id), INT2NUM(0));
514
+ }