(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: (Token id:Id.Op_LParen val:'(' span_id:14) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:16) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(command)} {(screen)} {(-ls)}) (C {(sed)} {(-ne)} { (SQ (Token id: Id.Lit_Chars val: 's|^\\t\\{1,\\}\\([0-9]\\{1,\\}\\.[^\\t]\\{1,\\}\\).*' span_id: 33 ) ) (DQ ($ Id.VSub_Number '$1')) (SQ (Token id:Id.Lit_Chars val:'.*$|\\1|p' span_id:39)) } ) ] 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: (Token id:Id.ExtGlob_Plus val:'+(' span_id:55) arms: [{('[0-9]')}] ) (word_part.ExtGlob op: (Token id:Id.ExtGlob_QMark val:'?(' span_id:58) arms: [{(.) (Id.Lit_Other '*')}] ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:64) ) ] 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:74) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:76) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '${sessions[@]}' span_id: 83 ) ) } {(--)} {(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: (Token id:Id.VSub_Name val:sessions span_id:125) 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: (Token id:Id.VSub_Name val:i span_id:150) 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: (Token id:Id.VSub_Name val:res span_id:169) 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: (Token id:Id.VSub_Name val:res span_id:182) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$i')} ) ) ) } right: { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\ ' span_id:190) ) (Id.Lit_Other '*') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\ ' span_id:192)) (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: (Token id:Id.VSub_Name val:res span_id:203) 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: (Token id:Id.Op_LParen val:'(' span_id:223) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:225) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ (Token id:Id.Lit_Chars val:'$tmp' span_id:232))} {(--)} {(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: (Token id:Id.ControlFlow_Return val:return span_id:274) ) ] ) (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: (Token id:Id.Lit_ArithVarLike val:cword span_id:281) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)}) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:288) ) ] action: [ (command.Case to_match: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:296) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:cword span_id:298) ) 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: (Token id:Id.ControlFlow_Return val:return span_id:317) 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:(Token id:Id.Lit_ArithVarLike val:i span_id:346)) right: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:cword span_id:350) ) ) 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: (Token id:Id.VSub_Name val:words span_id:366) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:i span_id:368) ) ) ) } 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: (Token id:Id.ControlFlow_Continue val:continue span_id:412) ) ] spids: [375 400 415 -1] ) (case_arm pat_list: [{(-) (Id.Lit_Star '*')}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:423) ) ] spids: [418 420 426 -1] ) ] ) (C {(_command_offset)} {($ Id.VSub_DollarName '$i')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:438) ) ] ) ) (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 (Token id:Id.Lit_Chars val:Detached span_id:466))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:470) arg_word: {(0)} ) ] spids: [452 456 475 -1] ) (case_arm pat_list: [{(-) (Id.Lit_LBracket '[') (dD) (Id.Lit_RBracket ']')}] action: [ (C {(_screen_sessions)} {(SQ (Token id:Id.Lit_Chars val:Attached span_id:492))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:496) arg_word: {(0)} ) ] spids: [478 482 501 -1] ) (case_arm pat_list: [{(-x)}] action: [ (C {(_screen_sessions)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:515) arg_word: {(0)} ) ] spids: [504 505 520 -1] ) (case_arm pat_list: [{(-s)}] action: [ (C {(_shells)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:530) arg_word: {(0)} ) ] spids: [523 524 535 -1] ) (case_arm pat_list: [{(-c)}] action: [ (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:545) arg_word: {(0)} ) ] spids: [538 539 550 -1] ) (case_arm pat_list: [{(-T)}] action: [ (C {(_terms)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:560) arg_word: {(0)} ) ] spids: [553 554 565 -1] ) (case_arm pat_list: [{(-e)} {(-h)} {(-p)} {(-S)} {(-t)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:580) 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: (Token id:Id.Op_Semi val:';' span_id:606) ) ] 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:612) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:614) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '-a -A -c -d -D -e -f -fn -fa -h -i -ln -list\n' span_id: 621 ) (Token id: Id.Lit_Chars val: ' -L -m -O -p -q -r -R -s -S -t -T -U -v -wipe -x -X --help\n' span_id: 622 ) (Token id:Id.Lit_Chars val:' --version' span_id:623) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [611] ) ] ) ] spids: [592 608] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_screen)} {(screen)}) ] )