(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: [54]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_program_prefix)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$2')}
          spids: [57]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:objpfx)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$3')}
          spids: [60]
        )
      ]
    )
    (C {<mkdir>} {<-p>} {(${ Id.VSub_Name objpfx) <localedir/existing-locale/LC_MESSAGES>})
    (C {<msgfmt>} {<-o>} {(${ Id.VSub_Name objpfx) <domaindir/existing-locale/LC_MESSAGES/translit.mo>} 
      {<translit.po>}
    )
    (command.Simple
      words: [
        {(${ Id.VSub_Name test_program_prefix)}
        {(${ Id.VSub_Name objpfx) <tst-translit>}
        {(${ Id.VSub_Name objpfx) <domaindir>}
      ]
      redirects: [
        (redir.Redir
          op: <Id.Redir_Great '>'>
          fd: -1
          arg_word: {(${ Id.VSub_Name objpfx) <tst-translit.out>}
        )
      ]
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{($ Id.VSub_QMark '$?')})
  ]
)