(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:context) op:Equal rhs:{(0)} spids:[8])] spids: [8] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:esc) op:Equal rhs:{(DQ ('^['))} spids:[11])] spids: [11] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:boldon) op: Equal rhs: {(DQ (${ VSub_Name esc) ('[1m'))} spids: [16] ) (assign_pair lhs: (LhsName name:boldoff) op: Equal rhs: {(DQ (${ VSub_Name esc) ('[22m'))} spids: [24] ) ] spids: [16] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sedscript) op: Equal rhs: {(DQ (/tmp/cgrep.sed.) ($ VSub_Dollar '$$'))} spids: [32] ) ] spids: [32] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tempout) op: Equal rhs: {(DQ (/tmp/cgrep.) ($ VSub_Dollar '$$'))} spids: [38] ) ] spids: [38] ) (FuncDef name: showMatches body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:matches) op:Equal rhs:{(0)} spids:[52])] spids: [52] ) (SimpleCommand words: [ {(echo)} { (DQ (s/) ($ VSub_Name '$pattern') (/) (${ VSub_Name boldon) ($ VSub_Name '$pattern') (${ VSub_Name boldoff) (/g) ) } ] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Name '$sedscript')} ) ] ) (ForEach iter_name: lineno iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(-n)} {(DQ ($ VSub_Name '$pattern'))} {($ VSub_Number '$1')}) (C {(cut)} {(-d) (Lit_Other ':')} {(-f1)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [85 104] ) } ] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$context')} {(-gt)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prev) op: Equal rhs: { (DQ (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$lineno')}) right: (ArithWord w:{($ VSub_Name '$context')}) ) spids: [130 139] ) ) } spids: [128] ) ] spids: [128] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$prev')} {(-lt)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prev) op: Equal rhs: {(DQ (1))} spids: [166] ) ] spids: [166] ) ] spids: [16777215 159] ) ] spids: [16777215 172] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:next) op: Equal rhs: { (DQ (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$lineno')}) right: (ArithWord w:{($ VSub_Name '$context')}) ) spids: [177 186] ) ) } spids: [175] ) ] spids: [175] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$matches')} {(-gt)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ (${ VSub_Name prev) (i) (EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) ) } ] redirects: [ (Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {($ VSub_Name '$sedscript')} ) ] ) (SimpleCommand words: [{(echo)} {(DQ (----))}] redirects: [ (Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {($ VSub_Name '$sedscript')} ) ] ) ] spids: [16777215 205] ) ] spids: [16777215 234] ) (SimpleCommand words: [{(echo)} {(DQ (${ VSub_Name prev) (',') (${ VSub_Name next) (p))}] redirects: [ (Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {($ VSub_Name '$sedscript')} ) ] ) ] spids: [16777215 125] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(DQ (${ VSub_Name lineno) (p))}] redirects: [ (Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {($ VSub_Name '$sedscript')} ) ] ) ] spids: [255 272] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:matches) op: Equal rhs: { (DQ (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$matches')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [277 286] ) ) } spids: [275] ) ] spids: [275] ) ] spids: [107 290] ) spids: [84 16777215] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$matches')} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (C {(sed)} {(-n)} {(-f)} {($ VSub_Name '$sedscript')} {($ VSub_Number '$1')}) (C {(uniq)}) (C {(more)}) ] negated: F ) ] spids: [16777215 308] ) ] spids: [16777215 330] ) ] spids: [49] ) spids: [45 48] ) (C {(trap)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(which)} {(rm)})]) left_token: <Left_CommandSub '$('> spids: [338 342] ) (' -f ') ($ VSub_Name '$tempout') (' ') ($ VSub_Name '$sedscript') ) } {(EXIT)} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (SimpleCommand words: [ {(echo)} {(DQ ('Usage: ') ($ VSub_Number '$0') (' [-c X] pattern {filename}'))} ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) terminator: <Op_Semi ';'> ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [16777215 367] ) ] spids: [16777215 386] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (-c))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:context) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [410] ) ] spids: [410] ) (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (C {(shift)}) ] spids: [16777215 407] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(echo)} {($ VSub_Number '$1')}) (C {(cut)} {(-c1-2)})] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [426 434] ) ) } {(Lit_Other '=')} {(DQ (-c))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:context) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(echo)} {($ VSub_Number '$1')}) (C {(cut)} {(-c3-)})] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [452 462] ) ) } spids: [450] ) ] spids: [450] ) (C {(shift)}) ] spids: [421 447] ) ] spids: [16777215 468] ) (CommandList children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pattern) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [471] ) ] spids: [471] ) terminator: <Op_Semi ';'> ) (C {(shift)}) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (ForEach iter_name: filename do_arg_iter: T body: (DoGroup children: [ (C {(echo)} {(DQ ('----- ') ($ VSub_Name '$filename') (' -----'))}) (C {(showMatches)} {($ VSub_Name '$filename')}) ] spids: [503 521] ) spids: [16777215 16777215] ) ] spids: [16777215 494] ) ] else_action: [ (SimpleCommand words: [{(cat)} {(-)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$tempout')})] ) (C {(showMatches)} {($ VSub_Name '$tempout')}) ] spids: [523 542] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )