skip_max_list preliminaries

This commit is contained in:
Mark Thom
2018-04-25 18:59:52 -06:00
parent b87d599b14
commit 58515d071c
3 changed files with 10 additions and 8 deletions

View File

@@ -705,6 +705,7 @@ pub enum ClauseType {
Op(ClauseName, Fixity, CodeIndex),
Named(ClauseName, CodeIndex),
SetupCallCleanup,
SkipMaxList,
Sort,
Throw,
}
@@ -807,6 +808,7 @@ impl ClauseType {
&ClauseType::Op(ref name, ..) => name.clone(),
&ClauseType::Named(ref name, ..) => name.clone(),
&ClauseType::SetupCallCleanup => clause_name!("setup_call_cleanup"),
&ClauseType::SkipMaxList => clause_name!("'$skip_max_list'"),
&ClauseType::Sort => clause_name!("sort"),
&ClauseType::Throw => clause_name!("throw")
}
@@ -836,6 +838,7 @@ impl ClauseType {
("keysort", 2) => ClauseType::KeySort,
("\\==", 2) => ClauseType::NotEq,
("setup_call_cleanup", 3) => ClauseType::SetupCallCleanup,
("'$skip_max_list'", 4) => ClauseType::SkipMaxList,
("sort", 2) => ClauseType::Sort,
("throw", 1) => ClauseType::Throw,
_ => if let Some(fixity) = fixity {
@@ -1232,7 +1235,7 @@ pub enum BuiltInInstruction {
ResetBlock,
RestoreCutPolicy,
SetBall,
SetCutPoint(RegType),
SetCutPoint(RegType),
Succeed,
Unify,
UnwindStack

View File

@@ -195,7 +195,7 @@ impl<'a, TermMarker: Allocator<'a>> CodeGenerator<TermMarker>
GenContext::Last(chunk_num)
}
};
self.update_var_count(chunked_term.post_order_iter());
vs.mark_vars_in_chunk(chunked_term.post_order_iter(), lt_arity, term_loc);
}

View File

@@ -119,8 +119,7 @@ impl fmt::Display for ClauseType {
let idx = idx.0.borrow();
write!(f, "{}:{}/{}", idx.1, name, idx.0)
},
ref ct =>
write!(f, "{}", ct.name())
ref ct => write!(f, "{}", ct.name())
}
}
}
@@ -212,6 +211,10 @@ impl fmt::Display for BuiltInInstruction {
write!(f, "install_new_block"),
&BuiltInInstruction::InternalCallN =>
write!(f, "internal_call_N"),
&BuiltInInstruction::RemoveCallPolicyCheck =>
write!(f, "remove_call_policy_check"),
&BuiltInInstruction::RemoveInferenceCounter(r1, r2) =>
write!(f, "remove_inference_counter {}, {}", r1, r2),
&BuiltInInstruction::ResetBlock =>
write!(f, "reset_block"),
&BuiltInInstruction::RestoreCutPolicy =>
@@ -226,10 +229,6 @@ impl fmt::Display for BuiltInInstruction {
write!(f, "unwind_stack"),
&BuiltInInstruction::Unify =>
write!(f, "unify"),
&BuiltInInstruction::RemoveCallPolicyCheck =>
write!(f, "remove_call_policy_check"),
&BuiltInInstruction::RemoveInferenceCounter(r1, r2) =>
write!(f, "remove_inference_counter {}, {}", r1, r2)
}
}
}