remove GetLevelAndUnify and replace it with GetCutPoint
This commit is contained in:
@@ -566,7 +566,7 @@ impl VariableClassifier {
|
||||
|
||||
let build_stack_len = build_stack.len();
|
||||
|
||||
// TODO: insert GetLevelAndUnify between
|
||||
// TODO: insert GetCutPoint between
|
||||
// the two traversal states and detect
|
||||
// that as a chunk boundary in
|
||||
// insert_set_last_chunk_type ??
|
||||
@@ -587,22 +587,6 @@ impl VariableClassifier {
|
||||
state_stack.push(TraversalState::BuildNot(build_stack_len));
|
||||
state_stack.push(TraversalState::Term(terms[0]));
|
||||
}
|
||||
Term::Clause(_, atom!("$get_level"), terms) if terms.len() == 1 => {
|
||||
state_stack.push(TraversalState::IncrChunkNum);
|
||||
|
||||
// TODO: need to classify this variable?
|
||||
// what is the difference between $get_cp and this exactly?
|
||||
if let Term::Var(_, ref var) = &terms[0] {
|
||||
build_stack.push(
|
||||
QueryTerm::GetLevelAndUnify(
|
||||
Cell::default(),
|
||||
var.clone(),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
return Err(CompilationError::InadmissibleQueryTerm);
|
||||
}
|
||||
}
|
||||
Term::Clause(_, atom!(":"), mut terms) if terms.len() == 2 => {
|
||||
let term_loc = chunk_type.to_gen_context(self.current_chunk_num);
|
||||
|
||||
|
||||
@@ -1152,17 +1152,6 @@ impl Machine {
|
||||
self.machine_st[r] = fixnum_as_cell!(Fixnum::build_with(b0 as i64));
|
||||
self.machine_st.p += 1;
|
||||
}
|
||||
&Instruction::GetLevelAndUnify(r) => {
|
||||
// let b0 = self.machine_st[perm_v!(1)];
|
||||
let b0 = cell_as_fixnum!(
|
||||
self.machine_st.stack[stack_loc!(AndFrame, self.machine_st.e, 1)]
|
||||
);
|
||||
let a = self.machine_st.store(self.machine_st.deref(self.machine_st[r]));
|
||||
|
||||
// unify_fn!(&mut self.machine_st, a, b0);
|
||||
self.machine_st.unify_fixnum(b0, a);
|
||||
step_or_fail!(self, self.machine_st.p += 1);
|
||||
}
|
||||
&Instruction::Cut(r) => {
|
||||
let value = self.machine_st[r];
|
||||
self.machine_st.cut_body(value);
|
||||
|
||||
Reference in New Issue
Block a user