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