(CommandList children: [ (AndOr ops: [Op_DAmp] children: [ (FuncDef name: _p4 body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[16]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[18]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[20]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[22]) ] spids: [14] ) (AndOr ops: [Op_DPipe] children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:p4commands) op: Equal spids: [35] ) (assign_pair lhs: (LhsName name:p4filetypes) op: Equal spids: [37] ) ] spids: [33] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p4commands) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(p4)} {(help)} {(commands)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [55] ) ] ) (C {(awk)} {(SQ <'NF>3 {print $1}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [47 66] ) ) } spids: [45] ) ] spids: [45] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p4filetypes) op: Equal rhs: { (DQ ('ctext cxtext ktext kxtext ltext tempobj ubinary ') (' uresource uxbinary xbinary xltext xtempobj xtext ') (' text binary resource') ) } spids: [70] ) ] spids: [70] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: {($ VSub_Name '$cword')} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] 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 '$p4commands'))} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [100 116] ) } ] ) } spids: [97] ) ] spids: [97] ) ] spids: [16777215 94] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: {($ VSub_Name '$cword')} right: {(2)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Name '$prev')} arms: [ (case_arm pat_list: [{(help)}] 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 ('simple commands environment\n') ( ' filetypes jobview revisions usage views ' ) ($ VSub_Name '$p4commands') ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [151 171] ) } ] ) } spids: [148] ) ] spids: [148] ) ] spids: [144 145 176 16777215] ) (case_arm pat_list: [{(admin)}] 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 ('checkpoint stop'))} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [186 202] ) } ] ) } spids: [183] ) ] spids: [183] ) ] spids: [179 180 207 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] spids: [210 211 214 16777215] ) ] spids: [137 141 217] ) ] spids: [121 134] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_gt left: {($ VSub_Name '$cword')} right: {(2)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Name '$prev')} arms: [ (case_arm pat_list: [{(-t)}] action: [ (Case to_match: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$cword')}) right: (ArithWord w:{(Lit_Digits 2)}) ) ) spids: [249 256] ) } arms: [ (case_arm pat_list: [{(add)} {(edit)} {(reopen)}] 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 '$p4filetypes'))} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [272 288] ) } ] ) } spids: [269] ) ] spids: [269] ) ] spids: [261 266 293 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] spids: [296 297 300 16777215] ) ] spids: [247 258 303] ) ] spids: [243 244 306 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] spids: [309 310 313 16777215] ) ] spids: [236 240 316] ) ] spids: [220 233] ) ] spids: [16777215 319] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [11] ) spids: [7 10] ) (C {(complete)} {(-F)} {(_p4)} {(-o)} {(default)} {(p4)} {(g4)}) ] ) ] )