(CommandList
  children: [
    (Assignment
      keyword: Assign_Typeset
      flags: [-a]
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_dir) op:Equal spids:[66])]
      spids: [62]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_dir)
          op: Equal
          rhs: {(ArrayLiteralPart words:[{(SQ <'\\$cdir'>)} {(SQ <'\\$cwd'>)}])}
          spids: [68]
        )
      ]
      spids: [68]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(${ VSub_Name _Dbg_cdir)}))
        (Assignment
          keyword: Assign_Typeset
          pairs: [
            (assign_pair
              lhs: (LhsName name:_Dbg_cdir)
              op: Equal
              rhs: 
                {
                  (BracedVarSub
                    token: <VSub_Name _Dbg_source_file>
                    suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
                    spids: [99 104]
                  )
                }
              spids: [98]
            )
          ]
          spids: [96]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(${ VSub_Name _Dbg_cdir)}))
        (Assignment
          keyword: Assign_Typeset
          pairs: [
            (assign_pair
              lhs: (LhsName name:_Dbg_cdir)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: (CommandList children:[(C {(pwd)})])
                    left_token: <Left_CommandSub '$('>
                    spids: [121 123]
                  )
                }
              spids: [120]
            )
          ]
          spids: [118]
        )
      ]
    )
    (FuncDef
      name: _Dbg_adjust_filename
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:filename)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [143]
                )
              ]
              spids: [139]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithVarRef name:_Dbg_set_annotate)
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(_Dbg_resolve_expand_filename)} {($ VSub_Name '$filename')})
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [169 173]
                        )
                      }
                    )
                  ]
                  spids: [16777215 164]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (DParen child:(ArithVarRef name:_Dbg_set_basename))
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (BracedVarSub
                          token: <VSub_Name filename>
                          suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)})
                          spids: [190 195]
                        )
                      }
                    )
                  ]
                  spids: [176 185]
                )
              ]
              else_action: [(C {(echo)} {($ VSub_Name '$filename')})]
              spids: [198 206]
            )
          ]
          spids: [136]
        )
      spids: [132 135]
    )
    (FuncDef
      name: _Dbg_file_canonic
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_NEqual
                              left: (ArithWord w:{($ VSub_Pound '$#')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(SQ <'??'>)})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 239]
                )
              ]
              spids: [16777215 254]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:filename)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [259]
                )
              ]
              spids: [257]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen child:(ArithVarRef name:_Dbg_set_basename))
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:filename)
                      op: Equal
                      rhs: 
                        {
                          (BracedVarSub
                            token: <VSub_Name filename>
                            suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)})
                            spids: [275 280]
                          )
                        }
                      spids: [274]
                    )
                  ]
                  spids: [274]
                )
              ]
            )
            (C {(echo)} {($ VSub_Name '$filename')})
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [221]
        )
      spids: [217 220]
    )
    (FuncDef
      name: _Dbg_tilde_expand_filename
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmd)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('filename=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                        ('(builtin echo ') ($ VSub_Number '$1') (')')
                      )
                    }
                  spids: [316]
                )
              ]
              spids: [314]
            )
            (C {(eval)} {($ VSub_Name '$cmd')})
            (DBracket expr:(BoolUnary op_id:BoolUnary_r child:{($ VSub_Name '$filename')}))
          ]
          spids: [311]
        )
      spids: [307 310]
    )
    (FuncDef
      name: _Dbg_resolve_expand_filename
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Pound '$#')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(_Dbg_errmsg)} 
                      {
                        (DQ 
                          (
'Internal debug error _Dbg_resolve_expand_filename(): null file to find'
                          )
                        )
                      }
                    )
                    (C {(echo)} {(SQ )})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 380]
                )
              ]
              spids: [16777215 403]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:find_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [408]
                )
              ]
              spids: [406]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:found_file) op:Equal spids:[425])]
              spids: [423]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:found_file)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name _Dbg_file2canonic>
                          bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$find_file')}))
                          spids: [430 435]
                        )
                      )
                    }
                  spids: [428]
                )
              ]
              spids: [428]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name '$found_file')})
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ($ VSub_Name '$found_file'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 451]
                )
              ]
              spids: [16777215 466]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name find_file>
                                    suffix_op: 
                                      (Slice
                                        begin: (ArithWord w:{(Lit_Digits 0)})
                                        length: (ArithWord w:{(Lit_Digits 1)})
                                      )
                                    spids: [474 480]
                                  )
                                }
                              right: {(SQ </>)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:full_find_file)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(_Dbg_expand_filename)} {(DQ ($ VSub_Name '$find_file'))})
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [500 506]
                              )
                            }
                          spids: [499]
                        )
                      ]
                      spids: [499]
                    )
                    (C {(echo)} {(DQ ($ VSub_Name '$full_find_file'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 492]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name find_file>
                                    suffix_op: 
                                      (Slice
                                        begin: (ArithWord w:{(Lit_Digits 0)})
                                        length: (ArithWord w:{(Lit_Digits 1)})
                                      )
                                    spids: [525 531]
                                  )
                                }
                              right: {(SQ <.>)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:full_find_file)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(_Dbg_expand_filename)} 
                                        {
                                          (DQ (${ VSub_Name _Dbg_init_cwd) (/) 
                                            ($ VSub_Name '$find_file')
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [551 561]
                              )
                            }
                          spids: [550]
                        )
                      ]
                      spids: [550]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DPipe]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolUnary
                                          op_id: BoolUnary_z
                                          child: {(DQ ($ VSub_Name '$full_find_file'))}
                                        )
                                    )
                                    (DBracket
                                      expr: 
                                        (LogicalNot
                                          child: 
                                            (BoolUnary
                                              op_id: BoolUnary_r
                                              child: {($ VSub_Name '$full_find_file')}
                                            )
                                        )
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:full_find_file)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(_Dbg_expand_filename)} 
                                                {(DQ ($ VSub_Name '$find_file'))}
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [597 603]
                                      )
                                    }
                                  spids: [596]
                                )
                              ]
                              spids: [596]
                            )
                          ]
                          spids: [16777215 589]
                        )
                      ]
                      spids: [16777215 606]
                    )
                    (C {(echo)} {(DQ ($ VSub_Name '$full_find_file'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [521 543]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Typeset
                  flags: [-i]
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:n)
                      op: Equal
                      rhs: 
                        {
                          (BracedVarSub
                            token: <VSub_Name _Dbg_dir>
                            prefix_op: VSub_Pound
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [633 639]
                          )
                        }
                      spids: [632]
                    )
                  ]
                  spids: [628]
                )
                (Assignment
                  keyword: Assign_Typeset
                  flags: [-i]
                  pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[646])]
                  spids: [642]
                )
                (ForExpr
                  init: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:i)
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  cond: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithVarRef name:i)
                      right: (ArithVarRef name:n)
                    )
                  update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_Typeset
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:basename)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name _Dbg_dir>
                                      bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                                      spids: [681 686]
                                    )
                                  )
                                }
                              spids: [679]
                            )
                          ]
                          spids: [677]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {($ VSub_Name '$basename')}
                                          right: {(SQ <'\\$cdir'>)}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:basename)
                                      op: Equal
                                      rhs: {($ VSub_Name '$_Dbg_cdir')}
                                      spids: [709]
                                    )
                                  ]
                                  spids: [709]
                                )
                              ]
                              spids: [16777215 706]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {($ VSub_Name '$basename')}
                                          right: {(SQ <'\\$cwd'>)}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:basename)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: (CommandList children:[(C {(pwd)})])
                                            left_token: <Left_CommandSub '$('>
                                            spids: [733 735]
                                          )
                                        }
                                      spids: [732]
                                    )
                                  ]
                                  spids: [732]
                                )
                              ]
                              spids: [713 729]
                            )
                          ]
                          spids: [16777215 738]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolUnary
                                          op_id: BoolUnary_f
                                          child: 
                                            {
                                              (DQ ($ VSub_Name '$basename') (/) 
                                                ($ VSub_Name '$find_file')
                                              )
                                            }
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(echo)} 
                                  {(DQ ($ VSub_Name '$basename') (/) ($ VSub_Name '$find_file'))}
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [16777215 757]
                            )
                          ]
                          spids: [16777215 774]
                        )
                      ]
                      spids: [674 777]
                    )
                )
              ]
              spids: [621 780]
            )
            (C {(echo)} {(SQ )})
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [361]
        )
      spids: [357 360]
    )
  ]
)