(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TMP)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(mktemp)} {(-d)} {(/tmp/mtree.XXXXXX)})])
                left_token: <Left_Backtick '`'>
                spids: [20 26]
              )
            }
          spids: [19]
        )
      ]
      spids: [19]
    )
    (C {(mkdir)} {(-p)} {(${ VSub_Name TMP) (/mr)} {(${ VSub_Name TMP) (/mr/optional-dir)} 
      {(${ VSub_Name TMP) (/mr/some-dir)}
    )
    (C {(touch)} {(${ VSub_Name TMP) (/mr/optional-file)} {(${ VSub_Name TMP) (/mr/some-file)})
    (SimpleCommand
      words: [{(mtree)} {(-c)} {(-p)} {(${ VSub_Name TMP) (/mr)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(${ VSub_Name TMP) (/_)} spids:[71])]
    )
    (C {(rm)} {(-rf)} {(${ VSub_Name TMP) (/mr/optional-file)} {(${ VSub_Name TMP) (/mr/optional-dir)})
    (SimpleCommand
      words: [{(mtree)} {(-p)} {(${ VSub_Name TMP) (/mr)} {(-K)} {(optional)}]
      redirects: [
        (Redir op_id:Redir_Less fd:16777215 arg_word:{(${ VSub_Name TMP) (/_)} spids:[105])
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[112])
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:res) op:Equal rhs:{($ VSub_QMark '$?')} spids:[117])]
      spids: [117]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Name '$res')} {(-ne)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ("ERROR 'optional' keyword failed"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[144])]
            )
            (C {(rm)} {(-rf)} {(${ VSub_Name TMP)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 135]
        )
      ]
      spids: [16777215 161]
    )
    (C {(rm)} {(-rf)} {(${ VSub_Name TMP)})
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)