mirror of
https://github.com/zaaarf/lillero.git
synced 2024-11-21 23:14:51 +01:00
fix: should not ignore on first element of pattern
This commit is contained in:
parent
05c9f6c3a2
commit
8cc440017f
2 changed files with 7 additions and 5 deletions
|
@ -58,7 +58,7 @@ public class InsnSequence extends InsnList {
|
|||
index = Math.abs(index);
|
||||
if(index > size())
|
||||
throw new IndexOutOfBoundsException();
|
||||
return this.toArray()[size() - index];
|
||||
return super.get(size() - index);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -72,7 +72,7 @@ public class InsnSequence extends InsnList {
|
|||
|
||||
/**
|
||||
* Wraps InsnList's add() to throw an exception
|
||||
* when fed null values.
|
||||
* when given null values.
|
||||
* @param node to add
|
||||
*/
|
||||
@Override
|
||||
|
|
|
@ -84,9 +84,11 @@ public class PatternMatcher {
|
|||
first = cur;
|
||||
last = cur;
|
||||
for(int match = 0; last != null && match < predicates.size(); last = reverse ? last.getPrevious() : last.getNext()) {
|
||||
if(ignoreLabels && cur.getType() == AbstractInsnNode.LABEL) continue;
|
||||
if(ignoreFrames && cur.getType() == AbstractInsnNode.FRAME) continue;
|
||||
if(ignoreLineNumbers && cur.getType() == AbstractInsnNode.LINE) continue;
|
||||
if(match != 0) {
|
||||
if(ignoreLabels && last.getType() == AbstractInsnNode.LABEL) continue;
|
||||
if(ignoreFrames && last.getType() == AbstractInsnNode.FRAME) continue;
|
||||
if(ignoreLineNumbers && last.getType() == AbstractInsnNode.LINE) continue;
|
||||
}
|
||||
if(!predicates.get(match).test(last)) break;
|
||||
if(match == predicates.size() - 1) {
|
||||
if(reverse) return new InsnSequence(last, first); //we are matching backwards
|
||||
|
|
Loading…
Reference in a new issue