]> Repositorios git - scryer-prolog.git/commitdiff
add system call preliminaries
authorMark Thom <[email protected]>
Tue, 8 May 2018 04:29:02 +0000 (22:29 -0600)
committerMark Thom <[email protected]>
Tue, 8 May 2018 04:29:02 +0000 (22:29 -0600)
src/prolog/macros.rs
src/prolog/toplevel.rs

index aff35e3591934a4858c2403c310af2e06b196343..140791f9f24168298697643bae576965c612adc1 100644 (file)
@@ -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 {
index 10cab7dbf19353df5efdd7b7a0852c4d976c4481..abab06881958a2d6e823c005beaeb626a93346e3 100644 (file)
@@ -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 {