adjust dynamic external indices upon retraction, reset dynamic_mode to Next regardless of success or failure

This commit is contained in:
Mark Thom
2022-02-18 19:49:16 -07:00
parent d3583276b3
commit a5adcfff4c
2 changed files with 13 additions and 13 deletions

View File

@@ -1033,12 +1033,11 @@ impl Machine {
}
}
self.machine_st.dynamic_mode = FirstOrNext::Next;
if self.machine_st.fail {
self.machine_st.backtrack();
continue;
}
self.machine_st.dynamic_mode = FirstOrNext::Next;
}
&Instruction::DynamicInternalElse(..) => {
let p = self.machine_st.p;
@@ -1115,12 +1114,11 @@ impl Machine {
}
}
self.machine_st.dynamic_mode = FirstOrNext::Next;
if self.machine_st.fail {
self.machine_st.backtrack();
continue;
}
self.machine_st.dynamic_mode = FirstOrNext::Next;
}
&Instruction::TryMeElse(offset) => {
self.machine_st.try_me_else(offset);
@@ -3129,10 +3127,10 @@ impl Machine {
}
}
self.machine_st.dynamic_mode = FirstOrNext::Next;
if self.machine_st.fail {
self.machine_st.backtrack();
} else {
self.machine_st.dynamic_mode = FirstOrNext::Next;
}
}
}