(command.CommandList
  children: [
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(cd)} {(tensorflow/contrib/makefile)})
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:55)
          arg_word: {(1)}
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GENDIR)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:61)
                command_list: (command.CommandList children:[(C {(pwd)})])
              ) (/gen/protobuf_pi/)
            }
          spids: [60]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LIBDIR)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name GENDIR)}
          spids: [66]
        )
      ]
    )
    (C {(mkdir)} {(-p)} {(${ Id.VSub_Name LIBDIR)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CXX)
          op: assign_op.Equal
          rhs: {(arm-linux-gnueabihf-g) (Id.Lit_Other '+') (Id.Lit_Other '+')}
          spids: [80]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(cd)} {(downloads/protobuf)})
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:92)
          arg_word: {(1)}
        )
      ]
    )
    (C {(./autogen.sh)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_QMark '$?')} {(-ne)} {(0)} {(Id.Lit_RBracket ']')})
          ]
          action: [
            (C {(echo)} {(DQ ('./autogen.sh command failed.'))})
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:121)
              arg_word: {(1)}
            )
          ]
          spids: [99 111]
        )
      ]
    )
    (C {(make)} {(distclean)})
    (C {(./configure)} {(--build) (Id.Lit_Equals '=') (i686-pc-linux-gnu)} 
      {(--host) (Id.Lit_Equals '=') (arm-linux)} {(--target) (Id.Lit_Equals '=') (arm-linux)} {(--disable-shared)} {(--enable-cross-compile)} 
      {(--with-protoc) (Id.Lit_Equals '=') (protoc)} {(--prefix) (Id.Lit_Equals '=') (${ Id.VSub_Name LIBDIR)} 
      {(--exec-prefix) (Id.Lit_Equals '=') (${ Id.VSub_Name LIBDIR)} {(DQ ('CXX=') (${ Id.VSub_Name CXX))} {(make)}
    )
    (C {(make)} {(install)})
  ]
)