(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:16777215 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:16777215 arg_word:{(2)} spids:[93])]
            )
            (SimpleCommand
              words: [{(echo)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 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:16777215 arg_word:{(2)} spids:[109])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('Examples:'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[119])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('   ') ($ VSub_Number '$0') (" 10000 'wc -c' < /bin/ls"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[131])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('   ') ($ VSub_Number '$0') (' 10000 < /bin/ls'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[143])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('   ') ($ VSub_Number '$0') (' 10000 -n < /bin/ls'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[155])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [16777215 64]
        )
      ]
      spids: [16777215 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]
        )
    )
  ]
)