(command.AndOr ops: [Op_DAmp] children: [ (command.FuncDef name: _alias body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(lhs_expr.LhsName name:cur) op:Equal) (assign_pair lhs:(lhs_expr.LhsName name:prev) op:Equal) (assign_pair lhs:(lhs_expr.LhsName name:words) op:Equal) (assign_pair lhs:(lhs_expr.LhsName name:cword) op:Equal) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Case to_match: { (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) } arms: [ (case_arm pat_list: [ {(Lit_Other '*') (Lit_Other '[') (Lit_Other '^') (Lit_Other '=') (Lit_Other ']')} ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-A)} {(alias)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> ) } ] ) } ) ] ) ] ) (case_arm pat_list: [{(Lit_Other '*') (Lit_Other '=')}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.SimpleCommand words: [ {(alias)} { (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {('=')} ) ) } ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(sed)} {(-e)} {(SQ <'s|^alias '>) (DQ ($ VSub_DollarName '$cur')) (SQ <'\\(.*\\)$|\\1|'>) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) ) } ] ) } ) ] ) ] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_alias)} {(-o)} {(nospace)} {(alias)}) ] )