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