From 58515d071c1c99754545455b80aa7741dd942a5c Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Wed, 25 Apr 2018 18:59:52 -0600 Subject: [PATCH] skip_max_list preliminaries --- src/prolog/ast.rs | 5 ++++- src/prolog/codegen.rs | 2 +- src/prolog/io.rs | 11 +++++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/prolog/ast.rs b/src/prolog/ast.rs index 3bbe7178..4dd6a7b9 100644 --- a/src/prolog/ast.rs +++ b/src/prolog/ast.rs @@ -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 diff --git a/src/prolog/codegen.rs b/src/prolog/codegen.rs index 1b31f0ff..521fbf06 100644 --- a/src/prolog/codegen.rs +++ b/src/prolog/codegen.rs @@ -195,7 +195,7 @@ impl<'a, TermMarker: Allocator<'a>> CodeGenerator 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); } diff --git a/src/prolog/io.rs b/src/prolog/io.rs index 9d12260e..c8b4de2d 100644 --- a/src/prolog/io.rs +++ b/src/prolog/io.rs @@ -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) } } } -- 2.54.0