(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _sbopkg 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:26) ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {(-) (Id.Lit_Other '*')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:44) ) ] 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:50) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:52) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '$( _parse_help "$1" -h )' span_id: 59 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [49] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName '$COMPREPLY')}) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:81) ) ] ) ] spids: [30 46] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$prev'))} arms: [ (case_arm pat_list: [{(-e)}] 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:102) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:104) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'ask continue stop' span_id: 111 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [101] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:125) ) ] spids: [97 98 128 -1] ) (case_arm pat_list: [{(-f)}] action: [ (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:138) ) ] spids: [131 132 141 -1] ) (case_arm pat_list: [{(-d)}] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:153) ) ] spids: [144 145 156 -1] ) (case_arm pat_list: [{(-V)}] 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:164) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:166) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ ('?\n') (' ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 175 ) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {(sbopkg)} {(-V)} {(Id.Lit_QMark '?')} ] redirects: [ (redir.Redir op: (Token id: Id.Redir_GreatAnd val: '2>&' span_id: 183 ) fd: 2 arg_word: {(1)} ) ] ) (C {(cut)} {(-s)} {(-f1)}) ] negated: F ) ] ) ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [163] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:208) ) ] spids: [159 160 211 -1] ) (case_arm pat_list:[{(-i)} {(-b)}] spids:[214 217 220 -1]) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:227) ) ] spids: [223 224 230 -1] ) ] ) (C {(local)} {(i)} {(config)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:config) op: assign_op.Equal rhs: {(DQ (/etc/sbopkg/sbopkg.conf))} spids: [244] ) ] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:258) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) cond: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:i span_id:267)) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDMinus child: (sh_lhs_expr.Name name:i) ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:288) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 290 ) ) ) ) ) } right: {(Id.BoolUnary_f -f)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:300) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:config) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:308) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 310 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) ) ) } spids: [305] ) ] ) (C {(__expand_tilde_by_ref)} {(config)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:323) ) ] spids: [282 302] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {(DQ ($ Id.VSub_DollarName '$config'))} ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:345) ) ] ) (C {(.)} {($ Id.VSub_DollarName '$config')}) (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_Less left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:i span_id:363)) right: (arith_expr.ArithWord w: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:367) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i)) body: (command.DoGroup children: [ (command.Case to_match: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:388) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:i span_id:390) ) ) ) ) } arms: [ (case_arm pat_list: [{(-V)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REPO_NAME) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:405) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 407 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPercent arg_word: {(Id.Lit_Slash /) ('*')} ) ) ) } spids: [402] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REPO_BRANCH) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:421) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 423 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {('*') (Id.Lit_Slash /)} ) ) ) } spids: [418] ) ] ) ] spids: [398 399 434 -1] ) (case_arm pat_list: [{(-d)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REPO_ROOT) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:444) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 446 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) ) ) } spids: [441] ) ] ) ] spids: [437 438 454 -1] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName '$REPO_ROOT') (/) ($ Id.VSub_DollarName '$REPO_NAME') (/) ($ Id.VSub_DollarName '$REPO_BRANCH') (/SLACKBUILDS.TXT) } ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:478) ) ] ) (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:483) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:485) command_list: (command.CommandList children: [ (C {(sed)} {(-ne)} { (DQ ('/^SLACKBUILD NAME: ') ($ Id.VSub_DollarName '$cur') ('/{s/^SLACKBUILD NAME: //;p}') ) } {($ Id.VSub_DollarName '$REPO_ROOT') (/) ($ Id.VSub_DollarName '$REPO_NAME') (/) ($ Id.VSub_DollarName '$REPO_BRANCH') (/SLACKBUILDS.TXT) } ) ] ) ) } { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:508) command_list: (command.CommandList children: [ (command.Sentence child: (C {(cd)} {($ Id.VSub_DollarName '$QUEUEDIR')}) terminator: (Token id:Id.Op_Semi val:';' span_id:513) ) (C {(compgen)} {(-f)} {(-X)} {(DQ ('!*.sqf'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [482] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_sbopkg)} {(sbopkg)}) ] )