(command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.ShFunction name: _screen_sessions body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'sessions='> (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<command>} {<screen>} {<-ls>}) (C {<sed>} {<-ne>} {(SQ <'s|^\\t\\{1,\\}\\([0-9]\\{1,\\}\\.[^\\t]\\{1,\\}\\).*'>) (DQ ($ Id.VSub_Number '$1')) (SQ <'.*$|\\1|p'>) } ) ] negated: F ) ] ) ) } ] ) } ) (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: {(word_part.ExtGlob op:<Id.ExtGlob_Plus '+('> arms:[{<'[0-9]'>}]) (word_part.ExtGlob op: <Id.ExtGlob_QMark '?('> arms: [{<.> <Id.Lit_Other '*'>}] ) } ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'${sessions[@]}'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [73] ) ] ) ] spids: [47 66] ) ] else_action: [ (C {<local>} {<-A>} {<res>}) (C {<local>} {<i>} {<tmp>}) (command.ForEach iter_name: i iter_words: [ { (braced_var_sub token: <Id.VSub_Name sessions> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: res index: (arith_expr.ArithWord w: { (braced_var_sub token: <Id.VSub_Name i> suffix_op: (suffix_op.PatSub pat: {<'+([0-9]).'>} replace: {} replace_mode: Id.Lit_Pound ) ) } ) ) op: assign_op.PlusEqual rhs: {(DQ <' '> ($ Id.VSub_DollarName '$i'))} spids: [135] ) ] ) ] ) ) (command.ForEach iter_name: i iter_words: [ { (braced_var_sub token: <Id.VSub_Name res> prefix_op: (Id.VSub_Bang) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (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: <Id.VSub_Name res> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$i')} ) ) ) } right: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <Id.Lit_Other '*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <Id.Lit_Other '*'> } ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmp) op: assign_op.PlusEqual rhs: { (DQ <' '> (braced_var_sub token: <Id.VSub_Name res> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$i')} ) ) ) ) } spids: [199] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmp) op: assign_op.PlusEqual rhs: {(DQ <' '> ($ Id.VSub_DollarName '$i'))} spids: [212] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'$tmp'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [222] ) ] ) ] ) ] ) ) (command.ShFunction name: _screen body: (command.BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike cword>) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Case to_match: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike cword>) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>}) ) ) ) } arms: [ (case_arm pat_list: [{<-> <Id.Lit_LBracket '['> <dD> <Id.Lit_RBracket ']'>}] action: [ (C {<_screen_sessions>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [307 311 322 -1] ) ] ) ] spids: [278 290] ) ] ) (C {<local>} {<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:<Id.Lit_ArithVarLike i>) right: (arith_expr.VarRef token:<Id.Lit_ArithVarLike cword>) ) 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: <Id.VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>) ) ) } arms: [ (case_arm pat_list: [ {<-r>} {<-R>} {<-d>} {<-D>} {<-x>} {<-s>} {<-c>} {<-T>} {<-e>} {<-h>} {<-p>} {<-S>} {<-t>} ] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:i) ) ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] spids: [375 400 415 -1] ) (case_arm pat_list: [{<-> <Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)] spids: [418 420 426 -1] ) ] ) (C {<_command_offset>} {($ Id.VSub_DollarName '$i')}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-> <Id.Lit_LBracket '['> <rR> <Id.Lit_RBracket ']'>}] action: [ (C {<_screen_sessions>} {(SQ <Detached>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [452 456 475 -1] ) (case_arm pat_list: [{<-> <Id.Lit_LBracket '['> <dD> <Id.Lit_RBracket ']'>}] action: [ (C {<_screen_sessions>} {(SQ <Attached>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [478 482 501 -1] ) (case_arm pat_list: [{<-x>}] action: [ (C {<_screen_sessions>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [504 505 520 -1] ) (case_arm pat_list: [{<-s>}] action: [ (C {<_shells>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [523 524 535 -1] ) (case_arm pat_list: [{<-c>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [538 539 550 -1] ) (case_arm pat_list: [{<-T>}] action: [ (C {<_terms>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [553 554 565 -1] ) (case_arm pat_list: [{<-e>} {<-h>} {<-p>} {<-S>} {<-t>}] action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] spids: [568 577 585 -1] ) ] ) (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: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (SQ <'-a -A -c -d -D -e -f -fn -fa -h -i -ln -list\n'> <' -L -m -O -p -q -r -R -s -S -t -T -U -v -wipe -x -X --help\n'> <' --version'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [611] ) ] ) ] spids: [592 608] ) ] ) ] ) ) (C {<complete>} {<-F>} {<_screen>} {<screen>}) ] )