-- Automatically generated by HaskellDirect (ihc.exe), snapshot 030904 -- Created: 10:32 GMT Standard Time, Tuesday 26 October, 2004 -- Command line: -ic:/Program Files/Microsoft Visual Studio .NET/Vc7/PlatformSDK/Include -iidl -fdual-vtbl -fcom idl/BabelServiceLib.idl module BabelServiceLib ( libidBabelServiceLib , Severity(..) , ParseReason(..) , CharClass(..) , TriggerClass , DefaultTriggerClass(..) , ColorClass , DefaultColorClass(..) , ScopeKind(..) , ScopeAccess(..) , ScopeStorage(..) , iconGroupSize , ScopeIconGroup(..) , ScopeIconItem(..) , ScopeIconMisc(..) , getCount , getName , getSelector , INames , INames_ , iidINames , getCount0 , getName0 , getDescription , getGlyph , getBestMatch , IDeclarations , IDeclarations_ , iidIDeclarations , getName1 , getCount1 , getDescription0 , getType , getParameterCount , getParameterInfo , IMethods , IMethods_ , iidIMethods , FindDeclarationResult(..) , getDeclarations , getDeclarationOfNameAt , getDataTipText , getMethods , narrow , IScope , IScope_ , iidIScope , colorize , IColorSink , IColorSink_ , iidIColorSink , errorMessage , matchPair , matchTriple , startName , qualifyName , autoExpression , codeSpan , startParameters , parameter , endParameters , getPackage , getProject , getFileName , getHierarchy , addScope , addInclude , addExtern , IParseSink , IParseSink_ , iidIParseSink , loadScope , IBabelPackage , IBabelPackage_ , iidIBabelPackage , searchFile , IBabelProject , IBabelProject_ , iidIBabelProject ) where import Prelude (fromEnum, toEnum) import qualified Prelude import qualified Automation (IDispatch, marshallVARIANT_BOOL, outInt32, function1, outString, inInt32, method4, outBool, inString, method2, method3, outIDispatch, inIDispatch, method5, outIUnknown) import qualified Com (LIBID, mkLIBID, IID, mkIID, invokeAndCheck, marshallBSTR, freeBSTR, readIUnknown, readBSTR, IUnknown, marshallIUnknown) import qualified Data.Bits ((.&.)) import qualified Data.Int (Int32, Int16) import qualified Data.Maybe (mapMaybe) import qualified Foreign.Ptr (Ptr, nullPtr) import qualified HDirect (Flags(..), pow2Series, orList, marshallEnum32, sizeofPtr, allocBytes, free, doThenFree, freeref, marshallMaybe, readWord32, sizeofWord32) import qualified VsTypes (VSITEMID) import qualified WideString (marshallWideString2, freeWideString, WideString) libidBabelServiceLib :: Com.LIBID libidBabelServiceLib = Com.mkLIBID "{4E71BA42-5C36-11d3-B3FD-006008D1BF8C}" data Severity = SevHint | SevWarning | SevError | SevFatal deriving (Prelude.Enum) data ParseReason = ReasonColorize | ReasonCheck | ReasonMemberSelect | ReasonCompleteWord | ReasonQuickInfo | ReasonMethodTip | ReasonMatchBraces | ReasonHighlightBraces | ReasonAutos | ReasonCodeSpan deriving (Prelude.Enum) data CharClass = CharDefault | CharText | CharKeyword | CharIdentifier | CharString | CharLiteral | CharOperator | CharDelimiter | CharEmbedded | CharWhiteSpace | CharLineComment | CharComment | CharDefaultLast instance Prelude.Enum (CharClass) where fromEnum v = case v of CharDefault -> 0 CharText -> 0 CharKeyword -> 1 CharIdentifier -> 2 CharString -> 3 CharLiteral -> 4 CharOperator -> 5 CharDelimiter -> 6 CharEmbedded -> 7 CharWhiteSpace -> 8 CharLineComment -> 9 CharComment -> 10 CharDefaultLast -> 10 toEnum v = case v of 0 -> CharDefault 0 -> CharText 1 -> CharKeyword 2 -> CharIdentifier 3 -> CharString 4 -> CharLiteral 5 -> CharOperator 6 -> CharDelimiter 7 -> CharEmbedded 8 -> CharWhiteSpace 9 -> CharLineComment 10 -> CharComment 10 -> CharDefaultLast _ -> Prelude.error "unmarshallCharClass: illegal enum value " type TriggerClass = Data.Int.Int32 data DefaultTriggerClass = TriggerNone | TriggerMemberSelect | TriggerMatchBraces | TriggerParamStart | TriggerParamNext | TriggerParamEnd | TriggerParam | TriggerMethodTip instance Prelude.Enum (DefaultTriggerClass) where fromEnum v = case v of TriggerNone -> 0 TriggerMemberSelect -> 1 TriggerMatchBraces -> 2 TriggerParamStart -> 16 TriggerParamNext -> 32 TriggerParamEnd -> 64 TriggerParam -> 128 TriggerMethodTip -> 240 toEnum v = case v of 0 -> TriggerNone 1 -> TriggerMemberSelect 2 -> TriggerMatchBraces 16 -> TriggerParamStart 32 -> TriggerParamNext 64 -> TriggerParamEnd 128 -> TriggerParam 240 -> TriggerMethodTip _ -> Prelude.error "unmarshallDefaultTriggerClass: illegal enum value " type ColorClass = Data.Int.Int32 data DefaultColorClass = ClassDefault | ClassText | ClassKeyword | ClassComment | ClassIdentifier | ClassString | ClassNumber | ClassDefaultLast instance Prelude.Enum (DefaultColorClass) where fromEnum v = case v of ClassDefault -> 0 ClassText -> 0 ClassKeyword -> 1 ClassComment -> 2 ClassIdentifier -> 3 ClassString -> 4 ClassNumber -> 5 ClassDefaultLast -> 5 toEnum v = case v of 0 -> ClassDefault 0 -> ClassText 1 -> ClassKeyword 2 -> ClassComment 3 -> ClassIdentifier 4 -> ClassString 5 -> ClassNumber 5 -> ClassDefaultLast _ -> Prelude.error "unmarshallDefaultColorClass: illegal enum value " data ScopeKind = ScopeUnknown | ScopeModule | ScopeClass | ScopeInterface | ScopeUnion | ScopeProcedure | ScopeVariable | ScopeBlock deriving (Prelude.Enum) data ScopeAccess = ScopeAccessList__ [ScopeAccess] | AccessPrivate | AccessProtected | AccessPublic instance HDirect.Flags (ScopeAccess) where x1 .+. x2 = Prelude.toEnum ((Prelude.fromEnum x1 Prelude.+ Prelude.fromEnum x2)) instance Prelude.Enum (ScopeAccess) where fromEnum v = case v of (ScopeAccessList__ xs) -> HDirect.orList (Prelude.map Prelude.fromEnum xs) AccessPrivate -> 0 AccessProtected -> 1 AccessPublic -> 2 toEnum v = case v of 0 -> AccessPrivate 1 -> AccessProtected 2 -> AccessPublic x -> ScopeAccessList__ (Data.Maybe.mapMaybe (\ val -> if ((val Data.Bits..&. Prelude.fromIntegral x) Prelude.== val) then Prelude.Just (Prelude.toEnum (Prelude.fromIntegral val)) else Prelude.Nothing) (HDirect.pow2Series 3 0)) _ -> Prelude.error "unmarshallScopeAccess: illegal enum value " data ScopeStorage = StorageConstant | StorageStatic | StorageMember | StorageVirtual | StorageParameter | StorageResult | StorageLocal | StorageType | StorageNone | StorageOther deriving (Prelude.Enum) iconGroupSize :: Data.Int.Int32 iconGroupSize = 6 data ScopeIconGroup = IconGroupClass | IconGroupType | IconGroupDelegate | IconGroupType2 | IconGroupType3 | IconGroupEvent | IconGroupResource | IconGroupFieldBlue | IconGroupInterface | IconGroupTextLine | IconGroupScript | IconGroupScript2 | IconGroupMethod | IconGroupMethod2 | IconGroupDiagram | IconGroupNameSpace | IconGroupFormula | IconGroupProperty | IconGroupStruct | IconGroupTemplate | IconGroupOpenSquare | IconGroupBits | IconGroupChannel | IconGroupFieldRed | IconGroupUnion | IconGroupForm | IconGroupFieldYellow | IconGroupMisc1 | IconGroupMisc2 | IconGroupMisc3 deriving (Prelude.Enum) data ScopeIconItem = IconItemPublic | IconItemNormal | IconItemInternal | IconItemSpecial | IconItemProtected | IconItemPrivate | IconItemShortCut instance Prelude.Enum (ScopeIconItem) where fromEnum v = case v of IconItemPublic -> 0 IconItemNormal -> 0 IconItemInternal -> 1 IconItemSpecial -> 2 IconItemProtected -> 3 IconItemPrivate -> 4 IconItemShortCut -> 5 toEnum v = case v of 0 -> IconItemPublic 0 -> IconItemNormal 1 -> IconItemInternal 2 -> IconItemSpecial 3 -> IconItemProtected 4 -> IconItemPrivate 5 -> IconItemShortCut _ -> Prelude.error "unmarshallScopeIconItem: illegal enum value " data ScopeIconMisc = IconBlackBox | IconLibrary | IconProgram | IconWebProgram | IconProgramEmpty | IconWebProgramEmpty | IconComponents | IconEnvironment | IconWindow | IconFolderOpen | IconFolder | IconArrowRight | IconAmbigious | IconShadowClass | IconShadowMethodPrivate | IconShadowMethodProtected | IconShadowMethod | IconInCompleteSource instance Prelude.Enum (ScopeIconMisc) where fromEnum v = case v of IconBlackBox -> 162 IconLibrary -> 163 IconProgram -> 164 IconWebProgram -> 165 IconProgramEmpty -> 166 IconWebProgramEmpty -> 167 IconComponents -> 168 IconEnvironment -> 169 IconWindow -> 170 IconFolderOpen -> 171 IconFolder -> 172 IconArrowRight -> 173 IconAmbigious -> 174 IconShadowClass -> 175 IconShadowMethodPrivate -> 176 IconShadowMethodProtected -> 177 IconShadowMethod -> 178 IconInCompleteSource -> 179 toEnum v = case v of 162 -> IconBlackBox 163 -> IconLibrary 164 -> IconProgram 165 -> IconWebProgram 166 -> IconProgramEmpty 167 -> IconWebProgramEmpty 168 -> IconComponents 169 -> IconEnvironment 170 -> IconWindow 171 -> IconFolderOpen 172 -> IconFolder 173 -> IconArrowRight 174 -> IconAmbigious 175 -> IconShadowClass 176 -> IconShadowMethodPrivate 177 -> IconShadowMethodProtected 178 -> IconShadowMethod 179 -> IconInCompleteSource _ -> Prelude.error "unmarshallScopeIconMisc: illegal enum value " -- -------------------------------------------------- -- -- interface INames -- -- -------------------------------------------------- data INames_ a = INames__ type INames a = Automation.IDispatch (INames_ a) iidINames :: Com.IID (INames ()) iidINames = Com.mkIID "{4E71BA45-5C36-11d3-B3FD-006008D1BF8C}" getCount :: INames a0 -> Prelude.IO Data.Int.Int32 getCount = Automation.function1 "GetCount" [] Automation.outInt32 getName :: Data.Int.Int32 -> INames a0 -> Prelude.IO Prelude.String getName index = Automation.function1 "GetName" [Automation.inInt32 index] Automation.outString getSelector :: Data.Int.Int32 -> INames a0 -> Prelude.IO Prelude.String getSelector index = Automation.function1 "GetSelector" [Automation.inInt32 index] Automation.outString -- -------------------------------------------------- -- -- interface IDeclarations -- -- -------------------------------------------------- data IDeclarations_ a = IDeclarations__ type IDeclarations a = Automation.IDispatch (IDeclarations_ a) iidIDeclarations :: Com.IID (IDeclarations ()) iidIDeclarations = Com.mkIID "{4E71BA46-5C36-11d3-B3FD-006008D1BF8C}" getCount0 :: IDeclarations a0 -> Prelude.IO Data.Int.Int32 getCount0 = Automation.function1 "GetCount" [] Automation.outInt32 getName0 :: Data.Int.Int32 -> IDeclarations a0 -> Prelude.IO Prelude.String getName0 index = Automation.function1 "GetName" [Automation.inInt32 index] Automation.outString getDescription :: Data.Int.Int32 -> IDeclarations a0 -> Prelude.IO Prelude.String getDescription index = Automation.function1 "GetDescription" [Automation.inInt32 index] Automation.outString getGlyph :: Data.Int.Int32 -> IDeclarations a0 -> Prelude.IO Data.Int.Int32 getGlyph index = Automation.function1 "GetGlyph" [Automation.inInt32 index] Automation.outInt32 getBestMatch :: Prelude.String -> IDeclarations a0 -> Prelude.IO (Data.Int.Int32, Prelude.Bool) getBestMatch text = Automation.method2 "GetBestMatch" [Automation.inString text] Automation.outInt32 Automation.outBool -- -------------------------------------------------- -- -- interface IMethods -- -- -------------------------------------------------- data IMethods_ a = IMethods__ type IMethods a = Automation.IDispatch (IMethods_ a) iidIMethods :: Com.IID (IMethods ()) iidIMethods = Com.mkIID "{4E71BA47-5C36-11d3-B3FD-006008D1BF8C}" getName1 :: IMethods a0 -> Prelude.IO Prelude.String getName1 = Automation.function1 "GetName" [] Automation.outString getCount1 :: IMethods a0 -> Prelude.IO Data.Int.Int32 getCount1 = Automation.function1 "GetCount" [] Automation.outInt32 getDescription0 :: Data.Int.Int32 -> IMethods a0 -> Prelude.IO Prelude.String getDescription0 index = Automation.function1 "GetDescription" [Automation.inInt32 index] Automation.outString getType :: Data.Int.Int32 -> IMethods a0 -> Prelude.IO Prelude.String getType index = Automation.function1 "GetType" [Automation.inInt32 index] Automation.outString getParameterCount :: Data.Int.Int32 -> IMethods a0 -> Prelude.IO Data.Int.Int32 getParameterCount index = Automation.function1 "GetParameterCount" [Automation.inInt32 index] Automation.outInt32 getParameterInfo :: Data.Int.Int32 -> Data.Int.Int32 -> IMethods a0 -> Prelude.IO (Prelude.String, Prelude.String, Prelude.String) getParameterInfo index parameter = Automation.method3 "GetParameterInfo" [ Automation.inInt32 index , Automation.inInt32 parameter ] Automation.outString Automation.outString Automation.outString data FindDeclarationResult = FINDDECL_IdNotFound | FINDDECL_DeclNotFound | FINDDECL_NoDeclInfo | FINDDECL_DeclFound deriving (Prelude.Enum) -- -------------------------------------------------- -- -- interface IScope -- -- -------------------------------------------------- data IScope_ a = IScope__ type IScope a = Automation.IDispatch (IScope_ a) iidIScope :: Com.IID (IScope ()) iidIScope = Com.mkIID "{4E71BA44-5C36-11d3-B3FD-006008D1BF8C}" getDeclarations :: Data.Int.Int32 -> Data.Int.Int32 -> INames a1 -> IScope a0 -> Prelude.IO (IDeclarations ()) getDeclarations line idx names = Automation.function1 "GetDeclarations" [ Automation.inInt32 line , Automation.inInt32 idx , Automation.inIDispatch names ] Automation.outIDispatch getDeclarationOfNameAt :: Data.Int.Int32 -> Data.Int.Int32 -> IScope a0 -> Prelude.IO (Data.Int.Int32, Data.Int.Int32, Data.Int.Int32, Data.Int.Int32, Data.Int.Int32) getDeclarationOfNameAt line idx = Automation.method5 "GetDeclarationOfNameAt" [ Automation.inInt32 line , Automation.inInt32 idx ] Automation.outInt32 Automation.outInt32 Automation.outInt32 Automation.outInt32 Automation.outInt32 getDataTipText :: Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> IScope a0 -> Prelude.IO Prelude.String getDataTipText sline sidx eline eidx = Automation.function1 "GetDataTipText" [ Automation.inInt32 sline , Automation.inInt32 sidx , Automation.inInt32 eline , Automation.inInt32 eidx ] Automation.outString getMethods :: Data.Int.Int32 -> Data.Int.Int32 -> INames a1 -> IScope a0 -> Prelude.IO (IMethods ()) getMethods line idx names = Automation.function1 "GetMethods" [ Automation.inInt32 line , Automation.inInt32 idx , Automation.inIDispatch names ] Automation.outIDispatch narrow :: Data.Int.Int32 -> Data.Int.Int32 -> IScope a0 -> Prelude.IO (Prelude.String, Data.Int.Int32) narrow line idx = Automation.method2 "Narrow" [ Automation.inInt32 line , Automation.inInt32 idx ] Automation.outString Automation.outInt32 -- -------------------------------------------------- -- -- interface IColorSink -- -- -------------------------------------------------- data IColorSink_ a = IColorSink__ type IColorSink a = Automation.IDispatch (IColorSink_ a) iidIColorSink :: Com.IID (IColorSink ()) iidIColorSink = Com.mkIID "{4E71BA43-5C36-11d3-B3FD-006008D1BF8C}" -- method Colorize colorize :: Data.Int.Int32 -> Data.Int.Int32 -> ColorClass -> CharClass -> TriggerClass -> IColorSink a0 -> Prelude.IO () colorize startIdx endIdx colorClass charClass trigger iptr = do charClass <- HDirect.marshallEnum32 charClass Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_colorize methPtr iptr startIdx endIdx colorClass charClass trigger) 7 iptr foreign import stdcall "dynamic" prim_BabelServiceLib_colorize :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Prelude.IO Data.Int.Int32 -- -------------------------------------------------- -- -- interface IParseSink -- -- -------------------------------------------------- data IParseSink_ a = IParseSink__ type IParseSink a = Automation.IDispatch (IParseSink_ a) iidIParseSink :: Com.IID (IParseSink ()) iidIParseSink = Com.mkIID "{4E71BA40-5C36-11d3-B3FD-006008D1BF8C}" -- ErrorMessage errorMessage :: Prelude.String -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Severity -> Prelude.String -> IParseSink a0 -> Prelude.IO () errorMessage filePath startLine endLine startIdx endIdx sev message iptr = do filePath <- WideString.marshallWideString2 filePath sev <- HDirect.marshallEnum32 sev message <- Com.marshallBSTR message Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_errorMessage methPtr iptr filePath startLine endLine startIdx endIdx sev message) 7 iptr Com.freeBSTR message WideString.freeWideString filePath foreign import stdcall "dynamic" prim_BabelServiceLib_errorMessage :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr WideString.WideString -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 matchPair :: Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> IParseSink a0 -> Prelude.IO () matchPair startLine1 startIdx1 endLine1 endIdx1 startLine2 startIdx2 endLine2 endIdx2 iptr = Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_matchPair methPtr iptr startLine1 startIdx1 endLine1 endIdx1 startLine2 startIdx2 endLine2 endIdx2) 8 iptr foreign import stdcall "dynamic" prim_BabelServiceLib_matchPair :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Prelude.IO Data.Int.Int32 matchTriple :: Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> IParseSink a0 -> Prelude.IO () matchTriple startLine1 startIdx1 endLine1 endIdx1 startLine2 startIdx2 endLine2 endIdx2 startLine3 startIdx3 endLine3 endIdx3 iptr = Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_matchTriple methPtr iptr startLine1 startIdx1 endLine1 endIdx1 startLine2 startIdx2 endLine2 endIdx2 startLine3 startIdx3 endLine3 endIdx3) 9 iptr foreign import stdcall "dynamic" prim_BabelServiceLib_matchTriple :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Prelude.IO Data.Int.Int32 startName :: Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> IParseSink a0 -> Prelude.IO () startName line startIdx endIdx iptr = Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_startName methPtr iptr line startIdx endIdx) 10 iptr foreign import stdcall "dynamic" prim_BabelServiceLib_startName :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Prelude.IO Data.Int.Int32 qualifyName :: Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> IParseSink a0 -> Prelude.IO () qualifyName lineSelector startIdxSelector endIdxSelector line startIdx endIdx iptr = Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_qualifyName methPtr iptr lineSelector startIdxSelector endIdxSelector line startIdx endIdx) 11 iptr foreign import stdcall "dynamic" prim_BabelServiceLib_qualifyName :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Prelude.IO Data.Int.Int32 autoExpression :: Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> IParseSink a0 -> Prelude.IO () autoExpression startLine startIdx endLine endIdx iptr = Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_autoExpression methPtr iptr startLine startIdx endLine endIdx) 12 iptr foreign import stdcall "dynamic" prim_BabelServiceLib_autoExpression :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Prelude.IO Data.Int.Int32 codeSpan :: Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> IParseSink a0 -> Prelude.IO () codeSpan startLine startIdx endLine endIdx iptr = Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_autoExpression methPtr iptr startLine startIdx endLine endIdx) 13 iptr startParameters :: Data.Int.Int32 -> Data.Int.Int32 -> IParseSink a0 -> Prelude.IO () startParameters line idx iptr = Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_startParameters methPtr iptr line idx) 14 iptr foreign import stdcall "dynamic" prim_BabelServiceLib_startParameters :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Data.Int.Int32 -> Prelude.IO Data.Int.Int32 parameter :: Data.Int.Int32 -> Data.Int.Int32 -> IParseSink a0 -> Prelude.IO () parameter line idx iptr = Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_startParameters methPtr iptr line idx) 15 iptr endParameters :: Data.Int.Int32 -> Data.Int.Int32 -> IParseSink a0 -> Prelude.IO () endParameters line idx iptr = Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_startParameters methPtr iptr line idx) 16 iptr getPackage :: IParseSink a0 -> Prelude.IO (IBabelPackage ()) getPackage iptr = do package <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_getPackage methPtr iptr package) 17 iptr HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) package foreign import stdcall "dynamic" prim_BabelServiceLib_getPackage :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (IBabelPackage a)) -> Prelude.IO Data.Int.Int32 getProject :: IParseSink a0 -> Prelude.IO (IBabelProject ()) getProject iptr = do project <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_getProject methPtr iptr project) 18 iptr HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) project foreign import stdcall "dynamic" prim_BabelServiceLib_getProject :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (IBabelProject a)) -> Prelude.IO Data.Int.Int32 getFileName :: IParseSink a0 -> Prelude.IO Prelude.String getFileName iptr = do filePath <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_getFileName methPtr iptr filePath) 19 iptr HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR filePath foreign import stdcall "dynamic" prim_BabelServiceLib_getFileName :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 getHierarchy :: IParseSink a0 -> Prelude.IO (Com.IUnknown (), VsTypes.VSITEMID) getHierarchy iptr = do hierarchy <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) pitemid <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofWord32) Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_getHierarchy methPtr iptr hierarchy pitemid) 20 iptr hierarchy <- HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) hierarchy itemid <- HDirect.doThenFree HDirect.free HDirect.readWord32 pitemid Prelude.return (hierarchy, itemid) foreign import stdcall "dynamic" prim_BabelServiceLib_getHierarchy :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (Com.IUnknown a)) -> Foreign.Ptr.Ptr VsTypes.VSITEMID -> Prelude.IO Data.Int.Int32 addScope :: Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> ScopeKind -> ScopeAccess -> ScopeStorage -> Data.Int.Int32 -> Prelude.String -> Prelude.String -> Prelude.String -> Prelude.String -> Prelude.Bool -> IParseSink a0 -> Prelude.IO () addScope startLine startIdx endLine endIdx kind access storage glyph name type0 display description merge iptr = do kind <- HDirect.marshallEnum32 kind access <- HDirect.marshallEnum32 access storage <- HDirect.marshallEnum32 storage name <- Com.marshallBSTR name type0 <- Com.marshallBSTR type0 display <- Com.marshallBSTR display description <- Com.marshallBSTR description merge <- Automation.marshallVARIANT_BOOL merge Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_addScope methPtr iptr startLine startIdx endLine endIdx kind access storage glyph name type0 display description merge) 21 iptr Com.freeBSTR name Com.freeBSTR type0 Com.freeBSTR display Com.freeBSTR description foreign import stdcall "dynamic" prim_BabelServiceLib_addScope :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Data.Int.Int16 -> Prelude.IO Data.Int.Int32 addInclude :: Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> ScopeAccess -> Prelude.String -> IParseSink a0 -> Prelude.IO () addInclude startLine startIdx endLine endIdx access name iptr = do access <- HDirect.marshallEnum32 access name <- Com.marshallBSTR name Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_addInclude methPtr iptr startLine startIdx endLine endIdx access name) 22 iptr Com.freeBSTR name foreign import stdcall "dynamic" prim_BabelServiceLib_addInclude :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 addExtern :: Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Prelude.Maybe (IScope ()) -> IParseSink a0 -> Prelude.IO () addExtern startLine startIdx endLine endIdx scope iptr = do scope <- HDirect.marshallMaybe Com.marshallIUnknown Foreign.Ptr.nullPtr scope Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_addExtern methPtr iptr startLine startIdx endLine endIdx scope) 23 iptr foreign import stdcall "dynamic" prim_BabelServiceLib_addExtern :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr (IScope a) -> Prelude.IO Data.Int.Int32 -- -------------------------------------------------- -- -- interface IBabelPackage -- -- -------------------------------------------------- data IBabelPackage_ a = IBabelPackage__ type IBabelPackage a = Automation.IDispatch (IBabelPackage_ a) iidIBabelPackage :: Com.IID (IBabelPackage ()) iidIBabelPackage = Com.mkIID "{58645F94-4EC7-4aa4-92FB-09625D04FC77}" -- LoadScope: load a scope for a file. [reserved] should always be 0. loadScope :: Data.Int.Int32 -> Prelude.String -> Prelude.Maybe (IBabelProject ()) -> IBabelPackage a0 -> Prelude.IO (IScope ()) loadScope reserved fileName project iptr = do scope <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) fileName <- Com.marshallBSTR fileName project <- HDirect.marshallMaybe Com.marshallIUnknown Foreign.Ptr.nullPtr project Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_loadScope methPtr iptr reserved fileName project scope) 7 iptr Com.freeBSTR fileName HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) scope foreign import stdcall "dynamic" prim_BabelServiceLib_loadScope :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr (IBabelProject a) -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (IScope a)) -> Prelude.IO Data.Int.Int32 -- -------------------------------------------------- -- -- interface IBabelProject -- -- -------------------------------------------------- data IBabelProject_ a = IBabelProject__ type IBabelProject a = Automation.IDispatch (IBabelProject_ a) iidIBabelProject :: Com.IID (IBabelProject ()) iidIBabelProject = Com.mkIID "{58645F95-4EC7-4aa4-92FB-09625D04FC77}" searchFile :: Prelude.String -> IBabelProject a0 -> Prelude.IO Prelude.String searchFile fileName iptr = do filePath <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) fileName <- Com.marshallBSTR fileName Com.invokeAndCheck (\ methPtr iptr -> prim_BabelServiceLib_searchFile methPtr iptr fileName filePath) 7 iptr Com.freeBSTR fileName HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR filePath foreign import stdcall "dynamic" prim_BabelServiceLib_searchFile :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32