(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'reset can handle submodules'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {(DQ ($ Id.VSub_DollarName TEST_DIRECTORY)) <'/lib-submodule-update.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_submodule_switch>
      more_env: []
      words: [{<test_submodule_switch>} {(DQ <'git reset --keep'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_submodule_switch>
      more_env: []
      words: [{<test_submodule_switch>} {(DQ <'git reset --merge'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_submodule_forced_switch>
      more_env: []
      words: [{<test_submodule_forced_switch>} {(DQ <'git reset --hard'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)