(CommandList
  children: [
    (FuncDef
      name: test_action
      body: 
        (BraceGroup
          children: [
            (FuncDef
              name: _Dbg_errmsg
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:errmsgs)
                          op: PlusEqual
                          rhs: {(ArrayLiteralPart words:[{(DQ ($ VSub_At "$@"))}])}
                          spids: [28]
                        )
                      ]
                      spids: [28]
                    )
                  ]
                  spids: [25]
                )
              spids: [21 24]
            )
            (FuncDef
              name: _Dbg_msg
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:msgs)
                          op: PlusEqual
                          rhs: {(ArrayLiteralPart words:[{(DQ ($ VSub_At "$@"))}])}
                          spids: [46]
                        )
                      ]
                      spids: [46]
                    )
                  ]
                  spids: [43]
                )
              spids: [39 42]
            )
            (FuncDef
              name: _Dbg_msg_nocr
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:msgs)
                          op: PlusEqual
                          rhs: {(ArrayLiteralPart words:[{(DQ ($ VSub_At "$@"))}])}
                          spids: [64]
                        )
                      ]
                      spids: [64]
                    )
                  ]
                  spids: [61]
                )
              spids: [57 60]
            )
            (FuncDef
              name: _Dbg_adjust_filename
              body: (BraceGroup children:[(C {(echo)} {($ VSub_Star "$*")})] spids:[79])
              spids: [75 78]
            )
            (FuncDef
              name: _Dbg_expand_filename
              body: (BraceGroup children:[(C {(echo)} {($ VSub_Star "$*")})] spids:[94])
              spids: [90 93]
            )
            (C {(_Dbg_readin)} {(DQ ($ VSub_Name "$shunit_file"))})
            (C {(typeset)} {(-a)} {(msgs)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:msgs)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [121]
                )
              ]
              spids: [121]
            )
            (C {(_Dbg_set_action)})
            (C {(assertNotEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (C {(_Dbg_set_action)} {(1)} {(2)} {(3)} {(4)} {(5)})
            (C {(assertNotEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (C {(_Dbg_set_action)} {(DQ ($ VSub_Name "$shunit_file"))} {(Lit_VarLike "x=") (1)} {(5)})
            (C {(assertNotEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (C {(assertEquals)} {(0)} {($ VSub_Name "$_Dbg_action_count")})
            (C {(_Dbg_set_action)} {(DQ ($ VSub_Name "$shunit_file"))} {(5)} {(Lit_VarLike "x=") (1)})
            (C {(assertEquals)} 
              {(DQ ("Action 1 set in file ") ($ VSub_Name "$shunit_file") (", line 5."))} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name msgs>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                    spids: [227 232]
                  )
                )
              }
            )
            (C {(assertEquals)} {(1)} {($ VSub_Name "$_Dbg_action_count")})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:msgs)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [244]
                )
              ]
              spids: [244]
            )
            (C {(_Dbg_unset_action)})
            (C {(assertNotEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (C {(_Dbg_unset_action)} {(1)} {(2)} {(3)})
            (C {(assertNotEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (C {(_Dbg_unset_action)} {(DQ ($ VSub_Name "$shunit_file"))} {(foo)})
            (C {(assertNotEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (C {(_Dbg_unset_action)} {(DQ ($ VSub_Name "$shunit_file"))} {(6)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:rc)
                  op: Equal
                  rhs: {($ VSub_QMark "$?")}
                  spids: [323]
                )
              ]
              spids: [323]
            )
            (C {(assertNotEquals)} {(SQ <0>)} {(DQ ($ VSub_Name "$rc"))})
            (C {(assertEquals)} 
              {(DQ ("No action found in file ") ($ VSub_Name "$shunit_file") (", line 6."))} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name errmsgs>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                    spids: [348 353]
                  )
                )
              }
            )
            (C {(assertEquals)} {(1)} {($ VSub_Name "$_Dbg_action_count")})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:msgs)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [367]
                )
              ]
              spids: [367]
            )
            (C {(_Dbg_unset_action)} {(DQ ($ VSub_Name "$shunit_file"))} {(5)})
            (C {(assertEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (C {(assertEquals)} {(SQ <0>)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name msgs>
                    prefix_op: VSub_Pound
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [403 409]
                  )
                )
              }
            )
            (C {(assertEquals)} {(0)} {($ VSub_Name "$_Dbg_action_count")})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:errmsgs)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [425]
                )
              ]
              spids: [425]
            )
            (C {(_Dbg_unset_action)} {(DQ ($ VSub_Name "$shunit_file"))} {(5)})
            (C {(assertNotEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (C {(assertEquals)} 
              {(DQ ("No action found in file ") ($ VSub_Name "$shunit_file") (", line 5."))} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name errmsgs>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                    spids: [459 464]
                  )
                )
              }
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:msgs)
                      op: Equal
                      rhs: {(ArrayLiteralPart)}
                      spids: [469]
                    )
                  ]
                  spids: [469]
                )
              terminator: <Op_Semi ";">
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:errmsgs)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [474]
                )
              ]
              spids: [474]
            )
            (C {(_Dbg_set_action)} {($ VSub_Name "$shunit_file")} {(6)} {(Lit_VarLike "x=") (1)})
            (C {(assertEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (C {(assertEquals)} {(SQ <1>)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name msgs>
                    prefix_op: VSub_Pound
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [511 517]
                  )
                )
              }
            )
            (C {(assertEquals)} 
              {(DQ ("Action 2 set in file ") ($ VSub_Name "$shunit_file") (", line 6."))} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name msgs>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                    spids: [530 535]
                  )
                )
              }
            )
            (C {(assertEquals)} {(1)} {($ VSub_Name "$_Dbg_action_count")})
            (C {(_Dbg_do_clear_action)} {(1)} {(2)} {(3)})
            (C {(assertNotEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (C {(_Dbg_do_clear_action)} {(${ VSub_Name shunit_file)} {(bogus)})
            (C {(assertNotEquals)} {(SQ <0>)} {(DQ ($ VSub_QMark "$?"))})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:msgs)
                      op: Equal
                      rhs: {(ArrayLiteralPart)}
                      spids: [590]
                    )
                  ]
                  spids: [590]
                )
              terminator: <Op_Semi ";">
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:errmsgs)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [595]
                )
              ]
              spids: [595]
            )
            (C {(_Dbg_do_clear_action)} {(${ VSub_Name shunit_file) (Lit_Other ":") (6)})
            (C {(assertEquals)} {(0)} {($ VSub_Name "$_Dbg_action_count")})
            (C {(assertEquals)} {(SQ <1>)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name msgs>
                    prefix_op: VSub_Pound
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [623 629]
                  )
                )
              }
            )
          ]
          spids: [14]
        )
      spids: [10 13]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(SQ </src/external-vcs/sourceforge/bashdb>)} {(Lit_Other "=")} {(SQ )} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} {(DQ ("Something is wrong abs_top_srcdir is not set."))})
            (C {(exit)} {(1)})
          ]
          spids: [-1 652]
        )
      ]
      spids: [-1 666]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:abs_top_srcdir)
          op: Equal
          rhs: {(/src/external-vcs/sourceforge/bashdb)}
          spids: [669]
        )
      ]
      spids: [669]
    )
    (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: [676 680]
              ) (/)
            }
          spids: [675]
        )
      ]
      spids: [675]
    )
    (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) (init/vars.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/action.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/file.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/filecache.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/fns.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/journal.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/validate.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/alias.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/help.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (command/action.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
    )
  ]
)