(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:common_objpfx)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$1')}
          spids: [57]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_program_prefix)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$2')}
          spids: [60]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:objpfx)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$3')}
          spids: [63]
        )
      ]
    )
    (C {<mkdir>} {<-p>} {(${ Id.VSub_Name objpfx) <'domaindir/de_DE/LC_MESSAGES'>})
    (C {<mkdir>} {<-p>} {(${ Id.VSub_Name objpfx) <'domaindir/fr_FR/LC_MESSAGES'>})
    (C {<msgfmt>} {<-o>} {(${ Id.VSub_Name objpfx) <'domaindir/de_DE/LC_MESSAGES/multithread.mo'>} 
      {<tst-gettext4-de.po>}
    )
    (C {<msgfmt>} {<-o>} {(${ Id.VSub_Name objpfx) <'domaindir/fr_FR/LC_MESSAGES/multithread.mo'>} 
      {<tst-gettext4-fr.po>}
    )
    (command.Simple
      words: [{(${ Id.VSub_Name test_program_prefix)} {(${ Id.VSub_Name objpfx) <tst-gettext4>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {(${ Id.VSub_Name objpfx) <tst-gettext4.out>}
        )
      ]
      do_fork: T
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{($ Id.VSub_QMark '$?')})
  ]
)