(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VERBOSE='> name:VERBOSE) op: assign_op.Equal rhs: {<0>} spids: [97] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SECTIONLIST='> name:SECTIONLIST) op: assign_op.Equal rhs: {(DQ )} spids: [100] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SIGNING_CHECK='> name:SIGNING_CHECK) op: assign_op.Equal rhs: {<0>} spids: [104] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERRORS='> name:ERRORS) op: assign_op.Equal rhs: {<0>} spids: [107] ) ] redirects: [] ) (command.ShFunction name: usage body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<echo>} {(SQ <'Usage: elfcmp [-v] [-S] [-s section ...] <f1> <f2>'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id:Id.Op_Great left:{($ Id.VSub_Pound '#')} right:{<0>}) redirects: [] ) ] ) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<-v>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VERBOSE='> name:VERBOSE) op: assign_op.Equal rhs: {<1>} spids: [163] ) ] redirects: [] ) ] spids: [159 160 167 -1] ) (case_arm pat_list: [{<-s>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SECTIONLIST='> name: SECTIONLIST ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 2))} spids: [174] ) ] redirects: [] ) (C {<shift>}) ] spids: [170 171 183 -1] ) (case_arm pat_list: [{<-S>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SIGNING_CHECK='> name: SIGNING_CHECK ) op: assign_op.Equal rhs: {<1>} spids: [190] ) ] redirects: [] ) ] spids: [186 187 194 -1] ) (case_arm pat_list: [{<-> <Id.Lit_Star '*'>}] action: [(C {<usage>})] spids: [197 199 205 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [208 209 215 -1] ) ] redirects: [] ) (C {<shift>}) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_Pound '#')} right: {<2>} ) redirects: [] ) ] ) action: [(C {<usage>})] spids: [226 238] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMP1='> name:TMP1) op: assign_op.Equal rhs: {<'/tmp/elfcmp.1.'> ($ Id.VSub_Dollar '$')} spids: [246] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMP2='> name:TMP2) op: assign_op.Equal rhs: {<'/tmp/elfcmp.2.'> ($ Id.VSub_Dollar '$')} spids: [250] ) ] redirects: [] ) (C {<trap>} {(DQ <'rm -f '> ($ Id.VSub_DollarName TMP1) <' '> ($ Id.VSub_DollarName TMP2))} {<EXIT>} {<HUP>} {<INT>} {<QUIT>} {<PIPE>} {<TERM>} ) (command.ShFunction name: list_sections body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (C {<dump>} {<-h>} {(DQ ($ Id.VSub_Number 1))}) (C {<grep>} {(SQ <'\\[[0-9]'>)}) (C {<awk>} {(SQ <'{print $7}'>)}) ] negated: F stderr_indices: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: list_alloc_sections body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (C {<dump>} {<-hv>} {(DQ ($ Id.VSub_Number 1))}) (C {<grep>} {(SQ <'\\[[0-9]'>)}) (C {<awk>} {(SQ <'$3 ~ /A/ {print $4, $5, $6, $7}'>)}) ] negated: F stderr_indices: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: signing_filter body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<'/usr/xpg4/bin/grep'>} {<-v>} {<-e>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') ($ Id.VSub_DollarName SHSTRTAB) } {<-e>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <.SUNW_signature>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName SECTIONLIST))} right: {(DQ )} ) redirects: [] ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_DollarName SIGNING_CHECK)} right: {<1>} ) redirects: [] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHSTRNDX='> name:SHSTRNDX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<dump>} {<-f>} {(DQ ($ Id.VSub_Number 1))}) (C {<awk>} {(SQ <'{if (NR==11) print $5}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [407] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHSTRTAB='> name:SHSTRTAB) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<dump>} {<-h>} {(DQ ($ Id.VSub_Number 1))}) (C {<grep>} { (DQ <'^'> <Id.Lit_BadBackslash '\\'> <'['> ($ Id.VSub_DollarName SHSTRNDX) <Id.Lit_BadBackslash '\\'> <']'> ) } ) (C {<awk>} {(SQ <'{print $7}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [429] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FILTER='> name:FILTER) op: assign_op.Equal rhs: {<signing_filter>} spids: [473] ) ] redirects: [] ) ] spids: [391 404] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FILTER='> name:FILTER) op: assign_op.Equal rhs: {<cat>} spids: [480] ) ] redirects: [] ) ] redirects: [] ) (command.Pipeline children: [ (C {<list_sections>} {(DQ ($ Id.VSub_Number 1))}) (C {($ Id.VSub_DollarName FILTER)}) (command.Simple words: [{<sort>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP1)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Pipeline children: [ (C {<list_sections>} {(DQ ($ Id.VSub_Number 2))}) (C {($ Id.VSub_DollarName FILTER)}) (command.Simple words: [{<sort>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP2)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) ] spids: [373 388] ) ] else_action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName SECTIONLIST))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP1)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName SECTIONLIST))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP2)} ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOT_IN_1='> name:NOT_IN_1) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<comm>} {<-13>} {($ Id.VSub_DollarName TMP1)} {($ Id.VSub_DollarName TMP2)}) right: <Id.Eof_RParen _> ) } spids: [552] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName NOT_IN_1))} ) ) redirects: [] ) ] ) action: [ (C {<echo>} {(DQ <'Section(s) '> ($ Id.VSub_DollarName NOT_IN_1) <' not in '> ($ Id.VSub_Number 1))} ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike ERRORS) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] spids: [563 577] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOT_IN_2='> name:NOT_IN_2) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<comm>} {<-23>} {($ Id.VSub_DollarName TMP1)} {($ Id.VSub_DollarName TMP2)}) right: <Id.Eof_RParen _> ) } spids: [603] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName NOT_IN_2))} ) ) redirects: [] ) ] ) action: [ (C {<echo>} {(DQ <'Section(s) '> ($ Id.VSub_DollarName NOT_IN_2) <' not in '> ($ Id.VSub_Number 2))} ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike ERRORS) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] spids: [614 628] ) ] else_action: [] redirects: [] ) (command.ForEach iter_names: [s] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<comm>} {<-12>} {($ Id.VSub_DollarName TMP1)} {($ Id.VSub_DollarName TMP2)}) right: <Id.Eof_RParen _> ) } ] ) body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<dump>} {<-s>} {<-n>} {($ Id.VSub_DollarName s)} {(DQ ($ Id.VSub_Number 1))}) (command.Simple words: [{<sed>} {(SQ <'/:/d'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP1)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Pipeline children: [ (C {<dump>} {<-s>} {<-n>} {($ Id.VSub_DollarName s)} {(DQ ($ Id.VSub_Number 2))}) (command.Simple words: [{<sed>} {(SQ <'/:/d'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP2)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<cmp>} {<-s>} {($ Id.VSub_DollarName TMP1)} {($ Id.VSub_DollarName TMP2)}) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_DollarName VERBOSE)} right: {<1>} ) redirects: [] ) ] ) action: [ (C {<echo>} {(DQ <'Section '> ($ Id.VSub_DollarName s) <' is the same'>)}) ] spids: [740 753] ) ] else_action: [] redirects: [] ) ] spids: [726 737] ) ] else_action: [ (C {<echo>} {(DQ <'Section '> ($ Id.VSub_DollarName s) <' differs'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_DollarName VERBOSE)} right: {<1>} ) redirects: [] ) ] ) action: [ (command.Pipeline children: [ (C {<dump>} {<-sv>} {<-n>} {($ Id.VSub_DollarName s)} {(DQ ($ Id.VSub_Number 1))} ) (command.Simple words: [{<sed>} {(SQ <'/:/d'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP1)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Pipeline children: [ (C {<dump>} {<-sv>} {<-n>} {($ Id.VSub_DollarName s)} {(DQ ($ Id.VSub_Number 2))} ) (command.Simple words: [{<sed>} {(SQ <'/:/d'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP2)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (C {<diff>} {<-c>} {($ Id.VSub_DollarName TMP1)} {($ Id.VSub_DollarName TMP2)}) ] spids: [780 793] ) ] else_action: [] redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike ERRORS) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_DollarName SIGNING_CHECK)} right: {<1>} ) redirects: [] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HDR='> name:HDR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [(C {<dump>} {<-op>} {($ Id.VSub_Number 1)}) (C {<wc>} {<-l>})] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [895] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_DollarName HDR)} right: {<2>} ) redirects: [] ) ] ) action: [ (command.Pipeline children: [ (C {<list_alloc_sections>} {(DQ ($ Id.VSub_Number 1))}) (command.Simple words: [{<sort>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP1)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Pipeline children: [ (C {<list_alloc_sections>} {(DQ ($ Id.VSub_Number 2))}) (command.Simple words: [{<sort>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP2)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<cmp>} {<-s>} {($ Id.VSub_DollarName TMP1)} {($ Id.VSub_DollarName TMP2)} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_DollarName VERBOSE)} right: {<1>} ) redirects: [] ) ] ) action: [(C {<echo>} {(DQ <'Allocated sections are the same'>)})] spids: [969 982] ) ] else_action: [] redirects: [] ) ] spids: [955 966] ) ] else_action: [ (C {<echo>} {(DQ <'Allocated section(s) changed'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_DollarName VERBOSE)} right: {<1>} ) redirects: [] ) ] ) action: [ (C {<diff>} {<-c>} {($ Id.VSub_DollarName TMP1)} {($ Id.VSub_DollarName TMP2)} ) ] spids: [1005 1018] ) ] else_action: [] redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike ERRORS) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] redirects: [] ) ] spids: [911 924] ) ] else_action: [] redirects: [] ) ] spids: [880 892] ) ] else_action: [] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{($ Id.VSub_DollarName ERRORS)}) ] )