(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 -1] ) (case_arm pat_list: [{(-) (Lit_Other "*")}] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [107 109 115 -1] ) ] 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: [-1 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: -1 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: [-1 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: -1 arg_word: {($ VSub_Name "$unistd")} spids: [440] ) ] ) ] spids: [-1 323] ) ] spids: [-1 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 -1] ) ] spids: [207 211 484] ) ] spids: [-1 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 -1] ) (case_arm pat_list: [{(-o)}] action: [ (C {(_filedir)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [538 539 550 -1] ) (case_arm pat_list: [{(-p)}] action: [ (C {(_pids)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [553 554 565 -1] ) (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 -1] ) (case_arm pat_list: [{(-u)}] action: [ (C {(_allowed_users)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [606 607 618 -1] ) ] 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: [-1 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 ) ] )