(command.CommandList children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$EQUIVS'))} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EQUIVS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<readlink>} {<-f>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<dirname>} {($ Id.VSub_Number '$0')}) ) <'/../frontend/c/base-type-equivs.txt'> } ) ) } spids: [20] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$EQUIVS'))} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Simple words: [{<echo>} {(DQ <'Error: no equivs file'>)}] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] spids: [39 52] ) ] ) ] spids: [4 17] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:uniqtypes) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<tr>} {<-s>} {(SQ <'[:blank:]'>)} {(SQ <'\\t'>)}) (C {<cut>} {<-f1>}) (C {<grep>} {(SQ <'^__uniqtype_'>)}) ] negated: F ) ) ) } spids: [73] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<read>} {<equivclass>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:big_regexp) op: assign_op.Equal rhs: {(SQ <'^__uniqtype_([0-9a-f]{7,8})?_('>) (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$equivclass'))}) (C {<sed>} {(SQ <'s/, */|/g'>)}) (C {<tr>} {(SQ <' '>)} {(SQ <_>)}) ] negated: F ) ) ) (SQ <')$'>) } spids: [127] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:matches) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$uniqtypes'))}) (C {<egrep>} {(DQ ($ Id.VSub_DollarName '$big_regexp'))}) ] negated: F ) ) ) } spids: [167] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$matches'))}) (C {<grep>} {(SQ <'^__uniqtype_[0-9a-f]{7,8}_'>)}) (C {<wc>} {<-l>}) ] negated: F ) ) } right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Simple words: [ {<echo>} { (DQ <'Error: expected at most one matching uniqtype for '> (${ Id.VSub_Name big_regexp) <'; got '> ) } {($ Id.VSub_DollarName '$matches')} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [197 232] ) ] ) (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$matches'))}) (C {<sed>} {(SQ <'/^$/ d'>)}) (command.WhileUntil keyword: <Id.KW_While while> cond: [ (command.Sentence child: (C {<read>} {<matching_typesym>}) terminator: <Id.Op_Semi _> ) ] body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:matching_type) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$matching_typesym'))} ) (C {<sed>} {<-r>} {(SQ <'s/^__uniqtype_([0-9a-f]{7,8})?_//'>)} ) ] negated: F ) ) ) } spids: [321] ) ] ) (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$equivclass'))}) (C {<sed>} {(SQ <'s/, */\\n/g'>)}) (C {<tr>} {(SQ <' '>)} {(SQ <_>)}) (C {<grep>} {<-v>} {(DQ <'^'> (${ Id.VSub_Name matching_type)) (SQ <'$'>)}) (command.WhileUntil keyword: <Id.KW_While while> cond: [ (command.Sentence child: (C {<read>} {<equiv>}) terminator: <Id.Op_Semi _> ) ] body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:synonym_typesym) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} { (DQ ($ Id.VSub_DollarName '$matching_typesym' ) ) } ) (C {<sed>} {<-r>} { (DQ < 's/^(__uniqtype_([0-9a-f]{7,8})?_).*/' > <Id.Lit_Other '\\'> <1> (${ Id.VSub_Name equiv) <'/'> ) } ) ] negated: F ) ) ) } spids: [399] ) ] ) (C {<echo>} {<-Wl> <Id.Lit_Comma ','> <--defsym> <Id.Lit_Comma ','> (${ Id.VSub_Name synonym_typesym) <Id.Lit_Equals '='> (${ Id.VSub_Name matching_typesym) } ) ] ) ) ] negated: F ) ] ) ) ] negated: F ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName '$EQUIVS'))} ) ] ) ] )