(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_dir)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Sentence
                          child: 
                            (C {(cd)} 
                              {
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [(C {(dirname)} {($ VSub_Number '$0')})]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [60 64]
                                )
                              }
                            )
                          terminator: <Op_Semi ';'>
                        )
                        (C {(pwd)})
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [57 68]
                )
              )
            }
          spids: [55]
        )
      ]
      spids: [55]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:build_dir)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(Sentence child:(C {(cd)} {(.)}) terminator:<Op_Semi ';'>) (C {(pwd)})]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [73 80]
                )
              )
            }
          spids: [71]
        )
      ]
      spids: [71]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:arrow_glib_build_dir)
          op: Equal
          rhs: {(DQ (${ VSub_Name build_dir) (/arrow-glib/))}
          spids: [84]
        )
      ]
      spids: [84]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:libtool_dir)
          op: Equal
          rhs: {(DQ (${ VSub_Name arrow_glib_build_dir) (/.libs))}
          spids: [92]
        )
      ]
      spids: [92]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name libtool_dir))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LD_LIBRARY_PATH)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name libtool_dir) (':') (${ VSub_Name LD_LIBRARY_PATH))}
                  spids: [118]
                )
              ]
              spids: [118]
            )
          ]
          spids: [16777215 115]
        )
      ]
      else_action: [
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name arrow_glib_build_dir))} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:LD_LIBRARY_PATH)
                      op: Equal
                      rhs: 
                        {
                          (DQ (${ VSub_Name arrow_glib_build_dir) (':') (${ VSub_Name LD_LIBRARY_PATH))
                        }
                      spids: [150]
                    )
                  ]
                  spids: [150]
                )
              ]
              spids: [16777215 147]
            )
          ]
          spids: [16777215 162]
        )
      ]
      spids: [129 164]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-f)} {(DQ (Makefile))} {(-a)} {(DQ (${ VSub_Name NO_MAKE))} 
                  {(KW_Bang '!') (Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [{(make)} {(-j8)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [202]
                    )
                  ]
                )
                (ControlFlow
                  token: <ControlFlow_Exit exit>
                  arg_word: {($ VSub_QMark '$?')}
                )
              ]
            )
          ]
          spids: [16777215 195]
        )
      ]
      spids: [16777215 212]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:arrow_glib_typelib_dir)
          op: Equal
          rhs: {(DQ (${ VSub_Name ARROW_GLIB_TYPELIB_DIR))}
          spids: [215]
        )
      ]
      spids: [215]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name arrow_glib_typelib_dir))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:arrow_glib_typelib_dir)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name build_dir) (/arrow-glib))}
                  spids: [240]
                )
              ]
              spids: [240]
            )
          ]
          spids: [16777215 237]
        )
      ]
      spids: [16777215 248]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name arrow_glib_typelib_dir))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GI_TYPELIB_PATH)
                  op: Equal
                  rhs: 
                    {(DQ (${ VSub_Name arrow_glib_typelib_dir) (':') (${ VSub_Name GI_TYPELIB_PATH))}
                  spids: [269]
                )
              ]
              spids: [269]
            )
          ]
          spids: [16777215 266]
        )
      ]
      spids: [16777215 280]
    )
    (C {(${ VSub_Name GDB)} {(ruby)} {(${ VSub_Name test_dir) (/run-test.rb)} {(DQ ($ VSub_At '$@'))})
  ]
)