@@ -175,6 +175,100 @@ def test_class_tokenize_heredoc_CR_NL
175175 assert_equal expected , tokens
176176 end
177177
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+
178272 def test_class_tokenize_heredoc_call
179273 tokens = RDoc ::RubyLex . tokenize <<-'RUBY' , nil
180274string = <<-STRING.chomp
0 commit comments