File tree 1 file changed +8
-8
lines changed
1 file changed +8
-8
lines changed Original file line number Diff line number Diff line change @@ -220,14 +220,12 @@ def next_string_token
220
220
221
221
if check ( eos_regx )
222
222
scan ( /[ \t ]*#{ Regexp . escape ( str_parse [ :end ] ) } / )
223
- self . strterm = nil
224
223
225
224
if str_parse [ :scanner ]
226
225
@scanner_stack << str_parse [ :scanner ]
227
226
@scanner = str_parse [ :scanner ]
228
227
end
229
228
230
- @lex_state = :expr_end
231
229
return :tSTRING_END
232
230
end
233
231
end
@@ -241,11 +239,9 @@ def next_string_token
241
239
self . yylval = ' '
242
240
return :tSPACE
243
241
end
244
- self . strterm = nil
245
242
246
243
if str_parse [ :balance ]
247
244
if str_parse [ :nesting ] == 0
248
- @lex_state = :expr_end
249
245
250
246
if str_parse [ :type ] == :regexp
251
247
self . yylval = scan ( /\w +/ )
@@ -259,11 +255,9 @@ def next_string_token
259
255
end
260
256
261
257
elsif [ '"' , "'" ] . include? str_parse [ :beg ]
262
- @lex_state = :expr_end
263
258
return :tSTRING_END
264
259
265
260
elsif str_parse [ :beg ] == '`'
266
- @lex_state = :expr_end
267
261
return :tSTRING_END
268
262
269
263
elsif str_parse [ :beg ] == '/' || str_parse [ :type ] == :regexp
@@ -277,7 +271,6 @@ def next_string_token
277
271
@scanner = str_parse [ :scanner ]
278
272
end
279
273
280
- @lex_state = :expr_end
281
274
return :tSTRING_END
282
275
end
283
276
end
@@ -571,7 +564,14 @@ def yylex
571
564
c = ''
572
565
573
566
if self . strterm
574
- return next_string_token
567
+ token = next_string_token
568
+
569
+ if token == :tSTRING_END or token == :tREGEXP_END
570
+ self . strterm = nil
571
+ @lex_state = :expr_end
572
+ end
573
+
574
+ return token
575
575
end
576
576
577
577
while true
You can’t perform that action at this time.
0 commit comments