support number/1

This commit is contained in:
Mark Thom
2020-11-03 23:38:55 -07:00
parent add62c2093
commit b9a53e441e
4 changed files with 51 additions and 1 deletions

View File

@@ -2390,6 +2390,29 @@ impl MachineState {
_ => self.fail = true,
};
}
&InlinedClauseType::IsNumber(r1) => {
match self.store(self.deref(self[r1])) {
Addr::Float(_) => self.p += 1,
d => match Number::try_from((d, &self.heap)) {
Ok(Number::Fixnum(_)) => {
self.p += 1;
}
Ok(Number::Integer(_)) => {
self.p += 1;
}
Ok(Number::Rational(n)) => {
if n.denom() == &1 {
self.p += 1;
} else {
self.fail = true;
}
}
_ => {
self.fail = true;
}
}
}
}
&InlinedClauseType::IsRational(r1) => {
let d = self.store(self.deref(self[r1]));