(List (Com {[LIT_CHARS set]} {[LIT_CHARS -eu]} ) (Com {[LIT_CHARS cd]} {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub 0]]})]} ) (Com {[LIT_CHARS cd]} {[LIT_CHARS ..]} ) (FunctionDef query [] (Com {[LIT_CHARS ./output/bazel]} {[LIT_CHARS query]} {[DQ [VarSub @]]} ) ) (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -f]} {[DQ [LIT_CHARS output/bazel]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS ./compile.sh]} {[LIT_CHARS compile]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[VarSub ?]} ) ) ) (AndOr OP_OR_IF (Subshell (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -f]} {[DQ [LIT_CHARS tools/jdk/JavaBuilder_deploy.jar]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -f]} {[DQ [LIT_CHARS tools/jdk/ijar]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -f]} {[DQ [LIT_CHARS tools/jdk/SingleJar_deploy.jar]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -f]} {[DQ [LIT_CHARS tools/jdk/GenClass_deploy.jar]]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS ./compile.sh]} {[LIT_CHARS tools] [LIT_COMMA ","] [LIT_CHARS init]} {[LIT_CHARS output/bazel]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[VarSub ?]} ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS ./output/bazel]} {[LIT_CHARS build]} {[LIT_CHARS --]} {[LIT_CHARS //src/] [LIT_LBRACE "{"] [LIT_CHARS main] [LIT_COMMA ","] [LIT_CHARS java_tools] [LIT_COMMA ","] [LIT_CHARS test/] [LIT_LBRACE "{"] [LIT_CHARS java] [LIT_COMMA ","] [LIT_CHARS cpp] [LIT_RBRACE "}"] [LIT_RBRACE "}"] [LIT_CHARS /...]} {[LIT_CHARS //third_party/...]} {[LIT_CHARS -//third_party/ijar/test/...]} {[LIT_CHARS -//third_party/java_src/j2objc/...]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[VarSub ?]} ) ) (= scope= flags=0 words=[] bindings=[('JAVA_PATHS', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS src]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS "*.java"]]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s|/com/google/.*"][LIT_OTHER "$"][LIT_CHARS "||"]]}) (Com {[LIT_CHARS sort]} {[LIT_CHARS -u]}) )]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [ComSub (Pipeline (Com {[LIT_CHARS uname]} {[LIT_CHARS -s]}) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]}) )]]} {[LIT_NEQUAL "!="]} {[DQ [LIT_CHARS darwin]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('JAVA_PATHS', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub JAVA_PATHS]]}) (Com {[LIT_CHARS fgrep]} {[LIT_CHARS -v]} {[DQ [LIT_CHARS /objc_tools/]]}) )]]})]) ) (= scope= flags=0 words=[] bindings=[('THIRD_PARTY_JAR_PATHS', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS third_party]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS "*.jar"]]}) (Com {[LIT_CHARS sort]} {[LIT_CHARS -u]}) )]]})]) (= scope= flags=0 words=[] bindings=[('ANDROID_IMPORTING_FILES', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^import android"][\ LIT_ESCAPED_CHAR "\\."]]} {[LIT_CHARS -R]} {[LIT_CHARS -l]} {[LIT_CHARS --include]} {[DQ [LIT_CHARS "*.java"]]} {[LIT_CHARS src]}) (Com {[LIT_CHARS sort]}) )]]})]) (= scope= flags=2 words=[] bindings=[('package_list', {[ComSub (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS src]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS BUILD]]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s|/BUILD||"]]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s|^|//|"]]}) )]})]) (FunctionDef get_package_of [] (Pipeline (For i [{[VarSub package_list]}]) (If (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[DQ [VarSub 1]]} {[LIT_OTHER "^"] [VarSub i]}}) (Com {[LIT_CHARS echo]} {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[VarSub i]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -c]}) (Com {[LIT_CHARS xargs]} {[LIT_CHARS echo]}) )]} {[VarSub i]} ) ) ) (Com {[LIT_CHARS sort]} {[LIT_CHARS -r]} {[LIT_CHARS -n]} ) (Com {[LIT_CHARS head]} {[LIT_CHARS -1]} ) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d]} {[DQ [LIT_CHARS " "]]} {[LIT_CHARS -f]} {[LIT_CHARS 2]} ) ) ) (FunctionDef get_target_of [] (List (= scope= flags=0 words=[] bindings=[('package', {[ComSub (Com {[LIT_CHARS get_package_of]} {[VarSub 1]})]})]) (= scope= flags=0 words=[] bindings=[('file', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 1]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s|^"][VarSub package][LIT_CHARS "/||g"]]}) )]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub package][LIT_CHARS ":"][VarSub file]]} ) ) ) (FunctionDef get_consuming_target [] (List (= scope= flags=0 words=[] bindings=[('target', {[ComSub (Com {[LIT_CHARS get_target_of]} {[VarSub 1]})]})]) (= scope= flags=0 words=[] bindings=[('generating_target', {[ComSub (Com {[LIT_CHARS query]} {[DQ [LIT_CHARS "deps("][VarSub target][LIT_CHARS ", 1) - "][VarSub target]]})]})]) (= scope= flags=0 words=[] bindings=[('java_library', {[ComSub (Com {[LIT_CHARS query]} {[DQ [LIT_CHARS "rdeps(//src/..., "][VarSub generating_target][LIT_CHARS ", 1) - "][VarSub generating_target]]})]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub java_library]]} ) ) ) (FunctionDef get_containing_library [] (Pipeline (Com {[LIT_CHARS get_consuming_target]} {[VarSub 1]} ) (Com {[LIT_CHARS sed]} {[SQ ]} ) (Com {[LIT_CHARS sed]} {[SQ ]} ) (Com {[LIT_CHARS sed]} {[SQ ]} ) ) ) (FunctionDef collect_generated_paths [] (AndOr OP_AND_IF (For path [{[ComSub (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS bazel-genfiles/]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS "*.java"]]}) (Com {[LIT_CHARS sed]} {[SQ ]}) (Com {[LIT_CHARS uniq]}) )]}]) (List (= scope= flags=0 words=[] bindings=[('source_path', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub path]}) (Com {[LIT_CHARS sed]} {[SQ ]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (Com {[LIT_CHARS echo]} {[DQ [ComSub (Com {[LIT_CHARS get_containing_library]} {[VarSub path]})][LIT_CHARS ":"][VarSub source_path]]} ) ) ) (Pipeline (For jardir [{[DQ [LIT_CHARS jar/]]}, {[DQ ]}]) (For path [{[ComSub (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS bazel-genfiles/] [VarSub jardir] [LIT_CHARS _ijar]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS "*.jar"]]}) (Com {[LIT_CHARS sed]} {[SQ ]}) (Com {[LIT_CHARS uniq]}) )]}]) (Com {[LIT_CHARS echo]} {[DQ [VarSub path][LIT_CHARS ":"]]} ) ) ) (Com {[LIT_CHARS sort]} {[LIT_CHARS -u]} ) ) ) ) (= scope= flags=0 words=[] bindings=[('GENERATED_PATHS', {[DQ [ComSub (Com {[LIT_CHARS collect_generated_paths]})]]})]) )