(command.CommandList
  children: [
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.DBracket
          expr: 
            (bool_expr.Binary
              op_id: Id.BoolBinary_GlobDEqual
              left: {($ Id.VSub_DollarName '$OSTYPE')}
              right: 
                {(Id.Lit_Other '*') 
                  (word_part.ExtGlob
                    op: (Token id:Id.ExtGlob_At val:'@(' span_id:11)
                    arms: [{(linux)} {(freebsd)} {(darwin)}]
                  ) (Id.Lit_Other '*')
                }
            )
        )
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Return val:return span_id:24)
          arg_word: {(1)}
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.ShFunction
          name: _killall
          body: 
            (command.BraceGroup
              children: [
                (C {(local)} {(cur)} {(prev)} {(words)} {(cword)} {(split)})
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {(_init_completion)} {(-s)})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:55)
                    )
                  ]
                )
                (command.Case
                  to_match: {($ Id.VSub_DollarName '$prev')}
                  arms: [
                    (case_arm
                      pat_list: [
                        {(-Z)}
                        {(--context)}
                        {(-o)}
                        {(--older-than)}
                        {(-y)}
                        {(--younger-than)}
                        {(-V)}
                        {(--version)}
                      ]
                      action: [
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:84)
                        )
                      ]
                      spids: [66 81 87 -1]
                    )
                    (case_arm
                      pat_list: [{(-s)} {(--signal)}]
                      action: [
                        (C {(_signals)})
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:99)
                        )
                      ]
                      spids: [90 93 102 -1]
                    )
                    (case_arm
                      pat_list: [{(-u)} {(--user)}]
                      action: [
                        (C {(_allowed_users)})
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:114)
                        )
                      ]
                      spids: [105 108 117 -1]
                    )
                  ]
                )
                (command.AndOr
                  ops: [Id.Op_DAmp]
                  children: [
                    (C {($ Id.VSub_DollarName '$split')})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:128)
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName '$cur')}
                                  right: {(-) (Id.Lit_Other '*')}
                                )
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:144)
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:COMPREPLY)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (sh_array_literal
                                    left: (Token id:Id.Op_LParen val:'(' span_id:150)
                                    words: [
                                      {
                                        (command_sub
                                          left_token: 
                                            (Token
                                              id: Id.Left_DollarParen
                                              val: '$('
                                              span_id: 152
                                            )
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (C {(compgen)} {(-W)} 
                                                  {
                                                    (SQ 
                                                      (Token
                                                        id: Id.Lit_Chars
                                                        val: '$( _parse_help "$1" )'
                                                        span_id: 159
                                                      )
                                                    )
                                                  } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                )
                                              ]
                                            )
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [149]
                            )
                          ]
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_eq
                                  left: {($ Id.VSub_DollarName '$cword')}
                                  right: {(1)}
                                )
                            )
                            (C {(_signals)} {(-)})
                          ]
                        )
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:190)
                        )
                      ]
                      spids: [132 146]
                    )
                  ]
                )
                (C {(_pnames)})
              ]
            )
        )
        (C {(complete)} {(-F)} {(_killall)} {(killall)})
      ]
    )
  ]
)