@@ -719,6 +719,44 @@ def test_class_tokenize_string_with_escape
719719 assert_equal expected , tokens
720720 end
721721
722+ def test_class_tokenize_postfix_if_after_escaped_newline
723+ tokens = RDoc ::RubyLex . tokenize <<'RUBY' , nil
724+ def a
725+ 1 if true
726+ 1 \
727+ if true
728+ end
729+ RUBY
730+
731+ expected = [
732+ @TK ::TkDEF . new ( 0 , 1 , 0 , "def" ) ,
733+ @TK ::TkSPACE . new ( 3 , 1 , 3 , " " ) ,
734+ @TK ::TkIDENTIFIER . new ( 4 , 1 , 4 , "a" ) ,
735+ @TK ::TkNL . new ( 5 , 1 , 5 , "\n " ) ,
736+ @TK ::TkSPACE . new ( 6 , 2 , 0 , " " ) ,
737+ @TK ::TkINTEGER . new ( 8 , 2 , 2 , "1" ) ,
738+ @TK ::TkSPACE . new ( 9 , 2 , 3 , " " ) ,
739+ @TK ::TkIF_MOD . new ( 10 , 2 , 4 , "if" ) ,
740+ @TK ::TkSPACE . new ( 12 , 2 , 6 , " " ) ,
741+ @TK ::TkTRUE . new ( 13 , 2 , 7 , "true" ) ,
742+ @TK ::TkNL . new ( 17 , 2 , 6 , "\n " ) ,
743+ @TK ::TkSPACE . new ( 18 , 3 , 0 , " " ) ,
744+ @TK ::TkINTEGER . new ( 20 , 3 , 2 , "1" ) ,
745+ @TK ::TkSPACE . new ( 21 , 3 , 3 , " " ) ,
746+ @TK ::TkBACKSLASH . new ( 22 , 3 , 4 , "\\ " ) ,
747+ @TK ::TkNL . new ( 23 , 3 , 18 , "\n " ) ,
748+ @TK ::TkSPACE . new ( 24 , 4 , 0 , " " ) ,
749+ @TK ::TkIF_MOD . new ( 28 , 4 , 4 , "if" ) ,
750+ @TK ::TkSPACE . new ( 30 , 4 , 6 , " " ) ,
751+ @TK ::TkTRUE . new ( 31 , 4 , 7 , "true" ) ,
752+ @TK ::TkNL . new ( 35 , 4 , 24 , "\n " ) ,
753+ @TK ::TkEND . new ( 36 , 5 , 0 , "end" ) ,
754+ @TK ::TkNL . new ( 39 , 5 , 36 , "\n " )
755+ ]
756+
757+ assert_equal expected , tokens
758+ end
759+
722760 def test_class_tokenize_backtick_with_escape
723761 tokens = RDoc ::RubyLex . tokenize <<'RUBY' , nil
724762[
0 commit comments