@@ -175,6 +175,100 @@ def test_class_tokenize_heredoc_CR_NL
175
175
assert_equal expected , tokens
176
176
end
177
177
178
+ def test_class_tokenize_opassign
179
+ tokens = RDoc ::RubyLex . tokenize <<'RUBY' , nil
180
+ a %= b
181
+ a /= b
182
+ a -= b
183
+ a += b
184
+ a |= b
185
+ a &= b
186
+ a >>= b
187
+ a <<= b
188
+ a *= b
189
+ a &&= b
190
+ a ||= b
191
+ a **= b
192
+ RUBY
193
+
194
+ expected = [
195
+ @TK ::TkIDENTIFIER . new ( 0 , 1 , 0 , "a" ) ,
196
+ @TK ::TkSPACE . new ( 1 , 1 , 1 , " " ) ,
197
+ @TK ::TkOPASGN . new ( 2 , 1 , 2 , "%" ) ,
198
+ @TK ::TkSPACE . new ( 4 , 1 , 4 , " " ) ,
199
+ @TK ::TkIDENTIFIER . new ( 5 , 1 , 5 , "b" ) ,
200
+ @TK ::TkNL . new ( 6 , 1 , 6 , "\n " ) ,
201
+ @TK ::TkIDENTIFIER . new ( 7 , 2 , 0 , "a" ) ,
202
+ @TK ::TkSPACE . new ( 8 , 2 , 1 , " " ) ,
203
+ @TK ::TkOPASGN . new ( 9 , 2 , 2 , "/" ) ,
204
+ @TK ::TkSPACE . new ( 11 , 2 , 4 , " " ) ,
205
+ @TK ::TkIDENTIFIER . new ( 12 , 2 , 5 , "b" ) ,
206
+ @TK ::TkNL . new ( 13 , 2 , 7 , "\n " ) ,
207
+ @TK ::TkIDENTIFIER . new ( 14 , 3 , 0 , "a" ) ,
208
+ @TK ::TkSPACE . new ( 15 , 3 , 1 , " " ) ,
209
+ @TK ::TkOPASGN . new ( 16 , 3 , 2 , "-" ) ,
210
+ @TK ::TkSPACE . new ( 18 , 3 , 4 , " " ) ,
211
+ @TK ::TkIDENTIFIER . new ( 19 , 3 , 5 , "b" ) ,
212
+ @TK ::TkNL . new ( 20 , 3 , 14 , "\n " ) ,
213
+ @TK ::TkIDENTIFIER . new ( 21 , 4 , 0 , "a" ) ,
214
+ @TK ::TkSPACE . new ( 22 , 4 , 1 , " " ) ,
215
+ @TK ::TkOPASGN . new ( 23 , 4 , 2 , "+" ) ,
216
+ @TK ::TkSPACE . new ( 25 , 4 , 4 , " " ) ,
217
+ @TK ::TkIDENTIFIER . new ( 26 , 4 , 5 , "b" ) ,
218
+ @TK ::TkNL . new ( 27 , 4 , 21 , "\n " ) ,
219
+ @TK ::TkIDENTIFIER . new ( 28 , 5 , 0 , "a" ) ,
220
+ @TK ::TkSPACE . new ( 29 , 5 , 1 , " " ) ,
221
+ @TK ::TkOPASGN . new ( 30 , 5 , 2 , "|" ) ,
222
+ @TK ::TkSPACE . new ( 32 , 5 , 4 , " " ) ,
223
+ @TK ::TkIDENTIFIER . new ( 33 , 5 , 5 , "b" ) ,
224
+ @TK ::TkNL . new ( 34 , 5 , 28 , "\n " ) ,
225
+ @TK ::TkIDENTIFIER . new ( 35 , 6 , 0 , "a" ) ,
226
+ @TK ::TkSPACE . new ( 36 , 6 , 1 , " " ) ,
227
+ @TK ::TkOPASGN . new ( 37 , 6 , 2 , "&" ) ,
228
+ @TK ::TkSPACE . new ( 39 , 6 , 4 , " " ) ,
229
+ @TK ::TkIDENTIFIER . new ( 40 , 6 , 5 , "b" ) ,
230
+ @TK ::TkNL . new ( 41 , 6 , 35 , "\n " ) ,
231
+ @TK ::TkIDENTIFIER . new ( 42 , 7 , 0 , "a" ) ,
232
+ @TK ::TkSPACE . new ( 43 , 7 , 1 , " " ) ,
233
+ @TK ::TkOPASGN . new ( 44 , 7 , 2 , ">>" ) ,
234
+ @TK ::TkSPACE . new ( 47 , 7 , 5 , " " ) ,
235
+ @TK ::TkIDENTIFIER . new ( 48 , 7 , 6 , "b" ) ,
236
+ @TK ::TkNL . new ( 49 , 7 , 42 , "\n " ) ,
237
+ @TK ::TkIDENTIFIER . new ( 50 , 8 , 0 , "a" ) ,
238
+ @TK ::TkSPACE . new ( 51 , 8 , 1 , " " ) ,
239
+ @TK ::TkOPASGN . new ( 52 , 8 , 2 , "<<" ) ,
240
+ @TK ::TkSPACE . new ( 55 , 8 , 5 , " " ) ,
241
+ @TK ::TkIDENTIFIER . new ( 56 , 8 , 6 , "b" ) ,
242
+ @TK ::TkNL . new ( 57 , 8 , 50 , "\n " ) ,
243
+ @TK ::TkIDENTIFIER . new ( 58 , 9 , 0 , "a" ) ,
244
+ @TK ::TkSPACE . new ( 59 , 9 , 1 , " " ) ,
245
+ @TK ::TkOPASGN . new ( 60 , 9 , 2 , "*" ) ,
246
+ @TK ::TkSPACE . new ( 62 , 9 , 4 , " " ) ,
247
+ @TK ::TkIDENTIFIER . new ( 63 , 9 , 5 , "b" ) ,
248
+ @TK ::TkNL . new ( 64 , 9 , 58 , "\n " ) ,
249
+ @TK ::TkIDENTIFIER . new ( 65 , 10 , 0 , "a" ) ,
250
+ @TK ::TkSPACE . new ( 66 , 10 , 1 , " " ) ,
251
+ @TK ::TkOPASGN . new ( 67 , 10 , 2 , "&&" ) ,
252
+ @TK ::TkSPACE . new ( 70 , 10 , 5 , " " ) ,
253
+ @TK ::TkIDENTIFIER . new ( 71 , 10 , 6 , "b" ) ,
254
+ @TK ::TkNL . new ( 72 , 10 , 65 , "\n " ) ,
255
+ @TK ::TkIDENTIFIER . new ( 73 , 11 , 0 , "a" ) ,
256
+ @TK ::TkSPACE . new ( 74 , 11 , 1 , " " ) ,
257
+ @TK ::TkOPASGN . new ( 75 , 11 , 2 , "||" ) ,
258
+ @TK ::TkSPACE . new ( 78 , 11 , 5 , " " ) ,
259
+ @TK ::TkIDENTIFIER . new ( 79 , 11 , 6 , "b" ) ,
260
+ @TK ::TkNL . new ( 80 , 11 , 73 , "\n " ) ,
261
+ @TK ::TkIDENTIFIER . new ( 81 , 12 , 0 , "a" ) ,
262
+ @TK ::TkSPACE . new ( 82 , 12 , 1 , " " ) ,
263
+ @TK ::TkOPASGN . new ( 83 , 12 , 2 , "**" ) ,
264
+ @TK ::TkSPACE . new ( 86 , 12 , 5 , " " ) ,
265
+ @TK ::TkIDENTIFIER . new ( 87 , 12 , 6 , "b" ) ,
266
+ @TK ::TkNL . new ( 88 , 12 , 81 , "\n " ) ,
267
+ ]
268
+
269
+ assert_equal expected , tokens
270
+ end
271
+
178
272
def test_class_tokenize_heredoc_call
179
273
tokens = RDoc ::RubyLex . tokenize <<-'RUBY' , nil
180
274
string = <<-STRING.chomp
0 commit comments