(command.CommandList children: [ (C {(echo)} { (DQ ('/* Automatically generated by ') ($ VSub_Number '$0') (' */\n') ('struct cmdname_help {\n') ('\tchar name[16];\n') ('\tchar help[80];\n') ('\tunsigned char group;\n') ('};\n') ('\n') ('static const char *common_cmd_groups[] = {') ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:grps spids:[28]) op: Equal rhs: {(grps) ($ VSub_Dollar '$$') (.tmp)} spids: [28] ) ] spids: [28] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:match spids:[33]) op: Equal rhs: {(match) ($ VSub_Dollar '$$') (.tmp)} spids: [33] ) ] spids: [33] ) (C {(trap)} {(DQ ("rm -f '") ($ VSub_Name '$grps') ("' '") ($ VSub_Name '$match') ("'"))} {(0)} {(1)} {(2)} {(3)} {(15)} ) (C {(sed)} {(-n)} { (SQ <'\n'> <'\t1,/^### common groups/b\n'> <'\t/^### command list/q\n'> <'\t/^#/b\n'> <'\t/^[ \t]*$/b\n'> <'\th;s/^[^ \t][^ \t]*[ \t][ \t]*\\(.*\\)/\tN_("\\1"),/p\n'> <'\tg;s/^\\([^ \t][^ \t]*\\)[ \t].*/\\1/w '> ) ($ VSub_Name '$grps') (SQ <'\n'> <'\t'>) } {(DQ ($ VSub_Number '$1'))} ) (C {(printf)} {(SQ <'};\\n\\n'>)}) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:n spids:[89]) op:Equal rhs:{(0)} spids:[89])] spids: [89] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:substnum spids:[92]) op: Equal rhs: (word.EmptyWord) spids: [92] ) ] spids: [92] ) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(grp)})] body: (command.DoGroup children: [ (C {(echo)} {(DQ ('^git-..*[ \t]') ($ VSub_Name '$grp'))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:substnum spids:[111]) op: Equal rhs: { (DQ ($ VSub_Name '$substnum') (word_part.BracedVarSub token: <VSub_Name substnum> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonPlus arg_word:{(';')}) spids: [114 118] ) ('s/[ \t]') ($ VSub_Name '$grp') (/) ($ VSub_Name '$n') (/) ) } spids: [111] ) ] spids: [111] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:n spids:[127]) op: Equal rhs: { (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w:{($ VSub_Name '$n')}) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [128 133] ) } spids: [127] ) ] spids: [127] ) ] spids: [100 135] ) redirects: [ (redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(DQ ($ VSub_Name '$grps'))}) (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(DQ ($ VSub_Name '$match'))}) ] ) (C {(printf)} {(SQ <'static struct cmdname_help common_cmds[] = {\\n'>)}) (command.Pipeline children: [ (C {(grep)} {(-f)} {(DQ ($ VSub_Name '$match'))} {(DQ ($ VSub_Number '$1'))}) (C {(sed)} {(SQ <'s/^git-//'>)}) (C {(sort)}) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(cmd)} {(tags)})] body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tag spids:[191]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$tags'))}) (C {(sed)} {(DQ ($ VSub_Name '$substnum') ('; s/[^0-9]//g'))}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [192 207] ) } spids: [191] ) ] spids: [191] ) (C {(sed)} {(-n)} {(SQ <'\n'> <'\t\t/^NAME/,/git-'>) (DQ ($ VSub_Name '$cmd')) (SQ <'/H\n'> <'\t\t${\n'> <'\t\t\tx\n'> <'\t\t\ts/.*git-'>) (DQ ($ VSub_Name '$cmd')) (SQ <' - \\(.*\\)/\t{"'>) (DQ ($ VSub_Name '$cmd')) (SQ <'", N_("\\1"), '>) ($ VSub_Name '$tag') (SQ <'},/\n'> <'\t\t\tp\n'> <'\t\t}'>) } {(DQ (Documentation/git-) ($ VSub_Name '$cmd') (.txt))} ) ] spids: [188 252] ) ) ] negated: F ) (C {(echo)} {(DQ ('};'))}) ] )