(List (Com {[LIT_CHARS set]} {[LIT_CHARS -eu]}) (= scope= flags=0 words=[] bindings=[('WORKSPACE_DIR', {[DQ [VarSub PWD]]})]) (While (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub WORKSPACE_DIR]]} {[LIT_CHARS /]}}) (List (If (DBracket {B1 UNARY_FILE_e {[DQ [VarSub WORKSPACE_DIR][LIT_CHARS /WORKSPACE]]}}) (Com {[LIT_CHARS break]}) ) (= scope= flags=0 words=[] bindings=[('WORKSPACE_DIR', {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub WORKSPACE_DIR]]})]]})]) ) ) (= scope= flags=2 words=[{[LIT_CHARS WORKSPACE_DIR]}] bindings=[]) (If (DBracket {B1 UNARY_FILE_e {[DQ [VarSub WORKSPACE_DIR][LIT_CHARS /WORKSPACE]]}}) (List (= scope= flags=2 words=[] bindings=[('WRAPPER', {[DQ [VarSub WORKSPACE_DIR][LIT_CHARS /tools/bazel]]})]) (If (DBracket {B1 UNARY_FILE_x {[DQ [VarSub WRAPPER]]}}) (Com {[LIT_CHARS exec]} {[LIT_CHARS -a]} {[DQ [VarSub 0]]} {[DQ [VarSub WRAPPER]]} {[DQ [VarSub @]]}) ) ) ) (FunctionDef get_realpath [] (If (Com {[LIT_OTHER "["]} {[DQ [ComSub (Com {[LIT_CHARS uname]} {[LIT_CHARS -s]})]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS Darwin]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('queue', {[DQ [VarSub 1]]})]) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub queue]]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('queue', {[DQ [VarSub PWD][LIT_CHARS /][VarSub queue]]})]) ) (= scope= flags=0 words=[] bindings=[('current', {[DQ ]})]) (While (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub queue]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('queue', {[DQ [VarSub queue transform_ops=[VS_UNARY_POUND {[LIT_SLASH /]}]]]})]) (= scope= flags=0 words=[] bindings=[('segment', {[DQ [VarSub queue transform_ops=[VS_UNARY_DPERCENT {[LIT_SLASH /] [LIT_CHARS "*"]}]]]})]) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub queue]]} {[LIT_OTHER "*"] [LIT_CHARS /] [LIT_OTHER "*"]}}) (List (= scope= flags=0 words=[] bindings=[('segment', {[DQ [VarSub queue]]})]) (= scope= flags=0 words=[] bindings=[('queue', {[DQ ]})]) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('queue', {[DQ [VarSub queue transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]]})]) ) (= scope= flags=0 words=[] bindings=[('link', {[DQ [VarSub current][LIT_CHARS /][VarSub segment]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -h]} {[DQ [VarSub link]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('link', {[DQ [ComSub (Com {[LIT_CHARS readlink]} {[DQ [VarSub link]]})]]})]) (= scope= flags=0 words=[] bindings=[('queue', {[DQ [VarSub link][LIT_CHARS /][VarSub queue]]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub link]]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('current', {[DQ ]})]) ) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('current', {[DQ [VarSub link]]})]) ) ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub current]]}) ) (ElseTrue) (Com {[LIT_CHARS readlink]} {[LIT_CHARS -f]} {[DQ [VarSub 1]]}) ) ) (= scope= flags=0 words=[] bindings=[('BAZEL_REAL', {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [ComSub (Com {[LIT_CHARS get_realpath]} {[DQ [VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]})]]})][LIT_CHARS /bazel-real]]})]) (If (DBracket {B! {B1 UNARY_FILE_x {[DQ [VarSub BAZEL_REAL]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Failed to find underlying Bazel executable at "][VarSub BAZEL_REAL]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS exec]} {[LIT_CHARS -a]} {[DQ [VarSub 0]]} {[DQ [VarSub BAZEL_REAL]]} {[DQ [VarSub @]]}) )