(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTIONS_KEEPDASHDASH) op:Equal rhs:{(SQ )} spids:[13])] spids: [13] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTIONS_SPEC) op: Equal rhs: { (DQ ("git-clean [options] <paths>...\n") ("\n") ("Clean untracked files from the working directory\n") ("\n") ("When optional <paths>... arguments are given, the paths\n") ("affected are further limited to those that match them.\n") ("--\n") ("d remove directories as well\n") ("f override clean.requireForce and clean anyway\n") ("n don't remove anything, just show what would be done\n") ("q be quiet, only report errors\n") ("x remove ignored files as well\n") ("X remove only ignored files") ) } spids: [15] ) ] spids: [15] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SUBDIRECTORY_OK) op:Equal rhs:{(Yes)} spids:[34])] spids: [34] ) (C {(.)} {(git-sh-setup)}) (C {(require_work_tree)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ignored) op:Equal rhs:{(SQ )} spids:[44])] spids: [44] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ignoredonly) op:Equal rhs:{(SQ )} spids:[46])] spids: [46] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:cleandir) op:Equal rhs:{(SQ )} spids:[48])] spids: [48] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:rmf) op:Equal rhs:{(DQ ("rm -f --"))} spids:[50])] spids: [50] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:rmrf) op:Equal rhs:{(DQ ("rm -rf --"))} spids:[55])] spids: [55] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rm_refuse) op: Equal rhs: {(DQ ("echo Not removing"))} spids: [60] ) ] spids: [60] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:echo1) op:Equal rhs:{(DQ (echo))} spids:[65])] spids: [65] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:disabled) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--bool)} {(clean.requireForce)})] ) left_token: <Left_CommandSub "$("> spids: [72 80] ) } spids: [71] ) ] spids: [71] ) (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: [{(-d)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cleandir) op: Equal rhs: {(1)} spids: [110] ) ] spids: [110] ) ] spids: [106 107 114 -1] ) (case_arm pat_list: [{(-f)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:disabled) op: Equal rhs: {(false)} spids: [121] ) ] spids: [121] ) ] spids: [117 118 125 -1] ) (case_arm pat_list: [{(-n)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:disabled) op: Equal rhs: {(false)} spids: [132] ) ] spids: [132] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rmf) op: Equal rhs: {(DQ ("echo Would remove"))} spids: [136] ) ] spids: [136] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rmrf) op: Equal rhs: {(DQ ("echo Would remove"))} spids: [142] ) ] spids: [142] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rm_refuse) op: Equal rhs: {(DQ ("echo Would not remove"))} spids: [148] ) ] spids: [148] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:echo1) op: Equal rhs: {(DQ (":"))} spids: [154] ) ] spids: [154] ) ] spids: [128 129 160 -1] ) (case_arm pat_list: [{(-q)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:echo1) op: Equal rhs: {(DQ (":"))} spids: [167] ) ] spids: [167] ) ] spids: [163 164 173 -1] ) (case_arm pat_list: [{(-x)}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ignored) op:Equal rhs:{(1)} spids:[180])] spids: [180] ) ] spids: [176 177 184 -1] ) (case_arm pat_list: [{(-X)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ignoredonly) op: Equal rhs: {(1)} spids: [191] ) ] spids: [191] ) ] spids: [187 188 195 -1] ) (case_arm pat_list: [{(--)}] action: [(C {(shift)}) (ControlFlow token:<ControlFlow_Break break>)] spids: [198 199 208 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [(C {(usage)})] spids: [211 212 221 -1] ) ] spids: [97 103 224] ) (C {(shift)}) ] spids: [94 229] ) ) (Case to_match: {(DQ ($ VSub_Name "$disabled"))} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (C {(die)} {(DQ ("clean.requireForce not set and -n or -f not given; refusing to clean"))}) ] spids: [-1 251 261 -1] ) (case_arm pat_list: [{(DQ (true))}] action: [ (C {(die)} {(DQ ("clean.requireForce set and -n or -f not given; refusing to clean"))}) ] spids: [264 266 276 -1] ) ] spids: [241 247 278] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ignored") (",") ($ VSub_Name "$ignoredonly"))} {(Lit_Other "=")} {(DQ ("1,1"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [(C {(die)} {(DQ ("-x and -X cannot be set together"))})] spids: [-1 300] ) ] spids: [-1 309] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$ignored"))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:excl) op: Equal rhs: {(DQ ("--exclude-per-directory=.gitignore"))} spids: [328] ) ] spids: [328] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:excl_info) op: Equal rhs: {(SQ )} spids: [334] ) (assign_pair lhs: (LhsName name:excludes_file) op: Equal rhs: {(SQ )} spids: [336] ) ] spids: [334] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-f)} {(DQ ($ VSub_Name "$GIT_DIR") (/info/exclude))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:excl_info) op: Equal rhs: {(DQ ("--exclude-from=") ($ VSub_Name "$GIT_DIR") (/info/exclude))} spids: [356] ) ] spids: [356] ) ] spids: [-1 353] ) ] spids: [-1 364] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cfg_excl) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(core.excludesfile)})] ) left_token: <Left_CommandSub "$("> spids: [370 376] ) } spids: [369] ) ] spids: [369] ) (C {(test)} {(-f)} {(DQ ($ VSub_Name "$cfg_excl"))}) ] op_id: Op_DAmp ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:excludes_file) op: Equal rhs: {(DQ ("--exclude-from=") ($ VSub_Name "$cfg_excl"))} spids: [392] ) ] spids: [392] ) ] spids: [-1 389] ) ] spids: [-1 399] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ignoredonly"))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:excl) op: Equal rhs: {(DQ ($ VSub_Name "$excl") (" --ignored"))} spids: [416] ) ] spids: [416] ) ] spids: [-1 413] ) ] spids: [-1 423] ) ] spids: [-1 325] ) ] spids: [-1 425] ) (Pipeline children: [ (C {(git)} {(ls-files)} {(--others)} {(--directory)} {($ VSub_Name "$excl")} { (BracedVarSub token: <VSub_Name excl_info> suffix_op: (StringUnary op_id:VTest_ColonPlus arg_word:{(DQ ($ VSub_Name "$excl_info"))}) spids: [440 446] ) } { (BracedVarSub token: <VSub_Name excludes_file> suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: {(DQ ($ VSub_Name "$excludes_file"))} ) spids: [448 454] ) } {(--)} {(DQ ($ VSub_At "$@"))} ) (While cond: [(Sentence child:(C {(read)} {(-r)} {(file)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-d)} {(DQ ($ VSub_Name "$file"))} {(-a)} {(KW_Bang "!")} {(-L)} {(DQ ($ VSub_Name "$file"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$cleandir"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {($ VSub_Name "$rm_refuse")} {(DQ ($ VSub_Name "$file"))}) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [-1 517] ) ] spids: [-1 530] ) (C {($ VSub_Name "$echo1")} {(DQ ("Removing ") ($ VSub_Name "$file"))}) (C {($ VSub_Name "$rmrf")} {(DQ ($ VSub_Name "$file"))}) ] spids: [-1 501] ) ] else_action: [ (C {($ VSub_Name "$echo1")} {(DQ ("Removing ") ($ VSub_Name "$file"))}) (C {($ VSub_Name "$rmf")} {(DQ ($ VSub_Name "$file"))}) ] spids: [548 566] ) ] spids: [475 568] ) ) ] negated: False ) ] )