(command.CommandList children: [ (command.ShFunction name: on_travis body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$TRAVIS'))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {(DQ ($ Id.VSub_At '$@'))})] spids: [23 41] ) ] ) ] ) ) (command.ShFunction name: internal_build_cpp body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'src/protoc'>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return>)] spids: [67 78] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-s>}) ) } right: {(DQ <Linux>)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$TRAVIS'))} right: {(DQ <true>)} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sudo>} {<add-apt-repository>} {<ppa> <Id.Lit_Colon ':'> <'ubuntu-toolchain-r/test'>} {<-y>} ) (C {<sudo>} {<apt-get>} {<update>} {<-qq>}) (C {<sudo>} {<apt-get>} {<install>} {<-qq>} {<g> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <-4.8>} ) (C {<export>} {<Id.Lit_VarLike 'CXX='> (DQ <'g++-4.8'>)} {<Id.Lit_VarLike 'CC='> (DQ <gcc-4.8>)} ) ] spids: [92 123] ) ] ) (C {<'./autogen.sh'>}) (C {<'./configure'>} {<Id.Lit_VarLike 'CXXFLAGS='> (DQ <-fPIC>)}) (C {<make>} {<-j2>}) ] ) ) (command.ShFunction name: build_cpp body: (BraceGroup children: [ (C {<internal_build_cpp>}) (C {<make>} {<check>} {<-j2>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [(C {<cd>} {<conformance>}) (C {<make>} {<test_cpp>}) (C {<cd>} {<..>})] ) (C {<git>} {<submodule>} {<init>}) (C {<git>} {<submodule>} {<update>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<'third_party/benchmark'>}) (C {<cmake>} {<-DCMAKE_BUILD_TYPE> <Id.Lit_Equals '='> <Release>}) (C {<make>}) (C {<cd>} {<'../..'>}) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<benchmarks>}) (C {<make>}) (C {<'./generate-datasets'>}) (C {<cd>} {<..>}) ] ) ] ) ) (command.ShFunction name: build_cpp_distcheck body: (BraceGroup children: [ (C {<'./autogen.sh'>}) (C {<'./configure'>}) (C {<make>} {<dist>}) (command.Pipeline children: [ (C {<git>} {<ls-files>}) (C {<grep>} { (DQ <'^'> <Id.Lit_BadBackslash '\\'> <'(java'> <Id.Lit_BadBackslash '\\'> <'|python'> <Id.Lit_BadBackslash '\\'> <'|objectivec'> <Id.Lit_BadBackslash '\\'> <'|csharp'> <Id.Lit_BadBackslash '\\'> <'|js'> <Id.Lit_BadBackslash '\\'> <'|ruby'> <Id.Lit_BadBackslash '\\'> <'|cmake'> <Id.Lit_BadBackslash '\\'> <'|examples'> <Id.Lit_BadBackslash '\\'> <')'> ) } ) (C {<grep>} {<-v>} {(DQ <.gitignore>)}) (command.Simple words: [{<grep>} {<-v>} {(DQ <'java/compatibility_tests'>)}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<dist.lst>})] do_fork: T ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIST) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<ls>} {<Id.Lit_Star '*'> <.tar.gz>}) ) } spids: [390] ) ] ) (C {<tar>} {<-xf>} {($ Id.VSub_DollarName '$DIST')}) (C {<cd>} { (braced_var_sub token: <Id.VSub_Name DIST> suffix_op: (suffix_op.PatSub pat:{<.tar.gz>} replace_mode:Id.Lit_Slash) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FILES_MISSING) op: assign_op.Equal rhs: {(DQ )} spids: [422] ) ] ) (command.ForEach iter_name: FILE iter_words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'../dist.lst'>} ) ] do_fork: F ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{<file>} {($ Id.VSub_DollarName '$FILE')}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$FILE') <' is not found!'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FILES_MISSING) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$FILE') <' '> ($ Id.VSub_DollarName '$FILES_MISSING') ) } spids: [465] ) ] ) ] spids: [442 454] ) ] ) ] ) ) (C {<cd>} {<..>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName '$FILES_MISSING'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Missing files in EXTRA_DIST: '> ($ Id.VSub_DollarName '$FILES_MISSING'))} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [484 499] ) ] ) (C {<make>} {<distcheck>} {<-j2>}) ] ) ) (command.ShFunction name: build_csharp body: (BraceGroup children: [ (C {<internal_build_cpp>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NUGET) op: assign_op.Equal rhs: {<'/usr/local/bin/nuget.exe'>} spids: [554] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$TRAVIS'))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sudo>} {<apt-key>} {<adv>} {<--keyserver>} {<keyserver.ubuntu.com>} {<--recv-keys>} {<3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF>} ) (C {<sudo>} {<apt-key>} {<adv>} {<--keyserver>} {<keyserver.ubuntu.com>} {<--recv-keys>} {<1397BC53640DB551>} ) (command.Pipeline children: [ (C {<echo>} {(DQ <'deb http://download.mono-project.com/repo/debian wheezy main'>)} ) (C {<sudo>} {<tee>} {<'/etc/apt/sources.list.d/mono-xamarin.list'>}) ] negated: F ) (C {<sudo>} {<apt-get>} {<update>} {<-qq>}) (C {<sudo>} {<apt-get>} {<install>} {<-qq>} {<mono-devel>} {<referenceassemblies-pcl>} {<nunit>} ) (C {<sudo>} {<sh>} {<-c>} { (SQ < 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list' > ) } ) (C {<sudo>} {<apt-key>} {<adv>} {<--keyserver>} {<apt-mo.trafficmanager.net>} {<--recv-keys>} {<417A0893>} ) (C {<sudo>} {<apt-get>} {<update>} {<-qq>}) (C {<sudo>} {<apt-get>} {<install>} {<-qq>} {<dotnet-dev-1.0.0-preview2-003121>}) ] spids: [559 577] ) ] ) (C {<mkdir>} {<dotnettmp>}) (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<dotnettmp>}) terminator: <Id.Op_Semi _> ) (command.Simple words: [{<dotnet>} {<new>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) ) (C {<rm>} {<-rf>} {<dotnettmp>}) (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<'csharp/src'>}) terminator: <Id.Op_Semi _> ) (C {<dotnet>} {<restore>}) ] ) ) (C {<'csharp/buildall.sh'>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [(C {<cd>} {<conformance>}) (C {<make>} {<test_csharp>}) (C {<cd>} {<..>})] ) ] ) ) (command.ShFunction name: build_golang body: (BraceGroup children: [ (C {<internal_build_cpp>}) (C {<export>} {<Id.Lit_VarLike 'PATH='> (DQ (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})) <'/src:'> ($ Id.VSub_DollarName '$PATH') ) } ) (C {<on_travis>} {<sudo>} {<apt-get>} {<update>} {<-qq>}) (C {<on_travis>} {<sudo>} {<apt-get>} {<install>} {<-qq>} {<golang>}) (C {<export>} {<Id.Lit_VarLike 'GOPATH='> (DQ ($ Id.VSub_DollarName '$HOME') <'/gocode'>)}) (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$GOPATH') <'/src/github.com/google'>)}) (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$GOPATH') <'/src/github.com/google/protobuf'>)}) (C {<ln>} {<-s>} {(DQ (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})))} {(DQ ($ Id.VSub_DollarName '$GOPATH') <'/src/github.com/google/protobuf'>)} ) (C {<export>} {<Id.Lit_VarLike 'PATH='> (DQ ($ Id.VSub_DollarName '$GOPATH') <'/bin:'> ($ Id.VSub_DollarName '$PATH')) } ) (C {<go>} {<get>} {<'github.com/golang/protobuf/protoc-gen-go'>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [(C {<cd>} {<examples>}) (C {<make>} {<gotest>}) (C {<cd>} {<..>})] ) ] ) ) (command.ShFunction name: use_java body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:version) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [941] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$version'))} arms: [ (case_arm pat_list: [{<jdk7>}] action: [ (C {<on_travis>} {<sudo>} {<apt-get>} {<install>} {<openjdk-7-jdk>}) (C {<export>} {<Id.Lit_VarLike 'PATH='> <'/usr/lib/jvm/java-7-openjdk-amd64/bin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$PATH') } ) (C {<export>} {<Id.Lit_VarLike 'JAVA_HOME='> <'/usr/lib/jvm/java-7-openjdk-amd64'>}) ] spids: [954 955 983 -1] ) (case_arm pat_list: [{<oracle7>}] action: [ (command.Sentence child: (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$TRAVIS'))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sudo>} {<apt-get>} {<install>} {<python-software-properties>}) (command.Pipeline children: [ (C {<echo>} { (DQ < 'oracle-java7-installer shared/accepted-oracle-license-v1-1 select true' > ) } ) (C {<sudo>} {<debconf-set-selections>}) ] negated: F ) (command.Pipeline children: [ (C {<yes>}) (C {<sudo>} {<apt-add-repository>} {<ppa> <Id.Lit_Colon ':'> <'webupd8team/java'>} ) ] negated: F ) (command.Pipeline children: [ (C {<yes>}) (C {<sudo>} {<apt-get>} {<install>} {<oracle-java7-installer>}) ] negated: F ) ] spids: [990 1008] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<Id.Lit_VarLike 'PATH='> <'/usr/lib/jvm/java-7-oracle/bin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$PATH') } ) (C {<export>} {<Id.Lit_VarLike 'JAVA_HOME='> <'/usr/lib/jvm/java-7-openjdk-amd64'>}) ] spids: [986 987 1082 -1] ) ] ) (command.Sentence child: (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$TRAVIS'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAVEN_LOCAL_REPOSITORY) op: assign_op.Equal rhs: {<'/var/maven_local_repository'>} spids: [1110] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MVN) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$MVN') <' -e -X --offline -Dmaven.repo.local='> ($ Id.VSub_DollarName '$MAVEN_LOCAL_REPOSITORY') ) } spids: [1114] ) ] ) ] spids: [1089 1107] ) ] ) terminator: <Id.Op_Semi _> ) (C {<which>} {<java>}) (C {<java>} {<-version>}) (C {($ Id.VSub_DollarName '$MVN')} {<-version>}) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MVN) op: assign_op.Equal rhs: {(DQ <'mvn --batch-mode'>)} spids: [1147] ) ] ) (command.ShFunction name: build_java body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:version) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1160] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dir) op: assign_op.Equal rhs: {<java_> ($ Id.VSub_DollarName '$version')} spids: [1164] ) ] ) (C {<internal_build_cpp>}) (C {<cp>} {<-r>} {<java>} {($ Id.VSub_DollarName '$dir')}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {($ Id.VSub_DollarName '$dir')}) (C {($ Id.VSub_DollarName '$MVN')} {<clean>}) (C {($ Id.VSub_DollarName '$MVN')} {<test>}) ] ) (C {<cd>} {<'../..'>}) ] ) ) (command.ShFunction name: build_java_with_conformance_tests body: (BraceGroup children: [ (C {<internal_build_cpp>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<java>}) (C {($ Id.VSub_DollarName '$MVN')} {<test>}) (C {($ Id.VSub_DollarName '$MVN')} {<install>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<cd>} {<util>}) (C {($ Id.VSub_DollarName '$MVN')} {<package>} {<assembly> <Id.Lit_Colon ':'> <single>}) ] ) (C {<cd>} {<'../..'>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [(C {<cd>} {<conformance>}) (C {<make>} {<test_java>}) (C {<cd>} {<..>})] ) ] ) ) (command.ShFunction name: build_javanano body: (BraceGroup children: [ (C {<internal_build_cpp>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<javanano>}) (C {($ Id.VSub_DollarName '$MVN')} {<test>}) (C {<cd>} {<..>}) ] ) ] ) ) (command.ShFunction name: build_java_jdk7 body: (BraceGroup children: [(C {<use_java>} {<jdk7>}) (C {<build_java_with_conformance_tests>})] ) ) (command.ShFunction name: build_java_oracle7 body: (BraceGroup children:[(C {<use_java>} {<oracle7>}) (C {<build_java>} {<oracle7>})]) ) (command.ShFunction name: build_java_compatibility body: (BraceGroup children: [ (C {<use_java>} {<jdk7>}) (C {<internal_build_cpp>}) (C {<cd>} {<'java/compatibility_tests/v2.5.0'>}) (C {<'./test.sh'>} {<3.0.0-beta-4>}) ] ) ) (command.ShFunction name: build_javanano_jdk7 body: (BraceGroup children:[(C {<use_java>} {<jdk7>}) (C {<build_javanano>})]) ) (command.ShFunction name: build_javanano_oracle7 body: (BraceGroup children:[(C {<use_java>} {<oracle7>}) (C {<build_javanano>})]) ) (command.ShFunction name: internal_install_python_deps body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$TRAVIS'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ControlFlow token:<Id.ControlFlow_Return return>) terminator: <Id.Op_Semi _> ) ] spids: [1427 1445] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-s>}) ) } {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <Darwin>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<sudo>} {<easy_install>} {<tox>})] spids: [1459 1479] ) ] else_action: [(C {<sudo>} {<pip>} {<install>} {<tox>})] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-s>}) ) } {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <Linux>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sudo>} {<apt-get>} {<install>} {<-y>} {<python-software-properties>}) (C {<sudo>} {<apt-add-repository>} {<-y>} {<ppa> <Id.Lit_Colon ':'> <'fkrull/deadsnakes'>} ) (C {<sudo>} {<apt-get>} {<update>} {<-qq>}) (C {<sudo>} {<apt-get>} {<install>} {<-y>} {<python2.6>} {<python2.6-dev>}) (C {<sudo>} {<apt-get>} {<install>} {<-y>} {<python3.3>} {<python3.3-dev>}) (C {<sudo>} {<apt-get>} {<install>} {<-y>} {<python3.4>} {<python3.4-dev>}) ] spids: [1508 1528] ) ] ) ] ) ) (command.ShFunction name: build_objectivec_ios body: (BraceGroup children: [ (C {<'objectivec/DevTools/full_mac_build.sh'>} {<--core-only>} {<--skip-xcode-osx>} {<--skip-objc-conformance>} {(DQ ($ Id.VSub_At '$@'))} ) ] ) ) (command.ShFunction name: build_objectivec_ios_debug body: (BraceGroup children:[(C {<build_objectivec_ios>} {<--skip-xcode-release>})]) ) (command.ShFunction name: build_objectivec_ios_release body: (BraceGroup children:[(C {<build_objectivec_ios>} {<--skip-xcode-debug>})]) ) (command.ShFunction name: build_objectivec_osx body: (BraceGroup children: [ (C {<'objectivec/DevTools/full_mac_build.sh'>} {<--core-only>} {<--skip-xcode-ios>}) ] ) ) (command.ShFunction name: build_objectivec_cocoapods_integration body: (BraceGroup children: [ (C {<source>} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/.rvm/scripts/rvm'>}) (C {<rvm>} {<get>} {<head>}) (C {<rvm>} {<use>} {<2.2.3>} {<--install>} {<--binary>} {<--fuzzy>}) (C {<gem>} {<install>} {<cocoapods>} {<--no-ri>} {<--no-rdoc>}) (C {<'objectivec/Tests/CocoaPods/run_tests.sh'>}) ] ) ) (command.ShFunction name: build_python body: (BraceGroup children: [ (C {<internal_build_cpp>}) (C {<internal_install_python_deps>}) (C {<cd>} {<python>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-s>}) ) } {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <Linux>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:envlist) op: assign_op.Equal rhs: {<py> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\{'>) <26> <Id.Lit_Comma ','> <27> <Id.Lit_Comma ','> <33> <Id.Lit_Comma ','> <34> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\}'> ) <-python> } spids: [1833] ) ] ) ] spids: [1810 1830] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:envlist) op: assign_op.Equal rhs: {<py27-python>} spids: [1850] ) ] ) ] ) (C {<tox>} {<-e>} {($ Id.VSub_DollarName '$envlist')}) (C {<cd>} {<..>}) ] ) ) (command.ShFunction name: build_python_cpp body: (BraceGroup children: [ (C {<internal_build_cpp>}) (C {<internal_install_python_deps>}) (C {<export>} {<Id.Lit_VarLike 'LD_LIBRARY_PATH='> <'../src/.libs'>}) (C {<export>} {<Id.Lit_VarLike 'DYLD_LIBRARY_PATH='> <'../src/.libs'>}) (C {<cd>} {<python>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-s>}) ) } {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <Linux>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:envlist) op: assign_op.Equal rhs: {<py> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\{'>) <27> <Id.Lit_Comma ','> <33> <Id.Lit_Comma ','> <34> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'>) <-cpp> } spids: [1938] ) ] ) ] spids: [1911 1931] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:envlist) op: assign_op.Equal rhs: {<py27-cpp>} spids: [1953] ) ] ) ] ) (C {<tox>} {<-e>} {($ Id.VSub_DollarName '$envlist')}) (C {<cd>} {<..>}) ] ) ) (command.ShFunction name: build_ruby21 body: (BraceGroup children: [ (C {<internal_build_cpp>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<ruby>}) (C {<bash>} {<travis-test.sh>} {<ruby-2.1>}) (C {<cd>} {<..>}) ] ) ] ) ) (command.ShFunction name: build_ruby22 body: (BraceGroup children: [ (C {<internal_build_cpp>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<ruby>}) (C {<bash>} {<travis-test.sh>} {<ruby-2.2>}) (C {<cd>} {<..>}) ] ) ] ) ) (command.ShFunction name: build_jruby body: (BraceGroup children: [ (C {<internal_build_cpp>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<ruby>}) (C {<bash>} {<travis-test.sh>} {<jruby-1.7>}) (C {<cd>} {<..>}) ] ) ] ) ) (command.ShFunction name: build_ruby_all body: (BraceGroup children:[(C {<build_ruby21>}) (C {<build_ruby22>}) (C {<build_jruby>})]) ) (command.ShFunction name: build_javascript body: (BraceGroup children: [ (C {<internal_build_cpp>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [(C {<cd>} {<js>}) (C {<npm>} {<install>}) (C {<npm>} {<test>}) (C {<cd>} {<..>})] ) ] ) ) (command.ShFunction name: use_php body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERSION) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [2141] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PHP) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {<php>}))} spids: [2145] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PHP_CONFIG) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {<php-config>}))} spids: [2155] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PHPIZE) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {<phpize>}))} spids: [2165] ) ] ) (C {<rm>} {($ Id.VSub_DollarName '$PHP')}) (C {<rm>} {($ Id.VSub_DollarName '$PHP_CONFIG')}) (C {<rm>} {($ Id.VSub_DollarName '$PHPIZE')}) (C {<cp>} {(DQ <'/usr/bin/php'> ($ Id.VSub_DollarName '$VERSION'))} {($ Id.VSub_DollarName '$PHP')} ) (C {<cp>} {(DQ <'/usr/bin/php-config'> ($ Id.VSub_DollarName '$VERSION'))} {($ Id.VSub_DollarName '$PHP_CONFIG')} ) (C {<cp>} {(DQ <'/usr/bin/phpize'> ($ Id.VSub_DollarName '$VERSION'))} {($ Id.VSub_DollarName '$PHPIZE')} ) ] ) ) (command.ShFunction name: use_php_zts body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERSION) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [2229] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PHP) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {<php>}))} spids: [2233] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PHP_CONFIG) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {<php-config>}))} spids: [2243] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PHPIZE) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {<phpize>}))} spids: [2253] ) ] ) (C {<ln>} {<-sfn>} {(DQ <'/usr/local/php-'> (${ Id.VSub_Name VERSION) <'-zts/bin/php'>)} {($ Id.VSub_DollarName '$PHP')} ) (C {<ln>} {<-sfn>} {(DQ <'/usr/local/php-'> (${ Id.VSub_Name VERSION) <'-zts/bin/php-config'>)} {($ Id.VSub_DollarName '$PHP_CONFIG')} ) (C {<ln>} {<-sfn>} {(DQ <'/usr/local/php-'> (${ Id.VSub_Name VERSION) <'-zts/bin/phpize'>)} {($ Id.VSub_DollarName '$PHPIZE')} ) ] ) ) (command.ShFunction name: use_php_bc body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERSION) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [2317] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PHP) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {<php>}))} spids: [2321] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PHP_CONFIG) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {<php-config>}))} spids: [2331] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PHPIZE) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {<phpize>}))} spids: [2341] ) ] ) (C {<ln>} {<-sfn>} {(DQ <'/usr/local/php-'> (${ Id.VSub_Name VERSION) <'-bc/bin/php'>)} {($ Id.VSub_DollarName '$PHP')} ) (C {<ln>} {<-sfn>} {(DQ <'/usr/local/php-'> (${ Id.VSub_Name VERSION) <'-bc/bin/php-config'>)} {($ Id.VSub_DollarName '$PHP_CONFIG')} ) (C {<ln>} {<-sfn>} {(DQ <'/usr/local/php-'> (${ Id.VSub_Name VERSION) <'-bc/bin/phpize'>)} {($ Id.VSub_DollarName '$PHPIZE')} ) ] ) ) (command.ShFunction name: build_php5.5 body: (BraceGroup children: [ (C {<use_php>} {<5.5>}) (C {<rm>} {<-rf>} {<vendor>}) (C {<cp>} {<-r>} {<'/usr/local/vendor-5.5'>} {<vendor>}) (C {<'./vendor/bin/phpunit'>}) ] ) ) (command.ShFunction name: build_php5.5_c body: (BraceGroup children: [ (C {<use_php>} {<5.5>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<'php/tests'>}) (C {<'/bin/bash'>} {<'./test.sh'>}) (C {<cd>} {<'../..'>}) ] ) ] ) ) (command.ShFunction name: build_php5.5_zts_c body: (BraceGroup children: [ (C {<use_php_zts>} {<5.5>}) (C {<wget>} {<https> <Id.Lit_Colon ':'> <'//phar.phpunit.de/phpunit-old.phar'>} {<-O>} {<'/usr/bin/phpunit'>} ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<'php/tests'>}) (C {<'/bin/bash'>} {<'./test.sh'>}) (C {<cd>} {<'../..'>}) ] ) ] ) ) (command.ShFunction name: build_php5.5_32 body: (BraceGroup children: [ (C {<use_php_bc>} {<5.5>}) (C {<rm>} {<-rf>} {<vendor>}) (C {<cp>} {<-r>} {<'/usr/local/vendor-5.5'>} {<vendor>}) (C {<'./vendor/bin/phpunit'>}) ] ) ) (command.ShFunction name: build_php5.6 body: (BraceGroup children: [ (C {<use_php>} {<5.6>}) (C {<rm>} {<-rf>} {<vendor>}) (C {<cp>} {<-r>} {<'/usr/local/vendor-5.6'>} {<vendor>}) (C {<'./vendor/bin/phpunit'>}) ] ) ) (command.ShFunction name: build_php5.6_c body: (BraceGroup children: [ (C {<use_php>} {<5.6>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<'php/tests'>}) (C {<'/bin/bash'>} {<'./test.sh'>}) (C {<cd>} {<'../..'>}) ] ) ] ) ) (command.ShFunction name: build_php5.6_mac body: (BraceGroup children: [ (command.Pipeline children: [ (C {<curl>} {<-s>} {<https> <Id.Lit_Colon ':'> <'//php-osx.liip.ch/install.sh'>}) (C {<bash>} {<-s>} {<5.6>}) ] negated: F ) (C {<export>} {<Id.Lit_VarLike 'PATH='> (DQ <'/usr/local/php5-5.6.25-20160831-101628/bin:'> ($ Id.VSub_DollarName '$PATH')) } ) (C {<curl>} {<https> <Id.Lit_Colon ':'> <'//phar.phpunit.de/phpunit.phar'>} {<-L>} {<-o>} {<phpunit.phar>} ) (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<phpunit.phar>}) (C {<sudo>} {<mv>} {<phpunit.phar>} {<'/usr/local/bin/phpunit'>}) (command.Simple words: [{<echo>} {(DQ <'#! /bin/bash'>)}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<valgrind>})] do_fork: T ) (C {<chmod>} {<ug> <Id.Lit_Other '+'> <x>} {<valgrind>}) (C {<sudo>} {<mv>} {<valgrind>} {<'/usr/local/bin/valgrind'>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<'php/tests'>}) (C {<'/bin/bash'>} {<'./test.sh'>}) (C {<cd>} {<'../..'>}) ] ) ] ) ) (command.ShFunction name: build_php7.0 body: (BraceGroup children: [ (C {<use_php>} {<7.0>}) (C {<rm>} {<-rf>} {<vendor>}) (C {<cp>} {<-r>} {<'/usr/local/vendor-7.0'>} {<vendor>}) (C {<'./vendor/bin/phpunit'>}) ] ) ) (command.ShFunction name: build_php7.0_c body: (BraceGroup children: [ (C {<use_php>} {<7.0>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<cd>} {<'php/tests'>}) (C {<'/bin/bash'>} {<'./test.sh'>}) (C {<cd>} {<'../..'>}) ] ) ] ) ) (command.ShFunction name: build_php_all body: (BraceGroup children: [ (C {<build_php5.5>}) (C {<build_php5.6>}) (C {<build_php7.0>}) (C {<build_php5.5_c>}) (C {<build_php5.6_c>}) (C {<build_php5.5_zts_c>}) ] ) ) (command.ShFunction name: build_php_all_32 body: (BraceGroup children:[(C {<build_php5.5_32>})]) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Pound '$#'))} {<-ne>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <'\n'> <'Usage: '> ($ Id.VSub_Number '$0') <' { cpp |\n'> <' cpp_distcheck |\n'> <' csharp |\n'> <' java_jdk7 |\n'> <' java_oracle7 |\n'> <' java_compatibility |\n'> <' javanano_jdk7 |\n'> <' javanano_oracle7 |\n'> <' objectivec_ios |\n'> <' objectivec_ios_debug |\n'> <' objectivec_ios_release |\n'> <' objectivec_osx |\n'> <' objectivec_cocoapods_integration |\n'> <' python |\n'> <' python_cpp |\n'> <' ruby21 |\n'> <' ruby22 |\n'> <' jruby |\n'> <' ruby_all |\n'> <' php5.5 |\n'> <' php5.5_c |\n'> <' php5.6 |\n'> <' php5.6_c |\n'> <' php7.0 |\n'> <' php7.0_c |\n'> <' php_all)\n'> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [2862 2877] ) ] ) (C {<set>} {<-e>}) (C {<set>} {<-x>}) (C {<eval>} {(DQ <build_> ($ Id.VSub_Number '$1'))}) ] )