From f323076ddf6fbea9f7a1a4dfeec98629459c49fc Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 12 Dec 2024 16:30:42 +0100 Subject: Somewhat working Compile --- src/AST.hs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/AST.hs') diff --git a/src/AST.hs b/src/AST.hs index fff290a..333f306 100644 --- a/src/AST.hs +++ b/src/AST.hs @@ -175,6 +175,25 @@ data SOp a t where OIDiv :: ScalIsIntegral a ~ True => SScalTy a -> SOp (TPair (TScal a) (TScal a)) (TScal a) deriving instance Show (SOp a t) +opt1 :: SOp a t -> STy a +opt1 = \case + OAdd t -> STPair (STScal t) (STScal t) + OMul t -> STPair (STScal t) (STScal t) + ONeg t -> STScal t + OLt t -> STPair (STScal t) (STScal t) + OLe t -> STPair (STScal t) (STScal t) + OEq t -> STPair (STScal t) (STScal t) + ONot -> STScal STBool + OAnd -> STPair (STScal STBool) (STScal STBool) + OOr -> STPair (STScal STBool) (STScal STBool) + OIf -> STScal STBool + ORound64 -> STScal STF64 + OToFl64 -> STScal STI64 + ORecip t -> STScal t + OExp t -> STScal t + OLog t -> STScal t + OIDiv t -> STPair (STScal t) (STScal t) + opt2 :: SOp a t -> STy t opt2 = \case OAdd t -> STScal t -- cgit v1.2.3-70-g09d2