(List (= scope= flags=0 words=[] bindings=[('OPTIONS_KEEPDASHDASH', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('OPTIONS_SPEC', {[DQ [LIT_CHARS "git-clean [options] ...\n"][LIT_CHARS "\n"][LIT_CHARS "Clean untracked files from the working directory\n"][LIT_CHARS "\n"][LIT_CHARS "When optional ... arguments are given, the paths\n"][LIT_CHARS "affected are further limited to those that match them.\n"][LIT_CHARS "--\n"][LIT_CHARS "d remove directories as well\n"][LIT_CHARS "f override clean.requireForce and clean anyway\n"][LIT_CHARS "n don't remove anything, just show what would be done\n"][LIT_CHARS "q be quiet, only report errors\n"][LIT_CHARS "x remove ignored files as well\n"][LIT_CHARS "X remove only ignored files"]]})]) (= scope= flags=0 words=[] bindings=[('SUBDIRECTORY_OK', {[LIT_CHARS Yes]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-setup]}) (Com {[LIT_CHARS require_work_tree]}) (= scope= flags=0 words=[] bindings=[('ignored', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('ignoredonly', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('cleandir', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('rmf', {[DQ [LIT_CHARS "rm -f --"]]})]) (= scope= flags=0 words=[] bindings=[('rmrf', {[DQ [LIT_CHARS "rm -rf --"]]})]) (= scope= flags=0 words=[] bindings=[('rm_refuse', {[DQ [LIT_CHARS "echo Not removing"]]})]) (= scope= flags=0 words=[] bindings=[('echo1', {[DQ [LIT_CHARS echo]]})]) (= scope= flags=0 words=[] bindings=[('disabled', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS clean.requireForce]})]})]) (While (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[LIT_CHARS 0]}) (List (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS -d]}], [{[LIT_CHARS -f]}], [{[LIT_CHARS -n]}], [{[LIT_CHARS -q]}], [{[LIT_CHARS -x]}], [{[LIT_CHARS -X]}], [{[LIT_CHARS --]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('cleandir', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('disabled', {[LIT_CHARS false]})]) (List (= scope= flags=0 words=[] bindings=[('disabled', {[LIT_CHARS false]})]) (= scope= flags=0 words=[] bindings=[('rmf', {[DQ [LIT_CHARS "echo Would remove"]]})]) (= scope= flags=0 words=[] bindings=[('rmrf', {[DQ [LIT_CHARS "echo Would remove"]]})]) (= scope= flags=0 words=[] bindings=[('rm_refuse', {[DQ [LIT_CHARS "echo Would not remove"]]})]) (= scope= flags=0 words=[] bindings=[('echo1', {[DQ [LIT_CHARS ":"]]})]) ) (= scope= flags=0 words=[] bindings=[('echo1', {[DQ [LIT_CHARS ":"]]})]) (= scope= flags=0 words=[] bindings=[('ignored', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('ignoredonly', {[LIT_CHARS 1]})]) (List (Com {[LIT_CHARS shift]}) (Com {[LIT_CHARS break]}) ) (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) ) ) (Case to_match={[DQ [VarSub disabled]]}, pat_word_list=[[{[DQ ]}], [{[DQ [LIT_CHARS true]]}]] (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "clean.requireForce not set and -n or -f not given; refusing to clean"]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "clean.requireForce set and -n or -f not given; refusing to clean"]]}) ) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub ignored][LIT_CHARS ","][VarSub ignoredonly]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS "1,1"]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "-x and -X cannot be set together"]]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub ignored]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('excl', {[DQ [LIT_CHARS "--exclude-per-directory=.gitignore"]]})]) (= scope= flags=0 words=[] bindings=[('excl_info', {[SQ ]}), ('excludes_file', {[SQ ]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /info/exclude]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('excl_info', {[DQ [LIT_CHARS "--exclude-from="][VarSub GIT_DIR][LIT_CHARS /info/exclude]]})]) ) (If (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('cfg_excl', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS core.excludesfile]})]})]) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub cfg_excl]]}) ) (= scope= flags=0 words=[] bindings=[('excludes_file', {[DQ [LIT_CHARS "--exclude-from="][VarSub cfg_excl]]})]) ) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub ignoredonly]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('excl', {[DQ [VarSub excl][LIT_CHARS " --ignored"]]})]) ) ) ) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]} {[LIT_CHARS --others]} {[LIT_CHARS --directory]} {[VarSub excl]} {[VarSub excl_info test_op=VS_TEST_COLON_PLUS {[DQ [VarSub excl_info]]}]} {[VarSub excludes_file test_op=VS_TEST_COLON_PLUS {[DQ [VarSub excludes_file]]}]} {[LIT_CHARS --]} {[DQ [VarSub @]]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS file]}) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[DQ [VarSub file]]} {[LIT_CHARS -a]} {[LIT_OTHER "!"]} {[LIT_CHARS -L]} {[DQ [VarSub file]]} {[LIT_OTHER "]"]}) (List (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub cleandir]]} {[LIT_OTHER "]"]}) (List (Com {[VarSub rm_refuse]} {[DQ [VarSub file]]}) (Com {[LIT_CHARS continue]}) ) ) (Com {[VarSub echo1]} {[DQ [LIT_CHARS "Removing "][VarSub file]]}) (Com {[VarSub rmrf]} {[DQ [VarSub file]]}) ) (ElseTrue) (List (Com {[VarSub echo1]} {[DQ [LIT_CHARS "Removing "][VarSub file]]}) (Com {[VarSub rmf]} {[DQ [VarSub file]]}) ) ) ) ) )