(CommandList
  children: [
    (Assignment
      keyword: Assign_Typeset
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_journal)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(_Dbg_tempname)} {(journal)})])
                left_token: <Left_CommandSub '$('>
                spids: [80 84]
              )
            }
          spids: [79]
        )
      ]
      spids: [77]
    )
    (FuncDef
      name: _Dbg_write_journal_eval
      body: 
        (BraceGroup
          children: [
            (C {(_Dbg_write_journal)} {(DQ ($ VSub_At '$@'))})
            (C {(eval)} {(DQ ($ VSub_At '$@'))})
          ]
          spids: [94]
        )
      spids: [90 93]
    )
    (FuncDef
      name: _Dbg_write_journal_var
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:var_name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [126]
                )
              ]
              spids: [124]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:val) op:Equal spids:[134])]
              spids: [132]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:val_cmd)
                  op: Equal
                  rhs: 
                    {
                      (DQ ("val='") (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{') 
                        ($ VSub_Name '$var_name') ("}'")
                      )
                    }
                  spids: [139]
                )
              ]
              spids: [137]
            )
            (C {(eval)} {(DQ ($ VSub_Name '$val_cmd'))})
            (C {(_Dbg_write_journal)} {(DQ (${ VSub_Name var_name) ("='") (${ VSub_Name val) ("'"))})
          ]
          spids: [121]
        )
      spids: [117 120]
    )
    (FuncDef
      name: _Dbg_write_journal_avar
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Typeset
                  pairs: [(assign_pair lhs:(LhsName name:decl_str) op:Equal spids:[182])]
                  spids: [180]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:decl_str)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(Assign_Declare declare)} {(-p)} {($ VSub_Number '$1')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [186 192]
                      )
                    }
                  spids: [185]
                )
              ]
              spids: [185]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:decl_a) op:Equal spids:[199])]
              spids: [195]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:decl_a)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{($ VSub_Name '$decl_str')}])}
                  spids: [202]
                )
              ]
              spids: [202]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:decl_a2) op:Equal spids:[212])]
              spids: [208]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:decl_a2)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name decl_a>
                        bracket_op: (WholeArray op_id:Lit_At)
                        suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)}))
                        spids: [216 223]
                      )
                    }
                  spids: [215]
                )
              ]
              spids: [215]
            )
            (C {(_Dbg_write_journal)} 
              {
                (BracedVarSub
                  token: <VSub_Name decl_a2>
                  bracket_op: (WholeArray op_id:Lit_At)
                  spids: [228 233]
                )
              }
            )
          ]
          spids: [177]
        )
      spids: [173 176]
    )
    (FuncDef
      name: _Dbg_write_journal
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_NEqual
                              left: (ArithVarRef name:BASH_SUBSHELL)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_At '$@'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: 16777215
                          arg_word: {(${ VSub_Name _Dbg_journal)}
                          spids: [275]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: 2
                          arg_word: {(/dev/null)}
                          spids: [281]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 266]
                )
              ]
              spids: [16777215 285]
            )
          ]
          spids: [248]
        )
      spids: [244 247]
    )
    (FuncDef
      name: _Dbg_erase_journals
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name '$_Dbg_journal')})
                )
                (SimpleCommand
                  words: [{(rm)} {(${ VSub_Name _Dbg_journal)}]
                  redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[320])]
                )
              ]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [301]
        )
      spids: [297 300]
    )
    (FuncDef
      name: _Dbg_source_journal
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-r)} {($ VSub_Name '$_Dbg_journal')} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(.)} {($ VSub_Name '$_Dbg_journal')})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithVarRef name:BASH_SUBSHELL)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                        (C {(_Dbg_erase_journals)})
                      ]
                    )
                  ]
                  spids: [16777215 354]
                )
              ]
              spids: [16777215 379]
            )
          ]
          spids: [338]
        )
      spids: [334 337]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(_Dbg_journal)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_QUIT_LEVELS)
                  op: Equal
                  rhs: {(0)}
                  spids: [406]
                )
              ]
              spids: [402]
            )
            (C {(_Dbg_write_journal)} {(DQ ('_Dbg_QUIT_LEVELS=0'))})
          ]
          spids: [16777215 398]
        )
      ]
      spids: [16777215 416]
    )
  ]
)