(CommandList children: [ (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:OUTPUT_DIR) op: Equal rhs: {(DQ (${ VSub_Name PROJECT_DERIVED_FILE_DIR) (/protos))} spids: [9] ) ] spids: [7] ) (FuncDef name: die body: (BraceGroup children: [(C {(echo)} {(DQ ("Error: ") ($ VSub_Number "$1"))}) (C {(exit)} {(2)})] spids: [28] ) spids: [24 27] ) (Case to_match: {(DQ (${ VSub_Name ACTION))} arms: [ (case_arm pat_list:[{(DQ )}] spids:[-16572-1]) (case_arm pat_list: [{(DQ (clean))}] action: [(C {(rm)} {(-rf)} {(DQ (${ VSub_Name OUTPUT_DIR))}) (C {(exit)} {(0)})] spids: [76 78 97 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [(C {(die)} {(DQ ("Unknown action requested: ") (${ VSub_Name ACTION))})] spids: [100 101 114 -1] ) ] spids: [52 60 116] ) (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name OUTPUT_DIR) (/google/protobuf))}) (C {(cd)} {(DQ (${ VSub_Name SRCROOT) (/..))}) (AndOr children: [ (DBracket expr:(BoolUnary op_id:BoolUnary_x child:{(src/protoc)})) (C {(die)} { (DQ ( "Could not find the protoc binary; make sure you have built it (objectivec/DevTools/full_mac_build.sh -h)." ) ) } ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:RUN_PROTOC) op:Equal rhs:{(no)} spids:[180])] spids: [180] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_d child:{(DQ (${ VSub_Name OUTPUT_DIR))}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:RUN_PROTOC) op:Equal rhs:{(yes)} spids:[204])] spids: [204] ) ] spids: [-1 201] ) ] else_action: [ (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:NewestInput) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {(src/google/protobuf/) (Lit_Other "*") (.proto)} {(objectivec/Tests/) (Lit_Other "*") (.proto)} {(src/.libs)} {(src/) (Lit_Other "*") (.la)} {(src/protoc)} {(objectivec/DevTools/compile_testing_protos.sh)} {(-type)} {(f)} {(-print0)} ) (C {(xargs)} {(-0)} {(stat)} {(-f)} {(DQ ("%m %N"))}) (C {(sort)} {(-n)}) (C {(tail)} {(-n1)}) (C {(cut)} {(-f2-)} {(-d) (DQ (" "))}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [225 302] ) } spids: [224] ) ] spids: [222] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:OldestOutput) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {(DQ (${ VSub_Name OUTPUT_DIR))} {(-type)} {(f)} {(-name)} {(DQ ("*pbobjc.[hm]"))} {(-print0)} ) (C {(xargs)} {(-0)} {(stat)} {(-f)} {(DQ ("%m %N"))}) (C {(sort)} {(-n)} {(-r)}) (C {(tail)} {(-n1)}) (C {(cut)} {(-f2-)} {(-d) (DQ (" "))}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [312 379] ) } spids: [311] ) ] spids: [309] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_nt left: {(DQ (${ VSub_Name NewestInput))} right: {(DQ (${ VSub_Name OldestOutput))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RUN_PROTOC) op: Equal rhs: {(yes)} spids: [411] ) ] spids: [411] ) ] spids: [-1 408] ) ] spids: [-1 415] ) ] spids: [207 417] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ (${ VSub_Name RUN_PROTOC))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(exit)} {(0)})] spids: [-1 440] ) ] spids: [-1 451] ) (Pipeline children: [ (C {(find)} {(DQ (${ VSub_Name OUTPUT_DIR))} {(-type)} {(f)} {(-name)} {(DQ ("*pbobjc.[hm]"))} {(-print0)} ) (C {(xargs)} {(-0)} {(rm)} {(-rf)}) ] negated: False ) (FuncDef name: compile_protos body: (BraceGroup children: [ (C {(src/protoc)} {(--objc_out) (Lit_Other "=") (DQ (${ VSub_Name OUTPUT_DIR) (/google/protobuf))} {(--proto_path) (Lit_Other "=") (src/google/protobuf/)} {(--proto_path) (Lit_Other "=") (src)} {(DQ ($ VSub_At "$@"))} ) ] spids: [508] ) spids: [504 507] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CORE_PROTO_FILES) op: Equal rhs: { (ArrayLiteralPart words: [ {(src/google/protobuf/any_test.proto)} {(src/google/protobuf/unittest_arena.proto)} {(src/google/protobuf/unittest_custom_options.proto)} {(src/google/protobuf/unittest_enormous_descriptor.proto)} {(src/google/protobuf/unittest_embed_optimize_for.proto)} {(src/google/protobuf/unittest_empty.proto)} {(src/google/protobuf/unittest_import.proto)} {(src/google/protobuf/unittest_import_lite.proto)} {(src/google/protobuf/unittest_lite.proto)} {(src/google/protobuf/unittest_mset.proto)} {(src/google/protobuf/unittest_mset_wire_format.proto)} {(src/google/protobuf/unittest_no_arena.proto)} {(src/google/protobuf/unittest_no_arena_import.proto)} {(src/google/protobuf/unittest_no_generic_services.proto)} {(src/google/protobuf/unittest_optimize_for.proto)} {(src/google/protobuf/unittest.proto)} {(src/google/protobuf/unittest_import_public.proto)} {(src/google/protobuf/unittest_import_public_lite.proto)} {(src/google/protobuf/unittest_drop_unknown_fields.proto)} {(src/google/protobuf/unittest_preserve_unknown_enum.proto)} {(src/google/protobuf/map_lite_unittest.proto)} {(src/google/protobuf/map_proto2_unittest.proto)} {(src/google/protobuf/map_unittest.proto)} {(src/google/protobuf/descriptor.proto)} ] ) } spids: [558] ) ] spids: [558] ) (ForEach iter_name: a_proto iter_words: [ { (DQ (BracedVarSub token: <VSub_Name CORE_PROTO_FILES> bracket_op: (WholeArray op_id:Lit_At) spids: [664 669] ) ) } ] do_arg_iter: False body: (DoGroup children:[(C {(compile_protos)} {(DQ (${ VSub_Name a_proto))})] spids:[674685]) spids: [662 672] ) (C {(compile_protos)} {(--proto_path) (Lit_Other "=") (DQ (objectivec/Tests))} {(objectivec/Tests/unittest_cycle.proto)} {(objectivec/Tests/unittest_extension_chain_a.proto)} {(objectivec/Tests/unittest_extension_chain_b.proto)} {(objectivec/Tests/unittest_extension_chain_c.proto)} {(objectivec/Tests/unittest_extension_chain_d.proto)} {(objectivec/Tests/unittest_extension_chain_e.proto)} {(objectivec/Tests/unittest_extension_chain_f.proto)} {(objectivec/Tests/unittest_extension_chain_g.proto)} {(objectivec/Tests/unittest_runtime_proto2.proto)} {(objectivec/Tests/unittest_runtime_proto3.proto)} {(objectivec/Tests/unittest_objc.proto)} {(objectivec/Tests/unittest_objc_startup.proto)} ) ] )