(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other "[")} {(DQ ($ VSub_Pound "$#"))} {(-lt)} {(1)} {(Lit_Other "]")})
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:me)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(basename)} {($ VSub_Number "$0")})]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [68 72]
                      )
                    }
                  spids: [67]
                )
              ]
              spids: [67]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("Usage: ") ($ VSub_Name "$me") (" size [-n] [command]"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[83])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("split data from stdin to multiple invocations of a command"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[93])]
            )
            (SimpleCommand
              words: [{(echo)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[99])]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ("   -n    pass the chunk number as the first parameter to command"))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[109])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("Examples:"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[119])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("   ") ($ VSub_Number "$0") (" 10000 'wc -c' < /bin/ls"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[131])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("   ") ($ VSub_Number "$0") (" 10000 < /bin/ls"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[143])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("   ") ($ VSub_Number "$0") (" 10000 -n < /bin/ls"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[155])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 64]
        )
      ]
      spids: [-1 163]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:chunk_size)
              op: Equal
              rhs: {($ VSub_Number "$1")}
              spids: [166]
            )
          ]
          spids: [166]
        )
      terminator: <Op_Semi ";">
    )
    (C {(shift)})
    (AndOr
      children: [
        (C {(test)} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} {(-n)})
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:pass_part) op:Equal rhs:{(1)} spids:[186])]
                  spids: [186]
                )
              terminator: <Op_Semi ";">
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ";">)
          ]
          spids: [184]
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (C {(test)} {(DQ ($ VSub_Number "$1"))})
        (AndOr
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmd)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star "$*"))}
                  spids: [203]
                )
              ]
              spids: [203]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:cmd) op:Equal rhs:{(example_cmd)} spids:[210])]
              spids: [210]
            )
          ]
          op_id: Op_DPipe
        )
      ]
      op_id: Op_DAmp
    )
    (FuncDef
      name: example_cmd
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (C {(echo)} 
                  {
                    (DQ ("processing part ") ($ VSub_Number "$1") (" (") 
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(wc)} {(-c)})])
                        left_token: <Left_CommandSub "$(">
                        spids: [226 230]
                      ) (" bytes)")
                    )
                  }
                )
              terminator: <Op_Semi ";">
            )
          ]
          spids: [218]
        )
      spids: [214 217]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:part) op:Equal rhs:{(1)} spids:[238])]
      spids: [238]
    )
    (While
      cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)]
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:c)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(od)} {(-to1)} {(-An)} {(-N1)})])
                        left_token: <Left_CommandSub "$(">
                        spids: [250 258]
                      )
                    }
                  spids: [249]
                )
              ]
              spids: [249]
            )
            (AndOr
              children: [
                (C {(test)} {(DQ ($ VSub_Name "$c"))})
                (ControlFlow token:<ControlFlow_Break break>)
              ]
              op_id: Op_DPipe
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:c)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(echo)} {($ VSub_Name "$c")})])
                        left_token: <Left_CommandSub "$(">
                        spids: [276 280]
                      )
                    }
                  spids: [275]
                )
              ]
              spids: [275]
            )
            (AndOr
              children: [
                (C {(test)} {(DQ ($ VSub_Name "$pass_part"))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ppart)
                      op: Equal
                      rhs: {($ VSub_Name "$part")}
                      spids: [294]
                    )
                  ]
                  spids: [294]
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (BraceGroup
                      children: [
                        (C {(printf)} 
                          {
                            (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) ($ VSub_Name "$c"))
                          }
                        )
                        (C {(head)} 
                          {(-c) 
                            (ArithSubPart
                              anode: 
                                (ArithBinary
                                  op_id: Arith_Minus
                                  left: (ArithWord w:{($ VSub_Name "$chunk_size")})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                              spids: [315 320]
                            )
                          }
                        )
                      ]
                      spids: [298]
                    )
                    (C {($ VSub_Name "$cmd")} {($ VSub_Name "$ppart")})
                  ]
                  negated: False
                )
                (ControlFlow token:<ControlFlow_Break break>)
              ]
              op_id: Op_DPipe
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:part)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Plus
                            left: (ArithWord w:{($ VSub_Name "$part")})
                            right: (ArithWord w:{(Lit_Digits 1)})
                          )
                        spids: [337 342]
                      )
                    }
                  spids: [336]
                )
              ]
              spids: [336]
            )
          ]
          spids: [246 344]
        )
    )
  ]
)