(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName '$OSTYPE')}
                      right: {<Id.Lit_Other '*'> <linux> <Id.Lit_Other '*'>}
                    )
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (C {<.>} {(DQ ($ Id.VSub_DollarName '$BASH_SOURCE') <.linux>)})
            (command.ControlFlow token:<Id.ControlFlow_Return return>)
          ]
          spids: [4 19]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.ShFunction
          name: _mount
          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:<Id.ControlFlow_Return return>)
                  ]
                )
                (C {<local>} {<sm>} {<host>})
                (command.Case
                  to_match: {($ Id.VSub_DollarName '$prev')}
                  arms: [
                    (case_arm
                      pat_list: [{<-t>} {<--types>}]
                      action: [
                        (C {<_fstypes>})
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      ]
                      spids: [98 101 112 -1]
                    )
                  ]
                )
                (command.AndOr
                  ops: [Id.Op_DAmp]
                  children: [
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {(DQ ($ Id.VSub_DollarName '$cur'))}
                          right: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>)}
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:cur)
                          op: assign_op.Equal
                          rhs: {(DQ </>)}
                          spids: [133]
                        )
                      ]
                    )
                  ]
                )
                (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 '*'> <Id.Lit_Other ':'> <Id.Lit_Other '*'>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      action: [
                        (command.ForEach
                          iter_name: sm
                          iter_words: [
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  command_list: 
                                    (command.CommandList
                                      children: [(C {<type>} {<-P>} {<showmount>})]
                                    )
                                )
                              )
                            }
                            (word.BracedTree
                              parts: [
                                (word_part.BracedTuple
                                  words: [{} {</usr>}]
                                )
                                </>
                                (word_part.BracedTuple
                                  words: [{} {<s>}]
                                )
                                <bin/showmount>
                              ]
                            )
                          ]
                          do_arg_iter: F
                          body: 
                            (command.DoGroup
                              children: [
                                (command.AndOr
                                  ops: [Id.Op_DPipe]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_x
                                          child: {($ Id.VSub_DollarName '$sm')}
                                        )
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                )
                                (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 '$('>
                                                  command_list: 
                                                    (command.CommandList
                                                      children: [
                                                        (C {<compgen>} {<-W>} 
                                                          {
                                                            (DQ 
                                                              (command_sub
                                                                left_token: 
                                                                  <Id.Left_DollarParen '$('>
                                                                command_list: 
                                                                  (command.CommandList
                                                                    children: [
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (C 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$sm'
                                                                                )
                                                                              )
                                                                            } {<-e>} 
                                                                            {
                                                                              (braced_var_sub
                                                                                token: 
                                                                                  <Id.VSub_Name cur>
                                                                                suffix_op: 
                                                                                  (suffix_op.Unary
                                                                                    op_id: 
Id.VOp1_DPercent
                                                                                    arg_word: {<':*'>}
                                                                                  )
                                                                              )
                                                                            }
                                                                          )
                                                                          (C {<awk>} 
                                                                            {(SQ <'NR>1 {print $1}'>)}
                                                                          )
                                                                        ]
                                                                        negated: F
                                                                      )
                                                                    ]
                                                                  )
                                                              )
                                                            )
                                                          } {<-->} 
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                token: <Id.VSub_Name cur>
                                                                suffix_op: 
                                                                  (suffix_op.Unary
                                                                    op_id: Id.VOp1_Pound
                                                                    arg_word: {<'*:'>}
                                                                  )
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [204]
                                    )
                                  ]
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<0>}
                                )
                              ]
                            )
                        )
                      ]
                      spids: [140 157]
                    )
                  ]
                )
                (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: <Id.Op_Semi _>
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:host)
                              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: {<Id.Lit_Slash /> <Id.Lit_Slash />}
                                      )
                                  )
                                }
                              spids: [287]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:host)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    token: <Id.VSub_Name host>
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op_id: Id.VOp1_DPercent
                                        arg_word: {<Id.Lit_Slash /> <'*'>}
                                      )
                                  )
                                }
                              spids: [296]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName '$host')}
                                        )
                                    )
                                  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 '$('>
                                                  command_list: 
                                                    (command.CommandList
                                                      children: [
                                                        (C {<compgen>} {<-P>} 
                                                          {(DQ <//> ($ Id.VSub_DollarName '$host'))} {<-W>} 
                                                          {
                                                            (DQ 
                                                              (command_sub
                                                                left_token: 
                                                                  <Id.Left_DollarParen '$('>
                                                                command_list: 
                                                                  (command.CommandList
                                                                    children: [
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (command.Simple
                                                                            words: [
                                                                              {<smbclient>}
                                                                              {<-d>}
                                                                              {<0>}
                                                                              {<-NL>}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$host'
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: [
                                                                              (redir.Redir
                                                                                op: 
                                                                                  <Id.Redir_Great 
'2>'
                                                                                  >
                                                                                fd: 2
                                                                                arg_word: 
                                                                                  {</dev/null>}
                                                                              )
                                                                            ]
                                                                          )
                                                                          (C {<sed>} {<-ne>} 
                                                                            {(SQ <'/^['>) 
                                                                              (DQ <Id.Lit_Other '$'> 
                                                                                <"'"> <Id.Lit_Other '\\'> <"t '">
                                                                              ) (SQ <']*Sharename/,/^$/p'>)
                                                                            }
                                                                          )
                                                                          (C {<sed>} {<-ne>} 
                                                                            {
                                                                              (SQ 
                                                                                <
'3,$s|^[^A-Za-z]*\\([^'
                                                                                >
                                                                              ) (DQ <Id.Lit_Other '$'> <"'"> <Id.Lit_Other '\\'> <"t '">) (SQ <']*\\).*$|/\\1|p'>)
                                                                            }
                                                                          )
                                                                        ]
                                                                        negated: F
                                                                      )
                                                                    ]
                                                                  )
                                                              )
                                                            )
                                                          } {<-->} 
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                token: <Id.VSub_Name cur>
                                                                suffix_op: 
                                                                  (suffix_op.Unary
                                                                    op_id: Id.VOp1_Pound
                                                                    arg_word: 
                                                                      {<Id.Lit_Slash /> 
                                                                        <Id.Lit_Slash /> ($ Id.VSub_DollarName '$host')
                                                                      }
                                                                  )
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [319]
                                    )
                                  ]
                                )
                              ]
                              spids: [305 316]
                            )
                          ]
                        )
                      ]
                      spids: [268 284]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: (bool_expr.Unary op_id:Id.BoolUnary_r child:{</etc/vfstab>})
                            )
                          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 '$('>
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (C {<compgen>} {<-W>} 
                                                  {
                                                    (DQ 
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        command_list: 
                                                          (command.CommandList
                                                            children: [
                                                              (C {<awk>} 
                                                                {
                                                                  (SQ 
                                                                    <
'! /^[ \\t]*#/ {if ($3 ~ /\\//) print $3}'
                                                                    >
                                                                  )
                                                                } {</etc/vfstab>}
                                                              )
                                                            ]
                                                          )
                                                      )
                                                    )
                                                  } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                )
                                              ]
                                            )
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [436]
                            )
                          ]
                        )
                      ]
                      spids: [418 429]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalNot
                                  child: (bool_expr.Unary op_id:Id.BoolUnary_e child:{</etc/fstab>})
                                )
                            )
                          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 '$('>
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (C {<compgen>} {<-W>} 
                                                  {
                                                    (DQ 
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        command_list: 
                                                          (command.CommandList
                                                            children: [
                                                              (command.Pipeline
                                                                children: [
                                                                  (C {($ Id.VSub_Number '$1')})
                                                                  (C {<awk>} 
                                                                    {
                                                                      (SQ 
                                                                        <
'! /^[ \\t]*#/ {if ($3 ~ /\\//) print $3}'
                                                                        >
                                                                      )
                                                                    }
                                                                  )
                                                                ]
                                                                negated: F
                                                              )
                                                            ]
                                                          )
                                                      )
                                                    )
                                                  } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                )
                                              ]
                                            )
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [490]
                            )
                          ]
                        )
                      ]
                      spids: [470 483]
                    )
                  ]
                  else_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 '$('>
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {<compgen>} {<-W>} 
                                              {
                                                (DQ 
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [
                                                          (C {<awk>} 
                                                            {
                                                              (SQ 
                                                                <
'! /^[ \\t]*#/ {if ($2 ~ /\\//) print $2}'
                                                                >
                                                              )
                                                            } {</etc/fstab>}
                                                          )
                                                        ]
                                                      )
                                                  )
                                                )
                                              } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [533]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
        )
        (C {<complete>} {<-F>} {<_mount>} {<-o>} {<default>} {<-o>} {<dirnames>} {<mount>})
      ]
    )
  ]
)