add term_attributed_variables/2 (#422)

This commit is contained in:
Mark Thom
2020-05-02 18:46:29 -06:00
parent 9dabce819a
commit b642bd2cfd
5 changed files with 56 additions and 6 deletions

View File

@@ -4,11 +4,11 @@ use prolog_parser::tabled_rc::*;
use crate::prolog::clause_types::*;
use crate::prolog::forms::*;
use crate::prolog::heap_print::*;
use crate::prolog::instructions::*;
use crate::prolog::machine::code_repo::CodeRepo;
use crate::prolog::machine::copier::*;
use crate::prolog::machine::code_walker::*;
use crate::prolog::heap_print::*;
use crate::prolog::machine::machine_errors::*;
use crate::prolog::machine::machine_indices::*;
use crate::prolog::machine::machine_state::*;
@@ -3368,6 +3368,12 @@ impl MachineState {
}
&SystemClauseType::Succeed => {
}
&SystemClauseType::TermAttributedVariables => {
let seen_vars = self.attr_vars_of_term(self[temp_v!(1)]);
let outcome = Addr::HeapCell(self.heap.to_list(seen_vars.into_iter()));
self.unify(self[temp_v!(2)], outcome);
}
&SystemClauseType::TermVariables => {
let a1 = self[temp_v!(1)];
let mut seen_vars = IndexSet::new();