diotalevi has asked for the wisdom of the Perl Monks concerning the following question:
Is there a more straightforward way to find $op_A where $op_A->sibling( $op_B ) when you have $op_B? I have B::Utils and B::Generate loaded. I am not using ->kids because it avoids null nodes but sometimes the node being searched from is a null node.
# Maybe find the opcode that thinks this opcode is its sibling by # going to this opcode's parent and walking over the list of siblings # until this one is reached. The previously visited opcode is the one # we're after. my $orig_reverse_sibling; { my $prev; for ( my $sibling = $op->parent->first; $sibling; $sibling = $sibling->sibling ) { if ( $sibling == $op ) { $orig_reverse_sibling = $prev; last; } else { $prev = $sibling; } } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Find opcode's reverse sibling?
by andyf (Pilgrim) on Jun 12, 2004 at 18:59 UTC | |
by diotalevi (Canon) on Jun 13, 2004 at 12:10 UTC | |
|
Re: Find opcode's reverse sibling?
by Mr. Muskrat (Canon) on Jun 12, 2004 at 19:19 UTC | |
by dave_the_m (Monsignor) on Jun 12, 2004 at 22:16 UTC | |
by Mr. Muskrat (Canon) on Jun 13, 2004 at 01:36 UTC |