(command.CommandList children: [ (command.ShFunction name: get_variable_value body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'FILENAME=') ($ Id.VSub_Number '$1')}) (C {(local)} {(Id.Lit_VarLike 'VARNAME=') ($ Id.VSub_Number '$2')}) (command.Pipeline children: [ (C {(awk)} { (DQ ('\n') (' BEGIN { start = 0; }\n') (' /^') ($ Id.VSub_DollarName '$VARNAME') (' =/ { start = 1; }\n') (' { if (start) { print ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:36) ) ('0; } }\n') (' /') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:39) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:40)) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:41) ) ('/ { next; }\n') (' { start = 0; }\n') (' ') ) } {($ Id.VSub_DollarName '$FILENAME')} ) (C {(sed)} {(DQ ('s/^') ($ Id.VSub_DollarName '$VARNAME') (' =//'))}) (C {(sed)} { (DQ ('s/[ ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:69) ) (']//g') ) } ) (C {(grep)} {(-v)} { (DQ ('^') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:83) ) (Id.Lit_Other '$') ) } ) (C {(grep)} {(-v)} {(DQ ('^') (Id.Lit_Other '$'))}) (command.Simple words: [{(sort)}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[104])] ) (C {(uniq)}) ] negated: F ) ] ) ) (command.ShFunction name: get_header_files body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(get_variable_value)} {($ Id.VSub_At '$@')}) (C {(grep)} {(SQ (Token id:Id.Lit_Chars val:'\\.h$' span_id:132))}) ] negated: F ) ] ) ) (command.ShFunction name: get_source_files body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(get_variable_value)} {($ Id.VSub_At '$@')}) (C {(grep)} {(DQ (cc) (Id.Lit_Other '$'))}) ] negated: F ) ] ) ) (command.ShFunction name: get_proto_files_blacklisted body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(get_proto_files)} {($ Id.VSub_At '$@')}) (C {(sed)} { (SQ (Token id: Id.Lit_Chars val: '/^google\\/protobuf\\/unittest_enormous_descriptor.proto$/d' span_id: 177 ) ) } ) ] negated: F ) ] ) ) (command.ShFunction name: get_proto_files body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(get_variable_value)} {($ Id.VSub_At '$@')}) (C {(grep)} {(DQ (pb.cc) (Id.Lit_Other '$'))}) (C {(sed)} {(DQ (s/pb.cc/proto/))}) ] negated: F ) ] ) ) (command.ShFunction name: sort_files body: (command.BraceGroup children: [ (command.Pipeline children: [ (command.ForEach iter_name: FILE iter_words: [{($ Id.VSub_At '$@')}] do_arg_iter: F body: (command.DoGroup children:[(C {(echo)} {($ Id.VSub_DollarName '$FILE')})]) ) (command.Simple words: [{(sort)}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[242])] ) (C {(uniq)}) ] negated: F ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAKEFILE) op: assign_op.Equal rhs: {(src/Makefile.am)} spids: [254] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_DollarName '$MAKEFILE'))} {(Id.Lit_RBracket ']')} ) (command.BraceGroup children: [ (C {(echo)} {(DQ ('Cannot find: ') ($ Id.VSub_DollarName '$MAKEFILE'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:281) arg_word: {(1)} ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GZHEADERS) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:292) command_list: (command.CommandList children: [ (C {(get_variable_value)} {($ Id.VSub_DollarName '$MAKEFILE')} {(GZHEADERS)}) ] ) ) } spids: [291] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HEADERS) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:301) command_list: (command.CommandList children: [ (C {(get_variable_value)} {($ Id.VSub_DollarName '$MAKEFILE')} {(nobase_include_HEADERS)} ) ] ) ) } spids: [300] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PUBLIC_HEADERS) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:310) command_list: (command.CommandList children: [ (C {(sort_files)} {($ Id.VSub_DollarName '$GZHEADERS')} {($ Id.VSub_DollarName '$HEADERS')} ) ] ) ) } spids: [309] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBPROTOBUF_LITE_SOURCES) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:319) command_list: (command.CommandList children: [ (C {(get_source_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(libprotobuf_lite_la_SOURCES)} ) ] ) ) } spids: [318] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBPROTOBUF_SOURCES) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:328) command_list: (command.CommandList children: [ (C {(get_source_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(libprotobuf_la_SOURCES)} ) ] ) ) } spids: [327] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBPROTOC_SOURCES) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:337) command_list: (command.CommandList children: [ (C {(get_source_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(libprotoc_la_SOURCES)} ) ] ) ) } spids: [336] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LITE_PROTOS) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:346) command_list: (command.CommandList children: [ (C {(get_proto_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(protoc_lite_outputs)} ) ] ) ) } spids: [345] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROTOS) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:355) command_list: (command.CommandList children: [ (C {(get_proto_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(protoc_outputs)}) ] ) ) } spids: [354] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROTOS_BLACKLISTED) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:364) command_list: (command.CommandList children: [ (C {(get_proto_files_blacklisted)} {($ Id.VSub_DollarName '$MAKEFILE')} {(protoc_outputs)} ) ] ) ) } spids: [363] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WKT_PROTOS) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:373) command_list: (command.CommandList children: [ (C {(get_variable_value)} {($ Id.VSub_DollarName '$MAKEFILE')} {(nobase_dist_proto_DATA)} ) ] ) ) } spids: [372] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMMON_TEST_SOURCES) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:382) command_list: (command.CommandList children: [ (C {(get_source_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(COMMON_TEST_SOURCES)} ) ] ) ) } spids: [381] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMMON_LITE_TEST_SOURCES) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:391) command_list: (command.CommandList children: [ (C {(get_source_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(COMMON_LITE_TEST_SOURCES)} ) ] ) ) } spids: [390] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEST_SOURCES) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:400) command_list: (command.CommandList children: [ (C {(get_source_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(protobuf_test_SOURCES)} ) ] ) ) } spids: [399] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LITE_TEST_SOURCES) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:409) command_list: (command.CommandList children: [ (C {(get_source_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(protobuf_lite_test_SOURCES)} ) ] ) ) } spids: [408] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LITE_ARENA_TEST_SOURCES) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:418) command_list: (command.CommandList children: [ (C {(get_source_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(protobuf_lite_arena_test_SOURCES)} ) ] ) ) } spids: [417] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEST_PLUGIN_SOURCES) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:427) command_list: (command.CommandList children: [ (C {(get_source_files)} {($ Id.VSub_DollarName '$MAKEFILE')} {(test_plugin_SOURCES)} ) ] ) ) } spids: [426] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CMAKE_DIR) op: assign_op.Equal rhs: {(cmake)} spids: [446] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXTRACT_INCLUDES_BAT) op: assign_op.Equal rhs: {(cmake/extract_includes.bat.in)} spids: [449] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ ($ Id.VSub_DollarName '$CMAKE_DIR'))} {(Id.Lit_RBracket ']')} ) (command.BraceGroup children: [ (C {(echo)} {(DQ ('Cannot find: ') ($ Id.VSub_DollarName '$CMAKE_DIR'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:475) arg_word: {(1)} ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_DollarName '$EXTRACT_INCLUDES_BAT'))} {(Id.Lit_RBracket ']')} ) (command.BraceGroup children: [ (C {(echo)} {(DQ ('Cannot find: ') ($ Id.VSub_DollarName '$EXTRACT_INCLUDES_BAT'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:505) arg_word: {(1)} ) ] ) ] ) (command.ShFunction name: set_cmake_value body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'FILENAME=') ($ Id.VSub_Number '$1')}) (C {(local)} {(Id.Lit_VarLike 'VARNAME=') ($ Id.VSub_Number '$2')}) (C {(local)} {(Id.Lit_VarLike 'PREFIX=') ($ Id.VSub_Number '$3')}) (C {(shift)}) (C {(shift)}) (C {(shift)}) (command.Simple words: [ {(awk)} {(-v)} {(Id.Lit_VarLike 'values=') (DQ ($ Id.VSub_Star '$*'))} {(-v)} {(Id.Lit_VarLike 'prefix=') (DQ ($ Id.VSub_DollarName '$PREFIX'))} { (DQ ('\n') (' BEGIN { start = 0; }\n') (' /^set') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:566) ) ('(') ($ Id.VSub_DollarName '$VARNAME') ('/ {\n') (' start = 1;\n') (' print ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:572) ) ('0;\n') (' len = split(values, vlist, ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:575) ) (' ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:577)) (');\n') (' for (i = 1; i <= len; ++i) {\n') (' printf(') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:581) ) (' %s%s') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:583)) (n) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:585) ) (', prefix, vlist[i]);\n') (' }\n') (' next;\n') (' }\n') (' start && /^') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:591) ) (')/ {\n') (' start = 0;\n') (' }\n') (' !start {\n') (' print ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:597) ) ('0;\n') (' }\n') (' ') ) } {($ Id.VSub_DollarName '$FILENAME')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:605) fd: -1 arg_word: {(/tmp/) ($ Id.VSub_Dollar '$$')} ) ] ) (C {(cp)} {(/tmp/) ($ Id.VSub_Dollar '$$')} {($ Id.VSub_DollarName '$FILENAME')}) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CMAKE_PREFIX) op: assign_op.Equal rhs: { (DQ (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:627)) ('{protobuf_source_dir}/src/') ) } spids: [625] ) ] ) (C {(set_cmake_value)} {($ Id.VSub_DollarName '$CMAKE_DIR') (/libprotobuf-lite.cmake)} {(libprotobuf_lite_files)} {($ Id.VSub_DollarName '$CMAKE_PREFIX')} {($ Id.VSub_DollarName '$LIBPROTOBUF_LITE_SOURCES')} ) (C {(set_cmake_value)} {($ Id.VSub_DollarName '$CMAKE_DIR') (/libprotobuf.cmake)} {(libprotobuf_files)} {($ Id.VSub_DollarName '$CMAKE_PREFIX')} {($ Id.VSub_DollarName '$LIBPROTOBUF_SOURCES')} ) (C {(set_cmake_value)} {($ Id.VSub_DollarName '$CMAKE_DIR') (/libprotoc.cmake)} {(libprotoc_files)} {($ Id.VSub_DollarName '$CMAKE_PREFIX')} {($ Id.VSub_DollarName '$LIBPROTOC_SOURCES')} ) (C {(set_cmake_value)} {($ Id.VSub_DollarName '$CMAKE_DIR') (/tests.cmake)} {(lite_test_protos)} {(DQ )} {($ Id.VSub_DollarName '$LITE_PROTOS')} ) (C {(set_cmake_value)} {($ Id.VSub_DollarName '$CMAKE_DIR') (/tests.cmake)} {(tests_protos)} {(DQ )} {($ Id.VSub_DollarName '$PROTOS_BLACKLISTED')} ) (C {(set_cmake_value)} {($ Id.VSub_DollarName '$CMAKE_DIR') (/tests.cmake)} {(common_test_files)} {($ Id.VSub_DollarName '$CMAKE_PREFIX')} {($ Id.VSub_DollarName '$COMMON_TEST_SOURCES')} ) (C {(set_cmake_value)} {($ Id.VSub_DollarName '$CMAKE_DIR') (/tests.cmake)} {(common_lite_test_files)} {($ Id.VSub_DollarName '$CMAKE_PREFIX')} {($ Id.VSub_DollarName '$COMMON_LITE_TEST_SOURCES')} ) (C {(set_cmake_value)} {($ Id.VSub_DollarName '$CMAKE_DIR') (/tests.cmake)} {(tests_files)} {($ Id.VSub_DollarName '$CMAKE_PREFIX')} {($ Id.VSub_DollarName '$TEST_SOURCES')} ) (C {(set_cmake_value)} {($ Id.VSub_DollarName '$CMAKE_DIR') (/tests.cmake)} {(lite_test_files)} {($ Id.VSub_DollarName '$CMAKE_PREFIX')} {($ Id.VSub_DollarName '$LITE_TEST_SOURCES')} ) (C {(set_cmake_value)} {($ Id.VSub_DollarName '$CMAKE_DIR') (/tests.cmake)} {(lite_arena_test_files)} {($ Id.VSub_DollarName '$CMAKE_PREFIX')} {($ Id.VSub_DollarName '$LITE_ARENA_TEST_SOURCES')} ) (command.Simple words: [{(echo)} {(DQ ('mkdir include'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:753) fd: -1 arg_word: {($ Id.VSub_DollarName '$EXTRACT_INCLUDES_BAT')} ) ] ) (command.Pipeline children: [ (command.ForEach iter_name: HEADER iter_words: [{($ Id.VSub_DollarName '$PUBLIC_HEADERS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HEADER_DIR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:770) command_list: (command.CommandList children: [(C {(dirname)} {($ Id.VSub_DollarName '$HEADER')})] ) ) } spids: [769] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:777) cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(DQ ($ Id.VSub_DollarName '$HEADER_DIR'))} {(Id.Lit_Equals '=')} {(DQ (.))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:794) ) ] body: (command.DoGroup children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_DollarName '$HEADER_DIR')}) (C {(sed)} { (DQ (s/) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:809) ) (//) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:811)) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:812) ) (/g) ) } ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HEADER_DIR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:818) command_list: (command.CommandList children: [ (C {(dirname)} {($ Id.VSub_DollarName '$HEADER_DIR')}) ] ) ) } spids: [817] ) ] ) ] ) ) ] ) ) (C {(sort)}) (C {(uniq)}) (command.Simple words: [ {(sed)} { (DQ ('s/^/mkdir include') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:843) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:844)) (/) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:848) fd: -1 arg_word: {($ Id.VSub_DollarName '$EXTRACT_INCLUDES_BAT')} ) ] ) ] negated: F ) (command.ForEach iter_name: HEADER iter_words: [{($ Id.VSub_DollarName '$PUBLIC_HEADERS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WINPATH) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:865) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_DollarName '$HEADER')}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s;/;\\\\;g' span_id:875))}) ] negated: F ) ] ) ) } spids: [864] ) ] ) (command.Simple words: [ {(echo)} { (DQ ('copy ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:884) ) ('{PROTOBUF_SOURCE_WIN32_PATH}') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:886) ) (..) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:888)) (src) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:890) ) ($ Id.VSub_DollarName '$WINPATH') (' include') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:893) ) ($ Id.VSub_DollarName '$WINPATH') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:897) fd: -1 arg_word: {($ Id.VSub_DollarName '$EXTRACT_INCLUDES_BAT')} ) ] ) ] ) ) (command.ShFunction name: set_bazel_value body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'FILENAME=') ($ Id.VSub_Number '$1')}) (C {(local)} {(Id.Lit_VarLike 'VARNAME=') ($ Id.VSub_Number '$2')}) (C {(local)} {(Id.Lit_VarLike 'PREFIX=') ($ Id.VSub_Number '$3')}) (C {(shift)}) (C {(shift)}) (C {(shift)}) (command.Simple words: [ {(awk)} {(-v)} {(Id.Lit_VarLike 'values=') (DQ ($ Id.VSub_Star '$*'))} {(-v)} {(Id.Lit_VarLike 'prefix=') (DQ ($ Id.VSub_DollarName '$PREFIX'))} { (DQ ('\n') (' BEGIN { start = 0; }\n') (' /# AUTOGEN') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:968) ) ('(') ($ Id.VSub_DollarName '$VARNAME') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:971) ) (')/ {\n') (' start = 1;\n') (' print ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:975) ) ('0;\n') (' # replace ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:978) ) ('0 with indent.\n') (' sub(/#.*/, ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:981) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:982)) (', ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:984) ) ('0)\n') (' len = split(values, vlist, ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:987) ) (' ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:989)) (');\n') (' for (i = 1; i <= len; ++i) {\n') (' printf(') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:993) ) ('%s') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:995)) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:996) ) ('%s%s') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:998)) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:999) ) (',') (Id.Lit_Other '\\') (n) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1003) ) (', ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:1005)) ('0, prefix, vlist[i]);\n') (' }\n') (' next;\n') (' }\n') (' start && /') (Id.Lit_Other '\\') (']/ {\n') (' start = 0\n') (' }\n') (' !start {\n') (' print ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:1017) ) ('0;\n') (' }\n') (' ') ) } {($ Id.VSub_DollarName '$FILENAME')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1025) fd: -1 arg_word: {(/tmp/) ($ Id.VSub_Dollar '$$')} ) ] ) (C {(cp)} {(/tmp/) ($ Id.VSub_Dollar '$$')} {($ Id.VSub_DollarName '$FILENAME')}) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BAZEL_BUILD) op: assign_op.Equal rhs: {(./BUILD)} spids: [1042] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BAZEL_PREFIX) op: assign_op.Equal rhs: {(DQ (src/))} spids: [1045] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_DollarName '$BAZEL_BUILD'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1061) ) ] action: [ (C {(set_bazel_value)} {($ Id.VSub_DollarName '$BAZEL_BUILD')} {(protobuf_lite_srcs)} {($ Id.VSub_DollarName '$BAZEL_PREFIX')} {($ Id.VSub_DollarName '$LIBPROTOBUF_LITE_SOURCES')} ) (C {(set_bazel_value)} {($ Id.VSub_DollarName '$BAZEL_BUILD')} {(protobuf_srcs)} {($ Id.VSub_DollarName '$BAZEL_PREFIX')} {($ Id.VSub_DollarName '$LIBPROTOBUF_SOURCES')} ) (C {(set_bazel_value)} {($ Id.VSub_DollarName '$BAZEL_BUILD')} {(protoc_lib_srcs)} {($ Id.VSub_DollarName '$BAZEL_PREFIX')} {($ Id.VSub_DollarName '$LIBPROTOC_SOURCES')} ) (C {(set_bazel_value)} {($ Id.VSub_DollarName '$BAZEL_BUILD')} {(lite_test_protos)} {(DQ )} {($ Id.VSub_DollarName '$LITE_PROTOS')} ) (C {(set_bazel_value)} {($ Id.VSub_DollarName '$BAZEL_BUILD')} {(well_known_protos)} {(DQ )} {($ Id.VSub_DollarName '$WKT_PROTOS')} ) (C {(set_bazel_value)} {($ Id.VSub_DollarName '$BAZEL_BUILD')} {(test_protos)} {(DQ )} {($ Id.VSub_DollarName '$PROTOS')} ) (C {(set_bazel_value)} {($ Id.VSub_DollarName '$BAZEL_BUILD')} {(common_test_srcs)} {($ Id.VSub_DollarName '$BAZEL_PREFIX')} {($ Id.VSub_DollarName '$COMMON_TEST_SOURCES')} ) (C {(set_bazel_value)} {($ Id.VSub_DollarName '$BAZEL_BUILD')} {(test_srcs)} {($ Id.VSub_DollarName '$BAZEL_PREFIX')} {($ Id.VSub_DollarName '$TEST_SOURCES')} ) (C {(set_bazel_value)} {($ Id.VSub_DollarName '$BAZEL_BUILD')} {(test_plugin_srcs)} {($ Id.VSub_DollarName '$BAZEL_PREFIX')} {($ Id.VSub_DollarName '$TEST_PLUGIN_SOURCES')} ) ] spids: [1050 1063] ) ] else_action: [(C {(echo)} {(DQ ('Skipped BUILD file update.'))})] ) ] )