@@ -757,6 +757,51 @@ def a
757757 assert_equal expected , tokens
758758 end
759759
760+ def test_class_tokenize_backtick_with_escape
761+ tokens = RDoc ::RubyLex . tokenize <<'RUBY' , nil
762+ [
763+ `\\`,
764+ `\'\"\``,
765+ `\#`,
766+ `\#{}`,
767+ `#`,
768+ `#{}`
769+ ]
770+ RUBY
771+
772+ expected = [
773+ @TK ::TkLBRACK . new ( 0 , 1 , 0 , "[" ) ,
774+ @TK ::TkNL . new ( 1 , 1 , 1 , "\n " ) ,
775+ @TK ::TkSPACE . new ( 2 , 2 , 0 , " " ) ,
776+ @TK ::TkXSTRING . new ( 4 , 2 , 2 , "`\\ \\ `" ) ,
777+ @TK ::TkCOMMA . new ( 8 , 2 , 6 , "," ) ,
778+ @TK ::TkNL . new ( 9 , 2 , 2 , "\n " ) ,
779+ @TK ::TkSPACE . new ( 10 , 3 , 0 , " " ) ,
780+ @TK ::TkXSTRING . new ( 12 , 3 , 2 , "`\\ '\\ \" \\ ``" ) ,
781+ @TK ::TkCOMMA . new ( 20 , 3 , 10 , "," ) ,
782+ @TK ::TkNL . new ( 21 , 3 , 10 , "\n " ) ,
783+ @TK ::TkSPACE . new ( 22 , 4 , 0 , " " ) ,
784+ @TK ::TkXSTRING . new ( 24 , 4 , 2 , "`\\ #`" ) ,
785+ @TK ::TkCOMMA . new ( 28 , 4 , 6 , "," ) ,
786+ @TK ::TkNL . new ( 29 , 4 , 22 , "\n " ) ,
787+ @TK ::TkSPACE . new ( 30 , 5 , 0 , " " ) ,
788+ @TK ::TkXSTRING . new ( 32 , 5 , 2 , "`\\ \# {}`" ) ,
789+ @TK ::TkCOMMA . new ( 38 , 5 , 8 , "," ) ,
790+ @TK ::TkNL . new ( 39 , 5 , 30 , "\n " ) ,
791+ @TK ::TkSPACE . new ( 40 , 6 , 0 , " " ) ,
792+ @TK ::TkXSTRING . new ( 42 , 6 , 2 , "`#`" ) ,
793+ @TK ::TkCOMMA . new ( 45 , 6 , 5 , "," ) ,
794+ @TK ::TkNL . new ( 46 , 6 , 40 , "\n " ) ,
795+ @TK ::TkSPACE . new ( 47 , 7 , 0 , " " ) ,
796+ @TK ::TkDXSTRING . new ( 49 , 7 , 2 , "`\# {}`" ) ,
797+ @TK ::TkNL . new ( 54 , 7 , 7 , "\n " ) ,
798+ @TK ::TkRBRACK . new ( 55 , 8 , 0 , "]" ) ,
799+ @TK ::TkNL . new ( 56 , 8 , 55 , "\n " )
800+ ]
801+
802+ assert_equal expected , tokens
803+ end
804+
760805 def test_class_tokenize_string_escape
761806 tokens = RDoc ::RubyLex . tokenize '"\\n"' , nil
762807 assert_equal @TK ::TkSTRING . new ( 0 , 1 , 0 , "\" \\ n\" " ) , tokens . first
@@ -876,6 +921,21 @@ def test_class_tokenize_particular_kind_of_symbols
876921 assert_equal expected , tokens
877922 end
878923
924+ def test_class_tokenize_symbol_for_nested_method
925+ tokens = RDoc ::RubyLex . tokenize 'return untrace_var :name' , nil
926+
927+ expected = [
928+ @TK ::TkRETURN . new ( 0 , 1 , 0 , "return" ) ,
929+ @TK ::TkSPACE . new ( 6 , 1 , 6 , " " ) ,
930+ @TK ::TkIDENTIFIER . new ( 7 , 1 , 7 , "untrace_var" ) ,
931+ @TK ::TkSPACE . new ( 18 , 1 , 18 , " " ) ,
932+ @TK ::TkSYMBOL . new ( 19 , 1 , 19 , ":name" ) ,
933+ @TK ::TkNL . new ( 24 , 1 , 24 , "\n " ) ,
934+ ]
935+
936+ assert_equal expected , tokens
937+ end
938+
879939 def test_class_tokenize_symbol_with_quote
880940 tokens = RDoc ::RubyLex . tokenize <<RUBY , nil
881941a.include?()?"a":"b"
0 commit comments