(command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _xrandr 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:26) ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$prev'))} arms: [ (case_arm pat_list: [ {(-display)} {(-d)} {(-help)} {(-s)} {(--size)} {(-r)} {(--rate)} {(--refresh)} {(--screen)} {(--fb)} {(--fbmm)} {(--dpi)} {(--pos)} {(--set)} {(--scale)} {(--transform)} {(--crtc)} {(--panning)} {(--gamma)} {(--newmode)} {(--rmmode)} {(--addmode)} {(--delmode)} ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:91) ) ] spids: [39 88 94 -1] ) (case_arm pat_list: [ {(--output)} {(--left-of)} {(--right-of)} {(--above)} {(--below)} {(--same-as)} ] action: [ (C {(local)} {(Id.Lit_VarLike 'outputs=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:114) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(DQ ($ Id.VSub_Number '$1'))}) (C {(awk)} { (SQ (Token id: Id.Lit_Chars val: '/connected/ {print $1}' span_id: 125 ) ) } ) ] negated: F ) ] ) ) } ) (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:132) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:134) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ Id.VSub_DollarName '$outputs'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [131] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:155) ) ] spids: [97 108 158 -1] ) (case_arm pat_list: [{(--mode)}] action: [ (C {(local)} {(i)} {(output)}) (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_Less left: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:i span_id:181) ) right: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:cword span_id:185) ) ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:i) ) 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: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: words span_id: 204 ) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 206 ) ) ) ) ) } right: {(--output)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:216) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:output) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:223) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 225 ) ) right: (arith_expr.ArithWord w: {(Id.Lit_Digits 1)} ) ) ) ) } spids: [221] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:232) ) ] spids: [198 218] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName '$output')}) ) terminator: (Token id:Id.Op_Semi val:';' span_id:248) ) ] action: [ (C {(local)} {(Id.Lit_VarLike 'modes=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:256) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(DQ ($ Id.VSub_Number '$1'))}) (C {(sed)} {(-e)} {(DQ ('1,/') ($ Id.VSub_DollarName '$output') ('/ d'))} {(-e)} {(DQ ('/connected/,') (Id.Lit_Other '$') (' d'))} {(-e)} { (DQ (s/) (Id.Lit_Other '\\') ('([^[:space:]]') (Id.Lit_Other '\\') (')[[:space:]].*/') (Id.Lit_Other '\\') (1/) ) } ) ] negated: F ) ] ) ) } ) (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:302) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 304 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ Id.VSub_DollarName '$modes'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [301] ) ] ) ] spids: [241 250] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:328) ) ] spids: [161 162 331 -1] ) (case_arm pat_list: [{(-o)} {(--orientation)}] 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:341) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:343) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'normal inverted left right 0 1 2 3' span_id: 350 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [340] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:366) ) ] spids: [334 337 369 -1] ) (case_arm pat_list: [{(--reflect)}] 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:377) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:379) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'normal x y xy' span_id: 386 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [376] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:400) ) ] spids: [372 373 403 -1] ) (case_arm pat_list: [{(--rotate)}] 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:411) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:413) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'normal inverted left right' span_id: 420 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [410] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:434) ) ] spids: [406 407 437 -1] ) (case_arm pat_list: [{(--setprovideroutputsource)} {(--setprovideroffloadsink)}] action: [ (C {(local)} {(Id.Lit_VarLike 'providers=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:449) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [{(DQ ($ Id.VSub_Number '$1'))} {(--listproviders)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:457) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(sed)} {(-ne)} { (SQ (Token id: Id.Lit_Chars val: 's/.* name:\\([^ ]*\\).*/\\1/p' span_id: 468 ) ) } ) ] negated: F ) ] ) ) } ) (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: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:477) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ Id.VSub_DollarName '$providers'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [474] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:502) ) ] spids: [440 443 505 -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:513) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:515) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '$( "$1" -help 2>&1 |\n' span_id: 522 ) (Token id: Id.Lit_Chars val: ' sed -e "s/ or / /g" -e "s/<[^>]*>]//g" | _parse_help - )' span_id: 523 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [512] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_xrandr)} {(xrandr)}) ] )