(CommandList children: [ (FuncDef name: _heimdal_principals body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(kadmin)} {(-l)} {(dump)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [29] ) ] ) (C {(awk)} {(SQ <'{print $1}'>)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [21 42] ) ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [14 51] ) } ] ) } spids: [11] ) ] spids: [11] ) ] spids: [8] ) spids: [4 7] ) (FuncDef name: _heimdal_realms body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} { (DQ ('( kadmin -l dump 2>/dev/null | ') (" awk '{print ") ($ VSub_Number '$1') ("}' | awk -F@ '{print ") ($ VSub_Number '$2') ("}' )") ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [68 90] ) } ] ) } spids: [65] ) ] spids: [65] ) ] spids: [62] ) spids: [58 61] ) (FuncDef name: _heimdal_encodings body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} { (SQ <'des-cbc-mcrc des-cbc-md4 des-cbc-md5\n'> < ' des3-cbc-sha1 arcfour-hmac-md5 aes128-cts-hmac-sha1-96\n' > <' aes256-cts-hmac-sha1-96'> ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [107 125] ) } ] ) } spids: [104] ) ] spids: [104] ) ] spids: [101] ) spids: [97 100] ) (AndOr children: [ (FuncDef name: _ktutil body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[141]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[143]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[145]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[147]) (assign_pair lhs:(LhsName name:split) op:Equal spids:[149]) ] spids: [139] ) (AndOr children: [ (C {(_init_completion)} {(-s)}) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DPipe ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:command) op:Equal spids:[164]) (assign_pair lhs:(LhsName name:options) op:Equal spids:[166]) ] spids: [162] ) (Case to_match: {($ VSub_Name '$prev')} arms: [ (case_arm pat_list: [{(-p)} {(--principal)}] action: [ (C {(_heimdal_principals)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [177 180 191 16777215] ) (case_arm pat_list: [{(-e)} {(--enctype)}] action: [ (C {(_heimdal_encodings)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [194 197 208 16777215] ) (case_arm pat_list: [{(-a)} {(--admin-server)}] action: [ (C {(_known_hosts_real)} {(DQ ($ VSub_Name '$cur'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [211 214 229 16777215] ) (case_arm pat_list: [{(-r)} {(--realm)}] action: [ (C {(_heimdal_realms)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [232 235 246 16777215] ) (case_arm pat_list: [{(-s)} {(-k)} {(--srvtab)} {(--keytab)}] action: [ (C {(_filedir)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [249 256 267 16777215] ) ] spids: [170 174 270] ) (AndOr children: [ (C {($ VSub_Name '$split')}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:commands) op: Equal rhs: { (SQ <'add change copy get list remove rename purge srvconvert\n'> <' srv2keytab srvcreate key2srvtab'> ) } spids: [284] ) ] spids: [284] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithVarRef name:cword) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (Case to_match: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [320 325] ) } arms: [ (case_arm pat_list: [{(-k)} {(--keytab)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [337 342] ) } spids: [336] ) ] spids: [336] ) ] spids: [330 333 345 16777215] ) (case_arm pat_list: [{(-) (Lit_Other '*')}] spids: [348 350 353 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:command) op: Equal rhs: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [361 366] ) } spids: [360] ) ] spids: [360] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [356 357 372 16777215] ) ] spids: [318 327 375] ) ] spids: [315 378] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Name '$command')} arms: [ (case_arm pat_list: [{(add)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ <'-p --principal -V -e --enctype -w --password -r\n'> <' --random -s --no-salt -h --hex'> ) } spids: [412] ) ] spids: [412] ) ] spids: [408 409 419 16777215] ) (case_arm pat_list: [{(change)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <'-r --realm -a --admin-server -s --server-port'>)} spids: [426] ) ] spids: [426] ) ] spids: [422 423 432 16777215] ) (case_arm pat_list: [{(get)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: { (SQ <'-p --principal -e --enctype -r --realm -a\n'> < ' --admin-server -s server --server-port' > ) } spids: [439] ) ] spids: [439] ) ] spids: [435 436 446 16777215] ) (case_arm pat_list: [{(list)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <'--keys --timestamp'>)} spids: [453] ) ] spids: [453] ) ] spids: [449 450 459 16777215] ) (case_arm pat_list: [{(remove)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <'-p --principal -V --kvno -e --enctype'>)} spids: [466] ) ] spids: [466] ) ] spids: [462 463 472 16777215] ) (case_arm pat_list: [{(purge)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <--age>)} spids: [479] ) ] spids: [479] ) ] spids: [475 476 485 16777215] ) (case_arm pat_list: [{(srv2keytab)} {(key2srvtab)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <'-s --srvtab'>)} spids: [494] ) ] spids: [494] ) ] spids: [488 491 500 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(SQ <'-k --keytab -v --verbose --version -v --help'>)} spids: [507] ) ] spids: [507] ) ] spids: [503 504 513 16777215] ) ] spids: [401 405 516] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ VSub_Name '$options'))} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [522 538] ) } ] ) } spids: [519] ) ] spids: [519] ) ] spids: [16777215 398] ) ] else_action: [ (Case to_match: {($ VSub_Name '$command')} arms: [ (case_arm pat_list: [{(copy)}] action: [(C {(_filedir)})] spids: [553 554 560 16777215] ) (case_arm pat_list: [{(get)}] action: [(C {(_heimdal_principals)})] spids: [563 564 570 16777215] ) (case_arm pat_list: [{(rename)}] action: [(C {(_heimdal_principals)})] spids: [573 574 580 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ VSub_Name '$commands'))} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [590 606] ) } ] ) } spids: [587] ) ] spids: [587] ) ] spids: [583 584 611 16777215] ) ] spids: [546 550 614] ) ] spids: [543 617] ) ] spids: [136] ) spids: [132 135] ) (C {(complete)} {(-F)} {(_ktutil)} {(ktutil)}) ] op_id: Op_DAmp ) ] )