@@ -274,6 +274,66 @@ func TestDispenser_RemainingArgs(t *testing.T) {
274274 }
275275}
276276
277+ func TestDispenser_RemainingArgsAsTokens (t * testing.T ) {
278+ input := `dir1 arg1 arg2 arg3
279+ dir2 arg4 arg5
280+ dir3 arg6 { arg7
281+ dir4`
282+ d := NewTestDispenser (input )
283+
284+ d .Next () // dir1
285+
286+ args := d .RemainingArgsAsTokens ()
287+
288+ tokenTexts := make ([]string , 0 , len (args ))
289+ for _ , arg := range args {
290+ tokenTexts = append (tokenTexts , arg .Text )
291+ }
292+
293+ if expected := []string {"arg1" , "arg2" , "arg3" }; ! reflect .DeepEqual (tokenTexts , expected ) {
294+ t .Errorf ("RemainingArgsAsTokens(): Expected %v, got %v" , expected , tokenTexts )
295+ }
296+
297+ d .Next () // dir2
298+
299+ args = d .RemainingArgsAsTokens ()
300+
301+ tokenTexts = tokenTexts [:0 ]
302+ for _ , arg := range args {
303+ tokenTexts = append (tokenTexts , arg .Text )
304+ }
305+
306+ if expected := []string {"arg4" , "arg5" }; ! reflect .DeepEqual (tokenTexts , expected ) {
307+ t .Errorf ("RemainingArgsAsTokens(): Expected %v, got %v" , expected , tokenTexts )
308+ }
309+
310+ d .Next () // dir3
311+
312+ args = d .RemainingArgsAsTokens ()
313+ tokenTexts = tokenTexts [:0 ]
314+ for _ , arg := range args {
315+ tokenTexts = append (tokenTexts , arg .Text )
316+ }
317+
318+ if expected := []string {"arg6" }; ! reflect .DeepEqual (tokenTexts , expected ) {
319+ t .Errorf ("RemainingArgsAsTokens(): Expected %v, got %v" , expected , tokenTexts )
320+ }
321+
322+ d .Next () // {
323+ d .Next () // arg7
324+ d .Next () // dir4
325+
326+ args = d .RemainingArgsAsTokens ()
327+ tokenTexts = tokenTexts [:0 ]
328+ for _ , arg := range args {
329+ tokenTexts = append (tokenTexts , arg .Text )
330+ }
331+
332+ if len (args ) != 0 {
333+ t .Errorf ("RemainingArgsAsTokens(): Expected %v, got %v" , []string {}, tokenTexts )
334+ }
335+ }
336+
277337func TestDispenser_ArgErr_Err (t * testing.T ) {
278338 input := `dir1 {
279339 }
0 commit comments