(command.CommandList children: [ (C {<readonly>} {<Id.Lit_VarLike 'ScriptDir='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_Number '$0')}) (C {<sed>} {<-e>} { (DQ <'s,^'> <Id.Lit_BadBackslash '\\'> <'([^/]'> <Id.Lit_BadBackslash '\\'> <'),'> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>})) <'/'> <Id.Lit_BadBackslash '\\'> <'1,'> ) } ) ] negated: F ) ) ) } ) ) } ) (C {<readonly>} {<Id.Lit_VarLike 'ProtoRootDir='> (DQ (${ Id.VSub_Name ScriptDir) <'/../..'>)}) (command.ShFunction name: die body: (BraceGroup children: [ (C {<echo>} {(DQ <'Error: '> ($ Id.VSub_Number '$1'))}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (C {<readonly>} {<Id.Lit_VarLike 'GeneratorSrc='> (DQ (${ Id.VSub_Name ProtoRootDir) <'/src/google/protobuf/compiler/objectivec/objectivec_file.cc'> ) } ) (C {<readonly>} {<Id.Lit_VarLike 'RuntimeSrc='> (DQ (${ Id.VSub_Name ProtoRootDir) <'/objectivec/GPBBootstrap.h'>) } ) (command.ShFunction name: check_constant body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'ConstantName='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'GeneratorVersion='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {(DQ (${ Id.VSub_Name GeneratorSrc))}) (C {<sed>} {<-n>} {<-e>} { (DQ <'s:const int32 '> (${ Id.VSub_Name ConstantName) <' = '> <Id.Lit_BadBackslash '\\'> <'([0-9]*'> <Id.Lit_BadBackslash '\\'> <');:'> <Id.Lit_BadBackslash '\\'> <'1:p'> ) } ) ] negated: F ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ (${ Id.VSub_Name GeneratorVersion))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ <'Failed to find '> (${ Id.VSub_Name ConstantName) <' in the generator source ('> (${ Id.VSub_Name GeneratorSrc) <').'> ) } ) ] spids: [178 194] ) ] ) (C {<local>} {<Id.Lit_VarLike 'RuntimeVersion='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {(DQ (${ Id.VSub_Name RuntimeSrc))}) (C {<sed>} {<-n>} {<-e>} { (DQ <'s:#define '> (${ Id.VSub_Name ConstantName) <' '> <Id.Lit_BadBackslash '\\'> <'([0-9]*'> <Id.Lit_BadBackslash '\\'> <'):'> <Id.Lit_BadBackslash '\\'> <'1:p'> ) } ) ] negated: F ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ (${ Id.VSub_Name RuntimeVersion))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ <'Failed to find '> (${ Id.VSub_Name ConstantName) <' in the runtime source ('> (${ Id.VSub_Name RuntimeSrc) <').'> ) } ) ] spids: [263 279] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ (${ Id.VSub_Name GeneratorVersion))} right: {(DQ (${ Id.VSub_Name RuntimeVersion))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (${ Id.VSub_Name ConstantName) <' values don\'t match!\n'> <' Generator: '> (${ Id.VSub_Name GeneratorVersion) <' from '> (${ Id.VSub_Name GeneratorSrc) <'\n'> <' Runtime: '> (${ Id.VSub_Name RuntimeVersion) <' from '> (${ Id.VSub_Name RuntimeSrc) <'\n'> ) } ) ] spids: [305 327] ) ] ) ] ) ) (C {<check_constant>} {<GOOGLE_PROTOBUF_OBJC_VERSION>}) ] )