(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name '$EQUIVS'))})) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EQUIVS) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(readlink)} {(-f)} { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [27 31] ) (/../frontend/c/base-type-equivs.txt) } ) ] ) left_token: <Left_CommandSub '$('> spids: [21 34] ) } spids: [20] ) ] spids: [20] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name '$EQUIVS'))}) ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('Error: no equivs file'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[59])] ) ] spids: [16777215 50] ) ] spids: [16777215 63] ) ] spids: [16777215 17] ) ] spids: [16777215 65] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:uniqtypes) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(tr)} {(-s)} {(SQ <'[:blank:]'>)} {(SQ <'\\t'>)}) (C {(cut)} {(-f1)}) (C {(grep)} {(SQ <'^__uniqtype_'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [73 101] ) ) } spids: [71] ) ] spids: [71] ) (While cond: [(Sentence child:(C {(read)} {(equivclass)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:big_regexp) op: Equal rhs: {(SQ <'^__uniqtype_([0-9a-f]{7,8})?_('>) (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$equivclass'))}) (C {(sed)} {(SQ <'s/, */|/g'>)}) (C {(tr)} {(SQ <' '>)} {(SQ <_>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [130 158] ) ) (SQ <')$'>) } spids: [125] ) ] spids: [125] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:matches) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$uniqtypes'))}) (C {(egrep)} {(DQ ($ VSub_Name '$big_regexp'))}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [167 183] ) ) } spids: [165] ) ] spids: [165] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_gt left: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$matches'))}) (C {(grep)} {(SQ <'^__uniqtype_[0-9a-f]{7,8}_'>)}) (C {(wc)} {(-l)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [199 221] ) } right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ('Error: expected at most one matching uniqtype for ') (${ VSub_Name big_regexp) ('; got ') ) } {($ VSub_Name '$matches')} ] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[245])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 230] ) ] spids: [16777215 282] ) (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$matches'))}) (C {(sed)} {(SQ <'/^$/ d'>)}) (While cond: [(Sentence child:(C {(read)} {(matching_typesym)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:matching_type) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$matching_typesym'))}) (C {(sed)} {(-r)} {(SQ <'s/^__uniqtype_([0-9a-f]{7,8})?_//'>)} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [321 339] ) ) } spids: [319] ) ] spids: [319] ) (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$equivclass'))}) (C {(sed)} {(SQ <'s/, */\\n/g'>)}) (C {(tr)} {(SQ <' '>)} {(SQ <_>)}) (C {(grep)} {(-v)} {(DQ ('^') (${ VSub_Name matching_type)) (SQ <'$'>)}) (While cond: [(Sentence child:(C {(read)} {(equiv)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:synonym_typesym) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} { (DQ ($ VSub_Name '$matching_typesym')) } ) (C {(sed)} {(-r)} { (DQ ( 's/^(__uniqtype_([0-9a-f]{7,8})?_).*/' ) (Lit_Other '\\') (1) (${ VSub_Name equiv) (/) ) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [399 423] ) ) } spids: [397] ) ] spids: [397] ) (C {(echo)} {(-Wl) (Lit_Comma ',') (--defsym) (Lit_Comma ',') (${ VSub_Name synonym_typesym) (Lit_Other '=') (${ VSub_Name matching_typesym) } ) ] spids: [394 443] ) ) ] negated: F ) ] spids: [308 446] ) ) ] negated: F ) ] spids: [118 448] ) redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Name '$EQUIVS'))} spids: [450] ) ] ) ] )