(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _povray 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:29) ) ] ) (C {(local)} {(Id.Lit_VarLike 'povcur=') ($ Id.VSub_DollarName '$cur')} {(pfx)} {(oext)} {(defoext)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:defoext) op: assign_op.Equal rhs: {(png)} spids: [45] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(_expand)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:57) arg_word: {(0)} ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$povcur')} arms: [ (case_arm pat_list: [ {(Id.Lit_LBracket '[') (-) (Id.Lit_Other '+') (Id.Lit_RBracket ']') (I) (Id.Lit_Star '*') } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cur) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:povcur span_id:82) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{('[-+]I')}) ) ) } spids: [79] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:povcur span_id:95) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) ) } spids: [92] ) ] ) (C {(_filedir)} {(pov)}) (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:110) words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:COMPREPLY span_id:113) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.PatSub pat: {} replace: {($ Id.VSub_DollarName '$pfx')} replace_mode: Id.Lit_Pound ) ) } ] ) } spids: [109] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:126) arg_word: {(0)} ) ] spids: [70 76 131 -1] ) (case_arm pat_list: [ {(Id.Lit_LBracket '[') (-) (Id.Lit_Other '+') (Id.Lit_RBracket ']') (O) (Id.Lit_Star '*') } ] action: [ (command.Case to_match: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:149) command_list: (command.CommandList children: [ (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: { (single_quoted left: (Token id: Id.Left_SingleQuoteC val: "$'" span_id: 154 ) tokens: [ (Token id: Id.Char_OneChar val: '\\n' span_id: 155 ) ] ) } spids: [153] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:157) ) (command.Simple words: [ {(command)} {(grep)} {(SQ (Token id:Id.Lit_Chars val:'^[-+]F' span_id:164))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_TLess val:'<<<' span_id:167) fd: -1 arg_word: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: words span_id: 170 ) bracket_op: (bracket_op.WholeArray op_id: Id.Arith_Star ) ) ) } ) ] ) ] ) ) ] ) ) } arms: [ (case_arm pat_list: [ {(Id.Lit_LBracket '[') (-) (Id.Lit_Other '+') (Id.Lit_RBracket ']') (FN)} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:oext) op: assign_op.Equal rhs: {(png)} spids: [191] ) ] ) ] spids: [184 189 194 -1] ) (case_arm pat_list: [ {(Id.Lit_LBracket '[') (-) (Id.Lit_Other '+') (Id.Lit_RBracket ']') (FP)} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:oext) op: assign_op.Equal rhs: {(ppm)} spids: [204] ) ] ) ] spids: [197 202 207 -1] ) (case_arm pat_list: [ {(Id.Lit_LBracket '[') (-) (Id.Lit_Other '+') (Id.Lit_RBracket ']') (Id.Lit_ArrayLhsOpen 'F[') (CT) (Id.Lit_RBracket ']') } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:oext) op: assign_op.Equal rhs: {(tga)} spids: [219] ) ] ) ] spids: [210 217 222 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:oext) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$defoext')} spids: [228] ) ] ) ] spids: [225 226 231 -1] ) ] ) (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:242) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:244) command_list: (command.CommandList children: [ (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: { (single_quoted left: (Token id: Id.Left_SingleQuoteC val: "$'" span_id: 249 ) tokens: [ (Token id: Id.Char_OneChar val: '\\n' span_id: 250 ) ] ) } spids: [248] ) ] ) terminator: (Token id: Id.Op_Semi val: ';' span_id: 252 ) ) (command.Simple words: [ {(command)} {(grep)} { (SQ (Token id: Id.Lit_Chars val: '^[-+]I' span_id: 259 ) ) } ] redirects: [ (redir.Redir op: (Token id: Id.Redir_TLess val: '<<<' span_id: 262 ) fd: -1 arg_word: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: words span_id: 265 ) bracket_op: (bracket_op.WholeArray op_id: Id.Arith_Star ) ) ) } ) ] ) ] ) ) ] ) ) } ] ) } spids: [241] ) ] ) (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:280) words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:COMPREPLY span_id:283) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {('[-+]I')} ) ) } ] ) } spids: [279] ) ] ) (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:295) words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:COMPREPLY span_id:298) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.PatSub pat: {(.pov)} replace: {(.) ($ Id.VSub_DollarName '$oext')} replace_mode: Id.Lit_Percent ) ) } ] ) } spids: [294] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cur) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:povcur span_id:316) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{('[-+]O')}) ) ) } spids: [313] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:povcur span_id:329) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {(DQ ($ Id.VSub_DollarName '$cur'))} ) ) ) } spids: [326] ) ] ) (C {(_filedir)} {($ Id.VSub_DollarName '$oext')}) (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:344) words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:COMPREPLY span_id:347) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.PatSub pat: {} replace: {($ Id.VSub_DollarName '$pfx')} replace_mode: Id.Lit_Pound ) ) } ] ) } spids: [343] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:360) arg_word: {(0)} ) ] spids: [134 140 365 -1] ) (case_arm pat_list: [ {(Id.Lit_Star '*') (.ini) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\[' span_id:370) ) } {(Id.Lit_Star '*') (.ini) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\[' span_id:374) ) (Id.Lit_Star '*') (Id.Lit_LBracket '[') (Id.Lit_Other '^') (Id.Lit_RBracket ']') (Id.Lit_RBracket ']') } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cur) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:povcur span_id:389) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {('*') (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\[' span_id: 392 ) ) } ) ) ) } spids: [386] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:povcur span_id:400) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: { (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\[' span_id: 402 ) ) (DQ ($ Id.VSub_DollarName '$cur')) } ) ) ) } spids: [397] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName '$pfx')} ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:423) arg_word: {(0)} ) ] ) (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:429) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:431) command_list: (command.CommandList children: [ (C {(sed)} {(-e)} { (SQ (Token id: Id.Lit_Chars val: 's/^[[:space:]]*\\[\\(' span_id: 437 ) ) (DQ ($ Id.VSub_DollarName '$cur')) (SQ (Token id:Id.Lit_Chars val:'[^]]*\\]\\).*$/\\1/' span_id:443)) } {(-e)} {(SQ (Token id:Id.Lit_Chars val:t span_id:451))} {(-e)} {(SQ (Token id:Id.Lit_Chars val:d span_id:457))} {(--)} {(DQ ($ Id.VSub_DollarName '$pfx'))} ) ] ) ) } ] ) } spids: [428] ) ] ) (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:475) words: [ { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:COMPREPLY span_id:479) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.PatSub pat: {} replace: {($ Id.VSub_DollarName '$pfx') ('[')} replace_mode: Id.Lit_Pound ) ) ) } ] ) } spids: [474] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:494) arg_word: {(0)} ) ] spids: [368 380 499 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (C {(_filedir)} {(SQ (Token id:Id.Lit_Chars val:'@(ini|pov)' span_id:509))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:513) arg_word: {(0)} ) ] spids: [502 503 518 -1] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_povray)} {(povray)} {(xpovray)} {(spovray)}) ] )