(command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'/* Automatically generated by '> ($ Id.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[] = {'> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'grps='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'grps='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'grps='> name:grps) op: assign_op.Equal rhs: {<grps> ($ Id.VSub_Dollar '$') <.tmp>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'match='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'match='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'match='> name:match) op: assign_op.Equal rhs: {<match> ($ Id.VSub_Dollar '$') <.tmp>} ) ] redirects: [] ) (command.Simple blame_tok: <trap> more_env: [] words: [ {<trap>} {(DQ <'rm -f \''> ($ Id.VSub_DollarName grps) <'\' \''> ($ Id.VSub_DollarName match) <'\''>)} {<0>} {<1>} {<2>} {<3>} {<15>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<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 '> ) ($ Id.VSub_DollarName grps) (SQ <'\n'> <'\t'>) } {(DQ ($ Id.VSub_Number 1))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(SQ <'};\\n\\n'>)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'n='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'n='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'substnum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'substnum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'substnum='> name:substnum) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<grp>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'^git-..*[ \t]'> ($ Id.VSub_DollarName grp))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'substnum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'substnum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'substnum='> name:substnum) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName substnum) (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name substnum> var_name: substnum suffix_op: (suffix_op.Unary op:<Id.VTest_ColonPlus _> arg_word:{<';'>}) right: <Id.Right_DollarBrace '}'> ) <'s/[ \t]'> ($ Id.VSub_DollarName grp) <'/'> ($ Id.VSub_DollarName n) <'/'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'n='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'n='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName n)} right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName grps))} ) (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName match))} ) ] ) (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(SQ <'static struct cmdname_help common_cmds[] = {\\n'>)}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-f>} {(DQ ($ Id.VSub_DollarName match))} {(DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/^git-//'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok:<sort> more_env:[] words:[{<sort>}] redirects:[] do_fork:T) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<cmd>} {<tags>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'tag='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'tag='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tag='> name:tag) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName tags))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {(DQ ($ Id.VSub_DollarName substnum) <'; s/[^0-9]//g'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-n>} {(SQ <'\n'> <'\t\t/^NAME/,/git-'>) (DQ ($ Id.VSub_DollarName cmd)) (SQ <'/H\n'> <'\t\t${\n'> <'\t\t\tx\n'> <'\t\t\ts/.*git-'>) (DQ ($ Id.VSub_DollarName cmd)) (SQ <' - \\(.*\\)/\t{"'>) (DQ ($ Id.VSub_DollarName cmd)) (SQ <'", N_("\\1"), '>) ($ Id.VSub_DollarName tag) (SQ <'},/\n'> <'\t\t\tp\n'> <'\t\t}'>) } {(DQ <'Documentation/git-'> ($ Id.VSub_DollarName cmd) <.txt>)} ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'};'>)}] redirects: [] do_fork: T ) ] )