(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _wtf body: (command.BraceGroup children: [ (C {(local)} {(cur)} {(prev)} {(words)} {(cword)} {(addf)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(_init_completion)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:31) ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$prev')} right: {(Id.BoolUnary_f -f)} ) ) (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:51) arg_word: {(0)} ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:59) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {(Id.Lit_Other '*') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\ ' span_id:68) ) (Id.BoolUnary_f -f) (Id.Lit_Other '*') } ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:addf) op: assign_op.Equal rhs: (word.Empty) spids: [76] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:addf) op: assign_op.Equal rhs: {(-f)} spids: [80] ) ] ) ] ) (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:96) ) ] 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: [{($ Id.VSub_DollarName '$addf')}] ) } spids: [101] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:109) arg_word: {(0)} ) ] spids: [84 98] ) ] ) (C {(local)} {(db)}) (C {(Id.KW_Set set)} {(--)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:130) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:138) cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_Pound '$#')} right: {(0)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:149) ) ] 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: {($ Id.VSub_Number '$1')} right: {(Id.BoolUnary_f -f)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:165) ) ] action: [ (command.Sentence child: (C {(shift)}) terminator: (Token id:Id.Op_Semi val:';' span_id:172) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:db) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [174] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:177) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:179) ) ] spids: [154 167] ) ] ) (C {(shift)}) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$db'))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:203) ) ] action: [ (C {(local)} {(f)}) (command.ForEach iter_name: f iter_words: [ {(DQ ($ Id.VSub_DollarName '$ACRONYMDB'))} {(/usr/share/misc/acronyms)} {(/usr/share/games/bsdgames/acronyms)} ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(DQ ($ Id.VSub_DollarName '$f'))} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:db) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$f'))} spids: [245] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:252) ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$db'))} ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:270) arg_word: {(0)} ) ] ) ] spids: [192 205] ) ] ) (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: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:282) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 289 ) command_list: (command.CommandList children: [ (command.Simple words: [ {(cut)} {(-f)} {(1)} {(-s)} {($ Id.VSub_DollarName '$db') (Id.Lit_Star '*')} ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 302 ) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) (' ') ($ Id.VSub_DollarName '$addf') ) } {(--)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:cur span_id:316) suffix_op: (suffix_op.Unary op_id:Id.VOp1_DCaret arg_word:(word.Empty)) ) ) } ) ] ) ) } ] ) } spids: [279] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_wtf)} {(wtf)}) ] )