From: Mark Thom Date: Tue, 8 May 2018 04:29:02 +0000 (-0600) Subject: add system call preliminaries X-Git-Tag: v0.8.110~465^2~17 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=24d6fb16a84e7550275315f6734cf06efd5b8abc;p=scryer-prolog.git add system call preliminaries --- diff --git a/src/prolog/macros.rs b/src/prolog/macros.rs index aff35e35..140791f9 100644 --- a/src/prolog/macros.rs +++ b/src/prolog/macros.rs @@ -769,12 +769,6 @@ macro_rules! cyclic_term_execute { ) } -macro_rules! skip_max_list_execute { - () => ( - Line::Control(ControlInstruction::CallClause(ClauseType::SkipMaxList, 4, 0, true)) - ) -} - macro_rules! return_from_clause { ($lco:expr, $machine_st:expr) => {{ if $lco { diff --git a/src/prolog/toplevel.rs b/src/prolog/toplevel.rs index 10cab7db..abab0688 100644 --- a/src/prolog/toplevel.rs +++ b/src/prolog/toplevel.rs @@ -399,7 +399,10 @@ impl RelationWorker { Term::Var(_, ref v) if v.as_str() == "!" => Ok(QueryTerm::UnblockedCut(Cell::default())), Term::Clause(r, name, mut terms, fixity) => - if let Some(inlined_ct) = InlinedClauseType::from(name.as_str(), terms.len()) { + if let Some(system_ct) = SystemClauseType::from(name.as_str(), terms.len()) { + Ok(QueryTerm::Clause(r, ClauseType::System(system_ct), terms)) + } + else if let Some(inlined_ct) = InlinedClauseType::from(name.as_str(), terms.len()) { Ok(QueryTerm::Clause(r, ClauseType::Inlined(inlined_ct), terms)) } else if name.as_str() == ";" { if terms.len() == 2 {