(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dashless) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(basename)} {(DQ ($ Id.VSub_Number '$0'))}) (C {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s/-/ /' span_id:22))}) ] negated: F ) ] ) ) } spids: [7] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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') ) } spids: [26] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SUBDIRECTORY_OK) op: assign_op.Equal rhs: {(Yes)} spids: [51] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTIONS_SPEC) op: assign_op.Equal rhs: (word.Empty) spids: [54] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:START_DIR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:57) command_list: (command.CommandList children:[(C {(pwd)})]) ) } spids: [56] ) ] ) (C {(.)} {(git-sh-setup)}) (C {(require_work_tree)}) (C {(cd_to_toplevel)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TMP) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$GIT_DIR') (/.git-stash.) ($ Id.VSub_Dollar '$$'))} spids: [70] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TMPindex) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:GIT_INDEX_FILE span_id:79) suffix_op: (suffix_op.Unary op_id: Id.VTest_Hyphen arg_word: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:82) command_list: (command.CommandList children: [(C {(git)} {(rev-parse)} {(--git-path)} {(index)})] ) ) ) } ) ) (.stash.) ($ Id.VSub_Dollar '$$') } spids: [77] ) ] ) (C {(trap)} {(SQ (Token id:Id.Lit_Chars val:'rm -f "$TMP-"* "$TMPindex"' span_id:99))} {(0)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ref_stash) op: assign_op.Equal rhs: {(refs/stash)} spids: [105] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(git)} {(config)} {(--get-colorbool)} {(color.interactive)}) terminator: (Token id:Id.Op_Semi val:';' span_id:118) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:help_color) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:125) command_list: (command.CommandList children: [ (C {(git)} {(config)} {(--get-color)} {(color.interactive.help)} {(SQ (Token id:Id.Lit_Chars val:'red bold' span_id:135))} ) ] ) ) ) } spids: [123] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:reset_color) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:143) command_list: (command.CommandList children: [(C {(git)} {(config)} {(--get-color)} {(SQ )} {(reset)})] ) ) ) } spids: [141] ) ] ) ] spids: [109 120] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:help_color) op: assign_op.Equal rhs: (word.Empty) spids: [160] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:reset_color) op: assign_op.Equal rhs: (word.Empty) spids: [163] ) ] ) ] ) (command.ShFunction name: no_changes body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(git)} {(diff-index)} {(--quiet)} {(--cached)} {(HEAD)} {(--ignore-submodules)} {(--)}) (C {(git)} {(diff-files)} {(--quiet)} {(--ignore-submodules)}) (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$untracked'))}) (C {(test)} {(-z)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:220) command_list: (command.CommandList children: [(C {(untracked_files)})] ) ) ) } ) ] ) ] ) ) ] ) ] ) ) (command.ShFunction name: untracked_files body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:excl_opt) op: assign_op.Equal rhs: {(--exclude-standard)} spids: [237] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {(DQ ($ Id.VSub_DollarName '$untracked'))} {(Id.Lit_Equals '=')} {(DQ (all))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:excl_opt) op: assign_op.Equal rhs: (word.Empty) spids: [255] ) ] ) ] ) (C {(git)} {(ls-files)} {(-o)} {(-z)} {($ Id.VSub_DollarName '$excl_opt')}) ] ) ) (command.ShFunction name: clear_stash body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (C {(test)} {($ Id.VSub_Pound '$#')} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(0)}) ] action: [ (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:297) command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('git stash clear with parameters is unimplemented'))} ) ] ) ) ) } ) ] spids: [279 291] ) ] ) (command.If arms: [ (if_arm cond: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:current) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:313) command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(--quiet)} {($ Id.VSub_DollarName '$ref_stash')} ) ] ) ) } spids: [312] ) ] ) ] action: [ (C {(git)} {(update-ref)} {(-d)} {($ Id.VSub_DollarName '$ref_stash')} {($ Id.VSub_DollarName '$current')} ) ] spids: [310 326] ) ] ) ] ) ) (command.ShFunction name: create_stash body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stash_msg) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [353] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:untracked) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [359] ) ] ) (C {(git)} {(update-index)} {(-q)} {(--refresh)}) (command.If arms: [ (if_arm cond: [(C {(no_changes)})] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:383) arg_word: {(0)} ) ] spids: [375 380] ) ] ) (command.If arms: [ (if_arm cond: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b_commit) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:399) command_list: (command.CommandList children: [(C {(git)} {(rev-parse)} {(--verify)} {(HEAD)})] ) ) } spids: [398] ) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:head) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:414) command_list: (command.CommandList children: [ (C {(git)} {(rev-list)} {(--oneline)} {(-n)} {(1)} {(HEAD)} {(--)}) ] ) ) } spids: [413] ) ] ) ] spids: [396 410] ) ] else_action: [ (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:437) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('You do not have the initial commit yet'))})] ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:branch) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:454) command_list: (command.CommandList children: [(C {(git)} {(symbolic-ref)} {(-q)} {(HEAD)})] ) ) } spids: [453] ) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:branch) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:branch span_id:470) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {(refs) (Id.Lit_Slash /) (heads) (Id.Lit_Slash /)} ) ) } spids: [468] ) ] ) ] spids: [451 465] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:branch) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'(no branch)' span_id:484))} spids: [482] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:msg) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:492) command_list: (command.CommandList children: [ (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s: %s' span_id:496))} {(DQ ($ Id.VSub_DollarName '$branch'))} {(DQ ($ Id.VSub_DollarName '$head'))} ) ] ) ) } spids: [491] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i_tree) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:515) command_list: (command.CommandList children:[(C {(git)} {(write-tree)})]) ) } spids: [514] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i_commit) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:525) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(printf)} { (SQ (Token id: Id.Lit_Chars val: 'index on %s\\n' span_id: 529 ) ) } {(DQ ($ Id.VSub_DollarName '$msg'))} ) (C {(git)} {(commit-tree)} {($ Id.VSub_DollarName '$i_tree')} {(-p)} {($ Id.VSub_DollarName '$b_commit')} ) ] negated: F ) ] ) ) } spids: [524] ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:556) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('Cannot save the current index state'))})] ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$untracked'))})] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:u_commit) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:590) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(untracked_files)}) (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [ Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp ] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: GIT_INDEX_FILE ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$TMPindex' ) ) } spids: [600] ) ] ) (C {(export)} {(GIT_INDEX_FILE)}) (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$TMPindex'))} ) (C {(git)} {(update-index)} {(-z)} {(--add)} {(--remove)} {(--stdin)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:u_tree) op: assign_op.Equal rhs: { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 642 ) command_list: (command.CommandList children: [ (C {(git)} {(write-tree)}) ] ) ) } spids: [641] ) ] ) (command.Pipeline children: [ (C {(printf)} { (SQ (Token id: Id.Lit_Chars val: 'untracked files on %s\\n' span_id: 654 ) ) } {(DQ ($ Id.VSub_DollarName '$msg'))} ) (C {(git)} {(commit-tree)} {($ Id.VSub_DollarName '$u_tree')} ) ] negated: F ) (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$TMPindex'))} ) ] ) ] ) ) ] negated: F ) ] ) ) } spids: [589] ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:690) command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Cannot save the untracked files'))}) ] ) ) ) } ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:untracked_commit_option) op: assign_op.Equal rhs: {(DQ ('-p ') ($ Id.VSub_DollarName '$u_commit'))} spids: [701] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:706) ) ] spids: [567 578] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:untracked_commit_option) op: assign_op.Equal rhs: (word.Empty) spids: [712] ) ] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$patch_mode'))})] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:w_tree) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:739) command_list: (command.CommandList children: [ (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [ Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp ] children: [ (C {(git)} {(read-tree)} {(--index-output) (Id.Lit_Equals '=') (DQ ($ Id.VSub_DollarName '$TMPindex')) } {(-m)} {($ Id.VSub_DollarName '$i_tree')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: GIT_INDEX_FILE ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$TMPindex') ) } spids: [761] ) ] ) (C {(export)} {(GIT_INDEX_FILE)}) (command.Simple words: [ {(git)} {(diff)} {(--name-only)} {(-z)} {(HEAD)} {(--)} ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '>' span_id: 788 ) fd: -1 arg_word: { (DQ ($ Id.VSub_DollarName '$TMP') (-stagenames) ) } ) ] ) (command.Simple words: [ {(git)} {(update-index)} {(-z)} {(--add)} {(--remove)} {(--stdin)} ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Less val: '<' span_id: 809 ) fd: -1 arg_word: { (DQ ($ Id.VSub_DollarName '$TMP') (-stagenames) ) } ) ] ) (C {(git)} {(write-tree)}) (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$TMPindex'))} ) ] ) ] ) ) ] ) ) } spids: [738] ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:844) command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Cannot save the current worktree state'))}) ] ) ) ) } ) ] ) ] spids: [719 730] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe] children: [ (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$TMP') (-index))}) (command.Simple words: [{(git)} {(read-tree)} {(HEAD)}] more_env: [ (env_pair name: GIT_INDEX_FILE val: {(DQ ($ Id.VSub_DollarName '$TMP') (-index))} spids: [871] ) ] ) (command.Simple words: [{(git)} {(add--interactive)} {(--patch) (Id.Lit_Equals '=') (stash)} {(--)}] more_env: [ (env_pair name: GIT_INDEX_FILE val: {(DQ ($ Id.VSub_DollarName '$TMP') (-index))} spids: [891] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:w_tree) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:918) command_list: (command.CommandList children: [ (command.Simple words: [{(git)} {(write-tree)}] more_env: [ (env_pair name: GIT_INDEX_FILE val: {(DQ ($ Id.VSub_DollarName '$TMP') (-index))} spids: [919] ) ] ) ] ) ) } spids: [917] ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:936) command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Cannot save the current worktree state'))}) ] ) ) ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (command.Simple words: [ {(git)} {(diff-tree)} {(-p)} {(HEAD)} {($ Id.VSub_DollarName '$w_tree')} {(--)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:959) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$TMP') (-patch))} ) ] ) (C {(test)} {(-s)} {(DQ ($ Id.VSub_DollarName '$TMP') (-patch))}) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:983) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('No changes selected'))})] ) ) ) } ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$TMP') (-index))}) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1009) command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ("Cannot remove temporary index (can't happen)"))}) ] ) ) ) } ) ] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$stash_msg'))})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stash_msg) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1043) command_list: (command.CommandList children: [ (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'WIP on %s' span_id:1047))} {(DQ ($ Id.VSub_DollarName '$msg'))} ) ] ) ) } spids: [1042] ) ] ) ] spids: [1028 1039] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stash_msg) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1060) command_list: (command.CommandList children: [ (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'On %s: %s' span_id:1064))} {(DQ ($ Id.VSub_DollarName '$branch'))} {(DQ ($ Id.VSub_DollarName '$stash_msg'))} ) ] ) ) } spids: [1059] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:w_commit) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1081) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s\\n' span_id:1085))} {(DQ ($ Id.VSub_DollarName '$stash_msg'))} ) (C {(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')} ) ] negated: F ) ] ) ) } spids: [1080] ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1118) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('Cannot record working tree state'))})] ) ) ) } ) ] ) ] ) ) (command.ShFunction name: store_stash body: (command.BraceGroup children: [ (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:1138) cond: [(C {(test)} {($ Id.VSub_Pound '$#')} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(0)})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(-m)} {(--message)}] action: [ (C {(shift)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stash_msg) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1171] ) ] ) ] spids: [1162 1165 1177 -1] ) (case_arm pat_list: [{(-q)} {(--quiet)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:quiet) op: assign_op.Equal rhs: {(t)} spids: [1186] ) ] ) ] spids: [1180 1183 1190 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:1197) ) ] spids: [1193 1194 1200 -1] ) ] ) (C {(shift)}) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {($ Id.VSub_Pound '$#')} {(Id.Lit_Equals '=')} {(1)}) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1226) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1230) ) ($ Id.VSub_DollarName '$dashless') (' store') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1233) ) (' requires one <commit> argument') ) } ) ] ) ) ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:w_commit) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1241] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$stash_msg'))})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stash_msg) op: assign_op.Equal rhs: { (DQ ('Created via ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1264) ) ('git stash store') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1266) ) (.) ) } spids: [1261] ) ] ) ] spids: [1247 1258] ) ] ) (C {(git)} {(update-ref)} {(--create-reflog)} {(-m)} {(DQ ($ Id.VSub_DollarName '$stash_msg'))} {($ Id.VSub_DollarName '$ref_stash')} {($ Id.VSub_DollarName '$w_commit')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ret) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [1292] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(test)} {($ Id.VSub_DollarName '$ret')} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(0)}) (C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$quiet'))}) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1321) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Cannot update ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:1326) ) ('ref_stash with ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:1328) ) (w_commit) ) } ) ] ) ) ) } ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1335) arg_word: {($ Id.VSub_DollarName '$ret')} ) ] ) ) (command.ShFunction name: save_stash body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:keep_index) op: assign_op.Equal rhs: (word.Empty) spids: [1350] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:patch_mode) op: assign_op.Equal rhs: (word.Empty) spids: [1353] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:untracked) op: assign_op.Equal rhs: (word.Empty) spids: [1356] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:1359) cond: [(C {(test)} {($ Id.VSub_Pound '$#')} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(0)})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(-k)} {(--keep-index)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:keep_index) op: assign_op.Equal rhs: {(t)} spids: [1389] ) ] ) ] spids: [1383 1386 1393 -1] ) (case_arm pat_list: [{(--no-keep-index)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:keep_index) op: assign_op.Equal rhs: {(n)} spids: [1400] ) ] ) ] spids: [1396 1397 1404 -1] ) (case_arm pat_list: [{(-p)} {(--patch)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:patch_mode) op: assign_op.Equal rhs: {(t)} spids: [1413] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$keep_index'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:keep_index) op: assign_op.Equal rhs: {(t)} spids: [1431] ) ] ) ] ) ] spids: [1407 1410 1435 -1] ) (case_arm pat_list: [{(-q)} {(--quiet)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_QUIET) op: assign_op.Equal rhs: {(t)} spids: [1444] ) ] ) ] spids: [1438 1441 1448 -1] ) (case_arm pat_list: [{(-u)} {(--include-untracked)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:untracked) op: assign_op.Equal rhs: {(untracked)} spids: [1457] ) ] ) ] spids: [1451 1454 1461 -1] ) (case_arm pat_list: [{(-a)} {(--all)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:untracked) op: assign_op.Equal rhs: {(all)} spids: [1470] ) ] ) ] spids: [1464 1467 1474 -1] ) (case_arm pat_list: [{(--help)}] action: [(C {(show_help)})] spids: [1477 1478 1484 -1] ) (case_arm pat_list: [{(--)}] action: [ (C {(shift)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:1494) ) ] spids: [1487 1488 1497 -1] ) (case_arm pat_list: [{(-) (Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1505] ) ] ) (C {(eval_gettextln)} { (DQ ("error: unknown option for 'stash save': ") (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:1555) ) ('option\n') (" To provide a message, use git stash save -- '") (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:1558) ) ("option'") ) } ) (C {(usage)}) ] spids: [1500 1502 1566 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:1573) ) ] spids: [1569 1570 1576 -1] ) ] ) (C {(shift)}) ] ) ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$patch_mode'))}) (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$untracked'))}) ] ) ] action: [ (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1616) command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ( "Can't use --patch and --include-untracked or --all at the same time" ) ) } ) ] ) ) ) } ) ] spids: [1589 1610] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stash_msg) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Star '$*'))} spids: [1630] ) ] ) (C {(git)} {(update-index)} {(-q)} {(--refresh)}) (command.If arms: [ (if_arm cond: [(C {(no_changes)})] action: [ (C {(say)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1657) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('No local changes to save'))})] ) ) ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1667) arg_word: {(0)} ) ] spids: [1646 1651] ) ] ) (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (C {(git)} {(reflog)} {(exists)} {($ Id.VSub_DollarName '$ref_stash')}) (C {(clear_stash)}) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1693) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('Cannot initialize stash'))})] ) ) ) } ) ] ) (C {(create_stash)} {(DQ ($ Id.VSub_DollarName '$stash_msg'))} {($ Id.VSub_DollarName '$untracked')} ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(store_stash)} {(-m)} {(DQ ($ Id.VSub_DollarName '$stash_msg'))} {(-q)} {($ Id.VSub_DollarName '$w_commit')} ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1731) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('Cannot save the current status'))})] ) ) ) } ) ] ) (C {(say)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1744) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Saved working directory and index state ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:1749) ) (stash_msg) ) } ) ] ) ) ) } ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$patch_mode'))})] action: [ (C {(git)} {(reset)} {(--hard)} { (braced_var_sub token: (Token id:Id.VSub_Name val:GIT_QUIET span_id:1778) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonPlus arg_word:{(-q)}) ) } ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(test)} {(DQ ($ Id.VSub_DollarName '$untracked'))} {(Id.Lit_Equals '=')} {(DQ (all))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLEAN_X_OPTION) op: assign_op.Equal rhs: {(-x)} spids: [1798] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLEAN_X_OPTION) op: assign_op.Equal rhs: (word.Empty) spids: [1803] ) ] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$untracked'))})] action: [ (C {(git)} {(clean)} {(--force)} {(--quiet)} {(-d)} {($ Id.VSub_DollarName '$CLEAN_X_OPTION')} ) ] spids: [1806 1817] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {(DQ ($ Id.VSub_DollarName '$keep_index'))} {(Id.Lit_Equals '=')} {(DQ (t))} ) (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$i_tree'))}) ] ) ] action: [ (C {(git)} {(read-tree)} {(--reset)} {(-u)} {($ Id.VSub_DollarName '$i_tree')}) ] spids: [1837 1862] ) ] ) ] spids: [1757 1768] ) ] else_action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{(git)} {(apply)} {(-R)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:1888) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$TMP') (-patch))} ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1901) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('Cannot remove worktree changes'))})] ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ Id.VSub_DollarName '$keep_index'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (t))} ) ] action: [(C {(git)} {(reset)})] spids: [1912 1928] ) ] ) ] ) ] ) ) (command.ShFunction name: have_stash body: (command.BraceGroup children: [ (command.Simple words: [{(git)} {(rev-parse)} {(--verify)} {(--quiet)} {($ Id.VSub_DollarName '$ref_stash')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1962) fd: -1 arg_word: {(/dev/null)} ) ] ) ] ) ) (command.ShFunction name: list_stash body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(have_stash)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1980) arg_word: {(0)} ) ] ) (C {(git)} {(log)} {(--format) (Id.Lit_Equals '=') (DQ ('%gd: %gs'))} {(-g)} {(--first-parent)} {(-m)} {(DQ ($ Id.VSub_At '$@'))} {($ Id.VSub_DollarName '$ref_stash')} {(--)} ) ] ) ) (command.ShFunction name: show_stash body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ALLOW_UNKNOWN_FLAGS) op: assign_op.Equal rhs: {(t)} spids: [2020] ) ] ) (C {(assert_stash_like)} {(DQ ($ Id.VSub_At '$@'))}) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$FLAGS'))})] action: [ (command.If arms: [ (if_arm cond: [ (C {(test)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2051) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(git)} {(config)} {(--bool)} {(stash.showStat)}) (C {(echo)} {(true)}) ] ) ] ) ) ) } {(Id.Lit_Equals '=')} {(DQ (true))} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FLAGS) op: assign_op.Equal rhs: {(--stat)} spids: [2078] ) ] ) ] spids: [2046 2075] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(test)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2091) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(git)} {(config)} {(--bool)} {(stash.showPatch)}) (C {(echo)} {(false)}) ] ) ] ) ) ) } {(Id.Lit_Equals '=')} {(DQ (true))} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FLAGS) op: assign_op.Equal rhs: {(${ Id.VSub_Name FLAGS) (braced_var_sub token: (Token id:Id.VSub_Name val:FLAGS span_id:2123) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(' ')} ) ) (-p) } spids: [2118] ) ] ) ] spids: [2086 2115] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$FLAGS'))})] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:2148) arg_word: {(0)} ) ] spids: [2134 2145] ) ] ) ] spids: [2032 2043] ) ] ) (C {(git)} {(diff)} {(${ Id.VSub_Name FLAGS)} {($ Id.VSub_DollarName '$b_commit')} {($ Id.VSub_DollarName '$w_commit')} ) ] ) ) (command.ShFunction name: show_help body: (command.BraceGroup children: [ (C {(exec)} {(git)} {(help)} {(stash)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:2192) arg_word: {(1)} ) ] ) ) (command.ShFunction name: parse_flags_and_rev body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {(DQ ($ Id.VSub_DollarName '$PARSE_CACHE'))} {(Id.Lit_Equals '=')} {(DQ ($ Id.VSub_Star '$*'))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:2326) arg_word: {(0)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARSE_CACHE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Star '$*'))} spids: [2334] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IS_STASH_LIKE) op: assign_op.Equal rhs: (word.Empty) spids: [2341] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IS_STASH_REF) op: assign_op.Equal rhs: (word.Empty) spids: [2344] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INDEX_OPTION) op: assign_op.Equal rhs: (word.Empty) spids: [2347] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s) op: assign_op.Equal rhs: (word.Empty) spids: [2350] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:w_commit) op: assign_op.Equal rhs: (word.Empty) spids: [2353] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b_commit) op: assign_op.Equal rhs: (word.Empty) spids: [2356] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i_commit) op: assign_op.Equal rhs: (word.Empty) spids: [2359] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:u_commit) op: assign_op.Equal rhs: (word.Empty) spids: [2362] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:w_tree) op: assign_op.Equal rhs: (word.Empty) spids: [2365] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b_tree) op: assign_op.Equal rhs: (word.Empty) spids: [2368] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i_tree) op: assign_op.Equal rhs: (word.Empty) spids: [2371] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:u_tree) op: assign_op.Equal rhs: (word.Empty) spids: [2374] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REV) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2379) command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--no-flags)} {(--symbolic)} {(--sq)} {(DQ ($ Id.VSub_At '$@'))} ) ] ) ) } spids: [2378] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:2397) arg_word: {(1)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FLAGS) op: assign_op.Equal rhs: (word.Empty) spids: [2403] ) ] ) (command.ForEach iter_name: opt do_arg_iter: T body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$opt'))} arms: [ (case_arm pat_list: [{(-q)} {(--quiet)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_QUIET) op: assign_op.Equal rhs: {(-t)} spids: [2429] ) ] ) ] spids: [2423 2426 2433 -1] ) (case_arm pat_list: [{(--index)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INDEX_OPTION) op: assign_op.Equal rhs: {(--index)} spids: [2440] ) ] ) ] spids: [2436 2437 2444 -1] ) (case_arm pat_list: [{(--help)}] action: [(C {(show_help)})] spids: [2447 2448 2454 -1] ) (case_arm pat_list: [{(-) (Id.Lit_Star '*')}] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(DQ ($ Id.VSub_DollarName '$ALLOW_UNKNOWN_FLAGS'))} {(Id.Lit_Equals '=')} {(t)} ) (C {(die)} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 2478 ) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('unknown option: ') (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\$' span_id: 2483 ) ) (opt) ) } ) ] ) ) ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FLAGS) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name FLAGS) (braced_var_sub token: (Token id:Id.VSub_Name val:FLAGS span_id:2496) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(' ')} ) ) ($ Id.VSub_DollarName '$opt') ) } spids: [2490] ) ] ) ] spids: [2457 2459 2504 -1] ) ] ) ] ) ) (C {(eval)} {(Id.KW_Set set)} {(--)} {($ Id.VSub_DollarName '$REV')}) (command.Case to_match: {($ Id.VSub_Pound '$#')} arms: [ (case_arm pat_list: [{(0)}] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(have_stash)}) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2542) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('No stash found.'))})] ) ) ) } ) ] ) (C {(Id.KW_Set set)} {(--)} {(${ Id.VSub_Name ref_stash) (Id.Lit_Other '@') (Id.Lit_LBrace '{') (0) (Id.Lit_RBrace '}') } ) ] spids: [2531 2532 2565 -1] ) (case_arm pat_list: [{(1)}] action: [(C {(Id.Lit_Other ':')})] spids: [2568 2569 2575 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2585) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Too many revisions specified: ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:2590) ) (REV) ) } ) ] ) ) ) } ) ] spids: [2578 2579 2597 -1] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REV) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2605) command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--symbolic)} {(--verify)} {(--quiet)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ) } spids: [2604] ) ] ) (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:reference) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [2626] ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2635) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:2639) ) ('reference is not a valid reference') ) } ) ] ) ) ) } ) ] ) ] ) (command.AndOr 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 ] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i_commit) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2651) command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(DQ ($ Id.VSub_DollarName '$REV') ('^2'))} ) ] ) ) } spids: [2650] ) ] ) (C {(Id.KW_Set set)} {(--)} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2673) command_list: (command.CommandList children: [ (command.Simple 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.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:2702) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [2709] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:w_commit) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [2715] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b_commit) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [2721] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:w_tree) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [2727] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b_tree) op: assign_op.Equal rhs: {($ Id.VSub_Number '$4')} spids: [2733] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i_tree) op: assign_op.Equal rhs: {($ Id.VSub_Number '$5')} spids: [2739] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IS_STASH_LIKE) op: assign_op.Equal rhs: {(t)} spids: [2745] ) ] ) (C {(test)} {(DQ ($ Id.VSub_DollarName '$ref_stash'))} {(Id.Lit_Equals '=')} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2760) command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--symbolic-full-name)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:REV span_id:2769) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {('@*')} ) ) ) } ) ] ) ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IS_STASH_REF) op: assign_op.Equal rhs: {(t)} spids: [2780] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:u_commit) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2786) command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(DQ ($ Id.VSub_DollarName '$REV') ('^3'))} ) ] ) ) } spids: [2785] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:u_tree) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2805) command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(rev-parse)} {(DQ ($ Id.VSub_DollarName '$REV') ('^3:'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:2815) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } spids: [2804] ) ] ) ] ) ] ) ) (command.ShFunction name: is_stash_like body: (command.BraceGroup children: [ (C {(parse_flags_and_rev)} {(DQ ($ Id.VSub_At '$@'))}) (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$IS_STASH_LIKE'))}) ] ) ) (command.ShFunction name: assert_stash_like body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(is_stash_like)} {(DQ ($ Id.VSub_At '$@'))}) (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:args) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Star '$*'))} spids: [2865] ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2874) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ("'") (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:2879) ) ("args' is not a stash-like commit") ) } ) ] ) ) ) } ) ] ) ] ) ] ) ) (command.ShFunction name: is_stash_ref body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(is_stash_like)} {(DQ ($ Id.VSub_At '$@'))}) (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$IS_STASH_REF'))}) ] ) ] ) ) (command.ShFunction name: assert_stash_ref body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(is_stash_ref)} {(DQ ($ Id.VSub_At '$@'))}) (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:args) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Star '$*'))} spids: [2935] ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2944) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ("'") (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:2949) ) ("args' is not a stash reference") ) } ) ] ) ) ) } ) ] ) ] ) ] ) ) (command.ShFunction name: apply_stash body: (command.BraceGroup children: [ (C {(assert_stash_like)} {(DQ ($ Id.VSub_At '$@'))}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(git)} {(update-index)} {(-q)} {(--refresh)}) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2991) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('unable to refresh index'))})] ) ) ) } ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:c_tree) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3007) command_list: (command.CommandList children:[(C {(git)} {(write-tree)})]) ) } spids: [3006] ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3019) command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Cannot apply a stash in the middle of a merge'))}) ] ) ) ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unstashed_index_tree) op: assign_op.Equal rhs: (word.Empty) spids: [3030] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$INDEX_OPTION'))}) (C {(test)} {(DQ ($ Id.VSub_DollarName '$b_tree'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$i_tree'))} ) (C {(test)} {(DQ ($ Id.VSub_DollarName '$c_tree'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$i_tree'))} ) ] ) ] action: [ (command.Pipeline children: [ (C {(git)} {(diff-tree)} {(--binary)} {($ Id.VSub_DollarName '$s') (Id.Lit_Other '^') (2) (Id.Lit_Other '^') (..) ($ Id.VSub_DollarName '$s') (Id.Lit_Other '^') (2) } ) (C {(git)} {(apply)} {(--cached)}) ] negated: F ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {($ Id.VSub_QMark '$?')} {(-ne)} {(0)}) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3116) command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Conflicts in index. Try without --index.'))}) ] ) ) ) } ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unstashed_index_tree) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3127) command_list: (command.CommandList children: [(C {(git)} {(write-tree)})] ) ) } spids: [3126] ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3139) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('Could not save index tree'))})] ) ) ) } ) ] ) (C {(git)} {(reset)}) ] spids: [3033 3075] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$u_tree'))})] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe] children: [ (command.Simple words: [{(git-read-tree)} {(DQ ($ Id.VSub_DollarName '$u_tree'))}] more_env: [ (env_pair name: GIT_INDEX_FILE val: {(DQ ($ Id.VSub_DollarName '$TMPindex'))} spids: [3172] ) ] ) (command.Simple words: [{(git)} {(checkout-index)} {(--all)}] more_env: [ (env_pair name: GIT_INDEX_FILE val: {(DQ ($ Id.VSub_DollarName '$TMPindex'))} spids: [3186] ) ] ) (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$TMPindex'))}) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3214) command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Could not restore untracked files from stash'))} ) ] ) ) ) } ) ] ) ] spids: [3158 3169] ) ] ) (C {(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') ) } ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$GIT_QUIET'))})] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_MERGE_VERBOSITY) op: assign_op.Equal rhs: {(0)} spids: [3267] ) ] ) (C {(export)} {(GIT_MERGE_VERBOSITY)}) ] ) ] spids: [3253 3264] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(git)} {(merge-recursive)} {($ Id.VSub_DollarName '$b_tree')} {(--)} {($ Id.VSub_DollarName '$c_tree')} {($ Id.VSub_DollarName '$w_tree')} ) ] action: [ (command.If arms: [ (if_arm cond: [ (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$unstashed_index_tree'))}) ] action: [ (C {(git)} {(read-tree)} {(DQ ($ Id.VSub_DollarName '$unstashed_index_tree'))} ) ] spids: [3302 3313] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:a) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TMP') (-added))} spids: [3328] ) ] ) (command.Simple words: [ {(git)} {(diff-index)} {(--cached)} {(--name-only)} {(--diff-filter) (Id.Lit_Equals '=') (A)} {($ Id.VSub_DollarName '$c_tree')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:3351) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$a'))} ) ] ) (C {(git)} {(read-tree)} {(--reset)} {($ Id.VSub_DollarName '$c_tree')}) (command.Simple words: [{(git)} {(update-index)} {(--add)} {(--stdin)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:3378) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$a'))} ) ] ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3389) command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Cannot unstage modified files'))}) ] ) ) ) } ) ] ) (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$a'))}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:squelch) op: assign_op.Equal rhs: (word.Empty) spids: [3411] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$GIT_QUIET'))})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:squelch) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'>/dev/null 2>&1' span_id:3430))} spids: [3428] ) ] ) ] spids: [3414 3425] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(cd)} {(DQ ($ Id.VSub_DollarName '$START_DIR'))}) (C {(eval)} {(DQ ('git status ') ($ Id.VSub_DollarName '$squelch'))}) ] ) ] ) ) (C {(Id.Lit_Other ':')}) ] ) ] spids: [3280 3295] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [3466] ) ] ) (C {(git)} {(rerere)}) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$INDEX_OPTION'))})] action: [ (command.Simple words: [{(gettextln)} {(DQ ('Index was not unstashed.'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3495) fd: -1 arg_word: {(2)} ) ] ) ] spids: [3475 3486] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:3502) arg_word: {($ Id.VSub_DollarName '$status')} ) ] ) ] ) ) (command.ShFunction name: pop_stash body: (command.BraceGroup children: [ (C {(assert_stash_ref)} {(DQ ($ Id.VSub_At '$@'))}) (command.If arms: [ (if_arm cond: [(C {(apply_stash)} {(DQ ($ Id.VSub_At '$@'))})] action: [(C {(drop_stash)} {(DQ ($ Id.VSub_At '$@'))})] spids: [3527 3536] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [3549] ) ] ) (C {(say)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3556) command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('The stash is kept in case you need it again.'))}) ] ) ) ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:3566) arg_word: {($ Id.VSub_DollarName '$status')} ) ] ) ] ) ) (command.ShFunction name: drop_stash body: (command.BraceGroup children: [ (C {(assert_stash_ref)} {(DQ ($ Id.VSub_At '$@'))}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(git)} {(reflog)} {(delete)} {(--updateref)} {(--rewrite)} {(DQ (${ Id.VSub_Name REV))}) (C {(say)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3614) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Dropped ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:3619) ) ('{REV} (') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:3621)) ('s)') ) } ) ] ) ) ) } ) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3633) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:3637) ) ('{REV}: Could not drop stash entry') ) } ) ] ) ) ) } ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(DQ ($ Id.VSub_DollarName '$ref_stash') ('@{0}'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:3662) fd: -1 arg_word: {(/dev/null)} ) ] ) (C {(clear_stash)}) ] ) ] ) ) (command.ShFunction name: apply_to_branch body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(-n)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(die)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3694) command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('No branch name specified'))})] ) ) ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:branch) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [3704] ) ] ) (C {(shift)} {(1)}) (C {(Id.KW_Set set)} {(--)} {(--index)} {(DQ ($ Id.VSub_At '$@'))}) (C {(assert_stash_like)} {(DQ ($ Id.VSub_At '$@'))}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(git)} {(checkout)} {(-b)} {($ Id.VSub_DollarName '$branch')} {($ Id.VSub_DollarName '$REV') (Id.Lit_Other '^')} ) (C {(apply_stash)} {(DQ ($ Id.VSub_At '$@'))}) (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$IS_STASH_REF'))}) (C {(drop_stash)} {(DQ ($ Id.VSub_At '$@'))}) ] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARSE_CACHE) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:--not-parsed span_id:3782))} spids: [3780] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:seen_non_option) op: assign_op.Equal rhs: (word.Empty) spids: [3788] ) ] ) (command.ForEach iter_name: opt do_arg_iter: T body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$opt'))} arms: [ (case_arm pat_list: [{(-) (Id.Lit_Star '*')}] spids: [3806 3808 3810 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:seen_non_option) op: assign_op.Equal rhs: {(t)} spids: [3816] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:3818) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:3820) ) ] spids: [3813 3814 3822 -1] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$seen_non_option'))}) (C {(Id.KW_Set set)} {(DQ (save))} {(DQ ($ Id.VSub_At '$@'))}) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(list)}] action: [(C {(shift)}) (C {(list_stash)} {(DQ ($ Id.VSub_At '$@'))})] spids: [3862 3863 3876 -1] ) (case_arm pat_list: [{(show)}] action: [(C {(shift)}) (C {(show_stash)} {(DQ ($ Id.VSub_At '$@'))})] spids: [3878 3879 3892 -1] ) (case_arm pat_list: [{(save)}] action: [(C {(shift)}) (C {(save_stash)} {(DQ ($ Id.VSub_At '$@'))})] spids: [3894 3895 3908 -1] ) (case_arm pat_list: [{(apply)}] action: [(C {(shift)}) (C {(apply_stash)} {(DQ ($ Id.VSub_At '$@'))})] spids: [3910 3911 3924 -1] ) (case_arm pat_list: [{(clear)}] action: [(C {(shift)}) (C {(clear_stash)} {(DQ ($ Id.VSub_At '$@'))})] spids: [3926 3927 3940 -1] ) (case_arm pat_list: [{(create)}] action: [ (C {(shift)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(create_stash)} {(DQ ($ Id.VSub_Star '$*'))}) (C {(echo)} {(DQ ($ Id.VSub_DollarName '$w_commit'))}) ] ) ] spids: [3942 3943 3964 -1] ) (case_arm pat_list: [{(store)}] action: [(C {(shift)}) (C {(store_stash)} {(DQ ($ Id.VSub_At '$@'))})] spids: [3966 3967 3980 -1] ) (case_arm pat_list: [{(drop)}] action: [(C {(shift)}) (C {(drop_stash)} {(DQ ($ Id.VSub_At '$@'))})] spids: [3982 3983 3996 -1] ) (case_arm pat_list: [{(pop)}] action: [(C {(shift)}) (C {(pop_stash)} {(DQ ($ Id.VSub_At '$@'))})] spids: [3998 3999 4012 -1] ) (case_arm pat_list: [{(branch)}] action: [(C {(shift)}) (C {(apply_to_branch)} {(DQ ($ Id.VSub_At '$@'))})] spids: [4014 4015 4028 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Case to_match: {($ Id.VSub_Pound '$#')} arms: [ (case_arm pat_list: [{(0)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(save_stash)}) (C {(say)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4053) command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ('(To restore them type ') (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\"' span_id: 4058 ) ) ('git stash apply') (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\"' span_id: 4060 ) ) (')') ) } ) ] ) ) ) } ) ] ) ] spids: [4041 4042 4067 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [(C {(usage)})] spids: [4070 4071 -1 4077] ) ] ) ] spids: [4030 4031 4080 -1] ) ] ) ] )