(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'dashless='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'dashless='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dashless='> name:dashless) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <basename> more_env: [] words: [{<basename>} {(DQ ($ Id.VSub_Number 0))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/-/ /'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'USAGE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'USAGE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE) op: assign_op.Equal rhs: { (DQ <'list [<options>]\n'> <' or: '> ($ Id.VSub_DollarName dashless) <' show [<stash>]\n'> <' or: '> ($ Id.VSub_DollarName dashless) <' drop [-q|--quiet] [<stash>]\n'> <' or: '> ($ Id.VSub_DollarName dashless) <' ( pop | apply ) [--index] [-q|--quiet] [<stash>]\n'> <' or: '> ($ Id.VSub_DollarName dashless) <' branch <branchname> [<stash>]\n'> <' or: '> ($ Id.VSub_DollarName dashless) <' [save [--patch] [-k|--[no-]keep-index] [-q|--quiet]\n'> <'\t\t [-u|--include-untracked] [-a|--all] [<message>]]\n'> <' or: '> ($ Id.VSub_DollarName dashless) <' clear'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBDIRECTORY_OK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBDIRECTORY_OK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBDIRECTORY_OK='> name:SUBDIRECTORY_OK) op: assign_op.Equal rhs: {<Yes>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OPTIONS_SPEC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OPTIONS_SPEC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIONS_SPEC='> name:OPTIONS_SPEC) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'START_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'START_DIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'START_DIR='> name:START_DIR) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <pwd> more_env: [] words: [{<pwd>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {<git-sh-setup>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <require_work_tree> more_env: [] words: [{<require_work_tree>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd_to_toplevel> more_env: [] words: [{<cd_to_toplevel>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TMP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TMP='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMP='> name:TMP) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName GIT_DIR) <'/.git-stash.'> ($ Id.VSub_Dollar '$'))} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TMPindex='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TMPindex='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPindex='> name:TMPindex) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name GIT_INDEX_FILE> var_name: GIT_INDEX_FILE suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rev-parse>} {<--git-path>} {<index>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) right: <Id.Right_DollarBrace '}'> ) <.stash.> ($ Id.VSub_Dollar '$') } ) ] redirects: [] ) (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {(SQ <'rm -f "$TMP-"* "$TMPindex"'>)} {<0>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'ref_stash='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ref_stash='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ref_stash='> name:ref_stash) op: assign_op.Equal rhs: {<'refs/stash'>} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<config>} {<--get-colorbool>} {<color.interactive>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'help_color='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'help_color='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'help_color='> name:help_color) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<config>} {<--get-color>} {<color.interactive.help>} {(SQ <'red bold'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'reset_color='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'reset_color='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'reset_color='> name:reset_color) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<config>} {<--get-color>} {(SQ )} {<reset>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) ] spids: [109 120] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'help_color='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'help_color='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'help_color='> name:help_color) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'reset_color='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'reset_color='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'reset_color='> name:reset_color) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShFunction name_tok: <no_changes> name: no_changes body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<diff-index>} {<--quiet>} {<--cached>} {<HEAD>} {<--ignore-submodules>} {<-->} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<diff-files>} {<--quiet>} {<--ignore-submodules>}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName untracked))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {<-z>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <untracked_files> more_env: [] words: [{<untracked_files>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) right: <Id.Right_Subshell _> redirects: [] ) ] ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <untracked_files> name: untracked_files body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'excl_opt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'excl_opt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'excl_opt='> name:excl_opt) op: assign_op.Equal rhs: {<--exclude-standard>} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName untracked))} {<Id.Lit_Equals '='>} {(DQ <all>)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'excl_opt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'excl_opt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'excl_opt='> name:excl_opt) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<ls-files>} {<-o>} {<-z>} {($ Id.VSub_DollarName excl_opt)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <clear_stash> name: clear_stash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {($ Id.VSub_Pound '#')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [ {<gettext>} {(DQ <'git stash clear with parameters is unimplemented'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] spids: [279 291] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.ShAssignment left: <Id.Lit_VarLike 'current='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'current='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'current='> name:current) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--verify>} {<--quiet>} {($ Id.VSub_DollarName ref_stash)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<update-ref>} {<-d>} {($ Id.VSub_DollarName ref_stash)} {($ Id.VSub_DollarName current)} ] redirects: [] do_fork: T ) ] spids: [310 326] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <create_stash> name: create_stash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'stash_msg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'stash_msg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stash_msg='> name:stash_msg) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'untracked='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'untracked='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'untracked='> name:untracked) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 2))} ) ] redirects: [] ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<update-index>} {<-q>} {<--refresh>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <no_changes> more_env: [] words: [{<no_changes>}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [(command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})] spids: [375 380] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.ShAssignment left: <Id.Lit_VarLike 'b_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b_commit='> name:b_commit) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rev-parse>} {<--verify>} {<HEAD>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'head='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'head='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'head='> name:head) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rev-list>} {<--oneline>} {<-n>} {<1>} {<HEAD>} {<-->}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] spids: [396 410] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'You do not have the initial commit yet'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.ShAssignment left: <Id.Lit_VarLike 'branch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'branch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'branch='> name:branch) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<symbolic-ref>} {<-q>} {<HEAD>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'branch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'branch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'branch='> name:branch) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name branch> var_name: branch suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<refs> <Id.Lit_Slash '/'> <heads> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) ] spids: [451 465] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'branch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'branch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'branch='> name:branch) op: assign_op.Equal rhs: {(SQ <'(no branch)'>)} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'msg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'msg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msg='> name:msg) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(SQ <'%s: %s'>)} {(DQ ($ Id.VSub_DollarName branch))} {(DQ ($ Id.VSub_DollarName head))} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'i_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i_tree='> name:i_tree) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<write-tree>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'i_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i_commit='> name:i_commit) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(SQ <'index on %s\\n'>)} {(DQ ($ Id.VSub_DollarName msg))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<commit-tree>} {($ Id.VSub_DollarName i_tree)} {<-p>} {($ Id.VSub_DollarName b_commit)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'Cannot save the current index state'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName untracked))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'u_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'u_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u_commit='> name:u_commit) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <untracked_files> more_env: [] words: [{<untracked_files>}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> name: GIT_INDEX_FILE ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName TMPindex))} ) ] redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<GIT_INDEX_FILE>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [ {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName TMPindex))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<update-index>} {<-z>} {<--add>} {<--remove>} {<--stdin>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'u_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'u_tree='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'u_tree='> name: u_tree ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<write-tree>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(SQ <'untracked files on %s\\n'>)} {(DQ ($ Id.VSub_DollarName msg))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<commit-tree>} {($ Id.VSub_DollarName u_tree)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <rm> more_env: [] words: [ {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName TMPindex))} ] redirects: [] do_fork: T ) ] ops: [ <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> ] ) right: <Id.Right_Subshell _> redirects: [] ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'Cannot save the untracked files'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'untracked_commit_option='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'untracked_commit_option='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'untracked_commit_option='> name: untracked_commit_option ) op: assign_op.Equal rhs: {(DQ <'-p '> ($ Id.VSub_DollarName u_commit))} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) ] spids: [567 578] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'untracked_commit_option='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'untracked_commit_option='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'untracked_commit_option='> name: untracked_commit_option ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName patch_mode))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'w_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'w_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_tree='> name:w_tree) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Subshell left: <Id.Op_LParen _> child: (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<read-tree>} {<--index-output> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName TMPindex)) } {<-m>} {($ Id.VSub_DollarName i_tree)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> name: GIT_INDEX_FILE ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName TMPindex))} ) ] redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<GIT_INDEX_FILE>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<diff>} {<--name-only>} {<-z>} {<HEAD>} {<-->} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName TMP) <-stagenames>)} ) ] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<update-index>} {<-z>} {<--add>} {<--remove>} {<--stdin>} ] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName TMP) <-stagenames>)} ) ] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<write-tree>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [ {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName TMPindex))} ] redirects: [] do_fork: T ) ] ops: [ <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> ] ) right: <Id.Right_Subshell _> redirects: [] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [ {<gettext>} {(DQ <'Cannot save the current worktree state'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] spids: [719 730] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.AndOr children: [ (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName TMP) <-index>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [ (EnvPair left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> name: GIT_INDEX_FILE val: {(DQ ($ Id.VSub_DollarName TMP) <-index>)} ) ] words: [{<git>} {<read-tree>} {<HEAD>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [ (EnvPair left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> name: GIT_INDEX_FILE val: {(DQ ($ Id.VSub_DollarName TMP) <-index>)} ) ] words: [{<git>} {<add--interactive>} {<--patch> <Id.Lit_Equals '='> <stash>} {<-->}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'w_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'w_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_tree='> name:w_tree) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [ (EnvPair left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> name: GIT_INDEX_FILE val: {(DQ ($ Id.VSub_DollarName TMP) <-index>)} ) ] words: [{<git>} {<write-tree>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'Cannot save the current worktree state'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<diff-tree>} {<-p>} {<HEAD>} {($ Id.VSub_DollarName w_tree)} {<-->}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName TMP) <-patch>)} ) ] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-s>} {(DQ ($ Id.VSub_DollarName TMP) <-patch>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'No changes selected'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName TMP) <-index>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [ {<gettext>} {(DQ <'Cannot remove temporary index (can\'t happen)'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName stash_msg))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'stash_msg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'stash_msg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stash_msg='> name:stash_msg) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(SQ <'WIP on %s'>)} {(DQ ($ Id.VSub_DollarName msg))} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] spids: [1028 1039] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'stash_msg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'stash_msg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stash_msg='> name:stash_msg) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(SQ <'On %s: %s'>)} {(DQ ($ Id.VSub_DollarName branch))} {(DQ ($ Id.VSub_DollarName stash_msg))} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'w_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'w_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_commit='> name:w_commit) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_DollarName stash_msg))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<commit-tree>} {($ Id.VSub_DollarName w_tree)} {<-p>} {($ Id.VSub_DollarName b_commit)} {<-p>} {($ Id.VSub_DollarName i_commit)} {($ Id.VSub_DollarName untracked_commit_option)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'Cannot record working tree state'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <store_stash> name: store_stash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {($ Id.VSub_Pound '#')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} ] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-m> pattern: (pat.Words words:[{<-m>} {<--message>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'stash_msg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'stash_msg='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'stash_msg='> name: stash_msg ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-q> pattern: (pat.Words words:[{<-q>} {<--quiet>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'quiet='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'quiet='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'quiet='> name:quiet) op: assign_op.Equal rhs: {<t>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {($ Id.VSub_Pound '#')} {<Id.Lit_Equals '='>} {<1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <eval_gettext> more_env: [] words: [ {<eval_gettext>} { (DQ (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName dashless) <' store'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <' requires one <commit> argument'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'w_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'w_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_commit='> name:w_commit) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName stash_msg))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'stash_msg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'stash_msg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stash_msg='> name:stash_msg) op: assign_op.Equal rhs: { (DQ <'Created via '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'git stash store'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <.> ) } ) ] redirects: [] ) ] spids: [1247 1258] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<update-ref>} {<--create-reflog>} {<-m>} {(DQ ($ Id.VSub_DollarName stash_msg))} {($ Id.VSub_DollarName ref_stash)} {($ Id.VSub_DollarName w_commit)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'ret='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ret='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {($ Id.VSub_DollarName ret)} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName quiet))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <eval_gettext> more_env: [] words: [ {<eval_gettext>} { (DQ <'Cannot update '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'ref_stash with '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <w_commit> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName ret)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <save_stash> name: save_stash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'keep_index='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keep_index='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keep_index='> name:keep_index) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'patch_mode='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'patch_mode='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'patch_mode='> name:patch_mode) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'untracked='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'untracked='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'untracked='> name:untracked) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {($ Id.VSub_Pound '#')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} ] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-k> pattern: (pat.Words words:[{<-k>} {<--keep-index>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'keep_index='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keep_index='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'keep_index='> name: keep_index ) op: assign_op.Equal rhs: {<t>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <--no-keep-index> pattern: (pat.Words words:[{<--no-keep-index>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'keep_index='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keep_index='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'keep_index='> name: keep_index ) op: assign_op.Equal rhs: {<n>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-p> pattern: (pat.Words words:[{<-p>} {<--patch>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'patch_mode='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'patch_mode='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'patch_mode='> name: patch_mode ) op: assign_op.Equal rhs: {<t>} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName keep_index))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'keep_index='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keep_index='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'keep_index='> name: keep_index ) op: assign_op.Equal rhs: {<t>} ) ] redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-q> pattern: (pat.Words words:[{<-q>} {<--quiet>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'GIT_QUIET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GIT_QUIET='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'GIT_QUIET='> name: GIT_QUIET ) op: assign_op.Equal rhs: {<t>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-u> pattern: (pat.Words words:[{<-u>} {<--include-untracked>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'untracked='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'untracked='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'untracked='> name: untracked ) op: assign_op.Equal rhs: {<untracked>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-a> pattern: (pat.Words words:[{<-a>} {<--all>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'untracked='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'untracked='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'untracked='> name: untracked ) op: assign_op.Equal rhs: {<all>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <--help> pattern: (pat.Words words:[{<--help>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <show_help> more_env: [] words: [{<show_help>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <--> pattern: (pat.Words words:[{<-->}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-> pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'option='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'option='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'option='> name:option) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} ) ] redirects: [] ) (command.Simple blame_tok: <eval_gettextln> more_env: [] words: [ {<eval_gettextln>} { (DQ <'error: unknown option for \'stash save\': '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'option\n'> <' To provide a message, use git stash save -- \''> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'option\''> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <usage> more_env: [] words: [{<usage>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName patch_mode))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName untracked))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [ {<gettext>} { (DQ < 'Can\'t use --patch and --include-untracked or --all at the same time' > ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] spids: [1589 1610] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'stash_msg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'stash_msg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stash_msg='> name:stash_msg) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Star '*'))} ) ] redirects: [] ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<update-index>} {<-q>} {<--refresh>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <no_changes> more_env: [] words: [{<no_changes>}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <say> more_env: [] words: [ {<say>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'No local changes to save'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] spids: [1646 1651] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<reflog>} {<exists>} {($ Id.VSub_DollarName ref_stash)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <clear_stash> more_env: [] words: [{<clear_stash>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'Cannot initialize stash'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>] ) (command.Simple blame_tok: <create_stash> more_env: [] words: [ {<create_stash>} {(DQ ($ Id.VSub_DollarName stash_msg))} {($ Id.VSub_DollarName untracked)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <store_stash> more_env: [] words: [ {<store_stash>} {<-m>} {(DQ ($ Id.VSub_DollarName stash_msg))} {<-q>} {($ Id.VSub_DollarName w_commit)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'Cannot save the current status'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <say> more_env: [] words: [ {<say>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <eval_gettext> more_env: [] words: [ {<eval_gettext>} { (DQ <'Saved working directory and index state '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <stash_msg> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName patch_mode))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<reset>} {<--hard>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name GIT_QUIET> var_name: GIT_QUIET suffix_op: (suffix_op.Unary op:<Id.VTest_ColonPlus _> arg_word:{<-q>}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName untracked))} {<Id.Lit_Equals '='>} {(DQ <all>)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'CLEAN_X_OPTION='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CLEAN_X_OPTION='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CLEAN_X_OPTION='> name: CLEAN_X_OPTION ) op: assign_op.Equal rhs: {<-x>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CLEAN_X_OPTION='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CLEAN_X_OPTION='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CLEAN_X_OPTION='> name: CLEAN_X_OPTION ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName untracked))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<clean>} {<--force>} {<--quiet>} {<-d>} {($ Id.VSub_DollarName CLEAN_X_OPTION)} ] redirects: [] do_fork: T ) ] spids: [1806 1817] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName keep_index))} {<Id.Lit_Equals '='>} {(DQ <t>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName i_tree))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<read-tree>} {<--reset>} {<-u>} {($ Id.VSub_DollarName i_tree)} ] redirects: [] do_fork: T ) ] spids: [1837 1862] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [1757 1768] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<apply>} {<-R>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName TMP) <-patch>)} ) ] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'Cannot remove worktree changes'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName keep_index))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <t>)} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<reset>}] redirects: [] do_fork: T ) ] spids: [1912 1928] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <have_stash> name: have_stash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rev-parse>} {<--verify>} {<--quiet>} {($ Id.VSub_DollarName ref_stash)}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <list_stash> name: list_stash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <have_stash> more_env: [] words: [{<have_stash>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<log>} {<--format> <Id.Lit_Equals '='> (DQ <'%gd: %gs'>)} {<-g>} {<--first-parent>} {<-m>} {(DQ ($ Id.VSub_At '@'))} {($ Id.VSub_DollarName ref_stash)} {<-->} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <show_stash> name: show_stash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ALLOW_UNKNOWN_FLAGS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ALLOW_UNKNOWN_FLAGS='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALLOW_UNKNOWN_FLAGS='> name: ALLOW_UNKNOWN_FLAGS ) op: assign_op.Equal rhs: {<t>} ) ] redirects: [] ) (command.Simple blame_tok: <assert_stash_like> more_env: [] words: [{<assert_stash_like>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName FLAGS))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<config>} {<--bool>} {<stash.showStat>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) right: <Id.Eof_RParen _> ) ) } {<Id.Lit_Equals '='>} {(DQ <true>)} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'FLAGS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAGS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAGS='> name:FLAGS) op: assign_op.Equal rhs: {<--stat>} ) ] redirects: [] ) ] spids: [2046 2075] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<config>} {<--bool>} {<stash.showPatch>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<false>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) right: <Id.Eof_RParen _> ) ) } {<Id.Lit_Equals '='>} {(DQ <true>)} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'FLAGS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAGS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAGS='> name:FLAGS) op: assign_op.Equal rhs: {(${ Id.VSub_Name FLAGS) (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FLAGS> var_name: FLAGS suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<' '>} ) right: <Id.Right_DollarBrace '}'> ) <-p> } ) ] redirects: [] ) ] spids: [2086 2115] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName FLAGS))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2134 2145] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [2032 2043] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<diff>} {(${ Id.VSub_Name FLAGS)} {($ Id.VSub_DollarName b_commit)} {($ Id.VSub_DollarName w_commit)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <show_help> name: show_help body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <exec> more_env: [] words: [{<exec>} {<git>} {<help>} {<stash>}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <parse_flags_and_rev> name: parse_flags_and_rev body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName PARSE_CACHE))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_Star '*'))} ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'PARSE_CACHE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PARSE_CACHE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PARSE_CACHE='> name:PARSE_CACHE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Star '*'))} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IS_STASH_LIKE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IS_STASH_LIKE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IS_STASH_LIKE='> name:IS_STASH_LIKE) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IS_STASH_REF='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IS_STASH_REF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IS_STASH_REF='> name:IS_STASH_REF) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'INDEX_OPTION='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'INDEX_OPTION='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INDEX_OPTION='> name:INDEX_OPTION) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 's='> pairs: [ (AssignPair left: <Id.Lit_VarLike 's='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 's='> name:s) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'w_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'w_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_commit='> name:w_commit) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'b_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b_commit='> name:b_commit) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'i_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i_commit='> name:i_commit) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'u_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'u_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u_commit='> name:u_commit) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'w_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'w_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_tree='> name:w_tree) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'b_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b_tree='> name:b_tree) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'i_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i_tree='> name:i_tree) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'u_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'u_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u_tree='> name:u_tree) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'REV='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'REV='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REV='> name:REV) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--no-flags>} {<--symbolic>} {<--sq>} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'FLAGS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAGS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAGS='> name:FLAGS) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [opt] iterable: (for_iter__Args) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName opt))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-q> pattern: (pat.Words words:[{<-q>} {<--quiet>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'GIT_QUIET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GIT_QUIET='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'GIT_QUIET='> name: GIT_QUIET ) op: assign_op.Equal rhs: {<-t>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <--index> pattern: (pat.Words words:[{<--index>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'INDEX_OPTION='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'INDEX_OPTION='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'INDEX_OPTION='> name: INDEX_OPTION ) op: assign_op.Equal rhs: {<--index>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <--help> pattern: (pat.Words words:[{<--help>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <show_help> more_env: [] words: [{<show_help>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-> pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName ALLOW_UNKNOWN_FLAGS))} {<Id.Lit_Equals '='>} {<t>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <eval_gettext> more_env: [] words: [ {<eval_gettext>} { (DQ <'unknown option: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <opt> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'FLAGS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAGS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAGS='> name:FLAGS) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name FLAGS) (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FLAGS> var_name: FLAGS suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<' '>} ) right: <Id.Right_DollarBrace '}'> ) ($ Id.VSub_DollarName opt) ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {<set>} {<-->} {($ Id.VSub_DollarName REV)}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [ (command.AndOr children: [ (command.Simple blame_tok: <have_stash> more_env: [] words: [{<have_stash>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'No stash found.'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <set> more_env: [] words: [ {<set>} {<-->} {(${ Id.VSub_Name ref_stash) <Id.Lit_At '@'> <Id.Lit_LBrace '{'> <0> <Id.Lit_RBrace '}'> } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <eval_gettext> more_env: [] words: [ {<eval_gettext>} { (DQ <'Too many revisions specified: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <REV> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'REV='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'REV='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REV='> name:REV) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--symbolic>} {<--verify>} {<--quiet>} {(DQ ($ Id.VSub_Number 1))} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'reference='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'reference='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'reference='> name:reference) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <eval_gettext> more_env: [] words: [ {<eval_gettext>} { (DQ (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'reference is not a valid reference'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'i_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i_commit='> name:i_commit) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--verify>} {<--quiet>} {(DQ ($ Id.VSub_DollarName REV) <'^2'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <set> more_env: [] words: [ {<set>} {<-->} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {(DQ ($ Id.VSub_DollarName REV))} {(DQ ($ Id.VSub_DollarName REV) <'^1'>)} {(DQ ($ Id.VSub_DollarName REV) <':'>)} {(DQ ($ Id.VSub_DollarName REV) <'^1:'>)} {(DQ ($ Id.VSub_DollarName REV) <'^2:'>)} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 's='> pairs: [ (AssignPair left: <Id.Lit_VarLike 's='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 's='> name:s) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'w_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'w_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_commit='> name:w_commit) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'b_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b_commit='> name:b_commit) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'w_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'w_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_tree='> name:w_tree) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'b_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b_tree='> name:b_tree) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'i_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i_tree='> name:i_tree) op: assign_op.Equal rhs: {($ Id.VSub_Number 5)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IS_STASH_LIKE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IS_STASH_LIKE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'IS_STASH_LIKE='> name: IS_STASH_LIKE ) op: assign_op.Equal rhs: {<t>} ) ] redirects: [] ) (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName ref_stash))} {<Id.Lit_Equals '='>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--symbolic-full-name>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REV> var_name: REV suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Other '@'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'IS_STASH_REF='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IS_STASH_REF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IS_STASH_REF='> name:IS_STASH_REF) op: assign_op.Equal rhs: {<t>} ) ] redirects: [] ) ] ops: [ <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> ] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'u_commit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'u_commit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u_commit='> name:u_commit) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--verify>} {<--quiet>} {(DQ ($ Id.VSub_DollarName REV) <'^3'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'u_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'u_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u_tree='> name:u_tree) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rev-parse>} {(DQ ($ Id.VSub_DollarName REV) <'^3:'>)}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <is_stash_like> name: is_stash_like body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <parse_flags_and_rev> more_env: [] words: [{<parse_flags_and_rev>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName IS_STASH_LIKE))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <assert_stash_like> name: assert_stash_like body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <is_stash_like> more_env: [] words: [{<is_stash_like>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'args='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'args='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Star '*'))} ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <eval_gettext> more_env: [] words: [ {<eval_gettext>} { (DQ <'\''> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'args\' is not a stash-like commit'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <is_stash_ref> name: is_stash_ref body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <is_stash_like> more_env: [] words: [{<is_stash_like>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName IS_STASH_REF))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <assert_stash_ref> name: assert_stash_ref body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <is_stash_ref> more_env: [] words: [{<is_stash_ref>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'args='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'args='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Star '*'))} ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <eval_gettext> more_env: [] words: [ {<eval_gettext>} { (DQ <'\''> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'args\' is not a stash reference'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <apply_stash> name: apply_stash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <assert_stash_like> more_env: [] words: [{<assert_stash_like>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<update-index>} {<-q>} {<--refresh>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'unable to refresh index'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'c_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'c_tree='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c_tree='> name:c_tree) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<write-tree>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [ {<gettext>} {(DQ <'Cannot apply a stash in the middle of a merge'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'unstashed_index_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'unstashed_index_tree='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'unstashed_index_tree='> name: unstashed_index_tree ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName INDEX_OPTION))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName b_tree))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName i_tree))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName c_tree))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName i_tree))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Pipeline children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<diff-tree>} {<--binary>} {($ Id.VSub_DollarName s) <Id.Lit_Other '^'> <2> <Id.Lit_Other '^'> <..> ($ Id.VSub_DollarName s) <Id.Lit_Other '^'> <2> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<apply>} {<--cached>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [ {<gettext>} {(DQ <'Conflicts in index. Try without --index.'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'unstashed_index_tree='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'unstashed_index_tree='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'unstashed_index_tree='> name: unstashed_index_tree ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<write-tree>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'Could not save index tree'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<reset>}] redirects: [] do_fork: T ) ] spids: [3034 3076] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName u_tree))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.Simple blame_tok: <git-read-tree> more_env: [ (EnvPair left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> name: GIT_INDEX_FILE val: {(DQ ($ Id.VSub_DollarName TMPindex))} ) ] words: [{<git-read-tree>} {(DQ ($ Id.VSub_DollarName u_tree))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [ (EnvPair left: <Id.Lit_VarLike 'GIT_INDEX_FILE='> name: GIT_INDEX_FILE val: {(DQ ($ Id.VSub_DollarName TMPindex))} ) ] words: [{<git>} {<checkout-index>} {<--all>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName TMPindex))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [ {<gettext>} {(DQ <'Could not restore untracked files from stash'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DPipe _>] ) ] spids: [3159 3170] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} { (DQ <'\n'> <'\t\tGITHEAD_'> ($ Id.VSub_DollarName w_tree) <'=\'Stashed changes\' &&\n'> <'\t\tGITHEAD_'> ($ Id.VSub_DollarName c_tree) <'=\'Updated upstream\' &&\n'> <'\t\tGITHEAD_'> ($ Id.VSub_DollarName b_tree) <'=\'Version stash was based on\' &&\n'> <'\t\texport GITHEAD_'> ($ Id.VSub_DollarName w_tree) <' GITHEAD_'> ($ Id.VSub_DollarName c_tree) <' GITHEAD_'> ($ Id.VSub_DollarName b_tree) <'\n'> <'\t'> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GIT_QUIET))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'GIT_MERGE_VERBOSITY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GIT_MERGE_VERBOSITY='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'GIT_MERGE_VERBOSITY='> name: GIT_MERGE_VERBOSITY ) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<GIT_MERGE_VERBOSITY>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] spids: [3254 3265] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<merge-recursive>} {($ Id.VSub_DollarName b_tree)} {<-->} {($ Id.VSub_DollarName c_tree)} {($ Id.VSub_DollarName w_tree)} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName unstashed_index_tree))} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<read-tree>} {(DQ ($ Id.VSub_DollarName unstashed_index_tree))} ] redirects: [] do_fork: T ) ] spids: [3303 3314] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'a='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'a='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName TMP) <-added>)} ) ] redirects: [] ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<diff-index>} {<--cached>} {<--name-only>} {<--diff-filter> <Id.Lit_Equals '='> <A>} {($ Id.VSub_DollarName c_tree)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName a))} ) ] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<read-tree>} {<--reset>} {($ Id.VSub_DollarName c_tree)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<update-index>} {<--add>} {<--stdin>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName a))} ) ] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'Cannot unstage modified files'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DPipe _>] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName a))}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'squelch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'squelch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'squelch='> name:squelch) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GIT_QUIET))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'squelch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'squelch='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'squelch='> name: squelch ) op: assign_op.Equal rhs: {(SQ <'>/dev/null 2>&1'>)} ) ] redirects: [] ) ] spids: [3415 3426] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.AndOr children: [ (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ ($ Id.VSub_DollarName START_DIR))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {(DQ <'git status '> ($ Id.VSub_DollarName squelch))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] spids: [3281 3296] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'status='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'status='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'status='> name:status) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rerere>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName INDEX_OPTION))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <gettextln> more_env: [] words: [{<gettextln>} {(DQ <'Index was not unstashed.'>)}] redirects: [ (Redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] spids: [3476 3487] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName status)} ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <pop_stash> name: pop_stash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <assert_stash_ref> more_env: [] words: [{<assert_stash_ref>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <apply_stash> more_env: [] words: [{<apply_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <drop_stash> more_env: [] words: [{<drop_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] spids: [3528 3537] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'status='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'status='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'status='> name:status) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.Simple blame_tok: <say> more_env: [] words: [ {<say>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [ {<gettext>} {(DQ <'The stash is kept in case you need it again.'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName status)} ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <drop_stash> name: drop_stash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <assert_stash_ref> more_env: [] words: [{<assert_stash_ref>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<reflog>} {<delete>} {<--updateref>} {<--rewrite>} {(DQ (${ Id.VSub_Name REV))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <say> more_env: [] words: [ {<say>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <eval_gettext> more_env: [] words: [ {<eval_gettext>} { (DQ <'Dropped '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'{REV} ('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'s)'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <eval_gettext> more_env: [] words: [ {<eval_gettext>} { (DQ (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'{REV}: Could not drop stash entry'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--verify>} {<--quiet>} {(DQ ($ Id.VSub_DollarName ref_stash) <'@{0}'>)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <clear_stash> more_env: [] words: [{<clear_stash>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <apply_to_branch> name: apply_to_branch body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [{<gettext>} {(DQ <'No branch name specified'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'branch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'branch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'branch='> name:branch) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>} {<1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-->} {<--index>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <assert_stash_like> more_env: [] words: [{<assert_stash_like>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<checkout>} {<-b>} {($ Id.VSub_DollarName branch)} {($ Id.VSub_DollarName REV) <Id.Lit_Other '^'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <apply_stash> more_env: [] words: [{<apply_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName IS_STASH_REF))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <drop_stash> more_env: [] words: [{<drop_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment left: <Id.Lit_VarLike 'PARSE_CACHE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PARSE_CACHE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PARSE_CACHE='> name:PARSE_CACHE) op: assign_op.Equal rhs: {(SQ <--not-parsed>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'seen_non_option='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'seen_non_option='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'seen_non_option='> name:seen_non_option) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [opt] iterable: (for_iter__Args) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName opt))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-> pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'seen_non_option='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'seen_non_option='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'seen_non_option='> name: seen_non_option ) op: assign_op.Equal rhs: {<t>} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.ControlFlow keyword:<Id.ControlFlow_Break break>) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName seen_non_option))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {(DQ <save>)} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <list> pattern: (pat.Words words:[{<list>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <list_stash> more_env: [] words: [{<list_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <show> pattern: (pat.Words words:[{<show>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <show_stash> more_env: [] words: [{<show_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <save> pattern: (pat.Words words:[{<save>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <save_stash> more_env: [] words: [{<save_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <apply> pattern: (pat.Words words:[{<apply>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <apply_stash> more_env: [] words: [{<apply_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <clear> pattern: (pat.Words words:[{<clear>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <clear_stash> more_env: [] words: [{<clear_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <create> pattern: (pat.Words words:[{<create>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <create_stash> more_env: [] words: [{<create_stash>} {(DQ ($ Id.VSub_Star '*'))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName w_commit))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <store> pattern: (pat.Words words:[{<store>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <store_stash> more_env: [] words: [{<store_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <drop> pattern: (pat.Words words:[{<drop>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <drop_stash> more_env: [] words: [{<drop_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <pop> pattern: (pat.Words words:[{<pop>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <pop_stash> more_env: [] words: [{<pop_stash>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <branch> pattern: (pat.Words words:[{<branch>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <apply_to_branch> more_env: [] words: [{<apply_to_branch>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [ (command.AndOr children: [ (command.Simple blame_tok: <save_stash> more_env: [] words: [{<save_stash>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <say> more_env: [] words: [ {<say>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gettext> more_env: [] words: [ {<gettext>} { (DQ <'(To restore them type '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'git stash apply'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <')'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <usage> more_env: [] words: [{<usage>}] redirects: [] do_fork: T ) ] ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] )