cl-ast: Add float support

- Smuggle floats as integers to maintain `eq`
- This is bad, but not terrible for spec-compliant floats. Might have issues with NaN.

cl_parser: Smuggle floats

cl_interpret: unpack smuggled floats in float literal node
This commit is contained in:
2024-09-19 13:20:19 -05:00
parent 56e71d6782
commit 5deb585054
6 changed files with 10 additions and 2 deletions

View File

@@ -50,6 +50,7 @@ mod display {
Literal::Bool(v) => v.fmt(f),
Literal::Char(v) => write!(f, "'{}'", v.escape_debug()),
Literal::Int(v) => v.fmt(f),
Literal::Float(v) => f64::from_bits(*v).fmt(f),
Literal::String(v) => write!(f, "\"{}\"", v.escape_debug()),
}
}