(List (FunctionDef relpath [] (List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_CHARS -ge]} {[LIT_CHARS 1]} {[LIT_OTHER "]"]}) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_CHARS -le]} {[LIT_CHARS 2]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('current', {[DQ [VarSub 2 test_op=VS_TEST_COLON_PLUS {[DQ [VarSub 1]]}]]})]) (= scope= flags=0 words=[] bindings=[('target', {[DQ [VarSub 2 test_op=VS_TEST_COLON_HYPHEN {[DQ [VarSub 1]]}]]})]) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub target]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[LIT_CHARS .]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('target', {[LIT_CHARS /]})]) ) (= scope= flags=0 words=[] bindings=[('target', {[DQ [LIT_CHARS /][VarSub target transform_ops=[VS_UNARY_DPOUND {[LIT_SLASH /]}]]]})]) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub current]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[LIT_CHARS .]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('current', {[LIT_CHARS /]})]) ) (= scope= flags=0 words=[] bindings=[('current', {[DQ [VarSub current test_op=VS_TEST_COLON_EQUALS {[DQ [LIT_CHARS /]]}]]})]) (= scope= flags=0 words=[] bindings=[('current', {[DQ [LIT_CHARS /][VarSub current transform_ops=[VS_UNARY_DPOUND {[LIT_SLASH /]}]]]})]) (= scope= flags=0 words=[] bindings=[('appendix', {[DQ [VarSub target transform_ops=[VS_UNARY_DPOUND {[LIT_SLASH /]}]]]})]) (= scope= flags=0 words=[] bindings=[('relative', {[SQ ]})]) (While (List (= scope= flags=0 words=[] bindings=[('appendix', {[DQ [VarSub target transform_ops=[VS_UNARY_POUND {[DQ [VarSub current]] [LIT_SLASH /]}]]]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub current]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[SQ ]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[DQ [VarSub appendix]]} {[LIT_OTHER "="]} {[DQ [VarSub target]]} {[LIT_OTHER "]"]}) ) ) (List (If (Com {[LIT_OTHER "["]} {[DQ [VarSub current]]} {[LIT_OTHER "="]} {[DQ [VarSub appendix]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('relative', {[DQ [VarSub relative test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS .]}]]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub relative transform_ops=[VS_UNARY_POUND {[LIT_SLASH /]}]]]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) ) (= scope= flags=0 words=[] bindings=[('current', {[DQ [VarSub current transform_ops=[VS_UNARY_PERCENT {[LIT_SLASH /] [LIT_CHARS "*"]}]]]})]) (= scope= flags=0 words=[] bindings=[('relative', {[DQ [VarSub relative][VarSub relative test_op=VS_TEST_COLON_PLUS {[LIT_SLASH /]}][LIT_CHARS ..]]})]) ) ) (= scope= flags=0 words=[] bindings=[('relative', {[DQ [VarSub relative][VarSub relative test_op=VS_TEST_COLON_PLUS {[VarSub appendix test_op=VS_TEST_COLON_PLUS {[LIT_SLASH /]}]}][VarSub appendix transform_ops=[VS_UNARY_POUND {[LIT_SLASH /]}]]]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub relative]]}) ) ) (Com {[LIT_CHARS relpath]} {[DQ [VarSub @]]}) )