(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:all_obj_meta_file) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [29] ) ] spids: [29] ) (FuncDef name: lexicographic_compare_le body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sorted) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$1')) (SQ <Lit_EscapedChar '\\n'>) (DQ ($ VSub_Number '$2')) } ) (SimpleCommand words: [{(sort)}] more_env: [(env_pair name:LANG val:{(C)} spids:[61])] ) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [45 66] ) ) } spids: [43] ) ] spids: [43] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$sorted'))} right: {(DQ ($ VSub_Number '$1')) (SQ <Lit_EscapedChar '\\n'>) (DQ ($ VSub_Number '$2')) } ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [-1 93] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$sorted'))} right: {(DQ ($ VSub_Number '$2')) (SQ <Lit_EscapedChar '\\n'>) (DQ ($ VSub_Number '$1')) } ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [108 131] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(DQ ('lexicographic_compare_le: internal error'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[155])] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(99)}) ] spids: [146 164] ) ] spids: [40] ) spids: [35 39] ) (FuncDef name: lexicographic_compare_lt body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Number '$1'))} right: {(DQ ($ VSub_Number '$2'))} ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [-1 196] ) ] else_action: [ (C {(lexicographic_compare_le)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))}) ] spids: [211 225] ) ] spids: [173] ) spids: [168 172] ) (FuncDef name: lexicographic_compare_gt body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(lexicographic_compare_le)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))} ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [-1 253] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [266 278] ) ] spids: [235] ) spids: [230 234] ) (FuncDef name: lexicographic_compare_ge body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(lexicographic_compare_lt)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))} ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [-1 306] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [319 331] ) ] spids: [288] ) spids: [283 287] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:all_source_meta_file) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [337] ) ] spids: [337] ) (SimpleCommand words: [{(echo)} {(DQ ('all_source_meta_file: ') ($ VSub_Name '$all_source_meta_file'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[349])] ) (SimpleCommand words: [{(echo)} {(DQ ('all_obj_meta_file: ') ($ VSub_Name '$all_obj_meta_file'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[359])] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:keep_old_source_line) op:Equal rhs:{(0)} spids:[366])] spids: [366] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:have_matched_this_source_line) op: Equal rhs: {(0)} spids: [369] ) ] spids: [369] ) (While cond: [ (Sentence child: (C {(read)} {(-r)} {(obj)} {(func)} {(addr)} {(sourcefile)} {(sourceline)} {(sourceline_end)} {(typ)} {(rest)} ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: {($ VSub_Name '$keep_old_source_line')} right: {(0)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:have_matched_this_source_line) op: Equal rhs: {(0)} spids: [441] ) ] spids: [441] ) (AndOr children: [ (SimpleCommand words: [ {(read)} {(-r)} {(srcmeta_sourcefile)} {(srcmeta_sourceline)} {(srcmeta_sourceline_end)} {(srcmeta_rest)} ] redirects: [ (Redir op_id: Redir_LessAnd fd: -1 arg_word: {(3)} spids: [461] ) ] ) (ControlFlow token: <ControlFlow_Break break> arg_word: {(2)} ) ] op_id: Op_DPipe ) ] spids: [-1 434] ) ] else_action: [(C {(true)})] spids: [479 489] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$srcmeta_sourcefile'))} right: {(DQ ($ VSub_Name '$sourcefile'))} ) ) (AndOr children: [ (C {(lexicographic_compare_ge)} {(DQ ($ VSub_Name '$srcmeta_sourceline'))} {(DQ ($ VSub_Name '$sourceline'))} ) (C {(lexicographic_compare_lt)} {(DQ ($ VSub_Name '$srcmeta_sourceline'))} {(DQ ($ VSub_Name '$sourceline_end'))} ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ($ VSub_Name '$obj')) (SQ <Lit_EscapedChar '\\t'>) (DQ ($ VSub_Name '$func')) (SQ <Lit_EscapedChar '\\t'>) (DQ ($ VSub_Name '$addr')) (SQ <Lit_EscapedChar '\\t'>) (DQ ($ VSub_Name '$sourcefile')) (SQ <Lit_EscapedChar '\\t'>) (DQ ($ VSub_Name '$sourceline')) (SQ <Lit_EscapedChar '\\t'>) (DQ ($ VSub_Name '$sourceline_end')) (SQ <Lit_EscapedChar '\\t'>) (DQ ($ VSub_Name '$srcmeta_rest')) (SQ <Lit_EscapedChar '\\t'>) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:have_matched_this_source_line) op: Equal rhs: {(1)} spids: [648] ) ] spids: [648] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keep_old_source_line) op: Equal rhs: {(1)} spids: [662] ) ] spids: [662] ) (ControlFlow token: <ControlFlow_Continue continue> arg_word: {(2)} ) ] spids: [-1 583] ) ] else_action: [ (SimpleCommand words: [ {(echo)} { (DQ ('NO MATCH: found ') ($ VSub_Name '$srcmeta_sourcefile') (' != ') ($ VSub_Name '$sourcefile') (' or ') ) } { (DQ ('NOT lexicographic_compare_ge ') ($ VSub_Name '$srcmeta_sourceline') (' ') ($ VSub_Name '$sourceline') (' or') ) } { (DQ ('NOT lexicographic_compare_lt ') ($ VSub_Name '$srcmeta_sourceline') (' ') ($ VSub_Name '$sourceline_end') ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[707])] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(lexicographic_compare_lt)} {(DQ ($ VSub_Name '$srcmeta_sourcefile'))} {(DQ ($ VSub_Name '$sourcefile'))} ) (Subshell child: (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$srcmeta_sourcefile'))} right: {(DQ ($ VSub_Name '$sourcefile'))} ) ) (C {(lexicographic_compare_lt)} {(DQ ($ VSub_Name '$srcmeta_sourceline'))} {(DQ ($ VSub_Name '$sourceline_end'))} ) ] op_id: Op_DAmp ) spids: [729 759] ) ] op_id: Op_DPipe ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: { ($ VSub_Name '$have_matched_this_source_line' ) } right: {(1)} ) ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ( 'warning: skipping source meta line, comparing lt next obj entry (which has file ' ) (${ VSub_Name sourcefile) (', lines ') (${ VSub_Name sourceline) (-) (${ VSub_Name sourceline_end) (', address ') (${ VSub_Name obj) ('<') (${ VSub_Name func) ('> @') (${ VSub_Name addr) ('): ') ($ VSub_Name '$srcmeta_sourcefile') ) (SQ <Lit_EscapedChar '\\t'>) (DQ ($ VSub_Name '$srcmeta_sourceline')) (SQ <Lit_EscapedChar '\\t'>) (DQ ($ VSub_Name '$srcmeta_rest')) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [838] ) ] ) ] spids: [-1 788] ) ] spids: [-1 842] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keep_old_source_line) op: Equal rhs: {(0)} spids: [845] ) ] spids: [845] ) (ControlFlow token: <ControlFlow_Continue continue> arg_word: {(1)} ) ] spids: [-1 762] ) ] else_action: [ (SimpleCommand words: [ {(echo)} { (DQ ( 'warning: skipping objdump meta line, comparing lt next source entry (which has file ' ) (${ VSub_Name srcmeta_sourcefile) (', line ') (${ VSub_Name srcmeta_sourceline) ('): ') ($ VSub_Name '$obj') (' ') ($ VSub_Name '$func') (' ') ($ VSub_Name '$addr') (' ') ($ VSub_Name '$sourcefile') (' ') ($ VSub_Name '$sourceline') (' ') ($ VSub_Name '$sourceline_end') (' ') ($ VSub_Name '$srcmeta_rest') ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [909] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keep_old_source_line) op: Equal rhs: {(1)} spids: [913] ) ] spids: [913] ) (ControlFlow token: <ControlFlow_Continue continue> arg_word: {(2)} ) ] spids: [858 922] ) ] spids: [675 925] ) ] spids: [413 928] ) ) ] spids: [395 932] ) redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {(DQ ($ VSub_Name '$all_obj_meta_file'))} spids: [934] ) (Redir op_id: Redir_Less fd: 3 arg_word: {(DQ ($ VSub_Name '$all_source_meta_file'))} spids: [939] ) ] ) ] )