(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _renice body: (BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<local>} {<Id.Lit_VarLike 'command='> ($ Id.VSub_Number '$1')} {<curopt>} {<Id.Lit_VarLike 'i='> <0>} ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_le left: {($ Id.VSub_DollarName '$i')} right: {($ Id.VSub_DollarName '$cword')} ) right: (bool_expr.Binary op_id: Id.BoolBinary_eq left: { (braced_var_sub token: <Id.VSub_Name COMPREPLY> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<0>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:curopt) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Minus left: <Id.Lit_ArithVarLike cword> right: {($ Id.VSub_DollarName '$i')} ) ) ) } spids: [83] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$curopt'))} arms: [ (case_arm pat_list: [{<-u>}] action: [(C {<_allowed_users>})] spids: [103 104 110 -1] ) (case_arm pat_list: [{<-g>}] action: [(C {<_pgids>})] spids: [113 114 120 -1] ) (case_arm pat_list: [{<-p>} {($ Id.VSub_DollarName '$command')}] action: [(C {<_pids>})] spids: [123 126 132 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.UnaryAssign op_id: Id.Arith_DPlus child: <Id.Lit_ArithVarLike i> ) ) } spids: [138] ) ] ) ] ) ) ] ) ) (C {<complete>} {<-F>} {<_renice>} {<renice>}) ] )