(CommandList children: [ (Pipeline children: [ (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('sayIt:\n') ('\t$(foreach b,$(BUILT_INS),echo XXX $(b:$X=) YYY;)\n')} do_expansion: False here_end: EOF was_filled: T spids: [9] ) ] ) (C {(cat)} {(Makefile)}) ] spids: [4] ) (SimpleCommand words: [{(make)} {(-f)} {(-)} {(sayIt)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[30])] ) (C {(sed)} {(-n)} {(-e)} {(SQ <'s/.*XXX \\(.*\\) YYY.*/\\1/p'>)}) (C {(sort)}) (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:bad) op:Equal rhs:{(0)} spids:[54])] spids: [54] ) (While cond: [(C {(read)} {(builtin)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:base) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(DQ ($ VSub_Name '$builtin'))} {(Lit_Other ':')} {(SQ <'git-\\(.*\\)'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [69 81] ) } spids: [68] ) ] spids: [68] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:x) op: Equal rhs: { (CommandSubPart command_list: (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: [85 103] ) } spids: [84] ) ] spids: [84] ) (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') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:bad) op: Equal rhs: {(1)} spids: [128] ) ] spids: [128] ) ] spids: [16777215 117] ) ] spids: [16777215 132] ) (ForEach iter_name: sfx iter_words: [{(sh)} {(perl)} {(py)}] do_arg_iter: F body: (DoGroup children: [ (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') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:bad) op: Equal rhs: {(1)} spids: [179] ) ] spids: [179] ) ] spids: [16777215 164] ) ] spids: [16777215 183] ) ] spids: [148 186] ) spids: [140 16777215] ) ] spids: [65 189] ) ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$bad')}) ] spids: [51] ) ] negated: F ) ] )