(command.CommandList children: [ (command.ShFunction name: _xen_domain_names body: (command.BraceGroup children: [ (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:12) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:14) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 21 ) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [{(xm)} {(list)}] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 27 ) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(awk)} { (SQ (Token id: Id.Lit_Chars val: '!/Name|Domain-0/ { print $1 }' span_id: 37 ) ) } ) ] negated: F ) ] ) ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [11] ) ] ) ] ) ) (command.ShFunction name: _xen_domain_ids body: (command.BraceGroup children: [ (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:64) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:66) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 73 ) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [{(xm)} {(list)}] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 79 ) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(awk)} { (SQ (Token id: Id.Lit_Chars val: '!/Name|Domain-0/ { print $2 }' span_id: 89 ) ) } ) ] negated: F ) ] ) ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [63] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _xm 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:130) ) ] ) (C {(local)} {(command)} {(options)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:commands) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: 'console vncviewer create new delete destroy domid domname\n' span_id: 149 ) (Token id: Id.Lit_Chars val: ' dump-core list mem-max mem-set migrate pause reboot rename reset\n' span_id: 150 ) (Token id: Id.Lit_Chars val: ' restore resume save shutdown start suspend sysrq trigger top unpause\n' span_id: 151 ) (Token id: Id.Lit_Chars val: ' uptime usb-add usb-del vcpu-list vcpu-pin vcpu-set debug-keys dmesg\n' span_id: 152 ) (Token id: Id.Lit_Chars val: ' info log serve sched-credit sched-sedf block-attach block-detach\n' span_id: 153 ) (Token id: Id.Lit_Chars val: ' block-list block-configure network-attach network-detach network-list\n' span_id: 154 ) (Token id: Id.Lit_Chars val: ' vtpm-list pci-attach pci-detach pci-list pci-list-assignable-devices\n' span_id: 155 ) (Token id: Id.Lit_Chars val: ' scsi-attach scsi-detach scsi-list vnet-list vnet-create vnet-delete\n' span_id: 156 ) (Token id: Id.Lit_Chars val: ' labels addlabel rmlabel getlabel dry-run resources dumppolicy setpolicy\n' span_id: 157 ) (Token id:Id.Lit_Chars val:' resetpolicy getpolicy shell help' span_id:158) ) } spids: [147] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName '$cword')} right: {(1)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:175) ) ] 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:181) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 183 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ Id.VSub_DollarName '$commands'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [180] ) ] ) ] spids: [163 177] ) ] else_action: [ (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 '*') (Id.BoolBinary_GlobEqual '=') (Id.Lit_Other '*') } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:222) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:prev) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:cur span_id:229) suffix_op: (suffix_op.PatSub pat: {('=*')} replace: {} replace_mode: Id.Undefined_Tok ) ) } spids: [227] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cur) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:cur span_id:238) suffix_op: (suffix_op.PatSub pat: {('*=')} replace: {} replace_mode: Id.Undefined_Tok ) ) } spids: [236] ) ] ) ] spids: [207 224] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:command) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:251) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } spids: [249] ) ] ) (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:272) ) ] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$command')} arms: [ (case_arm pat_list: [{(create)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:-c span_id:294))} spids: [292] ) ] ) ] spids: [288 289 298 -1] ) (case_arm pat_list: [{(dmesg)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:--clear span_id:307))} spids: [305] ) ] ) ] spids: [301 302 311 -1] ) (case_arm pat_list: [{(list)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:--long span_id:320))} spids: [318] ) ] ) ] spids: [314 315 324 -1] ) (case_arm pat_list: [{(reboot)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'-w -a' span_id:333))} spids: [331] ) ] ) ] spids: [327 328 337 -1] ) (case_arm pat_list: [{(shutdown)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: '-w -a -R -H' span_id: 346 ) ) } spids: [344] ) ] ) ] spids: [340 341 350 -1] ) (case_arm pat_list: [{(sched-credit)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'-d -w -c' span_id:359))} spids: [357] ) ] ) ] spids: [353 354 363 -1] ) (case_arm pat_list: [{(block-list)} {(network-list)} {(vtpm-list)} {(vnet-list)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'-l --long' span_id:378))} spids: [376] ) ] ) ] spids: [366 373 382 -1] ) (case_arm pat_list: [{(getpolicy)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:--dumpxml span_id:391))} spids: [389] ) ] ) ] spids: [385 386 395 -1] ) (case_arm pat_list: [{(new)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:options) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: '-h --help --help_config -q --quiet --path= -f=\n' span_id: 404 ) (Token id: Id.Lit_Chars val: ' --defconfig= -F= --config= -b --dryrun -x --xmldryrun\n' span_id: 405 ) (Token id: Id.Lit_Chars val: ' -s --skipdtd -p --paused -c --console_autoconnect' span_id: 406 ) ) } spids: [402] ) ] ) ] spids: [398 399 410 -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:417) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 419 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ Id.VSub_DollarName '$options'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [416] ) ] ) ] spids: [258 274] ) ] else_action: [ (command.Case to_match: {($ Id.VSub_DollarName '$command')} arms: [ (case_arm pat_list: [ {(console)} {(destroy)} {(domname)} {(domid)} {(list)} {(mem-set)} {(mem-max)} {(pause)} {(reboot)} {(rename)} {(shutdown)} {(unpause)} {(vcpu-list)} {(vcpu-pin)} {(vcpu-set)} {(block-list)} {(network-list)} {(vtpm-list)} ] action: [ (C {(_count_args)}) (command.Case to_match: {($ Id.VSub_DollarName '$args')} arms: [ (case_arm pat_list: [{(2)}] action: [(C {(_xen_domain_names)})] spids: [504 505 511 -1] ) ] ) ] spids: [450 491 517 -1] ) (case_arm pat_list: [{(migrate)}] action: [ (C {(_count_args)}) (command.Case to_match: {($ Id.VSub_DollarName '$args')} arms: [ (case_arm pat_list: [{(2)}] action: [(C {(_xen_domain_names)})] spids: [534 535 541 -1] ) (case_arm pat_list: [{(3)}] action: [ (C {(_known_hosts_real)} {(DQ ($ Id.VSub_DollarName '$cur'))}) ] spids: [544 545 555 -1] ) ] ) ] spids: [520 521 561 -1] ) (case_arm pat_list: [{(restore)} {(dry-run)} {(vnet-create)}] action: [(C {(_filedir)})] spids: [564 569 575 -1] ) (case_arm pat_list: [{(save)}] action: [ (C {(_count_args)}) (command.Case to_match: {($ Id.VSub_DollarName '$args')} arms: [ (case_arm pat_list: [{(2)}] action: [(C {(_xen_domain_names)})] spids: [592 593 599 -1] ) (case_arm pat_list: [{(3)}] action: [(C {(_filedir)})] spids: [602 603 609 -1] ) ] ) ] spids: [578 579 615 -1] ) (case_arm pat_list: [{(sysrq)}] action: [ (C {(_count_args)}) (command.Case to_match: {($ Id.VSub_DollarName '$args')} arms: [ (case_arm pat_list: [{(2)}] action: [(C {(_xen_domain_names)})] spids: [632 633 639 -1] ) (case_arm pat_list: [{(3)}] 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:647) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 649 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ('r s e i u b'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [646] ) ] ) ] spids: [642 643 672 -1] ) ] ) ] spids: [618 619 678 -1] ) (case_arm pat_list: [{(block-attach)}] action: [ (C {(_count_args)}) (command.Case to_match: {($ Id.VSub_DollarName '$args')} arms: [ (case_arm pat_list: [{(2)}] action: [(C {(_xen_domain_names)})] spids: [695 696 702 -1] ) (case_arm pat_list: [{(3)}] 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:710) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 712 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ('phy: file:'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [709] ) ] ) ] spids: [705 706 735 -1] ) (case_arm pat_list: [{(5)}] 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:743) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 745 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ('w r'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [742] ) ] ) ] spids: [738 739 766 -1] ) (case_arm pat_list: [{(6)}] action: [(C {(_xen_domain_names)})] spids: [769 770 776 -1] ) ] ) ] spids: [681 682 782 -1] ) (case_arm pat_list: [{(block-detach)}] action: [ (C {(_count_args)}) (command.Case to_match: {($ Id.VSub_DollarName '$args')} arms: [ (case_arm pat_list: [{(2)}] action: [(C {(_xen_domain_names)})] spids: [799 800 806 -1] ) (case_arm pat_list: [{(3)}] 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:814) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 816 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 823 ) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {(xm)} {(block-list)} { ($ Id.VSub_DollarName '$prev' ) } ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 833 ) fd: 2 arg_word: { ( /dev/null ) } ) ] ) (C {(awk)} { (SQ (Token id: Id.Lit_Chars val: '!/Vdev/ { print $1 }' span_id: 841 ) ) } ) ] negated: F ) ] ) ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [813] ) ] ) ] spids: [809 810 860 -1] ) ] ) ] spids: [785 786 866 -1] ) (case_arm pat_list: [{(network-attach)}] action: [ (C {(_count_args)}) (command.Case to_match: {($ Id.VSub_DollarName '$args')} arms: [ (case_arm pat_list: [{(2)}] action: [(C {(_xen_domain_names)})] spids: [883 884 890 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] 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:898) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 900 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ ('script= ip= mac= bridge=\n') (' backend=') ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [897] ) ] ) ] spids: [893 894 922 -1] ) ] ) ] spids: [869 870 928 -1] ) (case_arm pat_list: [{(network-detach)}] action: [ (C {(_count_args)}) (command.Case to_match: {($ Id.VSub_DollarName '$args')} arms: [ (case_arm pat_list: [{(2)}] action: [(C {(_xen_domain_names)})] spids: [945 946 952 -1] ) (case_arm pat_list: [{(3)}] 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:960) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 962 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 968 ) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {(xm)} { ( network-list ) } { ($ Id.VSub_DollarName '$prev' ) } ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 978 ) fd: 2 arg_word: { ( /dev/null ) } ) ] ) (C {(awk)} { (SQ (Token id: Id.Lit_Chars val: '!/Idx/ { print $1 }' span_id: 986 ) ) } ) ] negated: F ) ] ) ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [959] ) ] ) ] spids: [955 956 1005 -1] ) ] ) ] spids: [931 932 1011 -1] ) (case_arm pat_list: [{(sched-credit)}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-d)}] action: [ (C {(_xen_domain_names)}) (command.ControlFlow token: (Token id: Id.ControlFlow_Return val: return span_id: 1032 ) arg_word: {(0)} ) ] spids: [1025 1026 1037 -1] ) ] ) ] spids: [1014 1015 1043 -1] ) (case_arm pat_list: [{(create)}] action: [ (C {(_filedir)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.PlusEqual rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:1054) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 1058 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '$( command ls /etc/xen 2>/dev/null )' span_id: 1065 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1053] ) ] ) ] spids: [1046 1047 1081 -1] ) (case_arm pat_list: [{(new)}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-f)} {(-F)} {(--defconfig)} {(--config)}] action: [ (C {(_filedir)}) (command.ControlFlow token: (Token id: Id.ControlFlow_Return val: return span_id: 1108 ) arg_word: {(0)} ) ] spids: [1095 1102 1113 -1] ) (case_arm pat_list: [{(--path)}] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: (Token id: Id.ControlFlow_Return val: return span_id: 1125 ) arg_word: {(0)} ) ] spids: [1116 1117 1130 -1] ) ] ) (C {(_count_args)}) (command.Case to_match: {($ Id.VSub_DollarName '$args')} arms: [ (case_arm pat_list: [{(2)}] action: [(C {(_xen_domain_names)})] spids: [1147 1148 1154 -1] ) ] ) ] spids: [1084 1085 1160 -1] ) ] ) ] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1173) arg_word: {(0)} ) ] ) ) (C {(complete)} {(-F)} {(_xm)} {(xm)}) ] ) ] )