(command.CommandList children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {(DQ ($ VSub_DollarName '$EQUIVS'))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:EQUIVS spids:[20]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(readlink)} {(-f)} { (word_part.CommandSubPart command_list: (command.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] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {(DQ ($ VSub_DollarName '$EQUIVS'))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.SimpleCommand words: [{(echo)} {(DQ ('Error: no equivs file'))}] redirects: [(redir.Redir op:<Redir_GreatAnd '1>&'> fd:1 arg_word:{(2)})] ) ] spids: [16777215 50] ) ] spids: [16777215 63] ) ] spids: [16777215 17] ) ] spids: [16777215 65] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:uniqtypes spids:[71]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.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] ) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(read)} {(equivclass)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:big_regexp spids:[125]) op: Equal rhs: {(SQ <'^__uniqtype_([0-9a-f]{7,8})?_('>) (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$equivclass'))}) (C {(sed)} {(SQ <'s/, */|/g'>)}) (C {(tr)} {(SQ <' '>)} {(SQ <_>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [130 158] ) ) (SQ <')$'>) } spids: [125] ) ] spids: [125] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:matches spids:[165]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$uniqtypes'))}) (C {(egrep)} {(DQ ($ VSub_DollarName '$big_regexp'))}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [167 183] ) ) } spids: [165] ) ] spids: [165] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_gt left: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$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: [ (command.SimpleCommand words: [ {(echo)} { (DQ ('Error: expected at most one matching uniqtype for ') (${ VSub_Name big_regexp) ('; got ') ) } {($ VSub_DollarName '$matches')} ] redirects: [(redir.Redir op:<Redir_GreatAnd '1>&'> fd:1 arg_word:{(2)})] ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 230] ) ] spids: [16777215 282] ) (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$matches'))}) (C {(sed)} {(SQ <'/^$/ d'>)}) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(matching_typesym)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:matching_type spids:[319]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$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] ) (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$equivclass'))}) (C {(sed)} {(SQ <'s/, */\\n/g'>)}) (C {(tr)} {(SQ <' '>)} {(SQ <_>)}) (C {(grep)} {(-v)} {(DQ ('^') (${ VSub_Name matching_type)) (SQ <'$'>)}) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(equiv)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:synonym_typesym spids:[397]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ ($ VSub_DollarName '$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.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$EQUIVS'))} ) ] ) ] )