(vs, has_deep_cut)
}
-
+
fn add_conditional_call(compiled_query: &mut Code, term: &Term, pvs: usize)
{
match term {
}
fn compile_neck_cut_or(&mut self,
- p1: &'a TermOrCut,
+ p1: &'a TermOrCut,
body: &mut Code,
perm_vars: usize,
is_exposed: bool,
body.insert(dealloc_index, Line::Control(ControlInstruction::Deallocate));
}
}
-
+
pub fn compile_rule<'b: 'a>(&mut self, rule: &'b Rule) -> Code
{
let iter = ChunkedIterator::from_rule(rule);
self.compile_neck_cut_or(p1, &mut code, perm_vars, true, query.len() == 1);
self.compile_seq(&query[1 .. ], &vs, &mut code, true);
-
+
if perm_vars > 0 {
let index = if let &Line::Control(_) = code.last().unwrap() {
- code.len() - 2
+ code.len() - 2
} else {
code.len() - 1
};
vs.mark_unsafe_vars_in_query(query);
}
}
-
+
Self::compile_cleanup(&mut code, query.len() - 1, query.last().unwrap());
code
EvalSession::InitialQuerySuccess(alloc_locs, mut heap_locs) => {
print!("true");
- if !wam.or_stack_is_empty() {
- print!(" ");
- }
-
- println!(".");
-
if heap_locs.is_empty() {
+ if !wam.or_stack_is_empty() {
+ print!(" ");
+ }
+
+ println!(".");
+
return;
+ } else {
+ println!("");
}
loop {
stdout.flush().unwrap();
return;
}
- } else {
+ } else {
break;
}
}