(CommandList children: [ (FuncDef name: check body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: {($ VSub_Number '$1')} spids: [72] ) ] spids: [72] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pattern) op: Equal rhs: {($ VSub_Number '$2')} spids: [76] ) ] spids: [76] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:found) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(grep)} {(DQ ($ VSub_Name '$pattern'))} {($ VSub_Name '$file')}) ] ) left_token: <Left_Backtick '`'> spids: [81 89] ) } spids: [80] ) ] spids: [80] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$found'))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('pattern ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$pattern') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' not found in file ') ($ VSub_Name '$file') (.) ) } ) (C {(echo)} {($ VSub_Name '$found')}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 103] ) ] spids: [16777215 129] ) ] spids: [69] ) spids: [65 68] ) (C {(check)} {(dyn_weak_ref.stdout)} {(DQ ('.* WEAK .* UND.* weak_ref'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )