make chars callable (#713)
This commit is contained in:
@@ -1711,6 +1711,7 @@ impl MachineState {
|
|||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Addr::Char(c) => (clause_name!(c.to_string(), self.atom_tbl), 0),
|
||||||
Addr::Con(h) => match &self.heap[h] {
|
Addr::Con(h) => match &self.heap[h] {
|
||||||
HeapCellValue::Atom(ref name, _) => (name.clone(), 0),
|
HeapCellValue::Atom(ref name, _) => (name.clone(), 0),
|
||||||
_ => {
|
_ => {
|
||||||
@@ -1726,7 +1727,7 @@ impl MachineState {
|
|||||||
self.throw_exception(instantiation_error);
|
self.throw_exception(instantiation_error);
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
_ => {
|
addr => {
|
||||||
let stub = MachineError::functor_stub(clause_name!("call"), arity + 1);
|
let stub = MachineError::functor_stub(clause_name!("call"), arity + 1);
|
||||||
let type_error = self.error_form(
|
let type_error = self.error_form(
|
||||||
MachineError::type_error(self.heap.h(), ValidType::Callable, addr),
|
MachineError::type_error(self.heap.h(), ValidType::Callable, addr),
|
||||||
|
|||||||
@@ -2775,6 +2775,17 @@ impl MachineState {
|
|||||||
unreachable!()
|
unreachable!()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Addr::Char(c) => {
|
||||||
|
return self.module_lookup(
|
||||||
|
indices,
|
||||||
|
call_policy,
|
||||||
|
(clause_name!(c.to_string(), self.atom_tbl), narity),
|
||||||
|
module_name,
|
||||||
|
true,
|
||||||
|
current_input_stream,
|
||||||
|
current_output_stream,
|
||||||
|
);
|
||||||
|
}
|
||||||
addr => {
|
addr => {
|
||||||
let stub = MachineError::functor_stub(clause_name!("(:)"), 2);
|
let stub = MachineError::functor_stub(clause_name!("(:)"), 2);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user