@(define first_last (first last whole)) @ (all) @(skip :greedy)@{last 1} @ (and) @{first 1}@(skip) @ (and) @whole @ (end) @(end) @(next :list ("the" "that" "a")) @(skip) @(first_last fi1 la1 w1) @(next :list ("frog" "elephant" "thing")) @(skip) @(first_last la1 la2 w2) @(next :list ("walked" "treaded" "grows")) @(skip) @(first_last la2 la3 w3) @(next :list ("slowly" "quickly")) @(skip) @(first_last la3 la4 w4) @(output) @w1 @w2 @w3 @w4 @(end)