@@ -213,6 +213,100 @@ def test_class_tokenize_heredoc_CR_NL
213
213
assert_equal expected , tokens
214
214
end
215
215
216
+ def test_class_tokenize_opassign
217
+ tokens = RDoc ::RubyLex . tokenize <<'RUBY' , nil
218
+ a %= b
219
+ a /= b
220
+ a -= b
221
+ a += b
222
+ a |= b
223
+ a &= b
224
+ a >>= b
225
+ a <<= b
226
+ a *= b
227
+ a &&= b
228
+ a ||= b
229
+ a **= b
230
+ RUBY
231
+
232
+ expected = [
233
+ @TK ::TkIDENTIFIER . new ( 0 , 1 , 0 , "a" ) ,
234
+ @TK ::TkSPACE . new ( 1 , 1 , 1 , " " ) ,
235
+ @TK ::TkOPASGN . new ( 2 , 1 , 2 , "%" ) ,
236
+ @TK ::TkSPACE . new ( 4 , 1 , 4 , " " ) ,
237
+ @TK ::TkIDENTIFIER . new ( 5 , 1 , 5 , "b" ) ,
238
+ @TK ::TkNL . new ( 6 , 1 , 6 , "\n " ) ,
239
+ @TK ::TkIDENTIFIER . new ( 7 , 2 , 0 , "a" ) ,
240
+ @TK ::TkSPACE . new ( 8 , 2 , 1 , " " ) ,
241
+ @TK ::TkOPASGN . new ( 9 , 2 , 2 , "/" ) ,
242
+ @TK ::TkSPACE . new ( 11 , 2 , 4 , " " ) ,
243
+ @TK ::TkIDENTIFIER . new ( 12 , 2 , 5 , "b" ) ,
244
+ @TK ::TkNL . new ( 13 , 2 , 7 , "\n " ) ,
245
+ @TK ::TkIDENTIFIER . new ( 14 , 3 , 0 , "a" ) ,
246
+ @TK ::TkSPACE . new ( 15 , 3 , 1 , " " ) ,
247
+ @TK ::TkOPASGN . new ( 16 , 3 , 2 , "-" ) ,
248
+ @TK ::TkSPACE . new ( 18 , 3 , 4 , " " ) ,
249
+ @TK ::TkIDENTIFIER . new ( 19 , 3 , 5 , "b" ) ,
250
+ @TK ::TkNL . new ( 20 , 3 , 14 , "\n " ) ,
251
+ @TK ::TkIDENTIFIER . new ( 21 , 4 , 0 , "a" ) ,
252
+ @TK ::TkSPACE . new ( 22 , 4 , 1 , " " ) ,
253
+ @TK ::TkOPASGN . new ( 23 , 4 , 2 , "+" ) ,
254
+ @TK ::TkSPACE . new ( 25 , 4 , 4 , " " ) ,
255
+ @TK ::TkIDENTIFIER . new ( 26 , 4 , 5 , "b" ) ,
256
+ @TK ::TkNL . new ( 27 , 4 , 21 , "\n " ) ,
257
+ @TK ::TkIDENTIFIER . new ( 28 , 5 , 0 , "a" ) ,
258
+ @TK ::TkSPACE . new ( 29 , 5 , 1 , " " ) ,
259
+ @TK ::TkOPASGN . new ( 30 , 5 , 2 , "|" ) ,
260
+ @TK ::TkSPACE . new ( 32 , 5 , 4 , " " ) ,
261
+ @TK ::TkIDENTIFIER . new ( 33 , 5 , 5 , "b" ) ,
262
+ @TK ::TkNL . new ( 34 , 5 , 28 , "\n " ) ,
263
+ @TK ::TkIDENTIFIER . new ( 35 , 6 , 0 , "a" ) ,
264
+ @TK ::TkSPACE . new ( 36 , 6 , 1 , " " ) ,
265
+ @TK ::TkOPASGN . new ( 37 , 6 , 2 , "&" ) ,
266
+ @TK ::TkSPACE . new ( 39 , 6 , 4 , " " ) ,
267
+ @TK ::TkIDENTIFIER . new ( 40 , 6 , 5 , "b" ) ,
268
+ @TK ::TkNL . new ( 41 , 6 , 35 , "\n " ) ,
269
+ @TK ::TkIDENTIFIER . new ( 42 , 7 , 0 , "a" ) ,
270
+ @TK ::TkSPACE . new ( 43 , 7 , 1 , " " ) ,
271
+ @TK ::TkOPASGN . new ( 44 , 7 , 2 , ">>" ) ,
272
+ @TK ::TkSPACE . new ( 47 , 7 , 5 , " " ) ,
273
+ @TK ::TkIDENTIFIER . new ( 48 , 7 , 6 , "b" ) ,
274
+ @TK ::TkNL . new ( 49 , 7 , 42 , "\n " ) ,
275
+ @TK ::TkIDENTIFIER . new ( 50 , 8 , 0 , "a" ) ,
276
+ @TK ::TkSPACE . new ( 51 , 8 , 1 , " " ) ,
277
+ @TK ::TkOPASGN . new ( 52 , 8 , 2 , "<<" ) ,
278
+ @TK ::TkSPACE . new ( 55 , 8 , 5 , " " ) ,
279
+ @TK ::TkIDENTIFIER . new ( 56 , 8 , 6 , "b" ) ,
280
+ @TK ::TkNL . new ( 57 , 8 , 50 , "\n " ) ,
281
+ @TK ::TkIDENTIFIER . new ( 58 , 9 , 0 , "a" ) ,
282
+ @TK ::TkSPACE . new ( 59 , 9 , 1 , " " ) ,
283
+ @TK ::TkOPASGN . new ( 60 , 9 , 2 , "*" ) ,
284
+ @TK ::TkSPACE . new ( 62 , 9 , 4 , " " ) ,
285
+ @TK ::TkIDENTIFIER . new ( 63 , 9 , 5 , "b" ) ,
286
+ @TK ::TkNL . new ( 64 , 9 , 58 , "\n " ) ,
287
+ @TK ::TkIDENTIFIER . new ( 65 , 10 , 0 , "a" ) ,
288
+ @TK ::TkSPACE . new ( 66 , 10 , 1 , " " ) ,
289
+ @TK ::TkOPASGN . new ( 67 , 10 , 2 , "&&" ) ,
290
+ @TK ::TkSPACE . new ( 70 , 10 , 5 , " " ) ,
291
+ @TK ::TkIDENTIFIER . new ( 71 , 10 , 6 , "b" ) ,
292
+ @TK ::TkNL . new ( 72 , 10 , 65 , "\n " ) ,
293
+ @TK ::TkIDENTIFIER . new ( 73 , 11 , 0 , "a" ) ,
294
+ @TK ::TkSPACE . new ( 74 , 11 , 1 , " " ) ,
295
+ @TK ::TkOPASGN . new ( 75 , 11 , 2 , "||" ) ,
296
+ @TK ::TkSPACE . new ( 78 , 11 , 5 , " " ) ,
297
+ @TK ::TkIDENTIFIER . new ( 79 , 11 , 6 , "b" ) ,
298
+ @TK ::TkNL . new ( 80 , 11 , 73 , "\n " ) ,
299
+ @TK ::TkIDENTIFIER . new ( 81 , 12 , 0 , "a" ) ,
300
+ @TK ::TkSPACE . new ( 82 , 12 , 1 , " " ) ,
301
+ @TK ::TkOPASGN . new ( 83 , 12 , 2 , "**" ) ,
302
+ @TK ::TkSPACE . new ( 86 , 12 , 5 , " " ) ,
303
+ @TK ::TkIDENTIFIER . new ( 87 , 12 , 6 , "b" ) ,
304
+ @TK ::TkNL . new ( 88 , 12 , 81 , "\n " ) ,
305
+ ]
306
+
307
+ assert_equal expected , tokens
308
+ end
309
+
216
310
def test_class_tokenize_heredoc_call
217
311
tokens = RDoc ::RubyLex . tokenize <<-'RUBY' , nil
218
312
string = <<-STRING.chomp
0 commit comments