(command.AndOr ops: [Op_DAmp] children: [ (command.FuncDef name: _dot body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cur spids:[13]) op: Equal spids: [13] ) (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[15]) op: Equal spids: [15] ) (assign_pair lhs: (lhs_expr.LhsName name:words spids:[17]) op: Equal spids: [17] ) (assign_pair lhs: (lhs_expr.LhsName name:cword spids:[19]) op: Equal spids: [19] ) ] spids: [11] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)} {(-n)} {(Lit_Other ':') (Lit_Other '=')}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$prev')} right: {(-) (Lit_Other '[') (V) (Lit_Other '?') (Lit_Other ']')} ) ) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Case to_match: {($ VSub_DollarName '$cur')} arms: [ (case_arm pat_list: [ {(-G) (Lit_Other '*')} {(-N) (Lit_Other '*')} {(-E) (Lit_Other '*')} {(-l) (Lit_Other '?') (Lit_Other '*')} {(-q) (Lit_Other '?') (Lit_Other '*')} {(-s) (Lit_Other '?') (Lit_Other '*')} {(-Ln) (Lit_Other '*')} {(-LU) (Lit_Other '*')} {(-LC) (Lit_Other '*')} {(-LT) (Lit_Other '*')} ] action: [(command.ControlFlow token:<ControlFlow_Return return>)] spids: [62 94 100 16777215] ) (case_arm pat_list: [{(-T) (Lit_Other '*')}] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:langs spids:[110]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.SimpleCommand words: [ {(DQ ($ VSub_Number '$1'))} {(-TNON_EXISTENT)} ] redirects: [ (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] ) (C {(sed)} {(-ne)} {(SQ <'s/.*one of://p'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [113 136] ) } ] ) } spids: [110] ) ] spids: [108] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[141]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-P)} {(-T)} {(-W)} {(SQ <'${langs[@]}'>)} {(--)} { (DQ (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {(-T)} ) spids: [161 165] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [144 168] ) } ] ) } spids: [141] ) ] spids: [141] ) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [103 105 176 16777215] ) (case_arm pat_list: [{(-K) (Lit_Other '*')}] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:layouts spids:[186]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.SimpleCommand words: [ {(DQ ($ VSub_Number '$1'))} {(-KNON_EXISTENT)} ] redirects: [ (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] ) (C {(sed)} {(-ne)} {(SQ <'s/.*one of://p'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [189 212] ) } ] ) } spids: [186] ) ] spids: [184] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[217]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-P)} {(-K)} {(-W)} {(SQ <'${layouts[@]}'>)} {(--)} { (DQ (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {(-K)} ) spids: [237 241] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [220 244] ) } ] ) } spids: [217] ) ] spids: [217] ) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [179 181 252 16777215] ) (case_arm pat_list: [{(-o) (Lit_Other '*')}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cur spids:[260]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id:VOp1_Pound arg_word:{(-o)}) spids: [261 265] ) } spids: [260] ) ] spids: [260] ) (C {(_filedir)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[271]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-P)} {(-o)} {(-W)} {(SQ <'${COMPREPLY[@]}'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [274 294] ) } ] ) } spids: [271] ) ] spids: [271] ) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [255 257 302 16777215] ) ] spids: [55 59 305] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$cur')} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[326]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (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 ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [329 346] ) } ] ) } spids: [326] ) ] spids: [326] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$COMPREPLY')} right: {(-) (word_part.ExtGlobPart op: <ExtGlob_At '@('> arms: [{('[GNETKo]')} {('L[nUCT]')}] spids: [358 362] ) } ) ) (C {(compopt)} {(-o)} {(nospace)}) ] ) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [16777215 323] ) ] spids: [16777215 378] ) (C {(_filedir)} {(dot)}) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_dot)} {(dot)}) ] )