(CommandList children: [ (AndOr children: [ (FuncDef name: _strace body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[13]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[15]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[17]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[19]) ] spids: [11] ) (AndOr children: [ (C {(_init_completion)} {(-n)} {(Lit_Other '=')}) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DPipe ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:offset) op: Equal rhs: {(0)} spids: [40] ) (assign_pair lhs:(LhsName name:i) op:Equal spids:[43]) ] spids: [38] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) cond: (ArithBinary op_id: Arith_LessEqual 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:(ArithWord w:{($ VSub_Name '$i')})) spids: [74 79] ) } arms: [ (case_arm pat_list: [{(-o)} {(-e)} {(-p)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [93 98] ) } spids: [92] ) ] spids: [92] ) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [84 89 104 16777215] ) (case_arm pat_list: [{(-) (Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [107 109 115 16777215] ) ] spids: [72 81 118] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:offset) op: Equal rhs: {($ VSub_Name '$i')} spids: [121] ) ] spids: [121] ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [69 128] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_gt left: {($ VSub_Name '$offset')} right: {(0)} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(_command_offset)} {($ VSub_Name '$offset')})] spids: [16777215 145] ) ] else_action: [ (Case to_match: {($ VSub_Name '$prev')} arms: [ (case_arm pat_list: [{(-e)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$cur'))} right: {(Lit_Other '*') (BoolBinary_GlobEqual '=') (Lit_Other '*') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prev) op: Equal rhs: { (BracedVarSub token: <VSub_Name cur> suffix_op: (PatSub pat: {('=*')} replace: {} do_all: False do_prefix: False do_suffix: False ) spids: [189 194] ) } spids: [188] ) ] spids: [188] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cur) op: Equal rhs: { (BracedVarSub token: <VSub_Name cur> suffix_op: (PatSub pat: {('*=')} replace: {} do_all: False do_prefix: False do_suffix: False ) spids: [198 203] ) } spids: [197] ) ] spids: [197] ) (Case to_match: {($ VSub_Name '$prev')} arms: [ (case_arm pat_list: [{(trace)}] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:define) op: Equal spids: [228] ) (assign_pair lhs: (LhsName name:syscall) op: Equal spids: [230] ) (assign_pair lhs: (LhsName name:rest) op: Equal spids: [232] ) ] spids: [226] ) (Assignment keyword: Assign_Local flags: [-A] pairs: [ (assign_pair lhs: (LhsName name:syscalls) op: Equal spids: [239] ) ] spids: [235] ) (While cond: [ (Sentence child: (C {(read)} {(-r)} {(define)} {(syscall)} {(rest)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr children: [ (DBracket expr: (LogicalAnd left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$define')} right: {(DQ ('#define'))} ) right: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$syscall')} right: {(Lit_Other '^') (__NR_) ('(') (.) (Lit_Other '+') (')') } ) ) ) (C {(syscalls) (Lit_Other '[') (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [291 296] ) (Lit_Other ']') (Lit_Other '=') (1) } ) ] op_id: Op_DAmp ) ] spids: [255 302] ) redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [304] ) (Redir op_id: Redir_Less fd: 16777215 arg_word: {(/usr/include/asm/unistd.h)} spids: [307] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (WordTest w: {($ VSub_Name '$syscalls')} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:unistd) op: Equal spids: [328] ) (assign_pair lhs: (LhsName name:arch) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(command)} {(uname)} {(-m)}) ] ) left_token: <Left_CommandSub '$('> spids: [331 339] ) } spids: [330] ) ] spids: [326] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$arch'))} right: {(Lit_Other '*') (86)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:unistd) op: Equal rhs: {(/usr/include/asm/unistd_32.h)} spids: [361] ) ] spids: [361] ) ] spids: [16777215 358] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:unistd) op: Equal rhs: {(/usr/include/asm/unistd_64.h)} spids: [368] ) ] spids: [368] ) ] spids: [365 372] ) (While cond: [ (Sentence child: (C {(read)} {(-r)} {(define)} {(syscall)} {(rest)} ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr children: [ (DBracket expr: (LogicalAnd left: (BoolBinary op_id: BoolBinary_GlobDEqual left: { ($ VSub_Name '$define') } right: {(DQ ('#define'))} ) right: (BoolBinary op_id: BoolBinary_EqualTilde left: { ($ VSub_Name '$syscall') } right: {(Lit_Other '^') (__NR_) ('(') (.) (Lit_Other '+') (')') } ) ) ) (C {(syscalls) (Lit_Other '[') (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) spids: [424 429] ) (Lit_Other ']') (Lit_Other '=') (1) } ) ] op_id: Op_DAmp ) ] spids: [388 435] ) redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [437] ) (Redir op_id: Redir_Less fd: 16777215 arg_word: {($ VSub_Name '$unistd')} spids: [440] ) ] ) ] spids: [16777215 323] ) ] spids: [16777215 445] ) (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 < '${!syscalls[@]} file\n' > <' process network signal ipc desc all none'> ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [452 471] ) } ] ) } spids: [449] ) ] spids: [449] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [214 215 481 16777215] ) ] spids: [207 211 484] ) ] spids: [16777215 185] ) ] else_action: [ (C {(compopt)} {(-o)} {(nospace)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-S) (DQ ('='))} {(-W)} { (SQ <'trace abbrev verbose raw\n'> < ' signal read write' > ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [500 522] ) } ] ) } spids: [497] ) ] spids: [497] ) ] spids: [487 527] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [164 165 535 16777215] ) (case_arm pat_list: [{(-o)}] action: [ (C {(_filedir)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [538 539 550 16777215] ) (case_arm pat_list: [{(-p)}] action: [ (C {(_pids)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [553 554 565 16777215] ) (case_arm pat_list: [{(-S)}] 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)} {(SQ <'time calls name nothing'>)} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [575 593] ) } ] ) } spids: [572] ) ] spids: [572] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [568 569 603 16777215] ) (case_arm pat_list: [{(-u)}] action: [ (C {(_allowed_users)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [606 607 618 16777215] ) ] spids: [157 161 621] ) (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: [ (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 < '-c -d -f -ff -F --help -i -q -r -t -tt\n' > <' -ttt -T -v -V -x -xx -a -e -o -O -p -s -S -u -E'> ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [647 664] ) } ] ) } spids: [644] ) ] spids: [644] ) ] spids: [16777215 641] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-c)} {(--)} {(DQ ($ VSub_Name '$cur'))}) ] ) left_token: <Left_CommandSub '$('> spids: [675 687] ) } ] ) } spids: [672] ) ] spids: [672] ) ] spids: [669 692] ) ] spids: [153 695] ) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_strace)} {(-o)} {(default)} {(strace)}) ] op_id: Op_DAmp ) ] )