(CommandList
  children: [
    (FuncDef
      name: p
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (C {(echo)} 
                  {
                    (BracedVarSub
                      token: <VSub_Name BASH_SOURCE>
                      bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)}))
                      suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)})
                      spids: [14 22]
                    ) (Lit_Other ":") 
                    (BracedVarSub
                      token: <VSub_Name BASH_LINENO>
                      bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                      spids: [24 29]
                    )
                  }
                )
              terminator: <Op_Semi ";">
            )
            (Sentence child:(C {(echo)} {(SQ <"===">)}) terminator:<Op_Semi ";">)
          ]
          spids: [10]
        )
      spids: [6 9]
    )
    (C {(p)})
    (Sentence child:(C {(p)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(6)} spids:[49])]
      spids: [49]
    )
    (Sentence child:(C {(p)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(7)} spids:[56])]
      spids: [56]
    )
    (Sentence child:(C {(p)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(8)} spids:[63])]
      spids: [63]
    )
    (Sentence child:(C {(p)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(9)} spids:[70])]
      spids: [70]
    )
    (Sentence child:(C {(p)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(10)} spids:[77])]
      spids: [77]
    )
    (Sentence child:(C {(p)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(11)} spids:[84])]
      spids: [84]
    )
    (Sentence child:(C {(p)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(12)} spids:[91])]
      spids: [91]
    )
    (Sentence child:(C {(p)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(13)} spids:[98])]
      spids: [98]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(14)} spids:[101])]
      spids: [101]
    )
  ]
)