(command.CommandList children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(KW_Bang '!')} {(-e)} {(src/google/protobuf/stubs/common.h)}) terminator: <Op_Semi ';'> ) ] action: [ (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)}) (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(__EOF__)} here_end_span_id: 66 stdin_parts: [ ( 'Could not find source code. Make sure you are running this script from the\n' ) ('root of the distribution tree.\n') ] ) ] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 51] ) ] spids: [16777215 72] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(KW_Bang '!')} {(-e)} {(src/Makefile)}) terminator: <Op_Semi ';'> ) ] action: [ (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)}) (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(__EOF__)} here_end_span_id: 101 stdin_parts: [ ('Could not find src/Makefile. You must run ./configure (and perhaps\n') ('./autogen.sh) first.\n') ] ) ] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 86] ) ] spids: [16777215 107] ) (C {(cd)} {(src)}) (command.Assignment keyword: Assign_Declare flags: [-a] pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RUNTIME_PROTO_FILES spids:[119]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ {(google/protobuf/any.proto)} {(google/protobuf/api.proto)} {(google/protobuf/descriptor.proto)} {(google/protobuf/duration.proto)} {(google/protobuf/empty.proto)} {(google/protobuf/field_mask.proto)} {(google/protobuf/source_context.proto)} {(google/protobuf/struct.proto)} {(google/protobuf/timestamp.proto)} {(google/protobuf/type.proto)} {(google/protobuf/wrappers.proto)} ] ) } spids: [119] ) ] spids: [115] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CORE_PROTO_IS_CORRECT spids:[167]) op: Equal rhs: {(0)} spids: [167] ) ] spids: [167] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PROCESS_ROUND spids:[170]) op: Equal rhs: {(1)} spids: [170] ) ] spids: [170] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:TMP spids:[173]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children:[(C {(mktemp)} {(-d)})]) left_token: <Left_CommandSub '$('> spids: [174 178] ) } spids: [173] ) ] spids: [173] ) (C {(echo)} {(DQ ('Updating descriptor protos...'))}) (command.WhileUntil keyword: <KW_While while> cond: [ (C {(Lit_Other '[')} {($ VSub_Name '$CORE_PROTO_IS_CORRECT')} {(-ne)} {(1)} {(Lit_Other ']')}) ] body: (command.DoGroup children: [ (C {(echo)} {(DQ ('Round ') ($ VSub_Name '$PROCESS_ROUND'))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CORE_PROTO_IS_CORRECT spids:[209]) op: Equal rhs: {(1)} spids: [209] ) ] spids: [209] ) (C {(make)} {($ VSub_At '$@')} {(protoc)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {($ VSub_QMark '$?')} {(-ne)} {(0)}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Failed to build protoc.'))}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 232] ) ] spids: [16777215 247] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(./protoc)} {(--cpp_out) (Lit_Other '=') (Lit_VarLike 'dllexport_decl=') (LIBPROTOBUF_EXPORT) (Lit_Other ':') ($ VSub_Name '$TMP') } { (word_part.BracedVarSub token: <VSub_Name RUNTIME_PROTO_FILES> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [260 265] ) } ) (C {(./protoc)} {(--cpp_out) (Lit_Other '=') (Lit_VarLike 'dllexport_decl=') (LIBPROTOC_EXPORT) (Lit_Other ':') ($ VSub_Name '$TMP') } {(google/protobuf/compiler/plugin.proto)} ) ] ) (command.ForEach iter_name: PROTO_FILE iter_words: [ { (word_part.BracedVarSub token: <VSub_Name RUNTIME_PROTO_FILES> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [290 295] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:BASE_NAME spids:[301]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name PROTO_FILE> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{('.*')}) spids: [302 306] ) } spids: [301] ) ] spids: [301] ) (command.SimpleCommand words: [ {(diff)} {(${ VSub_Name BASE_NAME) (.pb.h)} {($ VSub_Name '$TMP') (/) (${ VSub_Name BASE_NAME) (.pb.h)} ] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {($ VSub_QMark '$?')} {(-ne)} {(0)}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CORE_PROTO_IS_CORRECT spids:[342]) op: Equal rhs: {(0)} spids: [342] ) ] spids: [342] ) ] spids: [16777215 339] ) ] spids: [16777215 346] ) (command.SimpleCommand words: [ {(diff)} {(${ VSub_Name BASE_NAME) (.pb.cc)} {($ VSub_Name '$TMP') (/) (${ VSub_Name BASE_NAME) (.pb.cc)} ] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {($ VSub_QMark '$?')} {(-ne)} {(0)}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CORE_PROTO_IS_CORRECT spids:[382]) op: Equal rhs: {(0)} spids: [382] ) ] spids: [382] ) ] spids: [16777215 379] ) ] spids: [16777215 386] ) ] spids: [298 389] ) spids: [289 296] ) (command.SimpleCommand words: [ {(diff)} {(google/protobuf/compiler/plugin.pb.h)} {($ VSub_Name '$TMP') (/google/protobuf/compiler/plugin.pb.h)} ] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {($ VSub_QMark '$?')} {(-ne)} {(0)}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CORE_PROTO_IS_CORRECT spids:[419]) op: Equal rhs: {(0)} spids: [419] ) ] spids: [419] ) ] spids: [16777215 416] ) ] spids: [16777215 423] ) (command.SimpleCommand words: [ {(diff)} {(google/protobuf/compiler/plugin.pb.cc)} {($ VSub_Name '$TMP') (/google/protobuf/compiler/plugin.pb.cc)} ] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {($ VSub_QMark '$?')} {(-ne)} {(0)}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CORE_PROTO_IS_CORRECT spids:[452]) op: Equal rhs: {(0)} spids: [452] ) ] spids: [452] ) ] spids: [16777215 449] ) ] spids: [16777215 456] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$CORE_PROTO_IS_CORRECT')} {(-ne)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.ForEach iter_name: PROTO_FILE iter_words: [ { (word_part.BracedVarSub token: <VSub_Name RUNTIME_PROTO_FILES> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [490 495] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:BASE_NAME spids:[501]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name PROTO_FILE> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {('.*')} ) spids: [502 506] ) } spids: [501] ) ] spids: [501] ) (C {(mv)} {($ VSub_Name '$TMP') (/) (${ VSub_Name BASE_NAME) (.pb.h)} {(${ VSub_Name BASE_NAME) (.pb.h)} ) (C {(mv)} {($ VSub_Name '$TMP') (/) (${ VSub_Name BASE_NAME) (.pb.cc)} {(${ VSub_Name BASE_NAME) (.pb.cc)} ) ] spids: [498 539] ) spids: [489 496] ) (C {(mv)} {($ VSub_Name '$TMP') (/google/protobuf/compiler/plugin.pb.) (Lit_Other '*')} {(google/protobuf/compiler/)} ) ] spids: [16777215 481] ) ] spids: [16777215 551] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PROCESS_ROUND spids:[555]) op: Equal rhs: { (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike PROCESS_ROUND>) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [556 563] ) } spids: [555] ) ] spids: [555] ) ] spids: [198 565] ) ) (C {(cd)} {(..)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-x)} {(objectivec/generate_well_known_types.sh)}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Generating messages for objc.'))}) (C {(objectivec/generate_well_known_types.sh)} {($ VSub_At '$@')}) ] spids: [16777215 581] ) ] spids: [16777215 595] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-x)} {(csharp/generate_protos.sh)}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Generating messages for C#.'))}) (C {(csharp/generate_protos.sh)} {($ VSub_At '$@')}) ] spids: [16777215 607] ) ] spids: [16777215 621] ) ] )