(command.AndOr children: [ (command.ShFunction name_tok: <_povray> name: _povray body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<cur>} {<prev>} {<words>} {<cword>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <_init_completion> more_env: [] words: [{<_init_completion>}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Return return>) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'povcur='> ($ Id.VSub_DollarName cur)} {<pfx>} {<oext>} {<defoext>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'defoext='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'defoext='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'defoext='> name:defoext) op: assign_op.Equal rhs: {<png>} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <_expand> more_env: [] words: [{<_expand>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ops: [<Id.Op_DPipe _>] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName povcur)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words: [ {<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> <I> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'cur='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cur='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cur='> name:cur) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name povcur> var_name: povcur suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<'[-'> <Id.Lit_Other '+'> <']I'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'pfx='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pfx='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name povcur> var_name: povcur suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {(DQ ($ Id.VSub_DollarName cur))} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.Simple blame_tok: <_filedir> more_env: [] words: [{<_filedir>} {<pov>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'COMPREPLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPREPLY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPREPLY='> name:COMPREPLY) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name COMPREPLY> var_name: COMPREPLY 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 slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words: [ {<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> <O> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'IFS='> name: IFS ) op: assign_op.Equal rhs: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\n'>] right: <Id.Right_SingleQuote '\''> ) } ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <command> more_env: [] words: [{<command>} {<grep>} {(SQ <'^[-+]F'>)}] redirects: [ (Redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name words> var_name: words bracket_op: (bracket_op.WholeArray op_id: Id.Arith_Star ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) right: <Id.Eof_RParen _> ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words: [ {<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> <FN>} ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'oext='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'oext='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oext='> name:oext) op: assign_op.Equal rhs: {<png>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words: [ {<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> <FP>} ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'oext='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'oext='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oext='> name:oext) op: assign_op.Equal rhs: {<ppm>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words: [ {<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'F['> <CT> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'oext='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'oext='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oext='> name:oext) op: assign_op.Equal rhs: {<tga>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'oext='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'oext='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oext='> name:oext) op: assign_op.Equal rhs: {($ Id.VSub_DollarName defoext)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMPREPLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPREPLY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPREPLY='> name:COMPREPLY) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'IFS='> name: IFS ) op: assign_op.Equal rhs: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\n'>] right: <Id.Right_SingleQuote '\''> ) } ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <command> more_env: [] words: [{<command>} {<grep>} {(SQ <'^[-+]I'>)}] redirects: [ (Redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name words> var_name: words bracket_op: (bracket_op.WholeArray op_id: Id.Arith_Star ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) right: <Id.Eof_RParen _> ) } ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMPREPLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPREPLY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPREPLY='> name:COMPREPLY) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name COMPREPLY> var_name: COMPREPLY bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<'[-'> <Id.Lit_Other '+'> <']I'>} ) right: <Id.Right_DollarBrace '}'> ) } ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMPREPLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPREPLY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPREPLY='> name:COMPREPLY) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name COMPREPLY> var_name: COMPREPLY 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 slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'cur='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cur='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cur='> name:cur) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name povcur> var_name: povcur suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<'[-'> <Id.Lit_Other '+'> <']O'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'pfx='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pfx='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name povcur> var_name: povcur suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {(DQ ($ Id.VSub_DollarName cur))} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.Simple blame_tok: <_filedir> more_env: [] words: [{<_filedir>} {($ Id.VSub_DollarName oext)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'COMPREPLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPREPLY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPREPLY='> name:COMPREPLY) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name COMPREPLY> var_name: COMPREPLY 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 slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <.ini> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\['> ch: '[' ) } {<Id.Lit_Star '*'> <.ini> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\['> ch: '[' ) <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.Lit_Other '^'> <Id.Lit_RBracket ']'> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'cur='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cur='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cur='> name:cur) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name povcur> var_name: povcur suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\['> ch: '[' ) } ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'pfx='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pfx='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name povcur> var_name: povcur suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\['> ch: '[' ) (DQ ($ Id.VSub_DollarName cur)) } ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName pfx)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMPREPLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPREPLY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPREPLY='> name:COMPREPLY) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'s/^[[:space:]]*\\[\\('>) (DQ ($ Id.VSub_DollarName cur)) (SQ <'[^]]*\\]\\).*$/\\1/'>) } {<-e>} {(SQ <t>)} {<-e>} {(SQ <d>)} {<-->} {(DQ ($ Id.VSub_DollarName pfx))} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMPREPLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPREPLY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPREPLY='> name:COMPREPLY) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name COMPREPLY> var_name: COMPREPLY 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 slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) ) } ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <_filedir> more_env: [] words: [{<_filedir>} {(SQ <'@(ini|pov)'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <complete> more_env: [] words: [{<complete>} {<-F>} {<_povray>} {<povray>} {<xpovray>} {<spovray>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] )