add call support for acyclic_term
This commit is contained in:
@@ -624,7 +624,8 @@ fn get_builtins() -> Code {
|
||||
is_atom!(temp_v!(1)), // atom/1, 465.
|
||||
proceed!(),
|
||||
sort_execute!(), // sort/2, 467.
|
||||
keysort_execute!() // keysort/2, 468.
|
||||
keysort_execute!(), // keysort/2, 468.
|
||||
acyclic_term_execute!(), // acyclic_term/1, 469.
|
||||
]
|
||||
}
|
||||
|
||||
@@ -740,6 +741,7 @@ pub fn build_code_and_op_dirs() -> (CodeDir, OpDir)
|
||||
code_dir.insert((clause_name!("atom"), 1), (465, builtin.clone()));
|
||||
code_dir.insert((clause_name!("sort"), 2), (467, builtin.clone()));
|
||||
code_dir.insert((clause_name!("keysort"), 2), (468, builtin.clone()));
|
||||
code_dir.insert((clause_name!("acyclic_term"), 1), (469, builtin.clone()));
|
||||
|
||||
(code_dir, op_dir)
|
||||
}
|
||||
@@ -801,7 +803,8 @@ pub fn builtin_module() -> Module
|
||||
(clause_name!("compare"), 3),
|
||||
(clause_name!("atom"), 1),
|
||||
(clause_name!("sort"), 2),
|
||||
(clause_name!("keysort"), 2)]);
|
||||
(clause_name!("keysort"), 2),
|
||||
(clause_name!("acyclic_term"), 1)]);
|
||||
|
||||
for arity in 0 .. 63 {
|
||||
module_decl.exports.push((clause_name!("call"), arity));
|
||||
|
||||
@@ -728,6 +728,12 @@ macro_rules! keysort_execute {
|
||||
)
|
||||
}
|
||||
|
||||
macro_rules! acyclic_term_execute {
|
||||
() => (
|
||||
Line::Control(ControlInstruction::CallClause(ClauseType::AcyclicTerm, 1, 0, true))
|
||||
)
|
||||
}
|
||||
|
||||
macro_rules! return_from_clause {
|
||||
($lco:expr, $machine_st:expr) => {{
|
||||
if $lco {
|
||||
|
||||
Reference in New Issue
Block a user