@@ -213,6 +213,100 @@ def test_class_tokenize_heredoc_CR_NL
213213 assert_equal expected , tokens
214214 end
215215
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+
216310 def test_class_tokenize_heredoc_call
217311 tokens = RDoc ::RubyLex . tokenize <<-'RUBY' , nil
218312string = <<-STRING.chomp
0 commit comments