fn print_atom(&mut self, atom: &ClauseName) {
push_space_if_amb!(self, atom.as_str(), {
match atom.as_str() {
- "" => self.append_str("''"),
+ "''" => self.append_str("''"),
s => self.print_op_addendum(s)
}
});
}
}
- fn try_functor_compound_case(&mut self, name: ClauseName, arity: usize) {
- let name = Addr::Con(Constant::Atom(name, None));
+ fn try_functor_compound_case(&mut self, name: ClauseName, arity: usize,
+ spec: Option<(usize, Specifier)>)
+ {
+ let name = Addr::Con(Constant::Atom(name, spec));
let arity = Addr::Con(integer!(arity));
self.try_functor_unify_components(name, arity);
self.try_functor_unify_components(a1, Addr::Con(integer!(0))),
Addr::Str(o) =>
match self.heap[o].clone() {
- HeapCellValue::NamedStr(arity, name, _) =>
- self.try_functor_compound_case(name, arity),
+ HeapCellValue::NamedStr(arity, name, spec) =>
+ self.try_functor_compound_case(name, arity, spec),
_ => self.fail = true
},
Addr::Lis(_) =>
- self.try_functor_compound_case(clause_name!("."), 2),
+ self.try_functor_compound_case(clause_name!("."), 2, None),
Addr::AttrVar(..) | Addr::HeapCell(_) | Addr::StackCell(..) => {
let name = self.store(self.deref(self[temp_v!(2)].clone()));
let arity = self.store(self.deref(self[temp_v!(3)].clone()));