on master help sign in
Primitives a-g defined
commit77ba9462fe3716d1d8fb8410330b19755c39625a authorDavid Christiansen <david@davidchristiansen.dk> dateFri 21 Jun 2013, 15:13 (13 years ago) parent01283ec
1 file changed+30
src/Core/Execute.hs+30
src/Core/Execute.hs+30
@@ -32,6 +32,10 @@ import Foreign.Ptr
3232
3333import System.IO
3434
35+readMay :: (Read a) => String -> Maybe a
36+readMay s = case reads s of
37+ [(x, "")] -> Just x
38+ _ -> Nothing
3539
3640data Lazy = Delayed ExecEnv Context Term | Forced ExecVal deriving Show
3741
@@ -412,6 +416,32 @@ execApp' env ctxt f@(EP _ n _) args =
412416 primRes Fl (sqrt f)
413417 getOp (UN "prim__floatTan") [EConstant (Fl f)] =
414418 primRes Fl (tan f)
419+ getOp (UN "prim__floatToStr") [EConstant (Fl f)] =
420+ primRes Str (show f)
421+ getOp (UN "prim__fromFloatB16") [EConstant (Fl f)] =
422+ primRes B16 (fromIntegral (fromEnum f))
423+ getOp (UN "prim__fromFloatB32") [EConstant (Fl f)] =
424+ primRes B32 (fromIntegral (fromEnum f))
425+ getOp (UN "prim__fromFloatB64") [EConstant (Fl f)] =
426+ primRes B64 (fromIntegral (fromEnum f))
427+ getOp (UN "prim__fromFloatB8") [EConstant (Fl f)] =
428+ primRes B8 (fromIntegral (fromEnum f))
429+ getOp (UN "prim__fromFloatBigInt") [EConstant (Fl f)] =
430+ primRes BI (fromIntegral (fromEnum f))
431+ getOp (UN "prim__fromFloatInt") [EConstant (Fl f)] =
432+ primRes I (fromEnum f)
433+ getOp (UN "prim__fromStrB16") [EConstant (Str s)] =
434+ primRes B16 (fromMaybe 0 $ readMay s)
435+ getOp (UN "prim__fromStrB32") [EConstant (Str s)] =
436+ primRes B32 (fromMaybe 0 $ readMay s)
437+ getOp (UN "prim__fromStrB64") [EConstant (Str s)] =
438+ primRes B64 (fromMaybe 0 $ readMay s)
439+ getOp (UN "prim__fromStrB8") [EConstant (Str s)] =
440+ primRes B8 (fromMaybe 0 $ readMay s)
441+ getOp (UN "prim__fromStrBigInt") [EConstant (Str s)] =
442+ primRes BI (fromMaybe 0 $ readMay s)
443+ getOp (UN "prim__fromStrInt") [EConstant (Str s)] =
444+ primRes I (fromMaybe 0 $ readMay s)
415445 getOp (UN "prim__intToFloat") [EConstant (I i)] =
416446 primRes Fl (fromRational (toRational i))
417447 getOp (UN "prim__intToStr") [EConstant (I i)] =