ExternalLibraryFunction.st
changeset 12680 b0661f4ef910
parent 12657 7da296a8eeb6
child 12937 7d5f512fb14a
--- a/ExternalLibraryFunction.st	Tue Feb 02 10:37:17 2010 +0100
+++ b/ExternalLibraryFunction.st	Tue Feb 02 16:44:48 2010 +0100
@@ -67,15 +67,34 @@
 documentation
 "
     instances of me are used to interface to external library functions (as found in a dll/shared object).
-    When a special external-call pragma such as:
-	<api: bool MessageBeep(uint)>
 
-    is encountered by the parser in a method, the compiler generates a call via
-	<correspondingExternalLibraryFunctionObject> invokeWithArguments: argumentArray.
+    Inside a method, when a special external-call pragma such as:
+        <api: bool MessageBeep(uint)>
+
+    is encountered by the parser, the compiler generates a call via
+        <correspondingExternalLibraryFunctionObject> invokeWithArguments: argumentArray.
 
     In the invoke method, the library is checked to be loaded (and loaded if not already),
     the arguments are converted to C and pushed onto the C-stack, the function is called,
     and finally, the return value is converted back from C to a smalltalk object.
+
+    The parser supports the call-syntax of various other smalltalk dialects:
+        Squeak / ST-X:
+            <cdecl:   [async] [virtual|nonVirtual][const] returnType functionNameStringOrIndex ( argType1..argTypeN ) module: moduleName > 
+            <apicall: [async] [virtual|nonVirtual][const] returnType functionNameStringOrIndex ( argType1..argTypeN ) module: moduleName >
+
+        Dolphin:
+            <stdcall: [virtual|nonVirtual][const] returnType functionNameStringOrIndex argType1..argTypeN>
+            <cdecl:   [virtual|nonVirtual][const] returnType functionNameStringOrIndex argType1..argTypeN> 
+
+        ST/V:
+            <api: functionName argType1 .. argTypeN returnType> 
+            <ccall: functionName argType1 .. argTypeN returnType> 
+            <ole: vFunctionIndex argType1 .. argTypeN returnType>
+
+        VisualWorks:
+            <c: ...>
+            <c: #define NAME value>
 "
 !
 
@@ -1466,11 +1485,11 @@
 !ExternalLibraryFunction class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ExternalLibraryFunction.st,v 1.77 2010-01-26 11:20:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ExternalLibraryFunction.st,v 1.78 2010-02-02 15:44:48 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/ExternalLibraryFunction.st,v 1.77 2010-01-26 11:20:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ExternalLibraryFunction.st,v 1.78 2010-02-02 15:44:48 cg Exp $'
 ! !
 
 ExternalLibraryFunction initialize!