From 9928b2ee6ed80e49271a11f7254409cdad7a574f Mon Sep 17 00:00:00 2001 From: Johann Rudloff Date: Sun, 26 Dec 2021 14:32:53 +0100 Subject: [PATCH] [refactor] Codegen: use simpler state modification methods --- src/Control/Codegen.idr | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Control/Codegen.idr b/src/Control/Codegen.idr index e9923cd..ff0af29 100644 --- a/src/Control/Codegen.idr +++ b/src/Control/Codegen.idr @@ -32,30 +32,31 @@ getOpts = (.opts) <$> get export appendCode : String -> Codegen () -appendCode c = modify $ record { code $= (c::)} +appendCode c = modify { code $= (c::)} export getUnique : Codegen Int getUnique = do - (MkCGBuf o i c l e) <- get - put (MkCGBuf o (i+1) c l e) + st <- get + let i = st.i + put ({i := i+1} st) pure i export addConstant : String -> Codegen String addConstant v = do ci <- getUnique - (MkCGBuf o i c l e) <- get - let name = "@glob_" ++ show (o.constNamespace) ++ "_c" ++ show ci - put (MkCGBuf o i ((name, v)::c) l e) + st <- get + let name = "@glob_" ++ show (st.opts.constNamespace) ++ "_c" ++ show ci + put ({ consts $= ((name, v)::)} st) pure name export addError : String -> Codegen () addError msg = do appendCode ("; ERROR: " ++ msg) - (MkCGBuf o i c l e) <- get - put $ trace ("add error: " ++ msg) (MkCGBuf o i c l (msg::e)) + st <- get + put $ trace ("add error: " ++ msg) ({errors $= (msg::)} st) export addMetadata : String -> Codegen String @@ -64,8 +65,7 @@ addMetadata v = do u <- getUnique let mdId = u * 0x10000 + i let name = "!" ++ show mdId - (MkCGBuf o i c l e) <- get - put (MkCGBuf o i ((name, v)::c) l e) + modify { consts $= ((name, v)::)} pure name export -- 2.34.2