(CommandList
  children: [
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(Lit_Other '[')} 
          {
            (BracedVarSub
              token: <VSub_Name LOGGER_SH>
              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(true)})
              spids: [10 14]
            )
          } {(Lit_Other ']')}
        )
        (ControlFlow token:<ControlFlow_Return return>)
      ]
    )
    (Assignment
      keyword: Assign_Declare
      flags: [-g]
      pairs: [(assign_pair lhs:(LhsName name:LOGGER_SH) op:Equal rhs:{(true)} spids:[26])]
      spids: [22]
    )
    (C {(.)} 
      {
        (BracedVarSub
          token: <VSub_Name BASH_SOURCE>
          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
          spids: [32 37]
        ) (/common.sh)
      }
    )
    (Assignment
      keyword: Assign_Declare
      flags: [-g]
      pairs: [
        (assign_pair
          lhs: (LhsName name:LOGGER_FILE)
          op: Equal
          rhs: {(DQ (logfile.txt))}
          spids: [45]
        )
      ]
      spids: [41]
    )
    (SimpleCommand
      words: [{(echo)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name LOGGER_FILE))}
          spids: [52]
        )
      ]
    )
    (FuncDef
      name: log
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(echo)} {(DQ (${ VSub_At '@'))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(DQ (${ VSub_Name LOGGER_FILE))}
                  spids: [78]
                )
              ]
            )
          ]
          spids: [67]
        )
      spids: [61 66]
    )
  ]
)