(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:USAGE) op: Equal rhs: { (SQ < '[--tool=tool] [--tool-help] [-y|--no-prompt|--prompt] [-O<orderfile>] [file to merge] ...' > ) } spids: [31] ) ] spids: [31] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SUBDIRECTORY_OK) op:Equal rhs:{(Yes)} spids:[36])] spids: [36] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:NONGIT_OK) op:Equal rhs:{(Yes)} spids:[39])] spids: [39] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTIONS_SPEC) op:Equal rhs:{(EmptyPart)} spids:[42])] spids: [42] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TOOL_MODE) op:Equal rhs:{(merge)} spids:[44])] spids: [44] ) (C {(.)} {(git-sh-setup)}) (C {(.)} {(git-mergetool--lib)}) (FuncDef name: is_symlink body: (BraceGroup children: [(C {(test)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(120000)})] spids: [64] ) spids: [59 63] ) (FuncDef name: is_submodule body: (BraceGroup children: [(C {(test)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(160000)})] spids: [85] ) spids: [80 84] ) (FuncDef name: local_present body: (BraceGroup children: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$local_mode'))})] spids: [106] ) spids: [101 105] ) (FuncDef name: remote_present body: (BraceGroup children: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$remote_mode'))})] spids: [125] ) spids: [120 124] ) (FuncDef name: base_present body: (BraceGroup children:[(C {(test)} {(-n)} {(DQ ($ VSub_Name '$base_mode'))})] spids:[144]) spids: [139 143] ) (FuncDef name: mergetool_tmpdir_init body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (C {(test)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--bool)} {(mergetool.writeToTemp)})] ) left_token: <Left_CommandSub '$('> spids: [171 179] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(true)} ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MERGETOOL_TMPDIR) op: Equal rhs: {(.)} spids: [191] ) ] spids: [191] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 188] ) ] spids: [16777215 200] ) (If arms: [ (if_arm cond: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MERGETOOL_TMPDIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(mktemp)} {(-d)} {(-t)} {(DQ (git-mergetool-XXXXXX))}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [217] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [206 219] ) } spids: [205] ) ] spids: [205] ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 222] ) ] spids: [16777215 230] ) (C {(die)} {(DQ ("error: mktemp is needed when 'mergetool.writeToTemp' is true"))}) ] spids: [163] ) spids: [158 162] ) (FuncDef name: cleanup_temp_files body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(--save-backup)})] action: [ (C {(rm)} {(-rf)} {(--)} {(DQ ($ VSub_Name '$MERGED') (.orig))}) (AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-e)} {(DQ ($ VSub_Name '$BACKUP'))}) (C {(mv)} {(--)} {(DQ ($ VSub_Name '$BACKUP'))} {(DQ ($ VSub_Name '$MERGED') (.orig))} ) ] ) (C {(rm)} {(-f)} {(--)} {(DQ ($ VSub_Name '$LOCAL'))} {(DQ ($ VSub_Name '$REMOTE'))} {(DQ ($ VSub_Name '$BASE'))} ) ] spids: [16777215 263] ) ] else_action: [ (C {(rm)} {(-f)} {(--)} {(DQ ($ VSub_Name '$LOCAL'))} {(DQ ($ VSub_Name '$REMOTE'))} {(DQ ($ VSub_Name '$BASE'))} {(DQ ($ VSub_Name '$BACKUP'))} ) ] spids: [321 347] ) (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name '$MERGETOOL_TMPDIR'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (.))} ) ] action: [(C {(rmdir)} {(DQ ($ VSub_Name '$MERGETOOL_TMPDIR'))})] spids: [16777215 366] ) ] spids: [16777215 376] ) ] spids: [247] ) spids: [242 246] ) (FuncDef name: describe_file body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mode) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [389] ) ] spids: [389] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:branch) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [395] ) ] spids: [395] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [401] ) ] spids: [401] ) (C {(printf)} {(DQ (' {%s}: '))} {(DQ ($ VSub_Name '$branch'))}) (If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$mode'))})] action: [(C {(echo)} {(DQ (deleted))})] spids: [16777215 430] ) (if_arm cond: [(C {(is_symlink)} {(DQ ($ VSub_Name '$mode'))})] action: [ (C {(echo)} { (DQ ("a symbolic link -> '") (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(DQ ($ VSub_Name '$file'))})] ) left_token: <Left_CommandSub '$('> spids: [456 462] ) ("'") ) } ) ] spids: [440 449] ) (if_arm cond: [(C {(is_submodule)} {(DQ ($ VSub_Name '$mode'))})] action: [(C {(echo)} {(DQ ('submodule commit ') ($ VSub_Name '$file'))})] spids: [467 476] ) (if_arm cond: [(C {(base_present)})] action: [(C {(echo)} {(DQ ('modified file'))})] spids: [487 492] ) ] else_action: [(C {(echo)} {(DQ ('created file'))})] spids: [502 512] ) ] spids: [386] ) spids: [381 385] ) (FuncDef name: resolve_symlink_merge body: (BraceGroup children: [ (While cond: [(C {(true)})] body: (DoGroup children: [ (C {(printf)} {(DQ ('Use (l)ocal or (r)emote, or (a)bort? '))}) (AndOr ops: [Op_DPipe] children: [ (C {(read)} {(ans)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (Case to_match: {(DQ ($ VSub_Name '$ans'))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (lL) (Lit_Other ']') (Lit_Other '*')}] action: [ (C {(git)} {(checkout-index)} {(-f)} {(--stage) (Lit_Other '=') (2)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} ) (C {(git)} {(add)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}) (C {(cleanup_temp_files)} {(--save-backup)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [560 564 605 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (rR) (Lit_Other ']') (Lit_Other '*')}] action: [ (C {(git)} {(checkout-index)} {(-f)} {(--stage) (Lit_Other '=') (3)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} ) (C {(git)} {(add)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}) (C {(cleanup_temp_files)} {(--save-backup)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [608 612 653 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (aA) (Lit_Other ']') (Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [656 660 668 16777215] ) ] spids: [551 557 671] ) ] spids: [530 674] ) ) ] spids: [522] ) spids: [517 521] ) (FuncDef name: resolve_deleted_merge body: (BraceGroup children: [ (While cond: [(C {(true)})] body: (DoGroup children: [ (If arms: [ (if_arm cond: [(C {(base_present)})] action: [ (C {(printf)} {(DQ ('Use (m)odified or (d)eleted file, or (a)bort? '))}) ] spids: [16777215 700] ) ] else_action: [ (C {(printf)} {(DQ ('Use (c)reated or (d)eleted file, or (a)bort? '))}) ] spids: [710 720] ) (AndOr ops: [Op_DPipe] children: [ (C {(read)} {(ans)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (Case to_match: {(DQ ($ VSub_Name '$ans'))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (mMcC) (Lit_Other ']') (Lit_Other '*')}] action: [ (C {(git)} {(add)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}) (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name '$merge_keep_backup'))} {(Lit_Other '=')} {(DQ (true))} ) ] action: [(C {(cleanup_temp_files)} {(--save-backup)})] spids: [16777215 776] ) ] else_action: [(C {(cleanup_temp_files)})] spids: [784 790] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [743 747 798 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (dD) (Lit_Other ']') (Lit_Other '*')}] action: [ (SimpleCommand words: [{(git)} {(rm)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [818] ) ] ) (C {(cleanup_temp_files)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [801 805 831 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (aA) (Lit_Other ']') (Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name '$merge_keep_temporaries'))} {(Lit_Other '=')} {(DQ (false))} ) ] action: [(C {(cleanup_temp_files)})] spids: [16777215 856] ) ] spids: [16777215 862] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [834 838 870 16777215] ) ] spids: [734 740 873] ) ] spids: [692 876] ) ) ] spids: [684] ) spids: [679 683] ) (FuncDef name: resolve_submodule_merge body: (BraceGroup children: [ (While cond: [(C {(true)})] body: (DoGroup children: [ (C {(printf)} {(DQ ('Use (l)ocal or (r)emote, or (a)bort? '))}) (AndOr ops: [Op_DPipe] children: [ (C {(read)} {(ans)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (Case to_match: {(DQ ($ VSub_Name '$ans'))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (lL) (Lit_Other ']') (Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [(Pipeline children:[(C {(local_present)})] negated:T)] action: [ (If arms: [ (if_arm cond: [ (C {(test)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(ls-tree)} {(HEAD)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [948 960] ) ) } ) ] action: [ (AndOr ops: [Op_DPipe] children: [ (Pipeline children: [ (C {(git)} {(ls-tree)} {(--full-name)} {(-r)} {(HEAD)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} ) (C {(git)} {(update-index)} {(--index-info)}) ] negated: F ) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] ) ] spids: [16777215 964] ) ] else_action: [ (AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-e)} {(DQ ($ VSub_Name '$MERGED'))}) (C {(mv)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} {(DQ ($ VSub_Name '$BACKUP'))} ) ] ) (C {(git)} {(update-index)} {(--force-remove)} {(DQ ($ VSub_Name '$MERGED'))} ) (C {(cleanup_temp_files)} {(--save-backup)}) ] spids: [1003 1045] ) ] spids: [16777215 938] ) (if_arm cond: [(C {(is_submodule)} {(DQ ($ VSub_Name '$local_mode'))})] action: [ (C {(stage_submodule)} {(DQ ($ VSub_Name '$MERGED'))} {(DQ ($ VSub_Name '$local_sha1'))} ) ] spids: [1048 1057] ) ] else_action: [ (C {(git)} {(checkout-index)} {(-f)} {(--stage) (Lit_Other '=') (2)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} ) (C {(git)} {(add)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}) ] spids: [1071 1102] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [924 928 1110 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (rR) (Lit_Other ']') (Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [(Pipeline children:[(C {(remote_present)})] negated:T)] action: [ (If arms: [ (if_arm cond: [ (C {(test)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(ls-tree)} {(MERGE_HEAD)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1137 1149] ) ) } ) ] action: [ (AndOr ops: [Op_DPipe] children: [ (Pipeline children: [ (C {(git)} {(ls-tree)} {(--full-name)} {(-r)} {(MERGE_HEAD)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} ) (C {(git)} {(update-index)} {(--index-info)}) ] negated: F ) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] ) ] spids: [16777215 1153] ) ] else_action: [ (AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-e)} {(DQ ($ VSub_Name '$MERGED'))}) (C {(mv)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} {(DQ ($ VSub_Name '$BACKUP'))} ) ] ) (C {(git)} {(update-index)} {(--force-remove)} {(DQ ($ VSub_Name '$MERGED'))} ) ] spids: [1192 1229] ) ] spids: [16777215 1127] ) (if_arm cond: [(C {(is_submodule)} {(DQ ($ VSub_Name '$remote_mode'))})] action: [ (AndOr ops: [Op_DAmp Op_DAmp] children: [ (Pipeline children: [ (C {(is_submodule)} {(DQ ($ VSub_Name '$local_mode'))}) ] negated: T ) (C {(test)} {(-e)} {(DQ ($ VSub_Name '$MERGED'))}) (C {(mv)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} {(DQ ($ VSub_Name '$BACKUP'))} ) ] ) (C {(stage_submodule)} {(DQ ($ VSub_Name '$MERGED'))} {(DQ ($ VSub_Name '$remote_sha1'))} ) ] spids: [1232 1241] ) ] else_action: [ (AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-e)} {(DQ ($ VSub_Name '$MERGED'))}) (C {(mv)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} {(DQ ($ VSub_Name '$BACKUP'))} ) ] ) (C {(git)} {(checkout-index)} {(-f)} {(--stage) (Lit_Other '=') (3)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} ) (C {(git)} {(add)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}) ] spids: [1290 1344] ) (C {(cleanup_temp_files)} {(--save-backup)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [1113 1117 1357 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (aA) (Lit_Other ']') (Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1360 1364 1372 16777215] ) ] spids: [915 921 1375] ) ] spids: [894 1378] ) ) ] spids: [886] ) spids: [881 885] ) (FuncDef name: stage_submodule body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:path) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [1391] ) ] spids: [1391] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:submodule_sha1) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [1397] ) ] spids: [1397] ) (AndOr ops: [Op_DPipe] children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$path'))}) (C {(die)} {(DQ ('fatal: unable to create directory for module at ') ($ VSub_Name '$path'))} ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:work_tree_root) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr ops: [Op_DAmp] children: [(C {(cd_to_toplevel)}) (C {(pwd)})] ) ] ) left_token: <Left_CommandSub '$('> spids: [1427 1433] ) } spids: [1426] ) ] spids: [1426] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:work_rel_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr ops: [Op_DAmp] children: [ (C {(cd)} {(DQ ($ VSub_Name '$path'))}) (SimpleCommand words: [{(git)} {(rev-parse)} {(--show-prefix)}] more_env: [ (env_pair name: GIT_WORK_TREE val: {(DQ (${ VSub_Name work_tree_root))} spids: [1447] ) ] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1437 1461] ) } spids: [1436] ) ] spids: [1436] ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-n)} {(DQ ($ VSub_Name '$work_rel_path'))}) (C {(die)} { (DQ ('fatal: unable to get path of module ') ($ VSub_Name '$path') (' relative to work tree') ) } ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(git)} {(update-index)} {(--add)} {(--replace)} {(--cacheinfo)} {(160000)} {(DQ ($ VSub_Name '$submodule_sha1'))} { (DQ (BracedVarSub token: <VSub_Name work_rel_path> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /)}) spids: [1501 1505] ) ) } ) (C {(die)}) ] ) ] spids: [1388] ) spids: [1383 1387] ) (FuncDef name: checkout_staged_file body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tmpfile) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} { (DQ (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(git)} {(checkout-index)} {(--temp)} {(--stage) (Lit_Other '=') (DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1547] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1530 1549] ) ) } {(Lit_Other ':')} {(SQ <'\\([^\t]*\\)\t'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [1524 1559] ) } spids: [1523] ) ] spids: [1523] ) (If arms: [ (if_arm cond: [ (AndOr ops: [Op_DAmp] children: [ (C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(0)}) (C {(test)} {(-n)} {(DQ ($ VSub_Name '$tmpfile'))}) ] ) ] action: [ (C {(mv)} {(--)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(rev-parse)} {(--show-cdup)})] ) left_token: <Left_CommandSub '$('> spids: [1592 1598] ) ($ VSub_Name '$tmpfile') ) } {(DQ ($ VSub_Number '$3'))} ) ] spids: [16777215 1584] ) ] else_action: [ (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Number '$3'))} spids: [1610] ) ] ) ] spids: [1607 1616] ) ] spids: [1520] ) spids: [1515 1519] ) (FuncDef name: merge_file body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MERGED) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [1629] ) ] spids: [1629] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:f) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(ls-files)} {(-u)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}) ] ) left_token: <Left_CommandSub '$('> spids: [1637 1649] ) } spids: [1636] ) ] spids: [1636] ) (If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$f'))})] action: [ (If arms: [ (if_arm cond: [(C {(test)} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_Name '$MERGED'))})] action: [(C {(echo)} {(DQ ($ VSub_Name '$MERGED') (': file not found'))})] spids: [16777215 1679] ) ] else_action: [ (C {(echo)} {(DQ ($ VSub_Name '$MERGED') (': file does not need merging'))}) ] spids: [1690 1701] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 1663] ) ] spids: [16777215 1709] ) (If arms: [ (if_arm cond: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(DQ ($ VSub_Name '$MERGED'))} {(Lit_Other ':')} {(SQ <'\\(.*\\)\\.[^/]*$'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [1716 1728] ) } spids: [1715] ) ] spids: [1715] ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ext) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(DQ ($ VSub_Name '$MERGED'))} {(Lit_Other ':')} {(SQ <'.*\\(\\.[^/]*\\)$'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [1735 1747] ) } spids: [1734] ) ] spids: [1734] ) ] spids: [16777215 1731] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASE) op: Equal rhs: {($ VSub_Name '$MERGED')} spids: [1753] ) ] spids: [1753] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ext) op: Equal rhs: {(EmptyPart)} spids: [1757] ) ] spids: [1757] ) ] spids: [1750 1760] ) (C {(mergetool_tmpdir_init)}) (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name '$MERGETOOL_TMPDIR'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (.))} ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASE) op: Equal rhs: { (BracedVarSub token: <VSub_Name BASE> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [1796 1801] ) } spids: [1795] ) ] spids: [1795] ) ] spids: [16777215 1784] ) ] spids: [16777215 1804] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUP) op: Equal rhs: { (DQ ($ VSub_Name '$MERGETOOL_TMPDIR') (/) (${ VSub_Name BASE) (_BACKUP_) ($ VSub_Dollar '$$') ($ VSub_Name '$ext') ) } spids: [1808] ) ] spids: [1808] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LOCAL) op: Equal rhs: { (DQ ($ VSub_Name '$MERGETOOL_TMPDIR') (/) (${ VSub_Name BASE) (_LOCAL_) ($ VSub_Dollar '$$') ($ VSub_Name '$ext') ) } spids: [1821] ) ] spids: [1821] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REMOTE) op: Equal rhs: { (DQ ($ VSub_Name '$MERGETOOL_TMPDIR') (/) (${ VSub_Name BASE) (_REMOTE_) ($ VSub_Dollar '$$') ($ VSub_Name '$ext') ) } spids: [1834] ) ] spids: [1834] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASE) op: Equal rhs: { (DQ ($ VSub_Name '$MERGETOOL_TMPDIR') (/) (${ VSub_Name BASE) (_BASE_) ($ VSub_Dollar '$$') ($ VSub_Name '$ext') ) } spids: [1847] ) ] spids: [1847] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:base_mode) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(git)} {(ls-files)} {(-u)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}) (C {(awk)} {(SQ <'{if ($3==1) print $1;}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1862 1882] ) } spids: [1861] ) ] spids: [1861] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:local_mode) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(git)} {(ls-files)} {(-u)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}) (C {(awk)} {(SQ <'{if ($3==2) print $1;}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1886 1906] ) } spids: [1885] ) ] spids: [1885] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:remote_mode) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(git)} {(ls-files)} {(-u)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}) (C {(awk)} {(SQ <'{if ($3==3) print $1;}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1910 1930] ) } spids: [1909] ) ] spids: [1909] ) (If arms: [ (if_arm cond: [ (AndOr ops: [Op_DPipe] children: [ (C {(is_submodule)} {(DQ ($ VSub_Name '$local_mode'))}) (C {(is_submodule)} {(DQ ($ VSub_Name '$remote_mode'))}) ] ) ] action: [ (C {(echo)} {(DQ ("Submodule merge conflict for '") ($ VSub_Name '$MERGED') ("':"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:local_sha1) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(git)} {(ls-files)} {(-u)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} ) (C {(awk)} {(SQ <'{if ($3==2) print $2;}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1964 1984] ) } spids: [1963] ) ] spids: [1963] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:remote_sha1) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(git)} {(ls-files)} {(-u)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} ) (C {(awk)} {(SQ <'{if ($3==3) print $2;}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1988 2008] ) } spids: [1987] ) ] spids: [1987] ) (C {(describe_file)} {(DQ ($ VSub_Name '$local_mode'))} {(DQ (local))} {(DQ ($ VSub_Name '$local_sha1'))} ) (C {(describe_file)} {(DQ ($ VSub_Name '$remote_mode'))} {(DQ (remote))} {(DQ ($ VSub_Name '$remote_sha1'))} ) (C {(resolve_submodule_merge)}) (ControlFlow token:<ControlFlow_Return return>) ] spids: [16777215 1951] ) ] spids: [16777215 2047] ) (If arms: [ (if_arm cond: [(C {(test)} {(-f)} {(DQ ($ VSub_Name '$MERGED'))})] action: [ (C {(mv)} {(--)} {(DQ ($ VSub_Name '$MERGED'))} {(DQ ($ VSub_Name '$BACKUP'))}) (C {(cp)} {(--)} {(DQ ($ VSub_Name '$BACKUP'))} {(DQ ($ VSub_Name '$MERGED'))}) ] spids: [16777215 2062] ) ] spids: [16777215 2091] ) (C {(mkdir)} {(-p)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ ($ VSub_Name '$MERGED'))})] ) left_token: <Left_CommandSub '$('> spids: [2107 2113] ) ) } ) (C {(checkout_staged_file)} {(1)} {(DQ ($ VSub_Name '$MERGED'))} {(DQ ($ VSub_Name '$BASE'))}) (C {(checkout_staged_file)} {(2)} {(DQ ($ VSub_Name '$MERGED'))} {(DQ ($ VSub_Name '$LOCAL'))}) (C {(checkout_staged_file)} {(3)} {(DQ ($ VSub_Name '$MERGED'))} {(DQ ($ VSub_Name '$REMOTE'))} ) (If arms: [ (if_arm cond: [ (AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name '$local_mode'))}) (C {(test)} {(-z)} {(DQ ($ VSub_Name '$remote_mode'))}) ] ) ] action: [ (C {(echo)} {(DQ ("Deleted merge conflict for '") ($ VSub_Name '$MERGED') ("':"))}) (C {(describe_file)} {(DQ ($ VSub_Name '$local_mode'))} {(DQ (local))} {(DQ ($ VSub_Name '$LOCAL'))} ) (C {(describe_file)} {(DQ ($ VSub_Name '$remote_mode'))} {(DQ (remote))} {(DQ ($ VSub_Name '$REMOTE'))} ) (C {(resolve_deleted_merge)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark '$?')} spids: [2224] ) ] spids: [2224] ) (SimpleCommand words: [ {(rmdir)} {(-p)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ ($ VSub_Name '$MERGED'))})] ) left_token: <Left_CommandSub '$('> spids: [2233 2239] ) ) } ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[2242])] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_Name '$status')} ) ] spids: [16777215 2179] ) ] spids: [16777215 2251] ) (If arms: [ (if_arm cond: [ (AndOr ops: [Op_DPipe] children: [ (C {(is_symlink)} {(DQ ($ VSub_Name '$local_mode'))}) (C {(is_symlink)} {(DQ ($ VSub_Name '$remote_mode'))}) ] ) ] action: [ (C {(echo)} {(DQ ("Symbolic link merge conflict for '") ($ VSub_Name '$MERGED') ("':"))} ) (C {(describe_file)} {(DQ ($ VSub_Name '$local_mode'))} {(DQ (local))} {(DQ ($ VSub_Name '$LOCAL'))} ) (C {(describe_file)} {(DQ ($ VSub_Name '$remote_mode'))} {(DQ (remote))} {(DQ ($ VSub_Name '$REMOTE'))} ) (C {(resolve_symlink_merge)}) (ControlFlow token:<ControlFlow_Return return>) ] spids: [16777215 2272] ) ] spids: [16777215 2320] ) (C {(echo)} {(DQ ("Normal merge conflict for '") ($ VSub_Name '$MERGED') ("':"))}) (C {(describe_file)} {(DQ ($ VSub_Name '$local_mode'))} {(DQ (local))} {(DQ ($ VSub_Name '$LOCAL'))} ) (C {(describe_file)} {(DQ ($ VSub_Name '$remote_mode'))} {(DQ (remote))} {(DQ ($ VSub_Name '$REMOTE'))} ) (If arms: [ (if_arm cond: [ (AndOr ops: [Op_DPipe] children: [ (C {(test)} {(DQ ($ VSub_Name '$guessed_merge_tool'))} {(Lit_Other '=')} {(true)}) (C {(test)} {(DQ ($ VSub_Name '$prompt'))} {(Lit_Other '=')} {(true)}) ] ) ] action: [ (C {(printf)} {(DQ ('Hit return to start merge resolution tool (%s): '))} {(DQ ($ VSub_Name '$merge_tool'))} ) (AndOr ops: [Op_DPipe] children: [ (C {(read)} {(ans)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [16777215 2388] ) ] spids: [16777215 2413] ) (If arms: [ (if_arm cond: [(C {(base_present)})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:present) op: Equal rhs: {(true)} spids: [2425] ) ] spids: [2425] ) ] spids: [16777215 2422] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:present) op: Equal rhs: {(false)} spids: [2432] ) ] spids: [2432] ) ] spids: [2429 2436] ) (If arms: [ (if_arm cond: [ (Pipeline children: [ (C {(run_merge_tool)} {(DQ ($ VSub_Name '$merge_tool'))} {(DQ ($ VSub_Name '$present'))} ) ] negated: T ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('merge of ') ($ VSub_Name '$MERGED') (' failed'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[2466])] ) (C {(mv)} {(--)} {(DQ ($ VSub_Name '$BACKUP'))} {(DQ ($ VSub_Name '$MERGED'))}) (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name '$merge_keep_temporaries'))} {(Lit_Other '=')} {(DQ (false))} ) ] action: [(C {(cleanup_temp_files)})] spids: [16777215 2499] ) ] spids: [16777215 2505] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 2455] ) ] spids: [16777215 2514] ) (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name '$merge_keep_backup'))} {(Lit_Other '=')} {(DQ (true))}) ] action: [ (C {(mv)} {(--)} {(DQ ($ VSub_Name '$BACKUP'))} {(DQ ($ VSub_Name '$MERGED') (.orig))}) ] spids: [16777215 2533] ) ] else_action: [(C {(rm)} {(--)} {(DQ ($ VSub_Name '$BACKUP'))})] spids: [2550 2562] ) (C {(git)} {(add)} {(--)} {(DQ ($ VSub_Name '$MERGED'))}) (C {(cleanup_temp_files)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [1626] ) spids: [1621 1625] ) (FuncDef name: prompt_after_failed_merge body: (BraceGroup children: [ (While cond: [(C {(true)})] body: (DoGroup children: [ (C {(printf)} {(DQ ('Continue merging other unresolved paths [y/n]? '))}) (AndOr ops: [Op_DPipe] children: [ (C {(read)} {(ans)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (Case to_match: {(DQ ($ VSub_Name '$ans'))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (yY) (Lit_Other ']') (Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [2630 2634 2642 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (nN) (Lit_Other ']') (Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [2645 2649 2657 16777215] ) ] spids: [2621 2627 2660] ) ] spids: [2600 2663] ) ) ] spids: [2592] ) spids: [2587 2591] ) (FuncDef name: print_noop_and_exit body: (BraceGroup children: [ (C {(echo)} {(DQ ('No files need merging'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [2673] ) spids: [2668 2672] ) (FuncDef name: main body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prompt) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--bool)} {(mergetool.prompt)})] ) left_token: <Left_CommandSub '$('> spids: [2699 2707] ) } spids: [2698] ) ] spids: [2698] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:guessed_merge_tool) op: Equal rhs: {(false)} spids: [2710] ) ] spids: [2710] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:orderfile) op: Equal rhs: {(EmptyPart)} spids: [2714] ) ] spids: [2714] ) (While cond: [(C {(test)} {($ VSub_Pound '$#')} {(KW_Bang '!') (Lit_Other '=')} {(0)})] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(--tool-help) (Lit_Other '=') (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TOOL_MODE) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {('--tool-help=')} ) spids: [2749 2753] ) } spids: [2748] ) ] spids: [2748] ) (C {(show_tool_help)}) ] spids: [2742 2745 2759 16777215] ) (case_arm pat_list: [{(--tool-help)}] action: [(C {(show_tool_help)})] spids: [2762 2763 2769 16777215] ) (case_arm pat_list: [{(-t)} {(--tool) (Lit_Other '*')}] action: [ (Case to_match: {(DQ ($ VSub_Pound '$#') (',') ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [ {(Lit_Other '*') (Lit_Comma ',') (Lit_Other '*') (Lit_Other '=') (Lit_Other '*') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_tool) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(DQ (z) ($ VSub_Number '$1'))} {(Lit_Other ':')} {(SQ <'z-[^=]*=\\(.*\\)'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [2799 2812] ) } spids: [2798] ) ] spids: [2798] ) ] spids: [2790 2795 2815 16777215] ) (case_arm pat_list: [{(1) (Lit_Comma ',') (Lit_Other '*')}] action: [(C {(usage)})] spids: [2818 2821 2826 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_tool) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [2833] ) ] spids: [2833] ) (C {(shift)}) ] spids: [2829 2830 2841 16777215] ) ] spids: [2779 2787 2844] ) ] spids: [2772 2776 2847 16777215] ) (case_arm pat_list: [{(-y)} {(--no-prompt)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prompt) op: Equal rhs: {(false)} spids: [2856] ) ] spids: [2856] ) ] spids: [2850 2853 2860 16777215] ) (case_arm pat_list: [{(--prompt)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prompt) op: Equal rhs: {(true)} spids: [2867] ) ] spids: [2867] ) ] spids: [2863 2864 2871 16777215] ) (case_arm pat_list: [{(-O) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:orderfile) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [2879] ) ] spids: [2879] ) ] spids: [2874 2876 2885 16777215] ) (case_arm pat_list: [{(--)}] action: [(C {(shift)}) (ControlFlow token:<ControlFlow_Break break>)] spids: [2888 2889 2898 16777215] ) (case_arm pat_list: [{(-) (Lit_Other '*')}] action: [(C {(usage)})] spids: [2901 2903 2909 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [2912 2913 2919 16777215] ) ] spids: [2733 2739 2922] ) (C {(shift)}) ] spids: [2730 2928] ) ) (C {(git_dir_init)}) (C {(require_work_tree)}) (If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$merge_tool'))})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_tool) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(get_configured_merge_tool)})] ) left_token: <Left_CommandSub '$('> spids: [2958 2960] ) } spids: [2957] ) ] spids: [2957] ) (If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$merge_tool'))})] action: [ (AndOr ops: [Op_DPipe] children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_tool) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(guess_merge_tool)})] ) left_token: <Left_CommandSub '$('> spids: [2982 2984] ) } spids: [2981] ) ] spids: [2981] ) (ControlFlow token: <ControlFlow_Exit exit> ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:guessed_merge_tool) op: Equal rhs: {(true)} spids: [2991] ) ] spids: [2991] ) ] spids: [16777215 2978] ) ] spids: [16777215 2995] ) ] spids: [16777215 2950] ) ] spids: [16777215 2998] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_keep_backup) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (AndOr ops: [Op_DPipe] children: [ (C {(git)} {(config)} {(--bool)} {(mergetool.keepBackup)}) (C {(echo)} {(true)}) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [3003 3017] ) ) } spids: [3001] ) ] spids: [3001] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_keep_temporaries) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (AndOr ops: [Op_DPipe] children: [ (C {(git)} {(config)} {(--bool)} {(mergetool.keepTemporaries)}) (C {(echo)} {(false)}) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [3023 3037] ) ) } spids: [3021] ) ] spids: [3021] ) (If arms: [ (if_arm cond: [ (AndOr ops: [Op_DAmp] children: [ (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(0)}) (C {(test)} {(-e)} {(DQ ($ VSub_Name '$GIT_DIR') (/MERGE_RR))}) ] ) ] action: [ (C {(set)} {(--)} { (CommandSubPart command_list: (CommandList children:[(C {(git)} {(rerere)} {(remaining)})]) left_token: <Left_CommandSub '$('> spids: [3071 3077] ) } ) (If arms: [ (if_arm cond: [(C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(0)})] action: [(C {(print_noop_and_exit)})] spids: [16777215 3091] ) ] spids: [16777215 3097] ) ] spids: [16777215 3064] ) ] spids: [16777215 3100] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:files) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(-c)} {(core.quotePath) (Lit_Other '=') (false)} {(diff)} {(--name-only)} {(--diff-filter) (Lit_Other '=') (U)} { (BracedVarSub token: <VSub_Name orderfile> suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: {(DQ ($ VSub_Name '$orderfile'))} ) spids: [3126 3132] ) } {(--)} {(DQ ($ VSub_At '$@'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [3105 3139] ) } spids: [3104] ) ] spids: [3104] ) (C {(cd_to_toplevel)}) (If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$files'))})] action: [(C {(print_noop_and_exit)})] spids: [16777215 3158] ) ] spids: [16777215 3164] ) (C {(printf)} {(DQ ('Merging:') (Lit_Other '\\') (n))}) (C {(printf)} {(DQ ('%s') (Lit_Other '\\') (n))} {(DQ ($ VSub_Name '$files'))}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{(0)} spids:[3191])] spids: [3191] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$files')}] do_arg_iter: F body: (DoGroup children: [ (C {(printf)} {(DQ (Lit_Other '\\') (n))}) (If arms: [ (if_arm cond: [ (Pipeline children: [(C {(merge_file)} {(DQ ($ VSub_Name '$i'))})] negated: T ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rc) op: Equal rhs: {(1)} spids: [3229] ) ] spids: [3229] ) (AndOr ops: [Op_DPipe] children: [ (C {(prompt_after_failed_merge)}) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) ] spids: [16777215 3226] ) ] spids: [16777215 3242] ) ] spids: [3204 3245] ) spids: [3200 16777215] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$rc')}) ] spids: [2695] ) spids: [2690 2694] ) (C {(main)} {(DQ ($ VSub_At '$@'))}) ] )