fix faulty tidy_trail
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
:- op(1200, xfx, -->).
|
:- op(1200, xfx, -->).
|
||||||
|
|
||||||
phrase(G, G) :-
|
phrase(G, G) :-
|
||||||
nonvar(G), G = [_|_], !. %, append(G, _, Ls0).
|
nonvar(G), G = [_|_], !.
|
||||||
phrase(G, Ls0) :-
|
phrase(G, Ls0) :-
|
||||||
nonvar(G), G = (G1, G2), !, phrase(G1, Ls0, Ls1), phrase(G2, Ls1, []).
|
nonvar(G), G = (G1, G2), !, phrase(G1, Ls0, Ls1), phrase(G2, Ls1, []).
|
||||||
phrase(G, Ls0) :-
|
phrase(G, Ls0) :-
|
||||||
@@ -50,7 +50,7 @@ expand_body(Term0, (ModTerm, ModTerms), N0, N) :-
|
|||||||
nonvar(Term),
|
nonvar(Term),
|
||||||
expand_body_term(Term, ModTerm, N0, N1),
|
expand_body_term(Term, ModTerm, N0, N1),
|
||||||
expand_body(Terms, ModTerms, N1, N).
|
expand_body(Terms, ModTerms, N1, N).
|
||||||
expand_body(Term0, ModTerm, N0, N) :-
|
expand_body(Term0, ModTerm, N0, N) :-
|
||||||
nonvar(Term0),
|
nonvar(Term0),
|
||||||
expand_body_term(Term0, ModTerm, N0, N).
|
expand_body_term(Term0, ModTerm, N0, N).
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ macro_rules! try_or_fail {
|
|||||||
|
|
||||||
impl MachineState {
|
impl MachineState {
|
||||||
pub(super) fn new() -> Self {
|
pub(super) fn new() -> Self {
|
||||||
MachineState {
|
MachineState {
|
||||||
s: 0,
|
s: 0,
|
||||||
p: CodePtr::default(),
|
p: CodePtr::default(),
|
||||||
b: 0,
|
b: 0,
|
||||||
@@ -132,10 +132,10 @@ impl MachineState {
|
|||||||
output.append(" = ");
|
output.append(" = ");
|
||||||
|
|
||||||
let mut printer = HCPrinter::from_heap_locs(&self, output, var_dir);
|
let mut printer = HCPrinter::from_heap_locs(&self, output, var_dir);
|
||||||
|
|
||||||
printer.numbervars = false;
|
printer.numbervars = false;
|
||||||
printer.quoted = true;
|
printer.quoted = true;
|
||||||
|
|
||||||
let mut output = printer.print(addr);
|
let mut output = printer.print(addr);
|
||||||
|
|
||||||
let bad_ending = format!("= {}", &var);
|
let bad_ending = format!("= {}", &var);
|
||||||
@@ -428,6 +428,7 @@ impl MachineState {
|
|||||||
let tr = self.tr;
|
let tr = self.tr;
|
||||||
let val = self.trail[tr - 1];
|
let val = self.trail[tr - 1];
|
||||||
self.trail[i] = val;
|
self.trail[i] = val;
|
||||||
|
self.trail.pop();
|
||||||
self.tr -= 1;
|
self.tr -= 1;
|
||||||
},
|
},
|
||||||
Ref::StackCell(fr, _) => {
|
Ref::StackCell(fr, _) => {
|
||||||
@@ -445,6 +446,7 @@ impl MachineState {
|
|||||||
let tr = self.tr;
|
let tr = self.tr;
|
||||||
let val = self.trail[tr - 1];
|
let val = self.trail[tr - 1];
|
||||||
self.trail[i] = val;
|
self.trail[i] = val;
|
||||||
|
self.trail.pop();
|
||||||
self.tr -= 1;
|
self.tr -= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user