(command.AndOr
  ops: [Id.Op_DAmp]
  children: [
    (command.ShFunction
      name: _dot
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<cur>} {<prev>} {<words>} {<cword>})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<_init_completion>} {<-n>} {<Id.Lit_Colon ':'> <Id.Lit_Equals '='>})
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName '$prev')}
                      right: {<-> <Id.Lit_Other '['> <V> <Id.Lit_Other '?'> <Id.Lit_Other ']'>}
                    )
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$cur')}
              arms: [
                (case_arm
                  pat_list: [
                    {<-G> <Id.Lit_Star '*'>}
                    {<-N> <Id.Lit_Star '*'>}
                    {<-E> <Id.Lit_Star '*'>}
                    {<-l> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                    {<-q> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                    {<-s> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                    {<-Ln> <Id.Lit_Star '*'>}
                    {<-LU> <Id.Lit_Star '*'>}
                    {<-LC> <Id.Lit_Star '*'>}
                    {<-LT> <Id.Lit_Star '*'>}
                  ]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Return return>)]
                  spids: [62 94 100 -1]
                )
                (case_arm
                  pat_list: [{<-T> <Id.Lit_Star '*'>}]
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'langs='> 
                        (sh_array_literal
                          left: <Id.Op_LParen _>
                          words: [
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        words: [{(DQ ($ Id.VSub_Number '$1'))} {<-TNON_EXISTENT>}]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_GreatAnd '2>&'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<1>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                      (C {<sed>} {<-ne>} {(SQ <'s/.*one of://p'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          ]
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:COMPREPLY)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (C {<compgen>} {<-P>} {<-T>} {<-W>} {(SQ <'${langs[@]}'>)} {<-->} 
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                token: <Id.VSub_Name cur>
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op_id: Id.VOp1_Pound
                                                    arg_word: {<-T>}
                                                  )
                                              )
                                            )
                                          }
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [141]
                        )
                      ]
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Return return>)
                  ]
                  spids: [103 105 176 -1]
                )
                (case_arm
                  pat_list: [{<-K> <Id.Lit_Star '*'>}]
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'layouts='> 
                        (sh_array_literal
                          left: <Id.Op_LParen _>
                          words: [
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        words: [{(DQ ($ Id.VSub_Number '$1'))} {<-KNON_EXISTENT>}]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_GreatAnd '2>&'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<1>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                      (C {<sed>} {<-ne>} {(SQ <'s/.*one of://p'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          ]
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:COMPREPLY)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (C {<compgen>} {<-P>} {<-K>} {<-W>} {(SQ <'${layouts[@]}'>)} {<-->} 
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                token: <Id.VSub_Name cur>
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op_id: Id.VOp1_Pound
                                                    arg_word: {<-K>}
                                                  )
                                              )
                                            )
                                          }
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [217]
                        )
                      ]
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Return return>)
                  ]
                  spids: [179 181 252 -1]
                )
                (case_arm
                  pat_list: [{<-o> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:cur)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                token: <Id.VSub_Name cur>
                                suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<-o>})
                              )
                            }
                          spids: [260]
                        )
                      ]
                    )
                    (C {<_filedir>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:COMPREPLY)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (C {<compgen>} {<-P>} {<-o>} {<-W>} {(SQ <'${COMPREPLY[@]}'>)} 
                                          {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [271]
                        )
                      ]
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Return return>)
                  ]
                  spids: [255 257 302 -1]
                )
              ]
            )
            (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: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:COMPREPLY)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (C {<compgen>} {<-W>} 
                                          {
                                            (SQ <'-V -v -G -N -E -T -K -l -o -O -P -q -s -y -n\n'> 
                                              <
'            -n1 -n2 -x -Lg -LO -Ln -LU -LC -LT -m -c -?'
                                              >
                                            )
                                          } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [326]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {($ Id.VSub_DollarName '$COMPREPLY')}
                              right: 
                                {<-> 
                                  (word_part.ExtGlob
                                    op: <Id.ExtGlob_At '@('>
                                    arms: [{<'[GNETKo]'>} {<'L[nUCT]'>}]
                                  )
                                }
                            )
                        )
                        (C {<compopt>} {<-o>} {<nospace>})
                      ]
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Return return>)
                  ]
                  spids: [309 323]
                )
              ]
            )
            (C {<_filedir>} {<dot>})
          ]
        )
    )
    (C {<complete>} {<-F>} {<_dot>} {<dot>})
  ]
)