(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _ionice body: (command.BraceGroup children: [ (C {(local)} {(cur)} {(prev)} {(words)} {(cword)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(_init_completion)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:33) ) ] ) (C {(local)} {(Id.Lit_VarLike 'offset=') (0)} {(i)}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:i span_id:54)) right: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:cword span_id:58)) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i)) body: (command.DoGroup children: [ (command.Case to_match: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:74) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:i span_id:76) ) ) ) } arms: [ (case_arm pat_list: [{(-h)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:87) ) ] spids: [83 84 90 -1] ) (case_arm pat_list: [{(-p)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:offset) op: assign_op.Equal rhs: {(0)} spids: [97] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:101) ) ] spids: [93 94 104 -1] ) (case_arm pat_list: [{(-c)} {(-n)}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:i) ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:122) ) ] spids: [107 110 125 -1] ) (case_arm pat_list: [{(-) (Id.Lit_Star '*')}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:133) ) ] spids: [128 130 136 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:offset) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$i')} spids: [142] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:146) ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_DollarName '$offset')} right: {(0)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:164) ) ] action: [ (C {(_command_offset)} {($ Id.VSub_DollarName '$offset')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:174) ) ] spids: [153 166] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-c)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:193) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:195) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ (Token id:Id.Lit_Chars val:'{0..3}' span_id:202))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [192] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:216) ) ] spids: [188 189 219 -1] ) (case_arm pat_list: [{(-n)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:227) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:229) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ (Token id:Id.Lit_Chars val:'{0..7}' span_id:236))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [226] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:250) ) ] spids: [222 223 253 -1] ) (case_arm pat_list: [{(-p)}] action: [ (C {(_pids)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:263) ) ] spids: [256 257 266 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$cur')} right: {(-) (Id.Lit_Other '*')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:285) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:291) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:293) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '$( _parse_help "$1" -h )' span_id: 300 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [290] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:314) ) ] spids: [273 287] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_ionice)} {(ionice)}) ] )