(command.AndOr
  ops: [Id.Op_DAmp]
  children: [
    (command.ShFunction
      name: _tshark
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(cur)} {(prev)} {(words)} {(cword)})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(_init_completion)} {(-n)} {(Id.Lit_Other ':')})
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:30)
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$prev')}
              arms: [
                (case_arm
                  pat_list: [
                    {(-f)}
                    {(-s)}
                    {(-B)}
                    {(-D)}
                    {(-L)}
                    {(-c)}
                    {(-R)}
                    {(-N)}
                    {(-d)}
                    {(-C)}
                    {(-e)}
                    {(-E)}
                    {(-z)}
                    {(-h)}
                    {(-v)}
                    {(-o)}
                    {(-K)}
                  ]
                  action: [
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:77)
                    )
                  ]
                  spids: [41 74 80 -1]
                )
                (case_arm
                  pat_list: [{(-i)}]
                  action: [
                    (C {(_available_interfaces)} {(-a)})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:92)
                    )
                  ]
                  spids: [83 84 95 -1]
                )
                (case_arm
                  pat_list: [{(-y)}]
                  action: [
                    (C {(local)} {(opts)} {(i)})
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Minus
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:words span_id:117)
                                        prefix_op: (Id.VSub_Pound)
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                            )
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Great
                          left: 
                            (arith_expr.VarRef
                              token: (Token id:Id.Lit_ArithVarLike val:i span_id:126)
                            )
                          right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDMinus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: words
                                                        span_id: 148
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.VarRef
                                                            token: 
                                                              (Token
                                                                id: Id.Lit_ArithVarLike
                                                                val: i
                                                                span_id: 150
                                                              )
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(-i)}
                                            )
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:159)
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:opts)
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (DQ ('-i ') 
                                                (braced_var_sub
                                                  token: 
                                                    (Token
                                                      id: Id.VSub_Name
                                                      val: words
                                                      span_id: 168
                                                    )
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_Plus
                                                          left: 
                                                            (arith_expr.VarRef
                                                              token: 
                                                                (Token
                                                                  id: Id.Lit_ArithVarLike
                                                                  val: i
                                                                  span_id: 170
                                                                )
                                                            )
                                                          right: 
                                                            (arith_expr.ArithWord
                                                              w: {(Id.Lit_Digits 1)}
                                                            )
                                                        )
                                                    )
                                                )
                                              )
                                            }
                                          spids: [164]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: (Token id:Id.ControlFlow_Break val:break span_id:178)
                                    )
                                  ]
                                  spids: [143 161]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (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:188)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:190)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (DQ 
                                                  (command_sub
                                                    left_token: 
                                                      (Token
                                                        id: Id.Left_DollarParen
                                                        val: '$('
                                                        span_id: 197
                                                      )
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                words: [
                                                                  {(DQ ($ Id.VSub_Number '$1'))}
                                                                  {($ Id.VSub_DollarName '$opts')}
                                                                  {(-L)}
                                                                ]
                                                                redirects: [
                                                                  (redir.Redir
                                                                    op: 
                                                                      (Token
                                                                        id: Id.Redir_GreatAnd
                                                                        val: '2>&'
                                                                        span_id: 207
                                                                      )
                                                                    fd: 2
                                                                    arg_word: {(1)}
                                                                  )
                                                                ]
                                                              )
                                                              (C {(awk)} 
                                                                {
                                                                  (SQ 
                                                                    (Token
                                                                      id: Id.Lit_Chars
                                                                      val: '/^  / { print $1 }'
                                                                      span_id: 217
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                        ]
                                                      )
                                                  )
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [187]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:234)
                    )
                  ]
                  spids: [98 99 237 -1]
                )
                (case_arm
                  pat_list: [{(-a)} {(-b)}]
                  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:247)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:249)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (SQ 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: 'duration: filesize: files:'
                                                    span_id: 256
                                                  )
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [246]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {($ Id.VSub_DollarName '$COMPREPLY')}
                              right: {(Id.Lit_Other '*') (Id.Lit_Other ':')}
                            )
                        )
                        (C {(compopt)} {(-o)} {(nospace)})
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:292)
                    )
                  ]
                  spids: [240 243 295 -1]
                )
                (case_arm
                  pat_list: [{(-r)}]
                  action: [
                    (C {(_filedir)} {(pcap)})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:307)
                    )
                  ]
                  spids: [298 299 310 -1]
                )
                (case_arm
                  pat_list: [{(-H)}]
                  action: [
                    (C {(_filedir)})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:320)
                    )
                  ]
                  spids: [313 314 323 -1]
                )
                (case_arm
                  pat_list: [{(-w)}]
                  action: [
                    (C {(_filedir)})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {($ Id.VSub_DollarName '$cur')}
                              right: 
                                {
                                  (word_part.ExtGlob
                                    op: (Token id:Id.ExtGlob_At val:'@(' span_id:339)
                                    arms: [{} {(-)}]
                                  )
                                }
                            )
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:COMPREPLY)
                              op: assign_op.PlusEqual
                              rhs: 
                                {
                                  (sh_array_literal
                                    left: (Token id:Id.Op_LParen val:'(' span_id:349)
                                    words: [{(-)}]
                                  )
                                }
                              spids: [348]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:356)
                    )
                  ]
                  spids: [326 327 359 -1]
                )
                (case_arm
                  pat_list: [{(-F)}]
                  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:367)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:369)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (DQ 
                                                  (command_sub
                                                    left_token: 
                                                      (Token
                                                        id: Id.Left_DollarParen
                                                        val: '$('
                                                        span_id: 376
                                                      )
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                words: [
                                                                  {(DQ ($ Id.VSub_Number '$1'))}
                                                                  {(-F)}
                                                                ]
                                                                redirects: [
                                                                  (redir.Redir
                                                                    op: 
                                                                      (Token
                                                                        id: Id.Redir_GreatAnd
                                                                        val: '2>&'
                                                                        span_id: 384
                                                                      )
                                                                    fd: 2
                                                                    arg_word: {(1)}
                                                                  )
                                                                ]
                                                              )
                                                              (C {(awk)} 
                                                                {
                                                                  (SQ 
                                                                    (Token
                                                                      id: Id.Lit_Chars
                                                                      val: '/^  / { print $1 }'
                                                                      span_id: 394
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                        ]
                                                      )
                                                  )
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [366]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:411)
                    )
                  ]
                  spids: [362 363 414 -1]
                )
                (case_arm
                  pat_list: [{(-O)}]
                  action: [
                    (command.Sentence
                      child: (C {(local)} {(Id.Lit_VarLike 'prefix=')})
                      terminator: (Token id:Id.Op_Semi val:';' span_id:424)
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {($ Id.VSub_DollarName '$cur')}
                              right: {(Id.Lit_Other '*') (Id.Lit_Other ',') (Id.Lit_Other '*')}
                            )
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:prefix)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:cur span_id:443)
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op_id: Id.VOp1_Percent
                                          arg_word: {(',*')}
                                        )
                                    ) (',')
                                  )
                                }
                              spids: [440]
                            )
                          ]
                        )
                      ]
                    )
                    (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:452)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:454)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-P)} {(DQ ($ Id.VSub_DollarName '$prefix'))} 
                                              {(-W)} 
                                              {
                                                (DQ 
                                                  (command_sub
                                                    left_token: 
                                                      (Token
                                                        id: Id.Left_DollarParen
                                                        val: '$('
                                                        span_id: 469
                                                      )
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                words: [
                                                                  {(DQ ($ Id.VSub_Number '$1'))}
                                                                  {(-G)}
                                                                  {(protocols)}
                                                                ]
                                                                redirects: [
                                                                  (redir.Redir
                                                                    op: 
                                                                      (Token
                                                                        id: Id.Redir_GreatAnd
                                                                        val: '2>&'
                                                                        span_id: 479
                                                                      )
                                                                    fd: 2
                                                                    arg_word: {(1)}
                                                                  )
                                                                ]
                                                              )
                                                              (C {(cut)} {(-f)} {(3)})
                                                            ]
                                                            negated: F
                                                          )
                                                        ]
                                                      )
                                                  )
                                                )
                                              } {(--)} 
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cur
                                                        span_id: 499
                                                      )
                                                    suffix_op: 
                                                      (suffix_op.Unary
                                                        op_id: Id.VOp1_DPound
                                                        arg_word: {('*,')}
                                                      )
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [451]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:510)
                    )
                  ]
                  spids: [417 418 513 -1]
                )
                (case_arm
                  pat_list: [{(-T)}]
                  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:525)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:527)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (SQ 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: 'ps text pdml psml fields'
                                                    span_id: 534
                                                  )
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [524]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:548)
                    )
                  ]
                  spids: [516 517 551 -1]
                )
                (case_arm
                  pat_list: [{(-t)}]
                  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:563)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:565)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (SQ 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: 'ad a r d dd e'
                                                    span_id: 572
                                                  )
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [562]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:586)
                    )
                  ]
                  spids: [554 555 589 -1]
                )
                (case_arm
                  pat_list: [{(-u)}]
                  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:601)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:603)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {(SQ (Token id:Id.Lit_Chars val:'s hms' span_id:610))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [600]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:624)
                    )
                  ]
                  spids: [592 593 627 -1]
                )
                (case_arm
                  pat_list: [{(-W)}]
                  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:635)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:637)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {(SQ (Token id:Id.Lit_Chars val:n span_id:644))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [634]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:658)
                    )
                  ]
                  spids: [630 631 661 -1]
                )
                (case_arm
                  pat_list: [{(-X)}]
                  action: [
                    (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: {(lua_script) (Id.Lit_Other ':') (Id.Lit_Other '*')}
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:681)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:cur)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:cur span_id:688)
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op_id: Id.VOp1_Pound
                                            arg_word: {('*:')}
                                          )
                                      )
                                    }
                                  spids: [686]
                                )
                              ]
                            )
                            (C {(_filedir)} {(lua)})
                          ]
                          spids: [668 683]
                        )
                      ]
                      else_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:703)
                                    words: [
                                      {
                                        (command_sub
                                          left_token: 
                                            (Token
                                              id: Id.Left_DollarParen
                                              val: '$('
                                              span_id: 705
                                            )
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (C {(compgen)} {(-W)} 
                                                  {
                                                    (SQ 
                                                      (Token
                                                        id: Id.Lit_Chars
                                                        val: 'lua_script:'
                                                        span_id: 712
                                                      )
                                                    )
                                                  } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                )
                                              ]
                                            )
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [702]
                            )
                          ]
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName '$COMPREPLY')}
                                  right: {(Id.Lit_Other '*') (Id.Lit_Other ':')}
                                )
                            )
                            (C {(compopt)} {(-o)} {(nospace)})
                          ]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:749)
                    )
                  ]
                  spids: [664 665 752 -1]
                )
                (case_arm
                  pat_list: [{(-G)}]
                  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:760)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:762)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (DQ 
                                                  (command_sub
                                                    left_token: 
                                                      (Token
                                                        id: Id.Left_DollarParen
                                                        val: '$('
                                                        span_id: 769
                                                      )
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [
                                                          (command.Pipeline
                                                            children: [
                                                              (C {(DQ ($ Id.VSub_Number '$1'))} {(-G)} 
                                                                {(Id.Lit_QMark '?')}
                                                              )
                                                              (C {(awk)} 
                                                                {
                                                                  (SQ 
                                                                    (Token
                                                                      id: Id.Lit_Chars
                                                                      val: '/^[ \\t]*-G / \\\n'
                                                                      span_id: 786
                                                                    ) 
                                                                    (Token
                                                                      id: Id.Lit_Chars
                                                                      val: 
'                     { sub("^[[]","",$2); sub("[]]$","",$2); print $2 }'
                                                                      span_id: 787
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                        ]
                                                      )
                                                  )
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [759]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:806)
                    )
                  ]
                  spids: [755 756 809 -1]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {(DQ ($ Id.VSub_DollarName '$cur'))}
                              right: {(-) (Id.Lit_Other '*')}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:832)
                    )
                  ]
                  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:838)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:840)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (SQ 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: '$( _parse_help "$1" -h )'
                                                    span_id: 847
                                                  )
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [837]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:861)
                    )
                  ]
                  spids: [818 834]
                )
              ]
            )
          ]
        )
    )
    (C {(complete)} {(-F)} {(_tshark)} {(tshark)})
  ]
)