-- @@ 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])))