From 2774c0468940c2107fc9605a2ee7128ebc254317 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Sun, 18 Feb 2018 08:14:49 -0800 Subject: [PATCH] desugarize globals --- src/Language/Wasm/Parser.y | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 87af281..fccdcd6 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -1179,6 +1179,7 @@ desugarize fields = S.elems = map (synElemToStruct mod) $ elems mod, S.datas = map (synDataToStruct mod) $ datas mod, S.mems = map synMemoryToStruct $ mems mod, + S.globals = map (synGlobalToStruct mod) $ globals mod, S.start = fmap (synStartToStruct mod) $ start mod } where @@ -1450,6 +1451,11 @@ desugarize fields = else Nothing -- global + synGlobalToStruct :: Module -> Global -> S.Global + synGlobalToStruct mod Global { globalType, initializer } = + let ctx = FunCtx mod [] [] [] in + S.Global globalType $ map (synInstrToStruct ctx) initializer + extractGlobal :: [Global] -> ModuleField -> [Global] extractGlobal globals (MFGlobal global) = global : globals extractGlobal globals _ = globals