(CommandList
  children: [
    (FuncDef
      name: test_save_restore_IFS_PS4
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} {(Lit_VarLike "_Dbg_space_IFS=") (SQ <" ">)})
            (C {(typeset)} {(Lit_VarLike "old_IFS=") (DQ ($ VSub_Name "$IFS"))})
            (C {(typeset)} {(Lit_VarLike "_Dbg_old_set_opts=") ($ VSub_Hyphen "$-")})
            (C {(typeset)} {(Lit_VarLike "new_ifs=") (SQ <" \t">)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_old_set_nullglob)
                  op: Equal
                  rhs: {(1)}
                  spids: [50]
                )
              ]
              spids: [50]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$new_ifs"))}
                  spids: [54]
                )
              ]
              spids: [54]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:PS4) op:Equal rhs:{(SQ <123>)} spids:[60])]
              spids: [60]
            )
            (C {(_Dbg_set_debugger_entry)})
            (C {(assertEquals)} {(DQ ($ VSub_Name "$_Dbg_space_IFS"))} {(DQ ($ VSub_Name "$IFS"))})
            (C {(assertNotEquals)} {(SQ <123>)} {(DQ ($ VSub_Name "$PS4"))})
            (C {(_Dbg_set_to_return_from_debugger)} {(0)})
            (C {(assertNotEquals)} {(DQ ($ VSub_Name "$_Dbg_space_IFS"))} {(DQ ($ VSub_Name "$IFS"))})
            (C {(assertEquals)} {(DQ ($ VSub_Name "$new_ifs"))} {(DQ ($ VSub_Name "$IFS"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$old_IFS"))}
                  spids: [118]
                )
              ]
              spids: [118]
            )
          ]
          spids: [17]
        )
      spids: [13 16]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:abs_top_srcdir)
          op: Equal
          rhs: {(/src/external-vcs/sourceforge/bashdb)}
          spids: [126]
        )
      ]
      spids: [126]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:abs_top_srcdir)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name abs_top_srcdir>
                suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(Lit_Slash /)})
                spids: [133 137]
              ) (/)
            }
          spids: [132]
        )
      ]
      spids: [132]
    )
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (test/unit/helper.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (/init/pre.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (/lib/journal.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (/lib/filecache.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (/lib/file.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (/lib/save-restore.sh)})
    (C {(set)} {(--)})
    (AndOr
      children: [
        (DBracket
          expr: 
            (BoolBinary
              op_id: BoolBinary_GlobDEqual
              left: {($ VSub_Number "$0")}
              right: {(${ VSub_Name BASH_SOURCE)}
            )
        )
        (C {(.)} {(${ VSub_Name shunit_file)})
      ]
      op_id: Op_DAmp
    )
  ]
)