(Pipeline (List (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "sayIt:\n"] [LIT_CHARS "\t$(foreach b,$(BUILT_INS),echo XXX $b YYY;)\n"]} 0), > ) (Com {[LIT_CHARS cat]} {[LIT_CHARS Makefile]} ) ) (Com {[LIT_CHARS make]} {[LIT_CHARS -f]} {[LIT_CHARS -]} {[LIT_CHARS sayIt]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[LIT_CHARS -e]} {[SQ ]} ) (Com {[LIT_CHARS sort]} ) (List (= scope= flags=0 words=[] bindings=[('bad', {[LIT_CHARS 0]})]) (While (Com {[LIT_CHARS read]} {[LIT_CHARS builtin]} ) (List (= scope= flags=0 words=[] bindings=[('base', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [VarSub builtin]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (= scope= flags=0 words=[] bindings=[('x', {[ComSub (Com {[LIT_CHARS sed]} {[LIT_CHARS -ne]} {[SQ ] [VarSub base] [SQ ] [VarSub base] [SQ ]} {[LIT_CHARS git.c]})]})]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub x]]} ) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub base][LIT_CHARS " is builtin but not listed in git.c command list"]]} ) (= scope= flags=0 words=[] bindings=[('bad', {[LIT_CHARS 1]})]) ) ) (For sfx [{[LIT_CHARS sh]}, {[LIT_CHARS perl]}, {[LIT_CHARS py]}]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub builtin][LIT_CHARS .][VarSub sfx]]} ) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub base][LIT_CHARS " is builtin but "][VarSub builtin][LIT_CHARS .][VarSub sfx][LIT_CHARS " still exists"]]} ) (= scope= flags=0 words=[] bindings=[('bad', {[LIT_CHARS 1]})]) ) ) ) ) ) (Com {[LIT_CHARS exit]} {[VarSub bad]} ) ) )