(command.CommandList
  children: [
    (command.ShFunction
      name: test_complete_eval
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:COMP_LINE)
                  op: assign_op.Equal
                  rhs: {(SQ <'eval?'>)}
                  spids: [14]
                )
              ]
            )
            (C {<typeset>} {<-a>} 
              {<Id.Lit_VarLike 'COMPREPLY='> (sh_array_literal left:<Id.Op_LParen _>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_Dbg_source_line)
                  op: assign_op.Equal
                  rhs: {(SQ <'if [ -d /etc/profile.d ]; then'>)}
                  spids: [29]
                )
              ]
            )
            (C {<_Dbg_complete_eval>})
            (C {<assertEquals>} {(SQ <'[ -d /etc/profile.d ]'>)} 
              {
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Name COMPREPLY>
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                  )
                )
              }
            )
            (C {<typeset>} {<-a>} 
              {<Id.Lit_VarLike 'COMPREPLY='> (sh_array_literal left:<Id.Op_LParen _>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_Dbg_source_line)
                  op: assign_op.Equal
                  rhs: {(SQ <'x=10'>)}
                  spids: [63]
                )
              ]
            )
            (C {<_Dbg_complete_eval>})
            (C {<assertEquals>} {(SQ <'echo 10'>)} 
              {
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Name COMPREPLY>
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                  )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:COMP_LINE)
                  op: assign_op.Equal
                  rhs: {(SQ <eval>)}
                  spids: [88]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_Dbg_source_line)
                  op: assign_op.Equal
                  rhs: {(SQ <'x=10'>)}
                  spids: [94]
                )
              ]
            )
            (C {<_Dbg_complete_eval>})
            (C {<assertEquals>} {(SQ <'x=10'>)} 
              {
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Name COMPREPLY>
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:abs_top_srcdir)
          op: assign_op.Equal
          rhs: {<'/src/external-vcs/sourceforge/bashdb'>}
          spids: [121]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:abs_top_srcdir)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name abs_top_srcdir>
                suffix_op: (suffix_op.Unary tok:<Id.VOp1_DPercent '%%'> arg_word:{<Id.Lit_Slash '/'>})
              ) <'/'>
            }
          spids: [127]
        )
      ]
    )
    (C {<.>} {(${ Id.VSub_Name abs_top_srcdir) <'test/unit/helper.sh'>})
    (C {<.>} {(${ Id.VSub_Name abs_top_srcdir) <'init/pre.sh'>})
    (command.ForEach
      iter_name: file
      iter_words: [{<alias>} {<help>} {<fns>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [(C {<.>} {(${ Id.VSub_Name abs_top_srcdir) <'lib/'> (${ Id.VSub_Name file) <.sh>})]
        )
    )
    (C {<.>} {(${ Id.VSub_Name abs_top_srcdir) <'command/eval.sh'>})
    (C {<set>} {<-->})
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: 
            (bool_expr.Binary
              op_id: Id.BoolBinary_GlobDEqual
              left: {($ Id.VSub_Number '$0')}
              right: {(${ Id.VSub_Name BASH_SOURCE)}
            )
        )
        (C {<.>} {(${ Id.VSub_Name shunit_file)})
      ]
    )
  ]
)