(command.Pipeline children: [ (command.BraceGroup children: [ (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)} here_end_span_id: 23 stdin_parts: [('sayIt:\n') ('\t$(foreach b,$(BUILT_INS),echo XXX $(b:$X=) YYY;)\n')] ) ] ) (C {(cat)} {(Makefile)}) ] spids: [12] ) (command.SimpleCommand words: [{(make)} {(-f)} {(-)} {(sayIt)}] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) (C {(sed)} {(-n)} {(-e)} {(SQ <'s/.*XXX \\(.*\\) YYY.*/\\1/p'>)}) (C {(sort)}) (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:bad spids:[65]) op: Equal rhs: {(0)} spids: [65] ) ] spids: [65] ) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(builtin)})] body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:base spids:[79]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(expr)} {(DQ ($ VSub_Name '$builtin'))} {(Lit_Other ':')} {(SQ <'git-\\(.*\\)'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [80 92] ) } spids: [79] ) ] spids: [79] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:x spids:[95]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(sed)} {(-ne)} {(SQ <'s/.*{ "'>) ($ VSub_Name '$base') (SQ <'", \\(cmd_[^, ]*\\).*/'>) ($ VSub_Name '$base') (SQ <'\t\\1/p'>) } {(git.c)} ) ] ) left_token: <Left_CommandSub '$('> spids: [96 114] ) } spids: [95] ) ] spids: [95] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$x'))})] action: [ (C {(echo)} { (DQ ($ VSub_Name '$base') (' is builtin but not listed in git.c command list') ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:bad spids:[139]) op: Equal rhs: {(1)} spids: [139] ) ] spids: [139] ) ] spids: [16777215 128] ) ] spids: [16777215 143] ) (command.ForEach iter_name: sfx iter_words: [{(sh)} {(perl)} {(py)}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (C {(test)} {(-f)} {(DQ ($ VSub_Name '$builtin') (.) ($ VSub_Name '$sfx'))} ) ] action: [ (C {(echo)} { (DQ ($ VSub_Name '$base') (' is builtin but ') ($ VSub_Name '$builtin') (.) ($ VSub_Name '$sfx') (' still exists') ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:bad spids:[190]) op: Equal rhs: {(1)} spids: [190] ) ] spids: [190] ) ] spids: [16777215 175] ) ] spids: [16777215 194] ) ] spids: [159 197] ) spids: [151 16777215] ) ] spids: [76 200] ) ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$bad')}) ] spids: [62] ) ] negated: F )