======== No items ======== foreach(var) endforeach() --- (source_file (command_invocation (foreach_loop (foreach_iter loop_var: (variable) ) ) ) ) ================================= No items with endforeach argument ================================= foreach(var) endforeach(var) --- (source_file (command_invocation (foreach_loop (foreach_iter loop_var: (variable) ) (variable) ) ) ) ======== One item ======== foreach(var item) endforeach() --- (source_file (command_invocation (foreach_loop (foreach_iter loop_var: (variable) (seperation (space)) (arguments (argument (unquoted_argument)) ) ) ) ) ) ========= Two items ========= foreach(var item item) endforeach() --- (source_file (command_invocation (foreach_loop (foreach_iter loop_var: (variable) (seperation (space)) (arguments (argument (unquoted_argument)) (seperation (space)) (argument (unquoted_argument)) ) ) ) ) ) ===================== Iter containing RANGE ===================== foreach(var RANGE1) endforeach() --- (source_file (command_invocation (foreach_loop (foreach_iter loop_var: (variable) (seperation (space)) (arguments (argument (unquoted_argument)) ) ) ) ) ) ========== Range stop ========== foreach(var RANGE 10) endforeach() --- (source_file (command_invocation (foreach_loop (foreach_range (foreach_range_stop loop_var: (variable) (seperation (space)) stop: (integer) ) ) ) ) ) ================ Range start stop ================ foreach(var RANGE 0 10) endforeach() --- (source_file (command_invocation (foreach_loop (foreach_range (foreach_range_full loop_var: (variable) (seperation (space)) start: (integer) stop: (integer) ) ) ) ) ) ========================= Range lists with one list ========================= foreach(var IN LISTS A) endforeach() --- (source_file (command_invocation (foreach_loop (foreach_lists_items loop_var: (variable) (seperation (space)) (seperation (space)) (seperation (space)) (arguments (argument (unquoted_argument)) ) ) ) ) ) ========================== Range lists with two lists ========================== foreach(var IN LISTS A B) endforeach() --- (source_file (command_invocation (foreach_loop (foreach_lists_items loop_var: (variable) (seperation (space)) (seperation (space)) (seperation (space)) (arguments (argument (unquoted_argument)) (seperation (space)) (argument (unquoted_argument)) ) ) ) ) )