Ruby
1.9.3p429(2013-05-15revision40747)
Main Page
Modules
Data Structures
Files
File List
Globals
ext
ripper
eventids2.c
Go to the documentation of this file.
1
#define tIGNORED_NL (tLAST_TOKEN + 1)
2
#define tCOMMENT (tLAST_TOKEN + 2)
3
#define tEMBDOC_BEG (tLAST_TOKEN + 3)
4
#define tEMBDOC (tLAST_TOKEN + 4)
5
#define tEMBDOC_END (tLAST_TOKEN + 5)
6
#define tSP (tLAST_TOKEN + 6)
7
#define tHEREDOC_BEG (tLAST_TOKEN + 7)
8
#define tHEREDOC_END (tLAST_TOKEN + 8)
9
#define k__END__ (tLAST_TOKEN + 9)
10
11
static
ID
ripper_id_backref
;
12
static
ID
ripper_id_backtick
;
13
static
ID
ripper_id_comma
;
14
static
ID
ripper_id_const
;
15
static
ID
ripper_id_cvar
;
16
static
ID
ripper_id_embexpr_beg
;
17
static
ID
ripper_id_embexpr_end
;
18
static
ID
ripper_id_embvar
;
19
static
ID
ripper_id_float
;
20
static
ID
ripper_id_gvar
;
21
static
ID
ripper_id_ident
;
22
static
ID
ripper_id_int
;
23
static
ID
ripper_id_ivar
;
24
static
ID
ripper_id_kw
;
25
static
ID
ripper_id_lbrace
;
26
static
ID
ripper_id_lbracket
;
27
static
ID
ripper_id_lparen
;
28
static
ID
ripper_id_nl
;
29
static
ID
ripper_id_op
;
30
static
ID
ripper_id_period
;
31
static
ID
ripper_id_rbrace
;
32
static
ID
ripper_id_rbracket
;
33
static
ID
ripper_id_rparen
;
34
static
ID
ripper_id_semicolon
;
35
static
ID
ripper_id_symbeg
;
36
static
ID
ripper_id_tstring_beg
;
37
static
ID
ripper_id_tstring_content
;
38
static
ID
ripper_id_tstring_end
;
39
static
ID
ripper_id_words_beg
;
40
static
ID
ripper_id_qwords_beg
;
41
static
ID
ripper_id_words_sep
;
42
static
ID
ripper_id_regexp_beg
;
43
static
ID
ripper_id_regexp_end
;
44
static
ID
ripper_id_label
;
45
static
ID
ripper_id_tlambda
;
46
static
ID
ripper_id_tlambeg
;
47
48
static
ID
ripper_id_ignored_nl
;
49
static
ID
ripper_id_comment
;
50
static
ID
ripper_id_embdoc_beg
;
51
static
ID
ripper_id_embdoc
;
52
static
ID
ripper_id_embdoc_end
;
53
static
ID
ripper_id_sp
;
54
static
ID
ripper_id_heredoc_beg
;
55
static
ID
ripper_id_heredoc_end
;
56
static
ID
ripper_id___end__
;
57
static
ID
ripper_id_CHAR
;
58
59
#include "
eventids2table.c
"
60
61
static
void
62
ripper_init_eventids2
(
VALUE
self
)
63
{
64
ripper_id_backref
=
rb_intern_const
(
"on_backref"
);
65
ripper_id_backtick
=
rb_intern_const
(
"on_backtick"
);
66
ripper_id_comma
=
rb_intern_const
(
"on_comma"
);
67
ripper_id_const
=
rb_intern_const
(
"on_const"
);
68
ripper_id_cvar
=
rb_intern_const
(
"on_cvar"
);
69
ripper_id_embexpr_beg
=
rb_intern_const
(
"on_embexpr_beg"
);
70
ripper_id_embexpr_end
=
rb_intern_const
(
"on_embexpr_end"
);
71
ripper_id_embvar
=
rb_intern_const
(
"on_embvar"
);
72
ripper_id_float
=
rb_intern_const
(
"on_float"
);
73
ripper_id_gvar
=
rb_intern_const
(
"on_gvar"
);
74
ripper_id_ident
=
rb_intern_const
(
"on_ident"
);
75
ripper_id_int
=
rb_intern_const
(
"on_int"
);
76
ripper_id_ivar
=
rb_intern_const
(
"on_ivar"
);
77
ripper_id_kw
=
rb_intern_const
(
"on_kw"
);
78
ripper_id_lbrace
=
rb_intern_const
(
"on_lbrace"
);
79
ripper_id_lbracket
=
rb_intern_const
(
"on_lbracket"
);
80
ripper_id_lparen
=
rb_intern_const
(
"on_lparen"
);
81
ripper_id_nl
=
rb_intern_const
(
"on_nl"
);
82
ripper_id_op
=
rb_intern_const
(
"on_op"
);
83
ripper_id_period
=
rb_intern_const
(
"on_period"
);
84
ripper_id_rbrace
=
rb_intern_const
(
"on_rbrace"
);
85
ripper_id_rbracket
=
rb_intern_const
(
"on_rbracket"
);
86
ripper_id_rparen
=
rb_intern_const
(
"on_rparen"
);
87
ripper_id_semicolon
=
rb_intern_const
(
"on_semicolon"
);
88
ripper_id_symbeg
=
rb_intern_const
(
"on_symbeg"
);
89
ripper_id_tstring_beg
=
rb_intern_const
(
"on_tstring_beg"
);
90
ripper_id_tstring_content
=
rb_intern_const
(
"on_tstring_content"
);
91
ripper_id_tstring_end
=
rb_intern_const
(
"on_tstring_end"
);
92
ripper_id_words_beg
=
rb_intern_const
(
"on_words_beg"
);
93
ripper_id_qwords_beg
=
rb_intern_const
(
"on_qwords_beg"
);
94
ripper_id_words_sep
=
rb_intern_const
(
"on_words_sep"
);
95
ripper_id_regexp_beg
=
rb_intern_const
(
"on_regexp_beg"
);
96
ripper_id_regexp_end
=
rb_intern_const
(
"on_regexp_end"
);
97
ripper_id_label
=
rb_intern_const
(
"on_label"
);
98
ripper_id_tlambda
=
rb_intern_const
(
"on_tlambda"
);
99
ripper_id_tlambeg
=
rb_intern_const
(
"on_tlambeg"
);
100
101
ripper_id_ignored_nl
=
rb_intern_const
(
"on_ignored_nl"
);
102
ripper_id_comment
=
rb_intern_const
(
"on_comment"
);
103
ripper_id_embdoc_beg
=
rb_intern_const
(
"on_embdoc_beg"
);
104
ripper_id_embdoc
=
rb_intern_const
(
"on_embdoc"
);
105
ripper_id_embdoc_end
=
rb_intern_const
(
"on_embdoc_end"
);
106
ripper_id_sp
=
rb_intern_const
(
"on_sp"
);
107
ripper_id_heredoc_beg
=
rb_intern_const
(
"on_heredoc_beg"
);
108
ripper_id_heredoc_end
=
rb_intern_const
(
"on_heredoc_end"
);
109
ripper_id___end__
=
rb_intern_const
(
"on___end__"
);
110
ripper_id_CHAR
=
rb_intern_const
(
"on_CHAR"
);
111
112
ripper_init_eventids2_table
(
self
);
113
}
114
115
static
const
struct
token_assoc
{
116
int
token
;
117
ID
*
id
;
118
}
token_to_eventid
[] = {
119
{
' '
, &
ripper_id_words_sep
},
120
{
'!'
, &
ripper_id_op
},
121
{
'%'
, &
ripper_id_op
},
122
{
'&'
, &
ripper_id_op
},
123
{
'*'
, &
ripper_id_op
},
124
{
'+'
, &
ripper_id_op
},
125
{
'-'
, &
ripper_id_op
},
126
{
'/'
, &
ripper_id_op
},
127
{
'<'
, &
ripper_id_op
},
128
{
'='
, &
ripper_id_op
},
129
{
'>'
, &
ripper_id_op
},
130
{
'?'
, &
ripper_id_op
},
131
{
'^'
, &
ripper_id_op
},
132
{
'|'
, &
ripper_id_op
},
133
{
'~'
, &
ripper_id_op
},
134
{
':'
, &
ripper_id_op
},
135
{
','
, &
ripper_id_comma
},
136
{
'.'
, &
ripper_id_period
},
137
{
';'
, &
ripper_id_semicolon
},
138
{
'`'
, &
ripper_id_backtick
},
139
{
'\n'
, &
ripper_id_nl
},
140
{
keyword_alias
, &
ripper_id_kw
},
141
{
keyword_and
, &
ripper_id_kw
},
142
{
keyword_begin
, &
ripper_id_kw
},
143
{
keyword_break
, &
ripper_id_kw
},
144
{
keyword_case
, &
ripper_id_kw
},
145
{
keyword_class
, &
ripper_id_kw
},
146
{
keyword_def
, &
ripper_id_kw
},
147
{
keyword_defined
, &
ripper_id_kw
},
148
{
keyword_do
, &
ripper_id_kw
},
149
{
keyword_do_block
, &
ripper_id_kw
},
150
{
keyword_do_cond
, &
ripper_id_kw
},
151
{
keyword_else
, &
ripper_id_kw
},
152
{
keyword_elsif
, &
ripper_id_kw
},
153
{
keyword_end
, &
ripper_id_kw
},
154
{
keyword_ensure
, &
ripper_id_kw
},
155
{
keyword_false
, &
ripper_id_kw
},
156
{
keyword_for
, &
ripper_id_kw
},
157
{
keyword_if
, &
ripper_id_kw
},
158
{
modifier_if
, &
ripper_id_kw
},
159
{
keyword_in
, &
ripper_id_kw
},
160
{
keyword_module
, &
ripper_id_kw
},
161
{
keyword_next
, &
ripper_id_kw
},
162
{
keyword_nil
, &
ripper_id_kw
},
163
{
keyword_not
, &
ripper_id_kw
},
164
{
keyword_or
, &
ripper_id_kw
},
165
{
keyword_redo
, &
ripper_id_kw
},
166
{
keyword_rescue
, &
ripper_id_kw
},
167
{
modifier_rescue
, &
ripper_id_kw
},
168
{
keyword_retry
, &
ripper_id_kw
},
169
{
keyword_return
, &
ripper_id_kw
},
170
{
keyword_self
, &
ripper_id_kw
},
171
{
keyword_super
, &
ripper_id_kw
},
172
{
keyword_then
, &
ripper_id_kw
},
173
{
keyword_true
, &
ripper_id_kw
},
174
{
keyword_undef
, &
ripper_id_kw
},
175
{
keyword_unless
, &
ripper_id_kw
},
176
{
modifier_unless
, &
ripper_id_kw
},
177
{
keyword_until
, &
ripper_id_kw
},
178
{
modifier_until
, &
ripper_id_kw
},
179
{
keyword_when
, &
ripper_id_kw
},
180
{
keyword_while
, &
ripper_id_kw
},
181
{
modifier_while
, &
ripper_id_kw
},
182
{
keyword_yield
, &
ripper_id_kw
},
183
{
keyword__FILE__
, &
ripper_id_kw
},
184
{
keyword__LINE__
, &
ripper_id_kw
},
185
{
keyword__ENCODING__
, &
ripper_id_kw
},
186
{
keyword_BEGIN
, &
ripper_id_kw
},
187
{
keyword_END
, &
ripper_id_kw
},
188
{
keyword_do_LAMBDA
, &
ripper_id_kw
},
189
{
tAMPER
, &
ripper_id_op
},
190
{
tANDOP
, &
ripper_id_op
},
191
{
tAREF
, &
ripper_id_op
},
192
{
tASET
, &
ripper_id_op
},
193
{
tASSOC
, &
ripper_id_op
},
194
{
tBACK_REF
, &
ripper_id_backref
},
195
{
tCHAR
, &
ripper_id_CHAR
},
196
{
tCMP
, &
ripper_id_op
},
197
{
tCOLON2
, &
ripper_id_op
},
198
{
tCOLON3
, &
ripper_id_op
},
199
{
tCONSTANT
, &
ripper_id_const
},
200
{
tCVAR
, &
ripper_id_cvar
},
201
{
tDOT2
, &
ripper_id_op
},
202
{
tDOT3
, &
ripper_id_op
},
203
{
tEQ
, &
ripper_id_op
},
204
{
tEQQ
, &
ripper_id_op
},
205
{
tFID
, &
ripper_id_ident
},
206
{
tFLOAT
, &
ripper_id_float
},
207
{
tGEQ
, &
ripper_id_op
},
208
{
tGVAR
, &
ripper_id_gvar
},
209
{
tIDENTIFIER
, &
ripper_id_ident
},
210
{
tINTEGER
, &
ripper_id_int
},
211
{
tIVAR
, &
ripper_id_ivar
},
212
{
tLBRACE
, &
ripper_id_lbrace
},
213
{
tLBRACE_ARG
, &
ripper_id_lbrace
},
214
{
'{'
, &
ripper_id_lbrace
},
215
{
'}'
, &
ripper_id_rbrace
},
216
{
tLBRACK
, &
ripper_id_lbracket
},
217
{
'['
, &
ripper_id_lbracket
},
218
{
']'
, &
ripper_id_rbracket
},
219
{
tLEQ
, &
ripper_id_op
},
220
{
tLPAREN
, &
ripper_id_lparen
},
221
{
tLPAREN_ARG
, &
ripper_id_lparen
},
222
{
'('
, &
ripper_id_lparen
},
223
{
')'
, &
ripper_id_rparen
},
224
{
tLSHFT
, &
ripper_id_op
},
225
{
tMATCH
, &
ripper_id_op
},
226
{
tNEQ
, &
ripper_id_op
},
227
{
tNMATCH
, &
ripper_id_op
},
228
{
tNTH_REF
, &
ripper_id_backref
},
229
{
tOP_ASGN
, &
ripper_id_op
},
230
{
tOROP
, &
ripper_id_op
},
231
{
tPOW
, &
ripper_id_op
},
232
{
tQWORDS_BEG
, &
ripper_id_qwords_beg
},
233
{
tREGEXP_BEG
, &
ripper_id_regexp_beg
},
234
{
tREGEXP_END
, &
ripper_id_regexp_end
},
235
{
tRPAREN
, &
ripper_id_rparen
},
236
{
tRSHFT
, &
ripper_id_op
},
237
{
tSTAR
, &
ripper_id_op
},
238
{
tSTRING_BEG
, &
ripper_id_tstring_beg
},
239
{
tSTRING_CONTENT
, &
ripper_id_tstring_content
},
240
{
tSTRING_DBEG
, &
ripper_id_embexpr_beg
},
241
{
tSTRING_DVAR
, &
ripper_id_embvar
},
242
{
tSTRING_END
, &
ripper_id_tstring_end
},
243
{
tSYMBEG
, &
ripper_id_symbeg
},
244
{
tUMINUS
, &
ripper_id_op
},
245
{
tUMINUS_NUM
, &
ripper_id_op
},
246
{
tUPLUS
, &
ripper_id_op
},
247
{
tWORDS_BEG
, &
ripper_id_words_beg
},
248
{
tXSTRING_BEG
, &
ripper_id_backtick
},
249
{
tLABEL
, &
ripper_id_label
},
250
{
tLAMBDA
, &
ripper_id_tlambda
},
251
{
tLAMBEG
, &
ripper_id_tlambeg
},
252
253
/* ripper specific tokens */
254
{
tIGNORED_NL
, &
ripper_id_ignored_nl
},
255
{
tCOMMENT
, &
ripper_id_comment
},
256
{
tEMBDOC_BEG
, &
ripper_id_embdoc_beg
},
257
{
tEMBDOC
, &
ripper_id_embdoc
},
258
{
tEMBDOC_END
, &
ripper_id_embdoc_end
},
259
{
tSP
, &
ripper_id_sp
},
260
{
tHEREDOC_BEG
, &
ripper_id_heredoc_beg
},
261
{
tHEREDOC_END
, &
ripper_id_heredoc_end
},
262
{
k__END__
, &
ripper_id___end__
},
263
{0,
NULL
}
264
};
265
266
static
ID
267
ripper_token2eventid
(
int
tok
)
268
{
269
const
struct
token_assoc
*a;
270
271
for
(a =
token_to_eventid
; a->
id
!=
NULL
; a++) {
272
if
(a->
token
== tok)
273
return
*a->
id
;
274
}
275
if
(tok < 256) {
276
return
ripper_id_CHAR
;
277
}
278
rb_raise
(
rb_eRuntimeError
,
"[Ripper FATAL] unknown token %d"
, tok);
279
}
280
Generated on Thu May 23 2013 20:33:05 for Ruby by
1.8.3