(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:this_script)
          op: Equal
          rhs: {(test-get-sourceline.sh)}
          spids: [6]
        )
      ]
      spids: [6]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:abs_top_srcdir)
          op: Equal
          rhs: {(/src/external-vcs/sourceforge/bashdb)}
          spids: [10]
        )
      ]
      spids: [10]
    )
    (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: [17 21]
              ) (/)
            }
          spids: [16]
        )
      ]
      spids: [16]
    )
    (FuncDef
      name: test_get_source_line
      body: 
        (BraceGroup
          children: [
            (C {(_Dbg_get_source_line)} {(2)} {($ VSub_Name "$this_script")})
            (C {(assertEquals)} {(SQ <"# -*- shell-script -*-">)} 
              {(DQ ($ VSub_Name "$_Dbg_source_line"))}
            )
          ]
          spids: [32]
        )
      spids: [28 31]
    )
    (FuncDef
      name: test_get_source_line_with_spaces
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_frame_last_filename)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name abs_top_srcdir) ("test/example/dir with spaces/bug.sh"))}
                  spids: [68]
                )
              ]
              spids: [68]
            )
            (C {(_Dbg_frame_file)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (BoolUnary
                                  op_id: BoolUnary_f
                                  child: {($ VSub_Name "$_Dbg_frame_filename")}
                                )
                            )
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_EqualTilde
                                  left: {($ VSub_Name "$_Dbg_frame_filename")}
                                  right: {(SQ <frame.sh>)}
                                )
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(_Dbg_get_source_line)} {(2)})
                    (C {(assertEquals)} {(SQ <"x=1">)} {(DQ ($ VSub_Name "$_Dbg_source_line"))})
                  ]
                  spids: [-1 114]
                )
              ]
              else_action: [
                (C {(startSkipping)})
                (C {(echo)} {(DQ ("Skipping test due to autoconf problems"))})
                (C {(assertEquals)} {(SQ <skipped>)} {(SQ <skipped>)})
                (C {(endSkipping)})
              ]
              spids: [133 160]
            )
          ]
          spids: [65]
        )
      spids: [61 64]
    )
    (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 182]
        )
      ]
      spids: [-1 196]
    )
    (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/filecache.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/file.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/frame.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (lib/msg.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_set_highlight) op:Equal rhs:{(SQ )} spids:[241])]
      spids: [241]
    )
    (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
    )
  ]
)