--- a/Parser.st Tue Sep 22 16:25:53 2009 +0200
+++ b/Parser.st Wed Sep 23 14:30:17 2009 +0200
@@ -7789,7 +7789,9 @@
and to mark resource methods (image, menu or canvas resources).
prim ::= st80Primitive | st80Pragma | stxPragma
- squeakPrimitive | vAgePrimitive | newSTXPrimitive | resourceDecl
+ | squeakPrimitive | vAgePrimitive | newSTXPrimitive
+ | externalFuncDecl
+ | resourceDecl
st80Primitive ::= 'primitive:' INTEGER
st80Pragma ::= 'exception:' ( 'handle | 'raise' | 'unwind' )
@@ -7802,8 +7804,27 @@
vAgePrimitive ::= 'primitive:' IDENTIFIER
| 'sysprim:' IDENTIFIER
- resourceDecl ::= 'resource:' SYMBOL - leave SYMBOL in primitiveResource
- | 'resource:' SYMBOL (...) - leave (SYMBOL (...)) in primitiveResource
+ externalFuncDecl ::= vwExternalFuncDecl
+ | stvExternalFuncDecl
+ | squeakExternalFuncDecl
+ | dolphinExternalFuncDecl
+
+ vwExternalFuncDecl ::= 'c:' vwFuncDecl
+
+ stvExternalFuncDecl ::= 'api:' stvFuncDecl
+ | 'ole:' stvFuncDecl
+
+ squeakExternalFuncDecl ::= 'apicall:' stvFuncDecl
+ | 'cdecl:' stvFuncDecl
+
+ dolphinExternalFuncDecl ::= 'stdcall:' stvFuncDecl
+
+ resourceDecl ::= 'resource:' SYMBOL - leave SYMBOL in primitiveResource
+ | 'resource:' SYMBOL (...) - leave (SYMBOL (...)) in primitiveResource
+ | 'pragma:' SYMBOL - same as resource; alternative syntax
+ | 'pragma:' SYMBOL (...) - same as resource; alternative syntax
+ | 'attribute:' SYMBOL - same as resource; alternative syntax
+ | 'attribute:' SYMBOL (...) - same as resource; alternative syntax
"
|lcTokenName|
@@ -7827,7 +7848,9 @@
self checkForClosingAngle.
^ 0. "/ no primitive number
].
- (tokenName = 'resource:') ifTrue:[
+ ((tokenName = 'resource:')
+ or:[tokenName = 'pragma:'
+ or:[tokenName = 'attribute:' ]]) ifTrue:[
self parseResourcePragma.
^ nil. "/ no primitive number
].
@@ -9598,7 +9621,7 @@
!Parser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.606 2009-09-21 21:26:34 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.607 2009-09-23 12:30:17 cg Exp $'
! !
Parser initialize!