add support for user:goal_expansion

This commit is contained in:
Mark Thom
2018-12-09 00:48:28 -07:00
parent deabdafa48
commit a4406f784a
8 changed files with 228 additions and 106 deletions

View File

@@ -259,8 +259,8 @@ impl ListingCompiler {
-> Result<(), SessionError>
{
match decl {
Declaration::Hook(CompileTimeHook::TermExpansion, clause, queue) => {
let key = (clause_name!("term_expansion"), 2);
Declaration::Hook(hook, clause, queue) => {
let key = (hook.name(), hook.arity());
let preds = code_repo.term_dir.entry(key)
.or_insert((Predicate(vec![]), VecDeque::from(vec![])));
@@ -271,8 +271,13 @@ impl ListingCompiler {
let mut code = cg.compile_predicate(&(preds.0).0)?;
compile_appendix(&mut code, &preds.1, false, flags)?;
Ok(code_repo.term_expanders = code)
match hook {
CompileTimeHook::TermExpansion =>
Ok(code_repo.term_expanders = code),
CompileTimeHook::GoalExpansion =>
Ok(code_repo.goal_expanders = code)
}
},
Declaration::NonCountedBacktracking(name, arity) =>
Ok(self.add_non_counted_bt_flag(name, arity)),