Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- @@ Autogenerated from WinDll. Do NOT modify unless you know what you're doing.
- {-# LANGUAGE ForeignFunctionInterface #-}
- {-# LANGUAGE UndecidableInstances #-}
- module HsParser where
- import WinDll.Lib.NativeMapping
- import WinDll.Lib.Tuples
- import WinDll.Lib.InstancesTypes
- import Foreign
- import Foreign.C
- import Foreign.Ptr
- import Foreign.Marshal.Alloc
- import Foreign.Marshal.Utils
- import Foreign.ForeignPtr
- import Control.Monad
- import Control.Monad.Instances
- import VsxParser
- import GhcSession
- import Lexer
- import SrcLoc
- import FastString
- import GHC hiding (ModuleInfo, Type, Instance, Warning, ClassDecl, DataType)
- import OccName
- import Name
- import Var
- import DataCon
- import Type hiding (Type)
- import TyCon
- import Class
- import Foreign.StablePtr
- import HscTypes
- import Data.IORef
- #let alignment t = "%lu", (unsigned long)offsetof(struct {char x__; t (y__); }, y__)
- #include "HsParser.h"
- #enum Int,,cApiResultsApiOk = cApiResultsApiOk,cApiResultsApiFail = cApiResultsApiFail
- #enum Int,,cMaybeNothing = cMaybeNothing,cMaybeJust = cMaybeJust
- type ErrorMessagePtr = (Ptr ErrorMessage)
- type ModuleInfoPtr = (Ptr ModuleInfo)
- type InformationPtr = (Ptr Information)
- type ClassDeclPtr = (Ptr ClassDecl)
- type DataTypePtr = (Ptr DataType)
- type FunTypePtr = (Ptr FunType)
- type ImportPtr = (Ptr Import)
- type ConstructorPtr = (Ptr Constructor)
- type InstancePtr = (Ptr Instance)
- type TypePtr = (Ptr Type)
- type ForeignDclPtr = (Ptr ForeignDcl)
- type WarningPtr = (Ptr Warning)
- type ApiResultsPtr a= (Ptr ((ApiResults a)))
- type SrcSpanPtr = (Ptr (SrcSpan))
- type FastStringPtr = (Ptr (FastString))
- type IORefPtr a1= (Ptr ((IORef a1)))
- type HscEnvPtr = (Ptr (HscEnv))
- foreign export stdcall "getModuleInfoByPath" getModInfoA :: StablePtr (IORef HscEnv) -> CInt -> CInt -> CWString -> CWString -> CWString -> IO ((ApiResultsPtr ModuleInfo))
- foreign export stdcall "createContext" createContextA :: IO (StablePtr (IORef HscEnv))
- foreign export stdcall "freeContext" freeContextA :: StablePtr (IORef HscEnv) -> IO (())
- getModInfoA :: StablePtr (IORef HscEnv) -> CInt -> CInt -> CWString -> CWString -> CWString -> IO ((ApiResultsPtr ModuleInfo))
- getModInfoA a1 a2 a3 a4 a5 a6 = toFFI $ getModInfo (fromFFI a1) (fromFFI a2) (fromFFI a3) (fromFFI a4) (fromFFI a5) (fromFFI a6)
- createContextA :: IO (StablePtr (IORef HscEnv))
- createContextA = toFFI $ createContext
- freeContextA :: StablePtr (IORef HscEnv) -> IO (())
- freeContextA a1 = toFFI $ freeContext (fromFFI a1)
- instance Storable ErrorMessage where
- sizeOf _ = 12
- alignment _ = #alignment ErrorMessage_t
- poke ptr (ErrorMessage a1 a2 a3) = do
- (#poke ErrorMessage_t, msg_span) ptr (toFFI a1 :: SrcSpanPtr)
- (#poke ErrorMessage_t, short_msg) ptr (toFFI a2 :: CWString)
- (#poke ErrorMessage_t, long_msg) ptr (toFFI a3 :: CWString)
- peek ptr = do
- a1' <- (#peek ErrorMessage_t, msg_span) ptr :: IO SrcSpanPtr
- a2' <- (#peek ErrorMessage_t, short_msg) ptr :: IO CWString
- a3' <- (#peek ErrorMessage_t, long_msg) ptr :: IO CWString
- return $ ErrorMessage (fromFFI a1' :: SrcSpan) (fromFFI a2' :: String) (fromFFI a3' :: String)
- instance Storable ModuleInfo where
- sizeOf _ = 44
- alignment _ = #alignment ModuleInfo_t
- poke ptr (ModuleInfo a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11) = do
- (#poke ModuleInfo_t, generalInfo) ptr (toFFI a1 :: ((MaybePtr Information)))
- (#poke ModuleInfo_t, functions) ptr (toFFI a2 :: ((Tuple2Ptr CInt ((Ptr (FunTypePtr))))))
- (#poke ModuleInfo_t, imports) ptr (toFFI a3 :: ((Tuple2Ptr CInt ((Ptr (ImportPtr))))))
- (#poke ModuleInfo_t, constructors) ptr (toFFI a4 :: ((Tuple2Ptr CInt ((Ptr (ConstructorPtr))))))
- (#poke ModuleInfo_t, instances) ptr (toFFI a5 :: ((Tuple2Ptr CInt ((Ptr (InstancePtr))))))
- (#poke ModuleInfo_t, types) ptr (toFFI a6 :: ((Tuple2Ptr CInt ((Ptr (TypePtr))))))
- (#poke ModuleInfo_t, classes) ptr (toFFI a7 :: ((Tuple2Ptr CInt ((Ptr (ClassDeclPtr))))))
- (#poke ModuleInfo_t, datatypes) ptr (toFFI a8 :: ((Tuple2Ptr CInt ((Ptr (DataTypePtr))))))
- (#poke ModuleInfo_t, foreigns) ptr (toFFI a9 :: ((Tuple2Ptr CInt ((Ptr (ForeignDclPtr))))))
- (#poke ModuleInfo_t, warnings) ptr (toFFI a10 :: ((Tuple2Ptr CInt ((Ptr (WarningPtr))))))
- (#poke ModuleInfo_t, srcWarnings) ptr (toFFI a11 :: ((Tuple2Ptr CInt ((Ptr (ErrorMessagePtr))))))
- peek ptr = do
- a1' <- (#peek ModuleInfo_t, generalInfo) ptr :: IO ((MaybePtr Information))
- a2' <- (#peek ModuleInfo_t, functions) ptr :: IO ((Tuple2Ptr CInt ((Ptr (FunTypePtr)))))
- a3' <- (#peek ModuleInfo_t, imports) ptr :: IO ((Tuple2Ptr CInt ((Ptr (ImportPtr)))))
- a4' <- (#peek ModuleInfo_t, constructors) ptr :: IO ((Tuple2Ptr CInt ((Ptr (ConstructorPtr)))))
- a5' <- (#peek ModuleInfo_t, instances) ptr :: IO ((Tuple2Ptr CInt ((Ptr (InstancePtr)))))
- a6' <- (#peek ModuleInfo_t, types) ptr :: IO ((Tuple2Ptr CInt ((Ptr (TypePtr)))))
- a7' <- (#peek ModuleInfo_t, classes) ptr :: IO ((Tuple2Ptr CInt ((Ptr (ClassDeclPtr)))))
- a8' <- (#peek ModuleInfo_t, datatypes) ptr :: IO ((Tuple2Ptr CInt ((Ptr (DataTypePtr)))))
- a9' <- (#peek ModuleInfo_t, foreigns) ptr :: IO ((Tuple2Ptr CInt ((Ptr (ForeignDclPtr)))))
- a10' <- (#peek ModuleInfo_t, warnings) ptr :: IO ((Tuple2Ptr CInt ((Ptr (WarningPtr)))))
- a11' <- (#peek ModuleInfo_t, srcWarnings) ptr :: IO ((Tuple2Ptr CInt ((Ptr (ErrorMessagePtr)))))
- return $ ModuleInfo (fromFFI a1' :: (Maybe Information)) (fromFFI a2' :: ((Int, [FunType]))) (fromFFI a3' :: ((Int, [Import]))) (fromFFI a4' :: ((Int, [Constructor]))) (fromFFI a5' :: ((Int, [Instance]))) (fromFFI a6' :: ((Int, [Type]))) (fromFFI a7' :: ((Int, [ClassDecl]))) (fromFFI a8' :: ((Int, [DataType]))) (fromFFI a9' :: ((Int, [ForeignDcl]))) (fromFFI a10' :: ((Int, [Warning]))) (fromFFI a11' :: ((Int, [ErrorMessage])))
- instance Storable Information where
- sizeOf _ = 4
- alignment _ = #alignment Information_t
- poke ptr (Information a1) = do
- (#poke Information_t, _importSpan) ptr (toFFI a1 :: SrcSpanPtr)
- peek ptr = do
- a1' <- (#peek Information_t, _importSpan) ptr :: IO SrcSpanPtr
- return $ Information (fromFFI a1' :: SrcSpan)
- instance Storable ClassDecl where
- sizeOf _ = 16
- alignment _ = #alignment ClassDecl_t
- poke ptr (ClassDecl a1 a2 a3 a4) = do
- (#poke ClassDecl_t, _CDSpan) ptr (toFFI a1 :: SrcSpanPtr)
- (#poke ClassDecl_t, _CDname) ptr (toFFI a2 :: CWString)
- (#poke ClassDecl_t, _context) ptr (toFFI a3 :: ((Tuple2Ptr CInt ((Ptr (CWString))))))
- (#poke ClassDecl_t, _head) ptr (toFFI a4 :: ((Tuple2Ptr CInt ((Ptr (CWString))))))
- peek ptr = do
- a1' <- (#peek ClassDecl_t, _CDSpan) ptr :: IO SrcSpanPtr
- a2' <- (#peek ClassDecl_t, _CDname) ptr :: IO CWString
- a3' <- (#peek ClassDecl_t, _context) ptr :: IO ((Tuple2Ptr CInt ((Ptr (CWString)))))
- a4' <- (#peek ClassDecl_t, _head) ptr :: IO ((Tuple2Ptr CInt ((Ptr (CWString)))))
- return $ ClassDecl (fromFFI a1' :: SrcSpan) (fromFFI a2' :: String) (fromFFI a3' :: ((Int, [String]))) (fromFFI a4' :: ((Int, [String])))
- instance Storable DataType where
- sizeOf _ = 12
- alignment _ = #alignment DataType_t
- poke ptr (DataType a1 a2 a3) = do
- (#poke DataType_t, _Dspan) ptr (toFFI a1 :: SrcSpanPtr)
- (#poke DataType_t, _Dname) ptr (toFFI a2 :: CWString)
- (#poke DataType_t, _isNewtype) ptr (toFFI a3 :: CInt)
- peek ptr = do
- a1' <- (#peek DataType_t, _Dspan) ptr :: IO SrcSpanPtr
- a2' <- (#peek DataType_t, _Dname) ptr :: IO CWString
- a3' <- (#peek DataType_t, _isNewtype) ptr :: IO CInt
- return $ DataType (fromFFI a1' :: SrcSpan) (fromFFI a2' :: String) (fromFFI a3' :: Bool)
- instance Storable FunType where
- sizeOf _ = 28
- alignment _ = #alignment FunType_t
- poke ptr (FunType a1 a2 a3 a4 a5 a6 a7) = do
- (#poke FunType_t, _Tspan) ptr (toFFI a1 :: SrcSpanPtr)
- (#poke FunType_t, _Tname) ptr (toFFI a2 :: CWString)
- (#poke FunType_t, _type) ptr (toFFI a3 :: ((MaybePtr String)))
- (#poke FunType_t, _body) ptr (toFFI a4 :: ((MaybePtr SrcSpan)))
- (#poke FunType_t, _isMethod) ptr (toFFI a5 :: CInt)
- (#poke FunType_t, _isExplicit) ptr (toFFI a6 :: CInt)
- (#poke FunType_t, _inline) ptr (toFFI a7 :: (Tuple2Ptr CInt ((Ptr (FunTypePtr)))))
- peek ptr = do
- a1' <- (#peek FunType_t, _Tspan) ptr :: IO SrcSpanPtr
- a2' <- (#peek FunType_t, _Tname) ptr :: IO CWString
- a3' <- (#peek FunType_t, _type) ptr :: IO ((MaybePtr String))
- a4' <- (#peek FunType_t, _body) ptr :: IO ((MaybePtr SrcSpan))
- a5' <- (#peek FunType_t, _isMethod) ptr :: IO CInt
- a6' <- (#peek FunType_t, _isExplicit) ptr :: IO CInt
- a7' <- (#peek FunType_t, _inline) ptr :: IO (Tuple2Ptr CInt ((Ptr (FunTypePtr))))
- return $ FunType (fromFFI a1' :: SrcSpan) (fromFFI a2' :: String) (fromFFI a3' :: (Maybe String)) (fromFFI a4' :: (Maybe SrcSpan)) (fromFFI a5' :: Bool) (fromFFI a6' :: Bool) (fromFFI a7' :: (Int, [FunType]))
- instance Storable Import where
- sizeOf _ = 28
- alignment _ = #alignment Import_t
- poke ptr (Import a1 a2 a3 a4 a5 a6 a7) = do
- (#poke Import_t, _Ispan) ptr (toFFI a1 :: SrcSpanPtr)
- (#poke Import_t, _Iname) ptr (toFFI a2 :: CWString)
- (#poke Import_t, _pkg) ptr (toFFI a3 :: ((MaybePtr String)))
- (#poke Import_t, _source) ptr (toFFI a4 :: CInt)
- (#poke Import_t, _qual) ptr (toFFI a5 :: CInt)
- (#poke Import_t, _as) ptr (toFFI a6 :: ((MaybePtr String)))
- (#poke Import_t, _hiding) ptr (toFFI a7 :: ((MaybePtr ((Int, [String])))))
- peek ptr = do
- a1' <- (#peek Import_t, _Ispan) ptr :: IO SrcSpanPtr
- a2' <- (#peek Import_t, _Iname) ptr :: IO CWString
- a3' <- (#peek Import_t, _pkg) ptr :: IO ((MaybePtr String))
- a4' <- (#peek Import_t, _source) ptr :: IO CInt
- a5' <- (#peek Import_t, _qual) ptr :: IO CInt
- a6' <- (#peek Import_t, _as) ptr :: IO ((MaybePtr String))
- a7' <- (#peek Import_t, _hiding) ptr :: IO ((MaybePtr ((Int, [String]))))
- return $ Import (fromFFI a1' :: SrcSpan) (fromFFI a2' :: String) (fromFFI a3' :: (Maybe String)) (fromFFI a4' :: Bool) (fromFFI a5' :: Bool) (fromFFI a6' :: (Maybe String)) (fromFFI a7' :: (Maybe ((Int, [String]))))
- instance Storable Constructor where
- sizeOf _ = 12
- alignment _ = #alignment Constructor_t
- poke ptr (Constructor a1 a2 a3) = do
- (#poke Constructor_t, _Cspan) ptr (toFFI a1 :: SrcSpanPtr)
- (#poke Constructor_t, _Cname) ptr (toFFI a2 :: CWString)
- (#poke Constructor_t, _Ctype) ptr (toFFI a3 :: CWString)
- peek ptr = do
- a1' <- (#peek Constructor_t, _Cspan) ptr :: IO SrcSpanPtr
- a2' <- (#peek Constructor_t, _Cname) ptr :: IO CWString
- a3' <- (#peek Constructor_t, _Ctype) ptr :: IO CWString
- return $ Constructor (fromFFI a1' :: SrcSpan) (fromFFI a2' :: String) (fromFFI a3' :: String)
- instance Storable Instance where
- sizeOf _ = 8
- alignment _ = #alignment Instance_t
- poke ptr (Instance a1 a2) = do
- (#poke Instance_t, _Ixspan) ptr (toFFI a1 :: SrcSpanPtr)
- (#poke Instance_t, _Ixname) ptr (toFFI a2 :: CWString)
- peek ptr = do
- a1' <- (#peek Instance_t, _Ixspan) ptr :: IO SrcSpanPtr
- a2' <- (#peek Instance_t, _Ixname) ptr :: IO CWString
- return $ Instance (fromFFI a1' :: SrcSpan) (fromFFI a2' :: String)
- instance Storable Type where
- sizeOf _ = 8
- alignment _ = #alignment Type_t
- poke ptr (Type a1 a2) = do
- (#poke Type_t, _Txspan) ptr (toFFI a1 :: SrcSpanPtr)
- (#poke Type_t, _Txname) ptr (toFFI a2 :: CWString)
- peek ptr = do
- a1' <- (#peek Type_t, _Txspan) ptr :: IO SrcSpanPtr
- a2' <- (#peek Type_t, _Txname) ptr :: IO CWString
- return $ Type (fromFFI a1' :: SrcSpan) (fromFFI a2' :: String)
- instance Storable ForeignDcl where
- sizeOf _ = 16
- alignment _ = #alignment ForeignDcl_t
- poke ptr (ForeignDcl a1 a2 a3 a4) = do
- (#poke ForeignDcl_t, _Fspan) ptr (toFFI a1 :: SrcSpanPtr)
- (#poke ForeignDcl_t, _import) ptr (toFFI a2 :: CInt)
- (#poke ForeignDcl_t, _Fname) ptr (toFFI a3 :: CWString)
- (#poke ForeignDcl_t, _Ftype) ptr (toFFI a4 :: CWString)
- peek ptr = do
- a1' <- (#peek ForeignDcl_t, _Fspan) ptr :: IO SrcSpanPtr
- a2' <- (#peek ForeignDcl_t, _import) ptr :: IO CInt
- a3' <- (#peek ForeignDcl_t, _Fname) ptr :: IO CWString
- a4' <- (#peek ForeignDcl_t, _Ftype) ptr :: IO CWString
- return $ ForeignDcl (fromFFI a1' :: SrcSpan) (fromFFI a2' :: Bool) (fromFFI a3' :: String) (fromFFI a4' :: String)
- instance Storable Warning where
- sizeOf _ = 12
- alignment _ = #alignment Warning_t
- poke ptr (Warning a1 a2 a3) = do
- (#poke Warning_t, _Wspan) ptr (toFFI a1 :: SrcSpanPtr)
- (#poke Warning_t, _Wname) ptr (toFFI a2 :: CWString)
- (#poke Warning_t, _msg) ptr (toFFI a3 :: ((Tuple2Ptr CInt ((Ptr (CWString))))))
- peek ptr = do
- a1' <- (#peek Warning_t, _Wspan) ptr :: IO SrcSpanPtr
- a2' <- (#peek Warning_t, _Wname) ptr :: IO CWString
- a3' <- (#peek Warning_t, _msg) ptr :: IO ((Tuple2Ptr CInt ((Ptr (CWString)))))
- return $ Warning (fromFFI a1' :: SrcSpan) (fromFFI a2' :: String) (fromFFI a3' :: ((Int, [FastString])))
- instance Storable ModuleInfo => Storable (ApiResults ModuleInfo) where
- sizeOf _ = 20
- alignment _ = #alignment ApiResults_t
- poke ptr (ApiOk a1) = do
- (#poke ApiResults_t, tag) ptr cApiResultsApiOk
- newptr659112 <- malloc :: IO (Ptr (ApiResults ModuleInfo))
- (#poke ApiOk_t, apiresults_apiok_var1) newptr659112 (toFFI a1 :: ModuleInfoPtr)
- (#poke ApiResults_t, elt) ptr newptr659112
- poke ptr (ApiFail a1 a2 a3) = do
- (#poke ApiResults_t, tag) ptr cApiResultsApiFail
- newptr659112 <- malloc :: IO (Ptr (ApiResults ModuleInfo))
- (#poke ApiFail_t, apiresults_apifail_var1) newptr659112 (toFFI a1 :: CInt)
- (#poke ApiFail_t, apiresults_apifail_var2) newptr659112 (toFFI a2 :: (Ptr (ErrorMessagePtr)))
- (#poke ApiFail_t, apiresults_apifail_var3) newptr659112 (toFFI a3 :: ((MaybePtr ModuleInfo)))
- (#poke ApiResults_t, elt) ptr newptr659112
- peek ptr = do
- tag' <- (#peek ApiResults_t, tag) ptr :: IO CInt
- case tag' of
- 0 -> do
- a1' <- (#peek ApiOk_t, apiresults_apiok_var1) ptr :: IO ModuleInfoPtr
- return $ ApiOk (fromFFI a1' :: ModuleInfo)
- 1 -> do
- a1' <- (#peek ApiFail_t, apiresults_apifail_var1) ptr :: IO CInt
- a2' <- (#peek ApiFail_t, apiresults_apifail_var2) ptr :: IO (Ptr (ErrorMessagePtr))
- a3' <- (#peek ApiFail_t, apiresults_apifail_var3) ptr :: IO ((MaybePtr ModuleInfo))
- return $ ApiFail (fromFFI a1' :: Int) (fromFFI a2' :: [ErrorMessage]) (fromFFI a3' :: (Maybe ModuleInfo))
- instance Storable ModuleInfo => Storable (Maybe ModuleInfo) where
- sizeOf _ = 12
- alignment _ = #alignment Maybe_t
- poke ptr Nothing = do
- (#poke Maybe_t, tag) ptr cMaybeNothing
- newptr659112 <- malloc :: IO (Ptr (Maybe ModuleInfo))
- (#poke Maybe_t, elt) ptr newptr659112
- poke ptr (Just a1) = do
- (#poke Maybe_t, tag) ptr cMaybeJust
- newptr659112 <- malloc :: IO (Ptr (Maybe ModuleInfo))
- (#poke Just_t, maybe_just_var1) newptr659112 (toFFI a1 :: ModuleInfoPtr)
- (#poke Maybe_t, elt) ptr newptr659112
- peek ptr = do
- tag' <- (#peek Maybe_t, tag) ptr :: IO CInt
- case tag' of
- 0 -> do
- return $ Nothing
- 1 -> do
- a1' <- (#peek Just_t, maybe_just_var1) ptr :: IO ModuleInfoPtr
- return $ Just (fromFFI a1' :: ModuleInfo)
- instance Storable Information => Storable (Maybe Information) where
- sizeOf _ = 12
- alignment _ = #alignment Maybe_t
- poke ptr Nothing = do
- (#poke Maybe_t, tag) ptr cMaybeNothing
- newptr659112 <- malloc :: IO (Ptr (Maybe Information))
- (#poke Maybe_t, elt) ptr newptr659112
- poke ptr (Just a1) = do
- (#poke Maybe_t, tag) ptr cMaybeJust
- newptr659112 <- malloc :: IO (Ptr (Maybe Information))
- (#poke Just_t, maybe_just_var1) newptr659112 (toFFI a1 :: InformationPtr)
- (#poke Maybe_t, elt) ptr newptr659112
- peek ptr = do
- tag' <- (#peek Maybe_t, tag) ptr :: IO CInt
- case tag' of
- 0 -> do
- return $ Nothing
- 1 -> do
- a1' <- (#peek Just_t, maybe_just_var1) ptr :: IO InformationPtr
- return $ Just (fromFFI a1' :: Information)
- instance Storable CWString => Storable (Maybe String) where
- sizeOf _ = 12
- alignment _ = #alignment Maybe_t
- poke ptr Nothing = do
- (#poke Maybe_t, tag) ptr cMaybeNothing
- newptr659112 <- malloc :: IO (Ptr (Maybe String))
- (#poke Maybe_t, elt) ptr newptr659112
- poke ptr (Just a1) = do
- (#poke Maybe_t, tag) ptr cMaybeJust
- newptr659112 <- malloc :: IO (Ptr (Maybe String))
- (#poke Just_t, maybe_just_var1) newptr659112 (toFFI a1 :: CWString)
- (#poke Maybe_t, elt) ptr newptr659112
- peek ptr = do
- tag' <- (#peek Maybe_t, tag) ptr :: IO CInt
- case tag' of
- 0 -> do
- return $ Nothing
- 1 -> do
- a1' <- (#peek Just_t, maybe_just_var1) ptr :: IO CWString
- return $ Just (fromFFI a1' :: String)
- instance Storable SrcSpan => Storable (Maybe SrcSpan) where
- sizeOf _ = 12
- alignment _ = #alignment Maybe_t
- poke ptr Nothing = do
- (#poke Maybe_t, tag) ptr cMaybeNothing
- newptr659112 <- malloc :: IO (Ptr (Maybe SrcSpan))
- (#poke Maybe_t, elt) ptr newptr659112
- poke ptr (Just a1) = do
- (#poke Maybe_t, tag) ptr cMaybeJust
- newptr659112 <- malloc :: IO (Ptr (Maybe SrcSpan))
- (#poke Just_t, maybe_just_var1) newptr659112 (toFFI a1 :: SrcSpanPtr)
- (#poke Maybe_t, elt) ptr newptr659112
- peek ptr = do
- tag' <- (#peek Maybe_t, tag) ptr :: IO CInt
- case tag' of
- 0 -> do
- return $ Nothing
- 1 -> do
- a1' <- (#peek Just_t, maybe_just_var1) ptr :: IO SrcSpanPtr
- return $ Just (fromFFI a1' :: SrcSpan)
- instance Storable ((CInt, [CWString])) => Storable (Maybe ((Int, [String]))) where
- sizeOf _ = 12
- alignment _ = #alignment Maybe_t
- poke ptr Nothing = do
- (#poke Maybe_t, tag) ptr cMaybeNothing
- newptr659112 <- malloc :: IO (Ptr (Maybe ((Int, [String]))))
- (#poke Maybe_t, elt) ptr newptr659112
- poke ptr (Just a1) = do
- (#poke Maybe_t, tag) ptr cMaybeJust
- newptr659112 <- malloc :: IO (Ptr (Maybe ((Int, [String]))))
- (#poke Just_t, maybe_just_var1) newptr659112 (toFFI a1 :: ((Tuple2Ptr CInt ((Ptr (CWString))))))
- (#poke Maybe_t, elt) ptr newptr659112
- peek ptr = do
- tag' <- (#peek Maybe_t, tag) ptr :: IO CInt
- case tag' of
- 0 -> do
- return $ Nothing
- 1 -> do
- a1' <- (#peek Just_t, maybe_just_var1) ptr :: IO ((Tuple2Ptr CInt ((Ptr (CWString)))))
- return $ Just (fromFFI a1' :: ((Int, [String])))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement