(command.CommandList
  children: [
    (C {(Id.KW_Set 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.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:123)
          fd: -1
          arg_word: {(${ Id.VSub_Name objpfx) (tst-gettext4.out)}
        )
      ]
    )
    (command.ControlFlow
      token: (Token id:Id.ControlFlow_Exit val:exit span_id:131)
      arg_word: {($ Id.VSub_QMark '$?')}
    )
  ]
)