8989 @TK ::TkIDENTIFIER . new ( 4 , 1 , 4 , 'x' ) ,
9090 @TK ::TkNL . new ( 5 , 1 , 5 , "\n " ) ,
9191 @TK ::TkSPACE . new ( 6 , 2 , 0 , ' ' ) ,
92- @TK ::TkHEREDOC . new ( 8 , 2 , 2 ,
93- %Q{<<E\n Line 1\n Line 2\n E} ) ,
94- @TK ::TkNL . new ( 27 , 5 , 28 , "\n " ) ,
92+
93+ @TK ::TkHEREDOCBEG . new ( 8 , 2 , 2 , '<<E' ) ,
94+ @TK ::TkNL . new ( 11 , 2 , 6 , "\n " ) ,
95+ @TK ::TkHEREDOC . new ( 11 , 2 , 6 , "Line 1\n Line 2\n " ) ,
96+ @TK ::TkHEREDOCEND . new ( 27 , 5 , 26 , "E\n " ) ,
9597 @TK ::TkEND . new ( 28 , 6 , 0 , 'end' ) ,
9698 @TK ::TkNL . new ( 31 , 6 , 28 , "\n " ) ,
9799 ]
@@ -147,10 +149,12 @@ def test_class_tokenize_heredoc_CR_NL
147149 @TK ::TkSPACE . new ( 6 , 1 , 6 , ' ' ) ,
148150 @TK ::TkASSIGN . new ( 7 , 1 , 7 , '=' ) ,
149151 @TK ::TkSPACE . new ( 8 , 1 , 8 , ' ' ) ,
150- @TK ::TkHEREDOC . new ( 9 , 1 , 9 ,
151- %Q{<<-STRING\n Line 1\n Line 2\n STRING} ) ,
152- @TK ::TkSPACE . new ( 44 , 4 , 45 , "\r " ) ,
153- @TK ::TkNL . new ( 45 , 4 , 46 , "\n " ) ,
152+ @TK ::TkHEREDOCBEG . new ( 9 , 1 , 9 , '<<-STRING' ) ,
153+ @TK ::TkSPACE . new ( 18 , 1 , 18 , "\r " ) ,
154+ @TK ::TkNL . new ( 19 , 1 , 19 , "\n " ) ,
155+ @TK ::TkHEREDOC . new ( 19 , 1 , 19 ,
156+ %Q{Line 1\n Line 2\n } ) ,
157+ @TK ::TkHEREDOCEND . new ( 45 , 4 , 36 , " STRING\n " ) ,
154158 ]
155159
156160 assert_equal expected , tokens
@@ -169,10 +173,12 @@ def test_class_tokenize_heredoc_call
169173 @TK ::TkSPACE . new ( 6 , 1 , 6 , ' ' ) ,
170174 @TK ::TkASSIGN . new ( 7 , 1 , 7 , '=' ) ,
171175 @TK ::TkSPACE . new ( 8 , 1 , 8 , ' ' ) ,
172- @TK ::TkSTRING . new ( 9 , 1 , 9 , %Q{"Line 1\n Line 2\n "} ) ,
173- @TK ::TkDOT . new ( 41 , 4 , 42 , '.' ) ,
174- @TK ::TkIDENTIFIER . new ( 42 , 4 , 43 , 'chomp' ) ,
175- @TK ::TkNL . new ( 47 , 4 , 48 , "\n " ) ,
176+ @TK ::TkHEREDOCBEG . new ( 9 , 1 , 9 , '<<-STRING' ) ,
177+ @TK ::TkDOT . new ( 18 , 1 , 18 , '.' ) ,
178+ @TK ::TkIDENTIFIER . new ( 19 , 1 , 19 , 'chomp' ) ,
179+ @TK ::TkNL . new ( 24 , 1 , 24 , "\n " ) ,
180+ @TK ::TkHEREDOC . new ( 24 , 1 , 24 , "Line 1\n Line 2\n " ) ,
181+ @TK ::TkHEREDOCEND . new ( 47 , 4 , 39 , " STRING\n " ) ,
176182 ]
177183
178184 assert_equal expected , tokens
@@ -191,9 +197,12 @@ def test_class_tokenize_heredoc_indent
191197 @TK ::TkSPACE . new ( 6 , 1 , 6 , ' ' ) ,
192198 @TK ::TkASSIGN . new ( 7 , 1 , 7 , '=' ) ,
193199 @TK ::TkSPACE . new ( 8 , 1 , 8 , ' ' ) ,
194- @TK ::TkHEREDOC . new ( 9 , 1 , 9 ,
195- %Q{<<-STRING\n Line 1\n Line 2\n STRING} ) ,
196- @TK ::TkNL . new ( 41 , 4 , 42 , "\n " ) ,
200+
201+
202+ @TK ::TkHEREDOCBEG . new ( 9 , 1 , 9 , '<<-STRING' ) ,
203+ @TK ::TkNL . new ( 18 , 1 , 18 , "\n " ) ,
204+ @TK ::TkHEREDOC . new ( 18 , 1 , 18 , "Line 1\n Line 2\n " ) ,
205+ @TK ::TkHEREDOCEND . new ( 41 , 4 , 33 , " STRING\n " )
197206 ]
198207
199208 assert_equal expected , tokens
@@ -223,8 +232,10 @@ def test_class_tokenize_heredoc_percent_N
223232 @TK ::TkSPACE . new ( 1 , 1 , 1 , ' ' ) ,
224233 @TK ::TkIDENTIFIER . new ( 2 , 1 , 2 , 'b' ) ,
225234 @TK ::TkSPACE . new ( 3 , 1 , 3 , ' ' ) ,
226- @TK ::TkHEREDOC . new ( 4 , 1 , 4 , %Q{<<-U\n %N\n U} ) ,
227- @TK ::TkNL . new ( 13 , 3 , 14 , "\n " ) ,
235+ @TK ::TkHEREDOCBEG . new ( 4 , 1 , 4 , '<<-U' ) ,
236+ @TK ::TkNL . new ( 8 , 1 , 8 , "\n " ) ,
237+ @TK ::TkHEREDOC . new ( 8 , 1 , 8 , "%N\n " ) ,
238+ @TK ::TkHEREDOCEND . new ( 13 , 3 , 12 , "U\n " )
228239 ]
229240
230241 assert_equal expected , tokens
0 commit comments