(CommandList
  children: [
    (C {(set)} {(-e)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TMP)
          op: Equal
          rhs: {(/tmp/mtree.) ($ VSub_Dollar '$$')}
          spids: [33]
        )
      ]
      spids: [33]
    )
    (C {(rm)} {(-rf)} {(${ VSub_Name TMP)})
    (C {(mkdir)} {(-p)} {(${ VSub_Name TMP)} {(${ VSub_Name TMP) (/mr)} {(${ VSub_Name TMP) (/mt)})
    (C {(mkdir)} {(${ VSub_Name TMP) (/mr/a)})
    (C {(mkdir)} {(${ VSub_Name TMP) (/mr/b)})
    (C {(mkdir)} {(${ VSub_Name TMP) (/mt/a)})
    (C {(mkdir)} {(${ VSub_Name TMP) (/mt/b)})
    (C {(touch)} {(${ VSub_Name TMP) (/mt/z)})
    (SimpleCommand
      words: [{(mtree)} {(-c)} {(-p)} {(${ VSub_Name TMP) (/mr)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(${ VSub_Name TMP) (/_r)} spids:[112])
      ]
    )
    (SimpleCommand
      words: [{(mtree)} {(-c)} {(-p)} {(${ VSub_Name TMP) (/mt)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(${ VSub_Name TMP) (/_t)} spids:[130])
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(mtree)} {(-f)} {(${ VSub_Name TMP) (/_r)} {(-f)} {(${ VSub_Name TMP) (/_t)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMP) (/_)}
                      spids: [156]
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('ERROR wrong exit on difference'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[174])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 165]
        )
      ]
      spids: [16777215 182]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} 
                  {
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [
                            (SimpleCommand
                              words: [{(wc)} {(-l)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: {(${ VSub_Name TMP) (/_)}
                                  spids: [194]
                                )
                              ]
                            )
                          ]
                        )
                      left_token: <Left_Backtick '`'>
                      spids: [189 200]
                    )
                  } {(-ne)} {(1)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('ERROR spec/spec compare generated wrong output'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[219])]
            )
            (C {(rm)} {(-rf)} {(${ VSub_Name TMP)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 210]
        )
      ]
      spids: [16777215 236]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(mtree)} {(-f)} {(${ VSub_Name TMP) (/_t)} {(-f)} {(${ VSub_Name TMP) (/_r)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMP) (/_)}
                      spids: [257]
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('ERROR wrong exit on difference'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[275])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 266]
        )
      ]
      spids: [16777215 283]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} 
                  {
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [
                            (SimpleCommand
                              words: [{(wc)} {(-l)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: {(${ VSub_Name TMP) (/_)}
                                  spids: [295]
                                )
                              ]
                            )
                          ]
                        )
                      left_token: <Left_Backtick '`'>
                      spids: [290 301]
                    )
                  } {(-ne)} {(1)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('ERROR spec/spec compare generated wrong output'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[320])]
            )
            (C {(rm)} {(-rf)} {(${ VSub_Name TMP)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 311]
        )
      ]
      spids: [16777215 337]
    )
    (C {(rm)} {(-rf)} {(${ VSub_Name TMP)})
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)