(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Id.Op_DAmp]
                  children: [
                    (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$BASH'))})
                    (C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$POSIXLY_CORRECT'))})
                  ]
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:29)
            )
          ]
          action: [(C {(true)})]
          spids: [10 31]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Simple
                  words: [{(type)} {(bash)}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:46)
                      fd: -1
                      arg_word: {(/dev/null)}
                    )
                    (redir.Redir
                      op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:49)
                      fd: 2
                      arg_word: {(1)}
                    )
                  ]
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:51)
            )
          ]
          action: [
            (C {(unset)} {(POSIXLY_CORRECT)})
            (C {(exec)} {(bash)} {(DQ ($ Id.VSub_Number '$0'))} {(DQ ($ Id.VSub_At '$@'))})
          ]
          spids: [40 53]
        )
      ]
      else_action: [
        (C {(echo)} 
          {
            (SQ 
              (Token
                id: Id.Lit_Chars
                val: '1..0 #SKIP skipping bash completion tests; bash not available'
                span_id: 83
              )
            )
          }
        )
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:87)
          arg_word: {(0)}
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
  ]
)