(command.CommandList children: [ (C {(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[] = {') ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:grps) op: assign_op.Equal rhs: {(grps) ($ Id.VSub_Dollar '$$') (.tmp)} spids: [20] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:match) op: assign_op.Equal rhs: {(match) ($ Id.VSub_Dollar '$$') (.tmp)} spids: [25] ) ] ) (C {(trap)} {(DQ ("rm -f '") ($ Id.VSub_DollarName '$grps') ("' '") ($ Id.VSub_DollarName '$match') ("'"))} {(0)} {(1)} {(2)} {(3)} {(15)} ) (C {(sed)} {(-n)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:56) (Token id:Id.Lit_Chars val:'\t1,/^### common groups/b\n' span_id:57) (Token id:Id.Lit_Chars val:'\t/^### command list/q\n' span_id:58) (Token id:Id.Lit_Chars val:'\t/^#/b\n' span_id:59) (Token id:Id.Lit_Chars val:'\t/^[ \t]*$/b\n' span_id:60) (Token id: Id.Lit_Chars val: '\th;s/^[^ \t][^ \t]*[ \t][ \t]*\\(.*\\)/\tN_("\\1"),/p\n' span_id: 61 ) (Token id:Id.Lit_Chars val:'\tg;s/^\\([^ \t][^ \t]*\\)[ \t].*/\\1/w ' span_id:62) ) ($ Id.VSub_DollarName '$grps') (SQ (Token id:Id.Lit_Chars val:'\n' span_id:66) (Token id:Id.Lit_Chars val:'\t' span_id:67)) } {(DQ ($ Id.VSub_Number '$1'))} ) (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'};\\n\\n' span_id:77))}) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:n) op:assign_op.Equal rhs:{(0)} spids:[81])] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:substnum) op: assign_op.Equal rhs: (word.Empty) spids: [84] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:86) cond: [(C {(read)} {(grp)})] body: (command.DoGroup children: [ (C {(echo)} {(DQ ('^git-..*[ \t]') ($ Id.VSub_DollarName '$grp'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:substnum) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$substnum') (braced_var_sub token: (Token id:Id.VSub_Name val:substnum span_id:107) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonPlus arg_word:{(';')}) ) ('s/[ \t]') ($ Id.VSub_DollarName '$grp') (/) ($ Id.VSub_DollarName '$n') (/) ) } spids: [103] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$n')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } spids: [119] ) ] ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:129) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$grps'))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:134) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$match'))} ) ] ) (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'static struct cmdname_help common_cmds[] = {\\n' span_id:143))} ) (command.Pipeline children: [ (C {(grep)} {(-f)} {(DQ ($ Id.VSub_DollarName '$match'))} {(DQ ($ Id.VSub_Number '$1'))}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/^git-//' span_id:163))}) (C {(sort)}) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:172) cond: [(C {(read)} {(cmd)} {(tags)})] body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tag) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:184) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$tags'))}) (C {(sed)} {(DQ ($ Id.VSub_DollarName '$substnum') ('; s/[^0-9]//g'))} ) ] negated: F ) ] ) ) } spids: [183] ) ] ) (C {(sed)} {(-n)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:207) (Token id: Id.Lit_Chars val: '\t\t/^NAME/,/git-' span_id: 208 ) ) (DQ ($ Id.VSub_DollarName '$cmd')) (SQ (Token id:Id.Lit_Chars val:'/H\n' span_id:214) (Token id:Id.Lit_Chars val:'\t\t${\n' span_id:215) (Token id:Id.Lit_Chars val:'\t\t\tx\n' span_id:216) (Token id:Id.Lit_Chars val:'\t\t\ts/.*git-' span_id:217) ) (DQ ($ Id.VSub_DollarName '$cmd')) (SQ (Token id:Id.Lit_Chars val:' - \\(.*\\)/\t{"' span_id:223)) (DQ ($ Id.VSub_DollarName '$cmd')) (SQ (Token id:Id.Lit_Chars val:'", N_("\\1"), ' span_id:229)) ($ Id.VSub_DollarName '$tag') (SQ (Token id:Id.Lit_Chars val:'},/\n' span_id:233) (Token id:Id.Lit_Chars val:'\t\t\tp\n' span_id:234) (Token id:Id.Lit_Chars val:'\t\t}' span_id:235) ) } {(DQ (Documentation/git-) ($ Id.VSub_DollarName '$cmd') (.txt))} ) ] ) ) ] negated: F ) (C {(echo)} {(DQ ('};'))}) ] )